<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="walletobjects_v1.html">Google Wallet API</a> . <a href="walletobjects_v1.offerobject.html">offerobject</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#addmessage">addmessage(resourceId, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Adds a message to the offer object referenced by the given object ID.</p>
<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#get">get(resourceId, x__xgafv=None)</a></code></p>
<p class="firstline">Returns the offer object with the given object ID.</p>
<p class="toc_element">
  <code><a href="#insert">insert(body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Inserts an offer object with the given ID and properties.</p>
<p class="toc_element">
  <code><a href="#list">list(classId=None, maxResults=None, token=None, x__xgafv=None)</a></code></p>
<p class="firstline">Returns a list of all offer objects for a given issuer ID.</p>
<p class="toc_element">
  <code><a href="#patch">patch(resourceId, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Updates the offer object referenced by the given object ID. This method supports patch semantics.</p>
<p class="toc_element">
  <code><a href="#update">update(resourceId, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Updates the offer object referenced by the given object ID.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="addmessage">addmessage(resourceId, body=None, x__xgafv=None)</code>
  <pre>Adds a message to the offer object referenced by the given object ID.

Args:
  resourceId: string, The unique identifier for an object. This ID must be unique across all objects 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, &#x27;.&#x27;, &#x27;_&#x27;, or &#x27;-&#x27;. (required)
  body: object, The request body.
    The object takes the form of:

{ # Resource used when the AddMessage endpoints are called.
  &quot;message&quot;: { # A message that will be displayed with a Valuable
    &quot;body&quot;: &quot;A String&quot;, # The message body.
    &quot;displayInterval&quot;: { # The period of time that the message will be displayed to users. You can define both a `startTime` and `endTime` for each message. A message is displayed immediately after a Wallet Object is inserted unless a `startTime` is set. The message will appear in a list of messages indefinitely if `endTime` is not provided.
      &quot;end&quot;: { # End time of the interval. Offset is not required. If an offset is provided and `start` time is set, `start` must also include an offset.
        &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#timeInterval&quot;`.
      &quot;start&quot;: { # Start time of the interval. Offset is not required. If an offset is provided and `end` time is set, `end` must also include an offset.
        &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
      },
    },
    &quot;header&quot;: &quot;A String&quot;, # The message header.
    &quot;id&quot;: &quot;A String&quot;, # 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.
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#walletObjectMessage&quot;`.
    &quot;localizedBody&quot;: { # Translated strings for the message body.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;localizedHeader&quot;: { # Translated strings for the message header.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;messageType&quot;: &quot;A String&quot;, # The type of the message. Currently, this can only be set for offers.
  },
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
  &quot;resource&quot;: { # The updated OfferObject resource.
    &quot;appLinkData&quot;: { # Optional information about the partner app link.
      &quot;androidAppLinkInfo&quot;: { # Optional information about the partner app link. If included, the app link link module will be rendered on the valuable details on the android client.
        &quot;appLogoImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional image to be displayed in the App Link Module
          &quot;contentDescription&quot;: { # Description of the image used for accessibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
          &quot;sourceUri&quot;: { # The URI for the image.
            &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
            &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
          },
        },
        &quot;appTarget&quot;: { # Url to follow when opening the App Link Module on clients. It will be used by partners to open their webpage or deeplink into their app.
          &quot;targetUri&quot;: {
            &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
            &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
            &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;uri&quot;: &quot;A String&quot;, # 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.
          },
        },
        &quot;description&quot;: { # String to be displayed in the description of the App Link Module Required
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;title&quot;: { # String to be displayed in the title of the App Link Module Required
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
      },
      &quot;iosAppLinkInfo&quot;: { # Optional information about the partner app link. If included, the app link link module will be rendered on the valuable details on the ios client.
        &quot;appLogoImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional image to be displayed in the App Link Module
          &quot;contentDescription&quot;: { # Description of the image used for accessibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
          &quot;sourceUri&quot;: { # The URI for the image.
            &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
            &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
          },
        },
        &quot;appTarget&quot;: { # Url to follow when opening the App Link Module on clients. It will be used by partners to open their webpage or deeplink into their app.
          &quot;targetUri&quot;: {
            &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
            &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
            &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;uri&quot;: &quot;A String&quot;, # 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.
          },
        },
        &quot;description&quot;: { # String to be displayed in the description of the App Link Module Required
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;title&quot;: { # String to be displayed in the title of the App Link Module Required
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
      },
      &quot;webAppLinkInfo&quot;: { # Optional information about the partner app link. If included, the app link link module will be rendered on the valuable details on the web client.
        &quot;appLogoImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional image to be displayed in the App Link Module
          &quot;contentDescription&quot;: { # Description of the image used for accessibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
          &quot;sourceUri&quot;: { # The URI for the image.
            &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
            &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
          },
        },
        &quot;appTarget&quot;: { # Url to follow when opening the App Link Module on clients. It will be used by partners to open their webpage or deeplink into their app.
          &quot;targetUri&quot;: {
            &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
            &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
            &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;uri&quot;: &quot;A String&quot;, # 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.
          },
        },
        &quot;description&quot;: { # String to be displayed in the description of the App Link Module Required
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;title&quot;: { # String to be displayed in the title of the App Link Module Required
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
      },
    },
    &quot;barcode&quot;: { # The barcode type and value.
      &quot;alternateText&quot;: &quot;A String&quot;, # An optional text that will override the default text that shows under the barcode. This field is intended for a human readable equivalent of the barcode value, used when the barcode cannot be scanned.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#barcode&quot;`.
      &quot;renderEncoding&quot;: &quot;A String&quot;, # The render encoding for the barcode. When specified, barcode is rendered in the given encoding. Otherwise best known encoding is chosen by Google.
      &quot;showCodeText&quot;: { # Optional text that will be shown when the barcode is hidden behind a click action. This happens in cases where a pass has Smart Tap enabled. If not specified, a default is chosen by Google.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;type&quot;: &quot;A String&quot;, # The type of barcode.
      &quot;value&quot;: &quot;A String&quot;, # The value encoded in the barcode.
    },
    &quot;classId&quot;: &quot;A String&quot;, # Required. The class associated with this object. The class must be of the same type as this object, must already exist, and must be approved. Class IDs should follow the format issuer ID.identifier where the former is issued by Google and latter is chosen by you.
    &quot;classReference&quot;: { # A copy of the inherited fields of the parent class. These fields are retrieved during a GET.
      &quot;allowMultipleUsersPerObject&quot;: True or False, # Deprecated. Use `multipleDevicesAndHoldersAllowedStatus` instead.
      &quot;callbackOptions&quot;: { # Callback options to be used to call the issuer back for every save/delete of an object for this class by the end-user. All objects of this class are eligible for the callback.
        &quot;updateRequestUrl&quot;: &quot;A String&quot;, # 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:Google-Valuables. Deprecated.
        &quot;url&quot;: &quot;A String&quot;, # 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:Google-Valuables.
      },
      &quot;classTemplateInfo&quot;: { # Template information about how the class should be displayed. If unset, Google will fallback to a default set of fields to display.
        &quot;cardBarcodeSectionDetails&quot;: { # Specifies extra information to be displayed above and below the barcode.
          &quot;firstBottomDetail&quot;: { # Optional information to display below the barcode.
            &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
              &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                { # Reference definition to use with field overrides.
                  &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                  &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                },
              ],
            },
          },
          &quot;firstTopDetail&quot;: { # Optional information to display above the barcode. If `secondTopDetail` is defined, this will be displayed to the start side of this detail section.
            &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
              &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                { # Reference definition to use with field overrides.
                  &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                  &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                },
              ],
            },
          },
          &quot;secondTopDetail&quot;: { # Optional second piece of information to display above the barcode. If `firstTopDetail` is defined, this will be displayed to the end side of this detail section.
            &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
              &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                { # Reference definition to use with field overrides.
                  &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                  &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                },
              ],
            },
          },
        },
        &quot;cardTemplateOverride&quot;: { # Override for the card view.
          &quot;cardRowTemplateInfos&quot;: [ # Template information for rows in the card view. At most three rows are allowed to be specified.
            {
              &quot;oneItem&quot;: { # Template for a row containing one item. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
                &quot;item&quot;: { # The item to be displayed in the row. This item will be automatically centered.
                  &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                    &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                      { # Reference definition to use with field overrides.
                        &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                        &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                      },
                    ],
                  },
                  &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                  &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                    &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                      { # Reference definition to use with field overrides.
                        &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                        &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                      },
                    ],
                  },
                },
              },
              &quot;threeItems&quot;: { # Template for a row containing three items. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
                &quot;endItem&quot;: { # The item to be displayed at the end of the row. This item will be aligned to the right.
                  &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                    &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                      { # Reference definition to use with field overrides.
                        &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                        &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                      },
                    ],
                  },
                  &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                  &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                    &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                      { # Reference definition to use with field overrides.
                        &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                        &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                      },
                    ],
                  },
                },
                &quot;middleItem&quot;: { # The item to be displayed in the middle of the row. This item will be centered between the start and end items.
                  &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                    &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                      { # Reference definition to use with field overrides.
                        &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                        &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                      },
                    ],
                  },
                  &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                  &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                    &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                      { # Reference definition to use with field overrides.
                        &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                        &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                      },
                    ],
                  },
                },
                &quot;startItem&quot;: { # The item to be displayed at the start of the row. This item will be aligned to the left.
                  &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                    &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                      { # Reference definition to use with field overrides.
                        &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                        &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                      },
                    ],
                  },
                  &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                  &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                    &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                      { # Reference definition to use with field overrides.
                        &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                        &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                      },
                    ],
                  },
                },
              },
              &quot;twoItems&quot;: { # Template for a row containing two items. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
                &quot;endItem&quot;: { # The item to be displayed at the end of the row. This item will be aligned to the right.
                  &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                    &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                      { # Reference definition to use with field overrides.
                        &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                        &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                      },
                    ],
                  },
                  &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                  &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                    &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                      { # Reference definition to use with field overrides.
                        &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                        &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                      },
                    ],
                  },
                },
                &quot;startItem&quot;: { # The item to be displayed at the start of the row. This item will be aligned to the left.
                  &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                    &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                      { # Reference definition to use with field overrides.
                        &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                        &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                      },
                    ],
                  },
                  &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                  &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                    &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                      { # Reference definition to use with field overrides.
                        &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                        &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                      },
                    ],
                  },
                },
              },
            },
          ],
        },
        &quot;detailsTemplateOverride&quot;: { # Override for the details view (beneath the card view).
          &quot;detailsItemInfos&quot;: [ # Information for the &quot;nth&quot; item displayed in the details list.
            {
              &quot;item&quot;: { # The item to be displayed in the details list.
                &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
                &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
              },
            },
          ],
        },
        &quot;listTemplateOverride&quot;: { # Override for the passes list view.
          &quot;firstRowOption&quot;: { # Specifies from a predefined set of options or from a reference to the field what will be displayed in the first row.
            &quot;fieldOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the first row.
              &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                { # Reference definition to use with field overrides.
                  &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                  &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                },
              ],
            },
            &quot;transitOption&quot;: &quot;A String&quot;,
          },
          &quot;secondRowOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the second row. This option is only displayed if there are not multiple user objects in a group. If there is a group, the second row will always display a field shared by all objects.
            &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
              { # Reference definition to use with field overrides.
                &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
              },
            ],
          },
          &quot;thirdRowOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the third row. This option is only displayed if there are not multiple user objects in a group. If there is a group, the third row will always display the number of objects in the group. Eg: &quot;3 passes&quot;
            &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
              { # Reference definition to use with field overrides.
                &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
              },
            ],
          },
        },
      },
      &quot;countryCode&quot;: &quot;A String&quot;, # Country code used to display the card&#x27;s country (when the user is not in that country), as well as to display localized content when content is not available in the user&#x27;s locale.
      &quot;details&quot;: &quot;A String&quot;, # The details of the offer.
      &quot;enableSmartTap&quot;: True or False, # Identifies whether this class supports Smart Tap. The `redemptionIssuers` and object level `smartTapRedemptionLevel` fields must also be set up correctly in order for a pass to support Smart Tap.
      &quot;finePrint&quot;: &quot;A String&quot;, # The fine print or terms of the offer, such as &quot;20% off any t-shirt at Adam&#x27;s Apparel.&quot;
      &quot;helpUri&quot;: { # The help link for the offer, such as `http://myownpersonaldomain.com/help`
        &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
        &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
        &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;uri&quot;: &quot;A String&quot;, # 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.
      },
      &quot;heroImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional banner image displayed on the front of the card. If none is present, nothing will be displayed. The image will display at 100% width.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;hexBackgroundColor&quot;: &quot;A String&quot;, # The background color for the card. If not set the dominant color of the hero image is used, and if no hero image is set, the dominant color of the logo is used. The format is #rrggbb where rrggbb is a hex RGB triplet, such as `#ffcc00`. You can also use the shorthand version of the RGB triplet which is #rgb, such as `#fc0`.
      &quot;homepageUri&quot;: { # The URI of your application&#x27;s home page. Populating the URI in this field results in the exact same behavior as populating an URI in linksModuleData (when an object is rendered, a link to the homepage is shown in what would usually be thought of as the linksModuleData section of the object).
        &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
        &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
        &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;uri&quot;: &quot;A String&quot;, # 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.
      },
      &quot;id&quot;: &quot;A String&quot;, # Required. 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, &#x27;.&#x27;, &#x27;_&#x27;, or &#x27;-&#x27;.
      &quot;imageModulesData&quot;: [ # Image module data. The maximum number of these fields displayed is 1 from object level and 1 for class object level.
        {
          &quot;id&quot;: &quot;A String&quot;, # The ID associated with an image module. This field is here to enable ease of management of image modules.
          &quot;mainImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A 100% width image.
            &quot;contentDescription&quot;: { # Description of the image used for accessibility.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
            &quot;sourceUri&quot;: { # The URI for the image.
              &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
              &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
                &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
                &quot;translatedValues&quot;: [ # Contains the translations for the string.
                  {
                    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                    &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                    &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                  },
                ],
              },
              &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
            },
          },
        },
      ],
      &quot;infoModuleData&quot;: { # Deprecated. Use textModulesData instead.
        &quot;labelValueRows&quot;: [ # A list of collections of labels and values. These will be displayed one after the other in a singular column.
          {
            &quot;columns&quot;: [ # A list of labels and values. These will be displayed in a singular column, one after the other, not in multiple columns, despite the field name.
              { # A pair of text strings to be displayed in the details view. Note we no longer display LabelValue/LabelValueRow as a table, instead a list of items.
                &quot;label&quot;: &quot;A String&quot;, # The label for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
                &quot;localizedLabel&quot;: { # Translated strings for the label. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
                  &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                    &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                    &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                  },
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
                  &quot;translatedValues&quot;: [ # Contains the translations for the string.
                    {
                      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                      &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                      &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                    },
                  ],
                },
                &quot;localizedValue&quot;: { # Translated strings for the value. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
                  &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                    &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                    &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                  },
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
                  &quot;translatedValues&quot;: [ # Contains the translations for the string.
                    {
                      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                      &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                      &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                    },
                  ],
                },
                &quot;value&quot;: &quot;A String&quot;, # The value for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
              },
            ],
          },
        ],
        &quot;showLastUpdateTime&quot;: True or False,
      },
      &quot;issuerName&quot;: &quot;A String&quot;, # Required. The issuer name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#offerClass&quot;`.
      &quot;linksModuleData&quot;: { # Links module data. If links module data is also defined on the object, both will be displayed.
        &quot;uris&quot;: [ # The list of URIs.
          {
            &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
            &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
            &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;uri&quot;: &quot;A String&quot;, # 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.
          },
        ],
      },
      &quot;localizedDetails&quot;: { # Translated strings for the details.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;localizedFinePrint&quot;: { # Translated strings for the fine_print.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;localizedIssuerName&quot;: { # Translated strings for the issuer_name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;localizedProvider&quot;: { # Translated strings for the provider. Recommended maximum length is 12 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;localizedShortTitle&quot;: { # Translated strings for the short title. Recommended maximum length is 20 characters.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;localizedTitle&quot;: { # Translated strings for the title. Recommended maximum length is 60 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;locations&quot;: [ # Note: This field is currently not supported to trigger geo notifications.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#latLongPoint&quot;`.
          &quot;latitude&quot;: 3.14, # The latitude specified as any value in the range of -90.0 through +90.0, both inclusive. Values outside these bounds will be rejected.
          &quot;longitude&quot;: 3.14, # The longitude specified in the range -180.0 through +180.0, both inclusive. Values outside these bounds will be rejected.
        },
      ],
      &quot;messages&quot;: [ # 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.
        { # A message that will be displayed with a Valuable
          &quot;body&quot;: &quot;A String&quot;, # The message body.
          &quot;displayInterval&quot;: { # The period of time that the message will be displayed to users. You can define both a `startTime` and `endTime` for each message. A message is displayed immediately after a Wallet Object is inserted unless a `startTime` is set. The message will appear in a list of messages indefinitely if `endTime` is not provided.
            &quot;end&quot;: { # End time of the interval. Offset is not required. If an offset is provided and `start` time is set, `start` must also include an offset.
              &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#timeInterval&quot;`.
            &quot;start&quot;: { # Start time of the interval. Offset is not required. If an offset is provided and `end` time is set, `end` must also include an offset.
              &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
            },
          },
          &quot;header&quot;: &quot;A String&quot;, # The message header.
          &quot;id&quot;: &quot;A String&quot;, # 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.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#walletObjectMessage&quot;`.
          &quot;localizedBody&quot;: { # Translated strings for the message body.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;localizedHeader&quot;: { # Translated strings for the message header.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;messageType&quot;: &quot;A String&quot;, # The type of the message. Currently, this can only be set for offers.
        },
      ],
      &quot;multipleDevicesAndHoldersAllowedStatus&quot;: &quot;A String&quot;, # Identifies whether multiple users and devices will save the same object referencing this class.
      &quot;provider&quot;: &quot;A String&quot;, # Required. The offer provider (either the aggregator name or merchant name). Recommended maximum length is 12 characters to ensure full string is displayed on smaller screens.
      &quot;redemptionChannel&quot;: &quot;A String&quot;, # Required. The redemption channels applicable to this offer.
      &quot;redemptionIssuers&quot;: [ # 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.
        &quot;A String&quot;,
      ],
      &quot;review&quot;: { # The review comments set by the platform when a class is marked `approved` or `rejected`.
        &quot;comments&quot;: &quot;A String&quot;,
      },
      &quot;reviewStatus&quot;: &quot;A String&quot;, # Required. The status of the class. This field can be set to `draft` or The status of the class. This field can be set to `draft` or `underReview` using the insert, patch, or update API calls. Once the review state is changed from `draft` it may not be changed back to `draft`. You should keep this field to `draft` when the class is under development. A `draft` class cannot be used to create any object. You should set this field to `underReview` when you believe the class is ready for use. The platform will automatically set this field to `approved` and it can be immediately used to create or migrate objects. When updating an already `approved` class you should keep setting this field to `underReview`.
      &quot;securityAnimation&quot;: { # Optional information about the security animation. If this is set a security animation will be rendered on pass details.
        &quot;animationType&quot;: &quot;A String&quot;, # Type of animation.
      },
      &quot;shortTitle&quot;: &quot;A String&quot;, # A shortened version of the title of the offer, such as &quot;20% off,&quot; shown to users as a quick reference to the offer contents. Recommended maximum length is 20 characters.
      &quot;textModulesData&quot;: [ # Text module data. If text module data is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from the object and 10 from the class.
        { # 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.
          &quot;body&quot;: &quot;A String&quot;, # 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.
          &quot;header&quot;: &quot;A String&quot;, # The header of the Text Module. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
          &quot;id&quot;: &quot;A String&quot;, # The ID associated with a text module. This field is here to enable ease of management of text modules.
          &quot;localizedBody&quot;: { # Translated strings for the body. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;localizedHeader&quot;: { # Translated strings for the header. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
        },
      ],
      &quot;title&quot;: &quot;A String&quot;, # Required. The title of the offer, such as &quot;20% off any t-shirt.&quot; Recommended maximum length is 60 characters to ensure full string is displayed on smaller screens.
      &quot;titleImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The title image of the offer. This image is displayed in both the details and list views of the app.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;version&quot;: &quot;A String&quot;, # Deprecated
      &quot;viewUnlockRequirement&quot;: &quot;A String&quot;, # View Unlock Requirement options for the offer.
      &quot;wideTitleImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The wide title image of the offer. When provided, this will be used in place of the title image in the top left of the card view.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;wordMark&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Deprecated.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
    },
    &quot;disableExpirationNotification&quot;: True or False, # Indicates if notifications should explicitly be suppressed. If this field is set to true, regardless of the `messages` field, expiration notifications to the user will be suppressed. By default, this field is set to false. Currently, this can only be set for offers.
    &quot;groupingInfo&quot;: { # Information that controls how passes are grouped together.
      &quot;groupingId&quot;: &quot;A String&quot;, # Optional grouping ID for grouping the passes with the same ID visually together. Grouping with different types of passes is allowed.
      &quot;sortIndex&quot;: 42, # Optional index for sorting the passes when they are grouped with other passes. Passes with lower sort index are shown before passes with higher sort index. If unspecified, the value is assumed to be INT_MAX. For two passes with the same sort index, the sorting behavior is undefined.
    },
    &quot;hasLinkedDevice&quot;: True or False, # Whether this object is currently linked to a single device. This field is set by the platform when a user saves the object, linking it to their device. Intended for use by select partners. Contact support for additional information.
    &quot;hasUsers&quot;: True or False, # Indicates if the object has users. This field is set by the platform.
    &quot;heroImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional banner image displayed on the front of the card. If none is present, hero image of the class, if present, will be displayed. If hero image of the class is also not present, nothing will be displayed.
      &quot;contentDescription&quot;: { # Description of the image used for accessibility.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
      &quot;sourceUri&quot;: { # The URI for the image.
        &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
        &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
      },
    },
    &quot;id&quot;: &quot;A String&quot;, # Required. The unique identifier for an object. This ID must be unique across all objects 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. The unique identifier should only include alphanumeric characters, &#x27;.&#x27;, &#x27;_&#x27;, or &#x27;-&#x27;.
    &quot;imageModulesData&quot;: [ # Image module data. The maximum number of these fields displayed is 1 from object level and 1 for class object level.
      {
        &quot;id&quot;: &quot;A String&quot;, # The ID associated with an image module. This field is here to enable ease of management of image modules.
        &quot;mainImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A 100% width image.
          &quot;contentDescription&quot;: { # Description of the image used for accessibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
          &quot;sourceUri&quot;: { # The URI for the image.
            &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
            &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
          },
        },
      },
    ],
    &quot;infoModuleData&quot;: { # Deprecated. Use textModulesData instead.
      &quot;labelValueRows&quot;: [ # A list of collections of labels and values. These will be displayed one after the other in a singular column.
        {
          &quot;columns&quot;: [ # A list of labels and values. These will be displayed in a singular column, one after the other, not in multiple columns, despite the field name.
            { # A pair of text strings to be displayed in the details view. Note we no longer display LabelValue/LabelValueRow as a table, instead a list of items.
              &quot;label&quot;: &quot;A String&quot;, # The label for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
              &quot;localizedLabel&quot;: { # Translated strings for the label. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
                &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
                &quot;translatedValues&quot;: [ # Contains the translations for the string.
                  {
                    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                    &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                    &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                  },
                ],
              },
              &quot;localizedValue&quot;: { # Translated strings for the value. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
                &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
                &quot;translatedValues&quot;: [ # Contains the translations for the string.
                  {
                    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                    &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                    &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                  },
                ],
              },
              &quot;value&quot;: &quot;A String&quot;, # The value for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
            },
          ],
        },
      ],
      &quot;showLastUpdateTime&quot;: True or False,
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#offerObject&quot;`.
    &quot;linksModuleData&quot;: { # Links module data. If links module data is also defined on the class, both will be displayed.
      &quot;uris&quot;: [ # The list of URIs.
        {
          &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
          &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
          &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # 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.
        },
      ],
    },
    &quot;locations&quot;: [ # Note: This field is currently not supported to trigger geo notifications.
      {
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#latLongPoint&quot;`.
        &quot;latitude&quot;: 3.14, # The latitude specified as any value in the range of -90.0 through +90.0, both inclusive. Values outside these bounds will be rejected.
        &quot;longitude&quot;: 3.14, # The longitude specified in the range -180.0 through +180.0, both inclusive. Values outside these bounds will be rejected.
      },
    ],
    &quot;messages&quot;: [ # 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.
      { # A message that will be displayed with a Valuable
        &quot;body&quot;: &quot;A String&quot;, # The message body.
        &quot;displayInterval&quot;: { # The period of time that the message will be displayed to users. You can define both a `startTime` and `endTime` for each message. A message is displayed immediately after a Wallet Object is inserted unless a `startTime` is set. The message will appear in a list of messages indefinitely if `endTime` is not provided.
          &quot;end&quot;: { # End time of the interval. Offset is not required. If an offset is provided and `start` time is set, `start` must also include an offset.
            &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#timeInterval&quot;`.
          &quot;start&quot;: { # Start time of the interval. Offset is not required. If an offset is provided and `end` time is set, `end` must also include an offset.
            &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
          },
        },
        &quot;header&quot;: &quot;A String&quot;, # The message header.
        &quot;id&quot;: &quot;A String&quot;, # 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.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#walletObjectMessage&quot;`.
        &quot;localizedBody&quot;: { # Translated strings for the message body.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;localizedHeader&quot;: { # Translated strings for the message header.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;messageType&quot;: &quot;A String&quot;, # The type of the message. Currently, this can only be set for offers.
      },
    ],
    &quot;passConstraints&quot;: { # Container for any constraints that may be placed on passes. # Pass constraints for the object. Includes limiting NFC and screenshot behaviors.
      &quot;nfcConstraint&quot;: [ # The NFC constraints for the pass.
        &quot;A String&quot;,
      ],
      &quot;screenshotEligibility&quot;: &quot;A String&quot;, # The screenshot eligibility for the pass.
    },
    &quot;rotatingBarcode&quot;: { # The rotating barcode type and value.
      &quot;alternateText&quot;: &quot;A String&quot;, # An optional text that will override the default text that shows under the barcode. This field is intended for a human readable equivalent of the barcode value, used when the barcode cannot be scanned.
      &quot;initialRotatingBarcodeValues&quot;: { # A payload containing many barcode values and start date/time. # Input only. NOTE: This feature is only available for the transit vertical. Optional set of initial rotating barcode values. This allows a small subset of barcodes to be included with the object. Further rotating barcode values must be uploaded with the UploadRotatingBarcodeValues endpoint.
        &quot;periodMillis&quot;: &quot;A String&quot;, # Required. The amount of time each barcode is valid for.
        &quot;startDateTime&quot;: &quot;A String&quot;, # Required. The date/time the first barcode is valid from. Barcodes will be rotated through using period_millis defined on the object&#x27;s RotatingBarcodeValueInfo. This is an ISO 8601 extended format date/time, with an offset. 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 event were 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.
        &quot;values&quot;: [ # Required. The values to encode in the barcode. At least one value is required.
          &quot;A String&quot;,
        ],
      },
      &quot;renderEncoding&quot;: &quot;A String&quot;, # The render encoding for the barcode. When specified, barcode is rendered in the given encoding. Otherwise best known encoding is chosen by Google.
      &quot;showCodeText&quot;: { # Optional text that will be shown when the barcode is hidden behind a click action. This happens in cases where a pass has Smart Tap enabled. If not specified, a default is chosen by Google.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;totpDetails&quot;: { # Configuration for the time-based OTP substitutions. See https://tools.ietf.org/html/rfc6238 # Details used to evaluate the {totp_value_n} substitutions.
        &quot;algorithm&quot;: &quot;A String&quot;, # The TOTP algorithm used to generate the OTP.
        &quot;parameters&quot;: [ # The TOTP parameters for each of the {totp_value_*} substitutions. The TotpParameters at index n is used for the {totp_value_n} substitution.
          { # Configuration for the key and value length. See https://www.rfc-editor.org/rfc/rfc4226#section-5.3
            &quot;key&quot;: &quot;A String&quot;, # The secret key used for the TOTP value generation, encoded as a Base16 string.
            &quot;valueLength&quot;: 42, # The length of the TOTP value in decimal digits.
          },
        ],
        &quot;periodMillis&quot;: &quot;A String&quot;, # The time interval used for the TOTP value generation, in milliseconds.
      },
      &quot;type&quot;: &quot;A String&quot;, # The type of this barcode.
      &quot;valuePattern&quot;: &quot;A String&quot;, # String encoded barcode value. This string supports the following substitutions: * {totp_value_n}: Replaced with the TOTP value (see TotpDetails.parameters). * {totp_timestamp_millis}: Replaced with the timestamp (millis since epoch) at which the barcode was generated. * {totp_timestamp_seconds}: Replaced with the timestamp (seconds since epoch) at which the barcode was generated.
    },
    &quot;smartTapRedemptionValue&quot;: &quot;A String&quot;, # The value that will be transmitted to a Smart Tap certified terminal over NFC for this object. The class level fields `enableSmartTap` and `redemptionIssuers` must also be set up correctly in order for the pass to support Smart Tap. Only ASCII characters are supported.
    &quot;state&quot;: &quot;A String&quot;, # Required. The state of the object. This field is used to determine how an object is displayed in the app. For example, an `inactive` object is moved to the &quot;Expired passes&quot; section.
    &quot;textModulesData&quot;: [ # Text module data. If text module data is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from the object and 10 from the class.
      { # 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.
        &quot;body&quot;: &quot;A String&quot;, # 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.
        &quot;header&quot;: &quot;A String&quot;, # The header of the Text Module. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
        &quot;id&quot;: &quot;A String&quot;, # The ID associated with a text module. This field is here to enable ease of management of text modules.
        &quot;localizedBody&quot;: { # Translated strings for the body. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;localizedHeader&quot;: { # Translated strings for the header. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
      },
    ],
    &quot;validTimeInterval&quot;: { # The time period this object will be `active` and object can be used. An object&#x27;s state will be changed to `expired` when this time period has passed.
      &quot;end&quot;: { # End time of the interval. Offset is not required. If an offset is provided and `start` time is set, `start` must also include an offset.
        &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#timeInterval&quot;`.
      &quot;start&quot;: { # Start time of the interval. Offset is not required. If an offset is provided and `end` time is set, `end` must also include an offset.
        &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
      },
    },
    &quot;version&quot;: &quot;A String&quot;, # Deprecated
  },
}</pre>
</div>

<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="get">get(resourceId, x__xgafv=None)</code>
  <pre>Returns the offer object with the given object ID.

Args:
  resourceId: string, The unique identifier for an object. This ID must be unique across all objects 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, &#x27;.&#x27;, &#x27;_&#x27;, or &#x27;-&#x27;. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
  &quot;appLinkData&quot;: { # Optional information about the partner app link.
    &quot;androidAppLinkInfo&quot;: { # Optional information about the partner app link. If included, the app link link module will be rendered on the valuable details on the android client.
      &quot;appLogoImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional image to be displayed in the App Link Module
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;appTarget&quot;: { # Url to follow when opening the App Link Module on clients. It will be used by partners to open their webpage or deeplink into their app.
        &quot;targetUri&quot;: {
          &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
          &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
          &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # 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.
        },
      },
      &quot;description&quot;: { # String to be displayed in the description of the App Link Module Required
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;title&quot;: { # String to be displayed in the title of the App Link Module Required
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
    },
    &quot;iosAppLinkInfo&quot;: { # Optional information about the partner app link. If included, the app link link module will be rendered on the valuable details on the ios client.
      &quot;appLogoImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional image to be displayed in the App Link Module
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;appTarget&quot;: { # Url to follow when opening the App Link Module on clients. It will be used by partners to open their webpage or deeplink into their app.
        &quot;targetUri&quot;: {
          &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
          &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
          &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # 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.
        },
      },
      &quot;description&quot;: { # String to be displayed in the description of the App Link Module Required
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;title&quot;: { # String to be displayed in the title of the App Link Module Required
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
    },
    &quot;webAppLinkInfo&quot;: { # Optional information about the partner app link. If included, the app link link module will be rendered on the valuable details on the web client.
      &quot;appLogoImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional image to be displayed in the App Link Module
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;appTarget&quot;: { # Url to follow when opening the App Link Module on clients. It will be used by partners to open their webpage or deeplink into their app.
        &quot;targetUri&quot;: {
          &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
          &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
          &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # 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.
        },
      },
      &quot;description&quot;: { # String to be displayed in the description of the App Link Module Required
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;title&quot;: { # String to be displayed in the title of the App Link Module Required
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
    },
  },
  &quot;barcode&quot;: { # The barcode type and value.
    &quot;alternateText&quot;: &quot;A String&quot;, # An optional text that will override the default text that shows under the barcode. This field is intended for a human readable equivalent of the barcode value, used when the barcode cannot be scanned.
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#barcode&quot;`.
    &quot;renderEncoding&quot;: &quot;A String&quot;, # The render encoding for the barcode. When specified, barcode is rendered in the given encoding. Otherwise best known encoding is chosen by Google.
    &quot;showCodeText&quot;: { # Optional text that will be shown when the barcode is hidden behind a click action. This happens in cases where a pass has Smart Tap enabled. If not specified, a default is chosen by Google.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;type&quot;: &quot;A String&quot;, # The type of barcode.
    &quot;value&quot;: &quot;A String&quot;, # The value encoded in the barcode.
  },
  &quot;classId&quot;: &quot;A String&quot;, # Required. The class associated with this object. The class must be of the same type as this object, must already exist, and must be approved. Class IDs should follow the format issuer ID.identifier where the former is issued by Google and latter is chosen by you.
  &quot;classReference&quot;: { # A copy of the inherited fields of the parent class. These fields are retrieved during a GET.
    &quot;allowMultipleUsersPerObject&quot;: True or False, # Deprecated. Use `multipleDevicesAndHoldersAllowedStatus` instead.
    &quot;callbackOptions&quot;: { # Callback options to be used to call the issuer back for every save/delete of an object for this class by the end-user. All objects of this class are eligible for the callback.
      &quot;updateRequestUrl&quot;: &quot;A String&quot;, # 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:Google-Valuables. Deprecated.
      &quot;url&quot;: &quot;A String&quot;, # 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:Google-Valuables.
    },
    &quot;classTemplateInfo&quot;: { # Template information about how the class should be displayed. If unset, Google will fallback to a default set of fields to display.
      &quot;cardBarcodeSectionDetails&quot;: { # Specifies extra information to be displayed above and below the barcode.
        &quot;firstBottomDetail&quot;: { # Optional information to display below the barcode.
          &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
            &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
              { # Reference definition to use with field overrides.
                &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
              },
            ],
          },
        },
        &quot;firstTopDetail&quot;: { # Optional information to display above the barcode. If `secondTopDetail` is defined, this will be displayed to the start side of this detail section.
          &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
            &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
              { # Reference definition to use with field overrides.
                &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
              },
            ],
          },
        },
        &quot;secondTopDetail&quot;: { # Optional second piece of information to display above the barcode. If `firstTopDetail` is defined, this will be displayed to the end side of this detail section.
          &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
            &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
              { # Reference definition to use with field overrides.
                &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
              },
            ],
          },
        },
      },
      &quot;cardTemplateOverride&quot;: { # Override for the card view.
        &quot;cardRowTemplateInfos&quot;: [ # Template information for rows in the card view. At most three rows are allowed to be specified.
          {
            &quot;oneItem&quot;: { # Template for a row containing one item. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
              &quot;item&quot;: { # The item to be displayed in the row. This item will be automatically centered.
                &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
                &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
              },
            },
            &quot;threeItems&quot;: { # Template for a row containing three items. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
              &quot;endItem&quot;: { # The item to be displayed at the end of the row. This item will be aligned to the right.
                &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
                &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
              },
              &quot;middleItem&quot;: { # The item to be displayed in the middle of the row. This item will be centered between the start and end items.
                &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
                &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
              },
              &quot;startItem&quot;: { # The item to be displayed at the start of the row. This item will be aligned to the left.
                &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
                &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
              },
            },
            &quot;twoItems&quot;: { # Template for a row containing two items. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
              &quot;endItem&quot;: { # The item to be displayed at the end of the row. This item will be aligned to the right.
                &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
                &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
              },
              &quot;startItem&quot;: { # The item to be displayed at the start of the row. This item will be aligned to the left.
                &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
                &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
              },
            },
          },
        ],
      },
      &quot;detailsTemplateOverride&quot;: { # Override for the details view (beneath the card view).
        &quot;detailsItemInfos&quot;: [ # Information for the &quot;nth&quot; item displayed in the details list.
          {
            &quot;item&quot;: { # The item to be displayed in the details list.
              &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
              &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
              &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
            },
          },
        ],
      },
      &quot;listTemplateOverride&quot;: { # Override for the passes list view.
        &quot;firstRowOption&quot;: { # Specifies from a predefined set of options or from a reference to the field what will be displayed in the first row.
          &quot;fieldOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the first row.
            &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
              { # Reference definition to use with field overrides.
                &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
              },
            ],
          },
          &quot;transitOption&quot;: &quot;A String&quot;,
        },
        &quot;secondRowOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the second row. This option is only displayed if there are not multiple user objects in a group. If there is a group, the second row will always display a field shared by all objects.
          &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
            { # Reference definition to use with field overrides.
              &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
              &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
            },
          ],
        },
        &quot;thirdRowOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the third row. This option is only displayed if there are not multiple user objects in a group. If there is a group, the third row will always display the number of objects in the group. Eg: &quot;3 passes&quot;
          &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
            { # Reference definition to use with field overrides.
              &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
              &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
            },
          ],
        },
      },
    },
    &quot;countryCode&quot;: &quot;A String&quot;, # Country code used to display the card&#x27;s country (when the user is not in that country), as well as to display localized content when content is not available in the user&#x27;s locale.
    &quot;details&quot;: &quot;A String&quot;, # The details of the offer.
    &quot;enableSmartTap&quot;: True or False, # Identifies whether this class supports Smart Tap. The `redemptionIssuers` and object level `smartTapRedemptionLevel` fields must also be set up correctly in order for a pass to support Smart Tap.
    &quot;finePrint&quot;: &quot;A String&quot;, # The fine print or terms of the offer, such as &quot;20% off any t-shirt at Adam&#x27;s Apparel.&quot;
    &quot;helpUri&quot;: { # The help link for the offer, such as `http://myownpersonaldomain.com/help`
      &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
      &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;uri&quot;: &quot;A String&quot;, # 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.
    },
    &quot;heroImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional banner image displayed on the front of the card. If none is present, nothing will be displayed. The image will display at 100% width.
      &quot;contentDescription&quot;: { # Description of the image used for accessibility.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
      &quot;sourceUri&quot;: { # The URI for the image.
        &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
        &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
      },
    },
    &quot;hexBackgroundColor&quot;: &quot;A String&quot;, # The background color for the card. If not set the dominant color of the hero image is used, and if no hero image is set, the dominant color of the logo is used. The format is #rrggbb where rrggbb is a hex RGB triplet, such as `#ffcc00`. You can also use the shorthand version of the RGB triplet which is #rgb, such as `#fc0`.
    &quot;homepageUri&quot;: { # The URI of your application&#x27;s home page. Populating the URI in this field results in the exact same behavior as populating an URI in linksModuleData (when an object is rendered, a link to the homepage is shown in what would usually be thought of as the linksModuleData section of the object).
      &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
      &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;uri&quot;: &quot;A String&quot;, # 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.
    },
    &quot;id&quot;: &quot;A String&quot;, # Required. 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, &#x27;.&#x27;, &#x27;_&#x27;, or &#x27;-&#x27;.
    &quot;imageModulesData&quot;: [ # Image module data. The maximum number of these fields displayed is 1 from object level and 1 for class object level.
      {
        &quot;id&quot;: &quot;A String&quot;, # The ID associated with an image module. This field is here to enable ease of management of image modules.
        &quot;mainImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A 100% width image.
          &quot;contentDescription&quot;: { # Description of the image used for accessibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
          &quot;sourceUri&quot;: { # The URI for the image.
            &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
            &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
          },
        },
      },
    ],
    &quot;infoModuleData&quot;: { # Deprecated. Use textModulesData instead.
      &quot;labelValueRows&quot;: [ # A list of collections of labels and values. These will be displayed one after the other in a singular column.
        {
          &quot;columns&quot;: [ # A list of labels and values. These will be displayed in a singular column, one after the other, not in multiple columns, despite the field name.
            { # A pair of text strings to be displayed in the details view. Note we no longer display LabelValue/LabelValueRow as a table, instead a list of items.
              &quot;label&quot;: &quot;A String&quot;, # The label for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
              &quot;localizedLabel&quot;: { # Translated strings for the label. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
                &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
                &quot;translatedValues&quot;: [ # Contains the translations for the string.
                  {
                    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                    &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                    &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                  },
                ],
              },
              &quot;localizedValue&quot;: { # Translated strings for the value. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
                &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
                &quot;translatedValues&quot;: [ # Contains the translations for the string.
                  {
                    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                    &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                    &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                  },
                ],
              },
              &quot;value&quot;: &quot;A String&quot;, # The value for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
            },
          ],
        },
      ],
      &quot;showLastUpdateTime&quot;: True or False,
    },
    &quot;issuerName&quot;: &quot;A String&quot;, # Required. The issuer name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens.
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#offerClass&quot;`.
    &quot;linksModuleData&quot;: { # Links module data. If links module data is also defined on the object, both will be displayed.
      &quot;uris&quot;: [ # The list of URIs.
        {
          &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
          &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
          &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # 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.
        },
      ],
    },
    &quot;localizedDetails&quot;: { # Translated strings for the details.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;localizedFinePrint&quot;: { # Translated strings for the fine_print.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;localizedIssuerName&quot;: { # Translated strings for the issuer_name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;localizedProvider&quot;: { # Translated strings for the provider. Recommended maximum length is 12 characters to ensure full string is displayed on smaller screens.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;localizedShortTitle&quot;: { # Translated strings for the short title. Recommended maximum length is 20 characters.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;localizedTitle&quot;: { # Translated strings for the title. Recommended maximum length is 60 characters to ensure full string is displayed on smaller screens.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;locations&quot;: [ # Note: This field is currently not supported to trigger geo notifications.
      {
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#latLongPoint&quot;`.
        &quot;latitude&quot;: 3.14, # The latitude specified as any value in the range of -90.0 through +90.0, both inclusive. Values outside these bounds will be rejected.
        &quot;longitude&quot;: 3.14, # The longitude specified in the range -180.0 through +180.0, both inclusive. Values outside these bounds will be rejected.
      },
    ],
    &quot;messages&quot;: [ # 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.
      { # A message that will be displayed with a Valuable
        &quot;body&quot;: &quot;A String&quot;, # The message body.
        &quot;displayInterval&quot;: { # The period of time that the message will be displayed to users. You can define both a `startTime` and `endTime` for each message. A message is displayed immediately after a Wallet Object is inserted unless a `startTime` is set. The message will appear in a list of messages indefinitely if `endTime` is not provided.
          &quot;end&quot;: { # End time of the interval. Offset is not required. If an offset is provided and `start` time is set, `start` must also include an offset.
            &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#timeInterval&quot;`.
          &quot;start&quot;: { # Start time of the interval. Offset is not required. If an offset is provided and `end` time is set, `end` must also include an offset.
            &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
          },
        },
        &quot;header&quot;: &quot;A String&quot;, # The message header.
        &quot;id&quot;: &quot;A String&quot;, # 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.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#walletObjectMessage&quot;`.
        &quot;localizedBody&quot;: { # Translated strings for the message body.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;localizedHeader&quot;: { # Translated strings for the message header.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;messageType&quot;: &quot;A String&quot;, # The type of the message. Currently, this can only be set for offers.
      },
    ],
    &quot;multipleDevicesAndHoldersAllowedStatus&quot;: &quot;A String&quot;, # Identifies whether multiple users and devices will save the same object referencing this class.
    &quot;provider&quot;: &quot;A String&quot;, # Required. The offer provider (either the aggregator name or merchant name). Recommended maximum length is 12 characters to ensure full string is displayed on smaller screens.
    &quot;redemptionChannel&quot;: &quot;A String&quot;, # Required. The redemption channels applicable to this offer.
    &quot;redemptionIssuers&quot;: [ # 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.
      &quot;A String&quot;,
    ],
    &quot;review&quot;: { # The review comments set by the platform when a class is marked `approved` or `rejected`.
      &quot;comments&quot;: &quot;A String&quot;,
    },
    &quot;reviewStatus&quot;: &quot;A String&quot;, # Required. The status of the class. This field can be set to `draft` or The status of the class. This field can be set to `draft` or `underReview` using the insert, patch, or update API calls. Once the review state is changed from `draft` it may not be changed back to `draft`. You should keep this field to `draft` when the class is under development. A `draft` class cannot be used to create any object. You should set this field to `underReview` when you believe the class is ready for use. The platform will automatically set this field to `approved` and it can be immediately used to create or migrate objects. When updating an already `approved` class you should keep setting this field to `underReview`.
    &quot;securityAnimation&quot;: { # Optional information about the security animation. If this is set a security animation will be rendered on pass details.
      &quot;animationType&quot;: &quot;A String&quot;, # Type of animation.
    },
    &quot;shortTitle&quot;: &quot;A String&quot;, # A shortened version of the title of the offer, such as &quot;20% off,&quot; shown to users as a quick reference to the offer contents. Recommended maximum length is 20 characters.
    &quot;textModulesData&quot;: [ # Text module data. If text module data is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from the object and 10 from the class.
      { # 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.
        &quot;body&quot;: &quot;A String&quot;, # 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.
        &quot;header&quot;: &quot;A String&quot;, # The header of the Text Module. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
        &quot;id&quot;: &quot;A String&quot;, # The ID associated with a text module. This field is here to enable ease of management of text modules.
        &quot;localizedBody&quot;: { # Translated strings for the body. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;localizedHeader&quot;: { # Translated strings for the header. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
      },
    ],
    &quot;title&quot;: &quot;A String&quot;, # Required. The title of the offer, such as &quot;20% off any t-shirt.&quot; Recommended maximum length is 60 characters to ensure full string is displayed on smaller screens.
    &quot;titleImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The title image of the offer. This image is displayed in both the details and list views of the app.
      &quot;contentDescription&quot;: { # Description of the image used for accessibility.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
      &quot;sourceUri&quot;: { # The URI for the image.
        &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
        &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
      },
    },
    &quot;version&quot;: &quot;A String&quot;, # Deprecated
    &quot;viewUnlockRequirement&quot;: &quot;A String&quot;, # View Unlock Requirement options for the offer.
    &quot;wideTitleImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The wide title image of the offer. When provided, this will be used in place of the title image in the top left of the card view.
      &quot;contentDescription&quot;: { # Description of the image used for accessibility.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
      &quot;sourceUri&quot;: { # The URI for the image.
        &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
        &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
      },
    },
    &quot;wordMark&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Deprecated.
      &quot;contentDescription&quot;: { # Description of the image used for accessibility.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
      &quot;sourceUri&quot;: { # The URI for the image.
        &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
        &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
      },
    },
  },
  &quot;disableExpirationNotification&quot;: True or False, # Indicates if notifications should explicitly be suppressed. If this field is set to true, regardless of the `messages` field, expiration notifications to the user will be suppressed. By default, this field is set to false. Currently, this can only be set for offers.
  &quot;groupingInfo&quot;: { # Information that controls how passes are grouped together.
    &quot;groupingId&quot;: &quot;A String&quot;, # Optional grouping ID for grouping the passes with the same ID visually together. Grouping with different types of passes is allowed.
    &quot;sortIndex&quot;: 42, # Optional index for sorting the passes when they are grouped with other passes. Passes with lower sort index are shown before passes with higher sort index. If unspecified, the value is assumed to be INT_MAX. For two passes with the same sort index, the sorting behavior is undefined.
  },
  &quot;hasLinkedDevice&quot;: True or False, # Whether this object is currently linked to a single device. This field is set by the platform when a user saves the object, linking it to their device. Intended for use by select partners. Contact support for additional information.
  &quot;hasUsers&quot;: True or False, # Indicates if the object has users. This field is set by the platform.
  &quot;heroImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional banner image displayed on the front of the card. If none is present, hero image of the class, if present, will be displayed. If hero image of the class is also not present, nothing will be displayed.
    &quot;contentDescription&quot;: { # Description of the image used for accessibility.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
    &quot;sourceUri&quot;: { # The URI for the image.
      &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
      &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
    },
  },
  &quot;id&quot;: &quot;A String&quot;, # Required. The unique identifier for an object. This ID must be unique across all objects 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. The unique identifier should only include alphanumeric characters, &#x27;.&#x27;, &#x27;_&#x27;, or &#x27;-&#x27;.
  &quot;imageModulesData&quot;: [ # Image module data. The maximum number of these fields displayed is 1 from object level and 1 for class object level.
    {
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with an image module. This field is here to enable ease of management of image modules.
      &quot;mainImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A 100% width image.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
    },
  ],
  &quot;infoModuleData&quot;: { # Deprecated. Use textModulesData instead.
    &quot;labelValueRows&quot;: [ # A list of collections of labels and values. These will be displayed one after the other in a singular column.
      {
        &quot;columns&quot;: [ # A list of labels and values. These will be displayed in a singular column, one after the other, not in multiple columns, despite the field name.
          { # A pair of text strings to be displayed in the details view. Note we no longer display LabelValue/LabelValueRow as a table, instead a list of items.
            &quot;label&quot;: &quot;A String&quot;, # The label for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
            &quot;localizedLabel&quot;: { # Translated strings for the label. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;localizedValue&quot;: { # Translated strings for the value. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;value&quot;: &quot;A String&quot;, # The value for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
          },
        ],
      },
    ],
    &quot;showLastUpdateTime&quot;: True or False,
  },
  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#offerObject&quot;`.
  &quot;linksModuleData&quot;: { # Links module data. If links module data is also defined on the class, both will be displayed.
    &quot;uris&quot;: [ # The list of URIs.
      {
        &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
        &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
        &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;uri&quot;: &quot;A String&quot;, # 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.
      },
    ],
  },
  &quot;locations&quot;: [ # Note: This field is currently not supported to trigger geo notifications.
    {
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#latLongPoint&quot;`.
      &quot;latitude&quot;: 3.14, # The latitude specified as any value in the range of -90.0 through +90.0, both inclusive. Values outside these bounds will be rejected.
      &quot;longitude&quot;: 3.14, # The longitude specified in the range -180.0 through +180.0, both inclusive. Values outside these bounds will be rejected.
    },
  ],
  &quot;messages&quot;: [ # 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.
    { # A message that will be displayed with a Valuable
      &quot;body&quot;: &quot;A String&quot;, # The message body.
      &quot;displayInterval&quot;: { # The period of time that the message will be displayed to users. You can define both a `startTime` and `endTime` for each message. A message is displayed immediately after a Wallet Object is inserted unless a `startTime` is set. The message will appear in a list of messages indefinitely if `endTime` is not provided.
        &quot;end&quot;: { # End time of the interval. Offset is not required. If an offset is provided and `start` time is set, `start` must also include an offset.
          &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#timeInterval&quot;`.
        &quot;start&quot;: { # Start time of the interval. Offset is not required. If an offset is provided and `end` time is set, `end` must also include an offset.
          &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
        },
      },
      &quot;header&quot;: &quot;A String&quot;, # The message header.
      &quot;id&quot;: &quot;A String&quot;, # 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.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#walletObjectMessage&quot;`.
      &quot;localizedBody&quot;: { # Translated strings for the message body.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;localizedHeader&quot;: { # Translated strings for the message header.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;messageType&quot;: &quot;A String&quot;, # The type of the message. Currently, this can only be set for offers.
    },
  ],
  &quot;passConstraints&quot;: { # Container for any constraints that may be placed on passes. # Pass constraints for the object. Includes limiting NFC and screenshot behaviors.
    &quot;nfcConstraint&quot;: [ # The NFC constraints for the pass.
      &quot;A String&quot;,
    ],
    &quot;screenshotEligibility&quot;: &quot;A String&quot;, # The screenshot eligibility for the pass.
  },
  &quot;rotatingBarcode&quot;: { # The rotating barcode type and value.
    &quot;alternateText&quot;: &quot;A String&quot;, # An optional text that will override the default text that shows under the barcode. This field is intended for a human readable equivalent of the barcode value, used when the barcode cannot be scanned.
    &quot;initialRotatingBarcodeValues&quot;: { # A payload containing many barcode values and start date/time. # Input only. NOTE: This feature is only available for the transit vertical. Optional set of initial rotating barcode values. This allows a small subset of barcodes to be included with the object. Further rotating barcode values must be uploaded with the UploadRotatingBarcodeValues endpoint.
      &quot;periodMillis&quot;: &quot;A String&quot;, # Required. The amount of time each barcode is valid for.
      &quot;startDateTime&quot;: &quot;A String&quot;, # Required. The date/time the first barcode is valid from. Barcodes will be rotated through using period_millis defined on the object&#x27;s RotatingBarcodeValueInfo. This is an ISO 8601 extended format date/time, with an offset. 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 event were 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.
      &quot;values&quot;: [ # Required. The values to encode in the barcode. At least one value is required.
        &quot;A String&quot;,
      ],
    },
    &quot;renderEncoding&quot;: &quot;A String&quot;, # The render encoding for the barcode. When specified, barcode is rendered in the given encoding. Otherwise best known encoding is chosen by Google.
    &quot;showCodeText&quot;: { # Optional text that will be shown when the barcode is hidden behind a click action. This happens in cases where a pass has Smart Tap enabled. If not specified, a default is chosen by Google.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;totpDetails&quot;: { # Configuration for the time-based OTP substitutions. See https://tools.ietf.org/html/rfc6238 # Details used to evaluate the {totp_value_n} substitutions.
      &quot;algorithm&quot;: &quot;A String&quot;, # The TOTP algorithm used to generate the OTP.
      &quot;parameters&quot;: [ # The TOTP parameters for each of the {totp_value_*} substitutions. The TotpParameters at index n is used for the {totp_value_n} substitution.
        { # Configuration for the key and value length. See https://www.rfc-editor.org/rfc/rfc4226#section-5.3
          &quot;key&quot;: &quot;A String&quot;, # The secret key used for the TOTP value generation, encoded as a Base16 string.
          &quot;valueLength&quot;: 42, # The length of the TOTP value in decimal digits.
        },
      ],
      &quot;periodMillis&quot;: &quot;A String&quot;, # The time interval used for the TOTP value generation, in milliseconds.
    },
    &quot;type&quot;: &quot;A String&quot;, # The type of this barcode.
    &quot;valuePattern&quot;: &quot;A String&quot;, # String encoded barcode value. This string supports the following substitutions: * {totp_value_n}: Replaced with the TOTP value (see TotpDetails.parameters). * {totp_timestamp_millis}: Replaced with the timestamp (millis since epoch) at which the barcode was generated. * {totp_timestamp_seconds}: Replaced with the timestamp (seconds since epoch) at which the barcode was generated.
  },
  &quot;smartTapRedemptionValue&quot;: &quot;A String&quot;, # The value that will be transmitted to a Smart Tap certified terminal over NFC for this object. The class level fields `enableSmartTap` and `redemptionIssuers` must also be set up correctly in order for the pass to support Smart Tap. Only ASCII characters are supported.
  &quot;state&quot;: &quot;A String&quot;, # Required. The state of the object. This field is used to determine how an object is displayed in the app. For example, an `inactive` object is moved to the &quot;Expired passes&quot; section.
  &quot;textModulesData&quot;: [ # Text module data. If text module data is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from the object and 10 from the class.
    { # 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.
      &quot;body&quot;: &quot;A String&quot;, # 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.
      &quot;header&quot;: &quot;A String&quot;, # The header of the Text Module. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with a text module. This field is here to enable ease of management of text modules.
      &quot;localizedBody&quot;: { # Translated strings for the body. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;localizedHeader&quot;: { # Translated strings for the header. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
    },
  ],
  &quot;validTimeInterval&quot;: { # The time period this object will be `active` and object can be used. An object&#x27;s state will be changed to `expired` when this time period has passed.
    &quot;end&quot;: { # End time of the interval. Offset is not required. If an offset is provided and `start` time is set, `start` must also include an offset.
      &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#timeInterval&quot;`.
    &quot;start&quot;: { # Start time of the interval. Offset is not required. If an offset is provided and `end` time is set, `end` must also include an offset.
      &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
    },
  },
  &quot;version&quot;: &quot;A String&quot;, # Deprecated
}</pre>
</div>

<div class="method">
    <code class="details" id="insert">insert(body=None, x__xgafv=None)</code>
  <pre>Inserts an offer object with the given ID and properties.

Args:
  body: object, The request body.
    The object takes the form of:

{
  &quot;appLinkData&quot;: { # Optional information about the partner app link.
    &quot;androidAppLinkInfo&quot;: { # Optional information about the partner app link. If included, the app link link module will be rendered on the valuable details on the android client.
      &quot;appLogoImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional image to be displayed in the App Link Module
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;appTarget&quot;: { # Url to follow when opening the App Link Module on clients. It will be used by partners to open their webpage or deeplink into their app.
        &quot;targetUri&quot;: {
          &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
          &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
          &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # 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.
        },
      },
      &quot;description&quot;: { # String to be displayed in the description of the App Link Module Required
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;title&quot;: { # String to be displayed in the title of the App Link Module Required
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
    },
    &quot;iosAppLinkInfo&quot;: { # Optional information about the partner app link. If included, the app link link module will be rendered on the valuable details on the ios client.
      &quot;appLogoImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional image to be displayed in the App Link Module
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;appTarget&quot;: { # Url to follow when opening the App Link Module on clients. It will be used by partners to open their webpage or deeplink into their app.
        &quot;targetUri&quot;: {
          &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
          &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
          &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # 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.
        },
      },
      &quot;description&quot;: { # String to be displayed in the description of the App Link Module Required
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;title&quot;: { # String to be displayed in the title of the App Link Module Required
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
    },
    &quot;webAppLinkInfo&quot;: { # Optional information about the partner app link. If included, the app link link module will be rendered on the valuable details on the web client.
      &quot;appLogoImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional image to be displayed in the App Link Module
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;appTarget&quot;: { # Url to follow when opening the App Link Module on clients. It will be used by partners to open their webpage or deeplink into their app.
        &quot;targetUri&quot;: {
          &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
          &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
          &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # 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.
        },
      },
      &quot;description&quot;: { # String to be displayed in the description of the App Link Module Required
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;title&quot;: { # String to be displayed in the title of the App Link Module Required
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
    },
  },
  &quot;barcode&quot;: { # The barcode type and value.
    &quot;alternateText&quot;: &quot;A String&quot;, # An optional text that will override the default text that shows under the barcode. This field is intended for a human readable equivalent of the barcode value, used when the barcode cannot be scanned.
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#barcode&quot;`.
    &quot;renderEncoding&quot;: &quot;A String&quot;, # The render encoding for the barcode. When specified, barcode is rendered in the given encoding. Otherwise best known encoding is chosen by Google.
    &quot;showCodeText&quot;: { # Optional text that will be shown when the barcode is hidden behind a click action. This happens in cases where a pass has Smart Tap enabled. If not specified, a default is chosen by Google.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;type&quot;: &quot;A String&quot;, # The type of barcode.
    &quot;value&quot;: &quot;A String&quot;, # The value encoded in the barcode.
  },
  &quot;classId&quot;: &quot;A String&quot;, # Required. The class associated with this object. The class must be of the same type as this object, must already exist, and must be approved. Class IDs should follow the format issuer ID.identifier where the former is issued by Google and latter is chosen by you.
  &quot;classReference&quot;: { # A copy of the inherited fields of the parent class. These fields are retrieved during a GET.
    &quot;allowMultipleUsersPerObject&quot;: True or False, # Deprecated. Use `multipleDevicesAndHoldersAllowedStatus` instead.
    &quot;callbackOptions&quot;: { # Callback options to be used to call the issuer back for every save/delete of an object for this class by the end-user. All objects of this class are eligible for the callback.
      &quot;updateRequestUrl&quot;: &quot;A String&quot;, # 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:Google-Valuables. Deprecated.
      &quot;url&quot;: &quot;A String&quot;, # 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:Google-Valuables.
    },
    &quot;classTemplateInfo&quot;: { # Template information about how the class should be displayed. If unset, Google will fallback to a default set of fields to display.
      &quot;cardBarcodeSectionDetails&quot;: { # Specifies extra information to be displayed above and below the barcode.
        &quot;firstBottomDetail&quot;: { # Optional information to display below the barcode.
          &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
            &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
              { # Reference definition to use with field overrides.
                &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
              },
            ],
          },
        },
        &quot;firstTopDetail&quot;: { # Optional information to display above the barcode. If `secondTopDetail` is defined, this will be displayed to the start side of this detail section.
          &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
            &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
              { # Reference definition to use with field overrides.
                &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
              },
            ],
          },
        },
        &quot;secondTopDetail&quot;: { # Optional second piece of information to display above the barcode. If `firstTopDetail` is defined, this will be displayed to the end side of this detail section.
          &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
            &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
              { # Reference definition to use with field overrides.
                &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
              },
            ],
          },
        },
      },
      &quot;cardTemplateOverride&quot;: { # Override for the card view.
        &quot;cardRowTemplateInfos&quot;: [ # Template information for rows in the card view. At most three rows are allowed to be specified.
          {
            &quot;oneItem&quot;: { # Template for a row containing one item. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
              &quot;item&quot;: { # The item to be displayed in the row. This item will be automatically centered.
                &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
                &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
              },
            },
            &quot;threeItems&quot;: { # Template for a row containing three items. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
              &quot;endItem&quot;: { # The item to be displayed at the end of the row. This item will be aligned to the right.
                &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
                &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
              },
              &quot;middleItem&quot;: { # The item to be displayed in the middle of the row. This item will be centered between the start and end items.
                &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
                &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
              },
              &quot;startItem&quot;: { # The item to be displayed at the start of the row. This item will be aligned to the left.
                &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
                &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
              },
            },
            &quot;twoItems&quot;: { # Template for a row containing two items. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
              &quot;endItem&quot;: { # The item to be displayed at the end of the row. This item will be aligned to the right.
                &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
                &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
              },
              &quot;startItem&quot;: { # The item to be displayed at the start of the row. This item will be aligned to the left.
                &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
                &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
              },
            },
          },
        ],
      },
      &quot;detailsTemplateOverride&quot;: { # Override for the details view (beneath the card view).
        &quot;detailsItemInfos&quot;: [ # Information for the &quot;nth&quot; item displayed in the details list.
          {
            &quot;item&quot;: { # The item to be displayed in the details list.
              &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
              &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
              &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
            },
          },
        ],
      },
      &quot;listTemplateOverride&quot;: { # Override for the passes list view.
        &quot;firstRowOption&quot;: { # Specifies from a predefined set of options or from a reference to the field what will be displayed in the first row.
          &quot;fieldOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the first row.
            &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
              { # Reference definition to use with field overrides.
                &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
              },
            ],
          },
          &quot;transitOption&quot;: &quot;A String&quot;,
        },
        &quot;secondRowOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the second row. This option is only displayed if there are not multiple user objects in a group. If there is a group, the second row will always display a field shared by all objects.
          &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
            { # Reference definition to use with field overrides.
              &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
              &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
            },
          ],
        },
        &quot;thirdRowOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the third row. This option is only displayed if there are not multiple user objects in a group. If there is a group, the third row will always display the number of objects in the group. Eg: &quot;3 passes&quot;
          &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
            { # Reference definition to use with field overrides.
              &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
              &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
            },
          ],
        },
      },
    },
    &quot;countryCode&quot;: &quot;A String&quot;, # Country code used to display the card&#x27;s country (when the user is not in that country), as well as to display localized content when content is not available in the user&#x27;s locale.
    &quot;details&quot;: &quot;A String&quot;, # The details of the offer.
    &quot;enableSmartTap&quot;: True or False, # Identifies whether this class supports Smart Tap. The `redemptionIssuers` and object level `smartTapRedemptionLevel` fields must also be set up correctly in order for a pass to support Smart Tap.
    &quot;finePrint&quot;: &quot;A String&quot;, # The fine print or terms of the offer, such as &quot;20% off any t-shirt at Adam&#x27;s Apparel.&quot;
    &quot;helpUri&quot;: { # The help link for the offer, such as `http://myownpersonaldomain.com/help`
      &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
      &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;uri&quot;: &quot;A String&quot;, # 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.
    },
    &quot;heroImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional banner image displayed on the front of the card. If none is present, nothing will be displayed. The image will display at 100% width.
      &quot;contentDescription&quot;: { # Description of the image used for accessibility.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
      &quot;sourceUri&quot;: { # The URI for the image.
        &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
        &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
      },
    },
    &quot;hexBackgroundColor&quot;: &quot;A String&quot;, # The background color for the card. If not set the dominant color of the hero image is used, and if no hero image is set, the dominant color of the logo is used. The format is #rrggbb where rrggbb is a hex RGB triplet, such as `#ffcc00`. You can also use the shorthand version of the RGB triplet which is #rgb, such as `#fc0`.
    &quot;homepageUri&quot;: { # The URI of your application&#x27;s home page. Populating the URI in this field results in the exact same behavior as populating an URI in linksModuleData (when an object is rendered, a link to the homepage is shown in what would usually be thought of as the linksModuleData section of the object).
      &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
      &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;uri&quot;: &quot;A String&quot;, # 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.
    },
    &quot;id&quot;: &quot;A String&quot;, # Required. 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, &#x27;.&#x27;, &#x27;_&#x27;, or &#x27;-&#x27;.
    &quot;imageModulesData&quot;: [ # Image module data. The maximum number of these fields displayed is 1 from object level and 1 for class object level.
      {
        &quot;id&quot;: &quot;A String&quot;, # The ID associated with an image module. This field is here to enable ease of management of image modules.
        &quot;mainImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A 100% width image.
          &quot;contentDescription&quot;: { # Description of the image used for accessibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
          &quot;sourceUri&quot;: { # The URI for the image.
            &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
            &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
          },
        },
      },
    ],
    &quot;infoModuleData&quot;: { # Deprecated. Use textModulesData instead.
      &quot;labelValueRows&quot;: [ # A list of collections of labels and values. These will be displayed one after the other in a singular column.
        {
          &quot;columns&quot;: [ # A list of labels and values. These will be displayed in a singular column, one after the other, not in multiple columns, despite the field name.
            { # A pair of text strings to be displayed in the details view. Note we no longer display LabelValue/LabelValueRow as a table, instead a list of items.
              &quot;label&quot;: &quot;A String&quot;, # The label for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
              &quot;localizedLabel&quot;: { # Translated strings for the label. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
                &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
                &quot;translatedValues&quot;: [ # Contains the translations for the string.
                  {
                    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                    &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                    &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                  },
                ],
              },
              &quot;localizedValue&quot;: { # Translated strings for the value. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
                &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
                &quot;translatedValues&quot;: [ # Contains the translations for the string.
                  {
                    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                    &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                    &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                  },
                ],
              },
              &quot;value&quot;: &quot;A String&quot;, # The value for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
            },
          ],
        },
      ],
      &quot;showLastUpdateTime&quot;: True or False,
    },
    &quot;issuerName&quot;: &quot;A String&quot;, # Required. The issuer name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens.
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#offerClass&quot;`.
    &quot;linksModuleData&quot;: { # Links module data. If links module data is also defined on the object, both will be displayed.
      &quot;uris&quot;: [ # The list of URIs.
        {
          &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
          &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
          &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # 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.
        },
      ],
    },
    &quot;localizedDetails&quot;: { # Translated strings for the details.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;localizedFinePrint&quot;: { # Translated strings for the fine_print.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;localizedIssuerName&quot;: { # Translated strings for the issuer_name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;localizedProvider&quot;: { # Translated strings for the provider. Recommended maximum length is 12 characters to ensure full string is displayed on smaller screens.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;localizedShortTitle&quot;: { # Translated strings for the short title. Recommended maximum length is 20 characters.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;localizedTitle&quot;: { # Translated strings for the title. Recommended maximum length is 60 characters to ensure full string is displayed on smaller screens.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;locations&quot;: [ # Note: This field is currently not supported to trigger geo notifications.
      {
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#latLongPoint&quot;`.
        &quot;latitude&quot;: 3.14, # The latitude specified as any value in the range of -90.0 through +90.0, both inclusive. Values outside these bounds will be rejected.
        &quot;longitude&quot;: 3.14, # The longitude specified in the range -180.0 through +180.0, both inclusive. Values outside these bounds will be rejected.
      },
    ],
    &quot;messages&quot;: [ # 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.
      { # A message that will be displayed with a Valuable
        &quot;body&quot;: &quot;A String&quot;, # The message body.
        &quot;displayInterval&quot;: { # The period of time that the message will be displayed to users. You can define both a `startTime` and `endTime` for each message. A message is displayed immediately after a Wallet Object is inserted unless a `startTime` is set. The message will appear in a list of messages indefinitely if `endTime` is not provided.
          &quot;end&quot;: { # End time of the interval. Offset is not required. If an offset is provided and `start` time is set, `start` must also include an offset.
            &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#timeInterval&quot;`.
          &quot;start&quot;: { # Start time of the interval. Offset is not required. If an offset is provided and `end` time is set, `end` must also include an offset.
            &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
          },
        },
        &quot;header&quot;: &quot;A String&quot;, # The message header.
        &quot;id&quot;: &quot;A String&quot;, # 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.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#walletObjectMessage&quot;`.
        &quot;localizedBody&quot;: { # Translated strings for the message body.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;localizedHeader&quot;: { # Translated strings for the message header.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;messageType&quot;: &quot;A String&quot;, # The type of the message. Currently, this can only be set for offers.
      },
    ],
    &quot;multipleDevicesAndHoldersAllowedStatus&quot;: &quot;A String&quot;, # Identifies whether multiple users and devices will save the same object referencing this class.
    &quot;provider&quot;: &quot;A String&quot;, # Required. The offer provider (either the aggregator name or merchant name). Recommended maximum length is 12 characters to ensure full string is displayed on smaller screens.
    &quot;redemptionChannel&quot;: &quot;A String&quot;, # Required. The redemption channels applicable to this offer.
    &quot;redemptionIssuers&quot;: [ # 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.
      &quot;A String&quot;,
    ],
    &quot;review&quot;: { # The review comments set by the platform when a class is marked `approved` or `rejected`.
      &quot;comments&quot;: &quot;A String&quot;,
    },
    &quot;reviewStatus&quot;: &quot;A String&quot;, # Required. The status of the class. This field can be set to `draft` or The status of the class. This field can be set to `draft` or `underReview` using the insert, patch, or update API calls. Once the review state is changed from `draft` it may not be changed back to `draft`. You should keep this field to `draft` when the class is under development. A `draft` class cannot be used to create any object. You should set this field to `underReview` when you believe the class is ready for use. The platform will automatically set this field to `approved` and it can be immediately used to create or migrate objects. When updating an already `approved` class you should keep setting this field to `underReview`.
    &quot;securityAnimation&quot;: { # Optional information about the security animation. If this is set a security animation will be rendered on pass details.
      &quot;animationType&quot;: &quot;A String&quot;, # Type of animation.
    },
    &quot;shortTitle&quot;: &quot;A String&quot;, # A shortened version of the title of the offer, such as &quot;20% off,&quot; shown to users as a quick reference to the offer contents. Recommended maximum length is 20 characters.
    &quot;textModulesData&quot;: [ # Text module data. If text module data is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from the object and 10 from the class.
      { # 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.
        &quot;body&quot;: &quot;A String&quot;, # 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.
        &quot;header&quot;: &quot;A String&quot;, # The header of the Text Module. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
        &quot;id&quot;: &quot;A String&quot;, # The ID associated with a text module. This field is here to enable ease of management of text modules.
        &quot;localizedBody&quot;: { # Translated strings for the body. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;localizedHeader&quot;: { # Translated strings for the header. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
      },
    ],
    &quot;title&quot;: &quot;A String&quot;, # Required. The title of the offer, such as &quot;20% off any t-shirt.&quot; Recommended maximum length is 60 characters to ensure full string is displayed on smaller screens.
    &quot;titleImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The title image of the offer. This image is displayed in both the details and list views of the app.
      &quot;contentDescription&quot;: { # Description of the image used for accessibility.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
      &quot;sourceUri&quot;: { # The URI for the image.
        &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
        &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
      },
    },
    &quot;version&quot;: &quot;A String&quot;, # Deprecated
    &quot;viewUnlockRequirement&quot;: &quot;A String&quot;, # View Unlock Requirement options for the offer.
    &quot;wideTitleImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The wide title image of the offer. When provided, this will be used in place of the title image in the top left of the card view.
      &quot;contentDescription&quot;: { # Description of the image used for accessibility.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
      &quot;sourceUri&quot;: { # The URI for the image.
        &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
        &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
      },
    },
    &quot;wordMark&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Deprecated.
      &quot;contentDescription&quot;: { # Description of the image used for accessibility.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
      &quot;sourceUri&quot;: { # The URI for the image.
        &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
        &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
      },
    },
  },
  &quot;disableExpirationNotification&quot;: True or False, # Indicates if notifications should explicitly be suppressed. If this field is set to true, regardless of the `messages` field, expiration notifications to the user will be suppressed. By default, this field is set to false. Currently, this can only be set for offers.
  &quot;groupingInfo&quot;: { # Information that controls how passes are grouped together.
    &quot;groupingId&quot;: &quot;A String&quot;, # Optional grouping ID for grouping the passes with the same ID visually together. Grouping with different types of passes is allowed.
    &quot;sortIndex&quot;: 42, # Optional index for sorting the passes when they are grouped with other passes. Passes with lower sort index are shown before passes with higher sort index. If unspecified, the value is assumed to be INT_MAX. For two passes with the same sort index, the sorting behavior is undefined.
  },
  &quot;hasLinkedDevice&quot;: True or False, # Whether this object is currently linked to a single device. This field is set by the platform when a user saves the object, linking it to their device. Intended for use by select partners. Contact support for additional information.
  &quot;hasUsers&quot;: True or False, # Indicates if the object has users. This field is set by the platform.
  &quot;heroImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional banner image displayed on the front of the card. If none is present, hero image of the class, if present, will be displayed. If hero image of the class is also not present, nothing will be displayed.
    &quot;contentDescription&quot;: { # Description of the image used for accessibility.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
    &quot;sourceUri&quot;: { # The URI for the image.
      &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
      &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
    },
  },
  &quot;id&quot;: &quot;A String&quot;, # Required. The unique identifier for an object. This ID must be unique across all objects 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. The unique identifier should only include alphanumeric characters, &#x27;.&#x27;, &#x27;_&#x27;, or &#x27;-&#x27;.
  &quot;imageModulesData&quot;: [ # Image module data. The maximum number of these fields displayed is 1 from object level and 1 for class object level.
    {
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with an image module. This field is here to enable ease of management of image modules.
      &quot;mainImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A 100% width image.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
    },
  ],
  &quot;infoModuleData&quot;: { # Deprecated. Use textModulesData instead.
    &quot;labelValueRows&quot;: [ # A list of collections of labels and values. These will be displayed one after the other in a singular column.
      {
        &quot;columns&quot;: [ # A list of labels and values. These will be displayed in a singular column, one after the other, not in multiple columns, despite the field name.
          { # A pair of text strings to be displayed in the details view. Note we no longer display LabelValue/LabelValueRow as a table, instead a list of items.
            &quot;label&quot;: &quot;A String&quot;, # The label for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
            &quot;localizedLabel&quot;: { # Translated strings for the label. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;localizedValue&quot;: { # Translated strings for the value. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;value&quot;: &quot;A String&quot;, # The value for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
          },
        ],
      },
    ],
    &quot;showLastUpdateTime&quot;: True or False,
  },
  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#offerObject&quot;`.
  &quot;linksModuleData&quot;: { # Links module data. If links module data is also defined on the class, both will be displayed.
    &quot;uris&quot;: [ # The list of URIs.
      {
        &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
        &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
        &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;uri&quot;: &quot;A String&quot;, # 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.
      },
    ],
  },
  &quot;locations&quot;: [ # Note: This field is currently not supported to trigger geo notifications.
    {
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#latLongPoint&quot;`.
      &quot;latitude&quot;: 3.14, # The latitude specified as any value in the range of -90.0 through +90.0, both inclusive. Values outside these bounds will be rejected.
      &quot;longitude&quot;: 3.14, # The longitude specified in the range -180.0 through +180.0, both inclusive. Values outside these bounds will be rejected.
    },
  ],
  &quot;messages&quot;: [ # 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.
    { # A message that will be displayed with a Valuable
      &quot;body&quot;: &quot;A String&quot;, # The message body.
      &quot;displayInterval&quot;: { # The period of time that the message will be displayed to users. You can define both a `startTime` and `endTime` for each message. A message is displayed immediately after a Wallet Object is inserted unless a `startTime` is set. The message will appear in a list of messages indefinitely if `endTime` is not provided.
        &quot;end&quot;: { # End time of the interval. Offset is not required. If an offset is provided and `start` time is set, `start` must also include an offset.
          &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#timeInterval&quot;`.
        &quot;start&quot;: { # Start time of the interval. Offset is not required. If an offset is provided and `end` time is set, `end` must also include an offset.
          &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
        },
      },
      &quot;header&quot;: &quot;A String&quot;, # The message header.
      &quot;id&quot;: &quot;A String&quot;, # 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.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#walletObjectMessage&quot;`.
      &quot;localizedBody&quot;: { # Translated strings for the message body.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;localizedHeader&quot;: { # Translated strings for the message header.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;messageType&quot;: &quot;A String&quot;, # The type of the message. Currently, this can only be set for offers.
    },
  ],
  &quot;passConstraints&quot;: { # Container for any constraints that may be placed on passes. # Pass constraints for the object. Includes limiting NFC and screenshot behaviors.
    &quot;nfcConstraint&quot;: [ # The NFC constraints for the pass.
      &quot;A String&quot;,
    ],
    &quot;screenshotEligibility&quot;: &quot;A String&quot;, # The screenshot eligibility for the pass.
  },
  &quot;rotatingBarcode&quot;: { # The rotating barcode type and value.
    &quot;alternateText&quot;: &quot;A String&quot;, # An optional text that will override the default text that shows under the barcode. This field is intended for a human readable equivalent of the barcode value, used when the barcode cannot be scanned.
    &quot;initialRotatingBarcodeValues&quot;: { # A payload containing many barcode values and start date/time. # Input only. NOTE: This feature is only available for the transit vertical. Optional set of initial rotating barcode values. This allows a small subset of barcodes to be included with the object. Further rotating barcode values must be uploaded with the UploadRotatingBarcodeValues endpoint.
      &quot;periodMillis&quot;: &quot;A String&quot;, # Required. The amount of time each barcode is valid for.
      &quot;startDateTime&quot;: &quot;A String&quot;, # Required. The date/time the first barcode is valid from. Barcodes will be rotated through using period_millis defined on the object&#x27;s RotatingBarcodeValueInfo. This is an ISO 8601 extended format date/time, with an offset. 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 event were 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.
      &quot;values&quot;: [ # Required. The values to encode in the barcode. At least one value is required.
        &quot;A String&quot;,
      ],
    },
    &quot;renderEncoding&quot;: &quot;A String&quot;, # The render encoding for the barcode. When specified, barcode is rendered in the given encoding. Otherwise best known encoding is chosen by Google.
    &quot;showCodeText&quot;: { # Optional text that will be shown when the barcode is hidden behind a click action. This happens in cases where a pass has Smart Tap enabled. If not specified, a default is chosen by Google.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;totpDetails&quot;: { # Configuration for the time-based OTP substitutions. See https://tools.ietf.org/html/rfc6238 # Details used to evaluate the {totp_value_n} substitutions.
      &quot;algorithm&quot;: &quot;A String&quot;, # The TOTP algorithm used to generate the OTP.
      &quot;parameters&quot;: [ # The TOTP parameters for each of the {totp_value_*} substitutions. The TotpParameters at index n is used for the {totp_value_n} substitution.
        { # Configuration for the key and value length. See https://www.rfc-editor.org/rfc/rfc4226#section-5.3
          &quot;key&quot;: &quot;A String&quot;, # The secret key used for the TOTP value generation, encoded as a Base16 string.
          &quot;valueLength&quot;: 42, # The length of the TOTP value in decimal digits.
        },
      ],
      &quot;periodMillis&quot;: &quot;A String&quot;, # The time interval used for the TOTP value generation, in milliseconds.
    },
    &quot;type&quot;: &quot;A String&quot;, # The type of this barcode.
    &quot;valuePattern&quot;: &quot;A String&quot;, # String encoded barcode value. This string supports the following substitutions: * {totp_value_n}: Replaced with the TOTP value (see TotpDetails.parameters). * {totp_timestamp_millis}: Replaced with the timestamp (millis since epoch) at which the barcode was generated. * {totp_timestamp_seconds}: Replaced with the timestamp (seconds since epoch) at which the barcode was generated.
  },
  &quot;smartTapRedemptionValue&quot;: &quot;A String&quot;, # The value that will be transmitted to a Smart Tap certified terminal over NFC for this object. The class level fields `enableSmartTap` and `redemptionIssuers` must also be set up correctly in order for the pass to support Smart Tap. Only ASCII characters are supported.
  &quot;state&quot;: &quot;A String&quot;, # Required. The state of the object. This field is used to determine how an object is displayed in the app. For example, an `inactive` object is moved to the &quot;Expired passes&quot; section.
  &quot;textModulesData&quot;: [ # Text module data. If text module data is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from the object and 10 from the class.
    { # 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.
      &quot;body&quot;: &quot;A String&quot;, # 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.
      &quot;header&quot;: &quot;A String&quot;, # The header of the Text Module. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with a text module. This field is here to enable ease of management of text modules.
      &quot;localizedBody&quot;: { # Translated strings for the body. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;localizedHeader&quot;: { # Translated strings for the header. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
    },
  ],
  &quot;validTimeInterval&quot;: { # The time period this object will be `active` and object can be used. An object&#x27;s state will be changed to `expired` when this time period has passed.
    &quot;end&quot;: { # End time of the interval. Offset is not required. If an offset is provided and `start` time is set, `start` must also include an offset.
      &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#timeInterval&quot;`.
    &quot;start&quot;: { # Start time of the interval. Offset is not required. If an offset is provided and `end` time is set, `end` must also include an offset.
      &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
    },
  },
  &quot;version&quot;: &quot;A String&quot;, # Deprecated
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
  &quot;appLinkData&quot;: { # Optional information about the partner app link.
    &quot;androidAppLinkInfo&quot;: { # Optional information about the partner app link. If included, the app link link module will be rendered on the valuable details on the android client.
      &quot;appLogoImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional image to be displayed in the App Link Module
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;appTarget&quot;: { # Url to follow when opening the App Link Module on clients. It will be used by partners to open their webpage or deeplink into their app.
        &quot;targetUri&quot;: {
          &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
          &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
          &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # 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.
        },
      },
      &quot;description&quot;: { # String to be displayed in the description of the App Link Module Required
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;title&quot;: { # String to be displayed in the title of the App Link Module Required
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
    },
    &quot;iosAppLinkInfo&quot;: { # Optional information about the partner app link. If included, the app link link module will be rendered on the valuable details on the ios client.
      &quot;appLogoImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional image to be displayed in the App Link Module
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;appTarget&quot;: { # Url to follow when opening the App Link Module on clients. It will be used by partners to open their webpage or deeplink into their app.
        &quot;targetUri&quot;: {
          &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
          &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
          &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # 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.
        },
      },
      &quot;description&quot;: { # String to be displayed in the description of the App Link Module Required
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;title&quot;: { # String to be displayed in the title of the App Link Module Required
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
    },
    &quot;webAppLinkInfo&quot;: { # Optional information about the partner app link. If included, the app link link module will be rendered on the valuable details on the web client.
      &quot;appLogoImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional image to be displayed in the App Link Module
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;appTarget&quot;: { # Url to follow when opening the App Link Module on clients. It will be used by partners to open their webpage or deeplink into their app.
        &quot;targetUri&quot;: {
          &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
          &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
          &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # 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.
        },
      },
      &quot;description&quot;: { # String to be displayed in the description of the App Link Module Required
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;title&quot;: { # String to be displayed in the title of the App Link Module Required
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
    },
  },
  &quot;barcode&quot;: { # The barcode type and value.
    &quot;alternateText&quot;: &quot;A String&quot;, # An optional text that will override the default text that shows under the barcode. This field is intended for a human readable equivalent of the barcode value, used when the barcode cannot be scanned.
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#barcode&quot;`.
    &quot;renderEncoding&quot;: &quot;A String&quot;, # The render encoding for the barcode. When specified, barcode is rendered in the given encoding. Otherwise best known encoding is chosen by Google.
    &quot;showCodeText&quot;: { # Optional text that will be shown when the barcode is hidden behind a click action. This happens in cases where a pass has Smart Tap enabled. If not specified, a default is chosen by Google.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;type&quot;: &quot;A String&quot;, # The type of barcode.
    &quot;value&quot;: &quot;A String&quot;, # The value encoded in the barcode.
  },
  &quot;classId&quot;: &quot;A String&quot;, # Required. The class associated with this object. The class must be of the same type as this object, must already exist, and must be approved. Class IDs should follow the format issuer ID.identifier where the former is issued by Google and latter is chosen by you.
  &quot;classReference&quot;: { # A copy of the inherited fields of the parent class. These fields are retrieved during a GET.
    &quot;allowMultipleUsersPerObject&quot;: True or False, # Deprecated. Use `multipleDevicesAndHoldersAllowedStatus` instead.
    &quot;callbackOptions&quot;: { # Callback options to be used to call the issuer back for every save/delete of an object for this class by the end-user. All objects of this class are eligible for the callback.
      &quot;updateRequestUrl&quot;: &quot;A String&quot;, # 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:Google-Valuables. Deprecated.
      &quot;url&quot;: &quot;A String&quot;, # 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:Google-Valuables.
    },
    &quot;classTemplateInfo&quot;: { # Template information about how the class should be displayed. If unset, Google will fallback to a default set of fields to display.
      &quot;cardBarcodeSectionDetails&quot;: { # Specifies extra information to be displayed above and below the barcode.
        &quot;firstBottomDetail&quot;: { # Optional information to display below the barcode.
          &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
            &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
              { # Reference definition to use with field overrides.
                &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
              },
            ],
          },
        },
        &quot;firstTopDetail&quot;: { # Optional information to display above the barcode. If `secondTopDetail` is defined, this will be displayed to the start side of this detail section.
          &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
            &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
              { # Reference definition to use with field overrides.
                &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
              },
            ],
          },
        },
        &quot;secondTopDetail&quot;: { # Optional second piece of information to display above the barcode. If `firstTopDetail` is defined, this will be displayed to the end side of this detail section.
          &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
            &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
              { # Reference definition to use with field overrides.
                &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
              },
            ],
          },
        },
      },
      &quot;cardTemplateOverride&quot;: { # Override for the card view.
        &quot;cardRowTemplateInfos&quot;: [ # Template information for rows in the card view. At most three rows are allowed to be specified.
          {
            &quot;oneItem&quot;: { # Template for a row containing one item. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
              &quot;item&quot;: { # The item to be displayed in the row. This item will be automatically centered.
                &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
                &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
              },
            },
            &quot;threeItems&quot;: { # Template for a row containing three items. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
              &quot;endItem&quot;: { # The item to be displayed at the end of the row. This item will be aligned to the right.
                &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
                &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
              },
              &quot;middleItem&quot;: { # The item to be displayed in the middle of the row. This item will be centered between the start and end items.
                &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
                &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
              },
              &quot;startItem&quot;: { # The item to be displayed at the start of the row. This item will be aligned to the left.
                &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
                &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
              },
            },
            &quot;twoItems&quot;: { # Template for a row containing two items. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
              &quot;endItem&quot;: { # The item to be displayed at the end of the row. This item will be aligned to the right.
                &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
                &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
              },
              &quot;startItem&quot;: { # The item to be displayed at the start of the row. This item will be aligned to the left.
                &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
                &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
              },
            },
          },
        ],
      },
      &quot;detailsTemplateOverride&quot;: { # Override for the details view (beneath the card view).
        &quot;detailsItemInfos&quot;: [ # Information for the &quot;nth&quot; item displayed in the details list.
          {
            &quot;item&quot;: { # The item to be displayed in the details list.
              &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
              &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
              &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
            },
          },
        ],
      },
      &quot;listTemplateOverride&quot;: { # Override for the passes list view.
        &quot;firstRowOption&quot;: { # Specifies from a predefined set of options or from a reference to the field what will be displayed in the first row.
          &quot;fieldOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the first row.
            &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
              { # Reference definition to use with field overrides.
                &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
              },
            ],
          },
          &quot;transitOption&quot;: &quot;A String&quot;,
        },
        &quot;secondRowOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the second row. This option is only displayed if there are not multiple user objects in a group. If there is a group, the second row will always display a field shared by all objects.
          &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
            { # Reference definition to use with field overrides.
              &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
              &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
            },
          ],
        },
        &quot;thirdRowOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the third row. This option is only displayed if there are not multiple user objects in a group. If there is a group, the third row will always display the number of objects in the group. Eg: &quot;3 passes&quot;
          &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
            { # Reference definition to use with field overrides.
              &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
              &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
            },
          ],
        },
      },
    },
    &quot;countryCode&quot;: &quot;A String&quot;, # Country code used to display the card&#x27;s country (when the user is not in that country), as well as to display localized content when content is not available in the user&#x27;s locale.
    &quot;details&quot;: &quot;A String&quot;, # The details of the offer.
    &quot;enableSmartTap&quot;: True or False, # Identifies whether this class supports Smart Tap. The `redemptionIssuers` and object level `smartTapRedemptionLevel` fields must also be set up correctly in order for a pass to support Smart Tap.
    &quot;finePrint&quot;: &quot;A String&quot;, # The fine print or terms of the offer, such as &quot;20% off any t-shirt at Adam&#x27;s Apparel.&quot;
    &quot;helpUri&quot;: { # The help link for the offer, such as `http://myownpersonaldomain.com/help`
      &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
      &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;uri&quot;: &quot;A String&quot;, # 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.
    },
    &quot;heroImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional banner image displayed on the front of the card. If none is present, nothing will be displayed. The image will display at 100% width.
      &quot;contentDescription&quot;: { # Description of the image used for accessibility.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
      &quot;sourceUri&quot;: { # The URI for the image.
        &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
        &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
      },
    },
    &quot;hexBackgroundColor&quot;: &quot;A String&quot;, # The background color for the card. If not set the dominant color of the hero image is used, and if no hero image is set, the dominant color of the logo is used. The format is #rrggbb where rrggbb is a hex RGB triplet, such as `#ffcc00`. You can also use the shorthand version of the RGB triplet which is #rgb, such as `#fc0`.
    &quot;homepageUri&quot;: { # The URI of your application&#x27;s home page. Populating the URI in this field results in the exact same behavior as populating an URI in linksModuleData (when an object is rendered, a link to the homepage is shown in what would usually be thought of as the linksModuleData section of the object).
      &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
      &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;uri&quot;: &quot;A String&quot;, # 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.
    },
    &quot;id&quot;: &quot;A String&quot;, # Required. 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, &#x27;.&#x27;, &#x27;_&#x27;, or &#x27;-&#x27;.
    &quot;imageModulesData&quot;: [ # Image module data. The maximum number of these fields displayed is 1 from object level and 1 for class object level.
      {
        &quot;id&quot;: &quot;A String&quot;, # The ID associated with an image module. This field is here to enable ease of management of image modules.
        &quot;mainImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A 100% width image.
          &quot;contentDescription&quot;: { # Description of the image used for accessibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
          &quot;sourceUri&quot;: { # The URI for the image.
            &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
            &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
          },
        },
      },
    ],
    &quot;infoModuleData&quot;: { # Deprecated. Use textModulesData instead.
      &quot;labelValueRows&quot;: [ # A list of collections of labels and values. These will be displayed one after the other in a singular column.
        {
          &quot;columns&quot;: [ # A list of labels and values. These will be displayed in a singular column, one after the other, not in multiple columns, despite the field name.
            { # A pair of text strings to be displayed in the details view. Note we no longer display LabelValue/LabelValueRow as a table, instead a list of items.
              &quot;label&quot;: &quot;A String&quot;, # The label for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
              &quot;localizedLabel&quot;: { # Translated strings for the label. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
                &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
                &quot;translatedValues&quot;: [ # Contains the translations for the string.
                  {
                    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                    &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                    &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                  },
                ],
              },
              &quot;localizedValue&quot;: { # Translated strings for the value. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
                &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
                &quot;translatedValues&quot;: [ # Contains the translations for the string.
                  {
                    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                    &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                    &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                  },
                ],
              },
              &quot;value&quot;: &quot;A String&quot;, # The value for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
            },
          ],
        },
      ],
      &quot;showLastUpdateTime&quot;: True or False,
    },
    &quot;issuerName&quot;: &quot;A String&quot;, # Required. The issuer name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens.
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#offerClass&quot;`.
    &quot;linksModuleData&quot;: { # Links module data. If links module data is also defined on the object, both will be displayed.
      &quot;uris&quot;: [ # The list of URIs.
        {
          &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
          &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
          &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # 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.
        },
      ],
    },
    &quot;localizedDetails&quot;: { # Translated strings for the details.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;localizedFinePrint&quot;: { # Translated strings for the fine_print.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;localizedIssuerName&quot;: { # Translated strings for the issuer_name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;localizedProvider&quot;: { # Translated strings for the provider. Recommended maximum length is 12 characters to ensure full string is displayed on smaller screens.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;localizedShortTitle&quot;: { # Translated strings for the short title. Recommended maximum length is 20 characters.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;localizedTitle&quot;: { # Translated strings for the title. Recommended maximum length is 60 characters to ensure full string is displayed on smaller screens.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;locations&quot;: [ # Note: This field is currently not supported to trigger geo notifications.
      {
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#latLongPoint&quot;`.
        &quot;latitude&quot;: 3.14, # The latitude specified as any value in the range of -90.0 through +90.0, both inclusive. Values outside these bounds will be rejected.
        &quot;longitude&quot;: 3.14, # The longitude specified in the range -180.0 through +180.0, both inclusive. Values outside these bounds will be rejected.
      },
    ],
    &quot;messages&quot;: [ # 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.
      { # A message that will be displayed with a Valuable
        &quot;body&quot;: &quot;A String&quot;, # The message body.
        &quot;displayInterval&quot;: { # The period of time that the message will be displayed to users. You can define both a `startTime` and `endTime` for each message. A message is displayed immediately after a Wallet Object is inserted unless a `startTime` is set. The message will appear in a list of messages indefinitely if `endTime` is not provided.
          &quot;end&quot;: { # End time of the interval. Offset is not required. If an offset is provided and `start` time is set, `start` must also include an offset.
            &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#timeInterval&quot;`.
          &quot;start&quot;: { # Start time of the interval. Offset is not required. If an offset is provided and `end` time is set, `end` must also include an offset.
            &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
          },
        },
        &quot;header&quot;: &quot;A String&quot;, # The message header.
        &quot;id&quot;: &quot;A String&quot;, # 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.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#walletObjectMessage&quot;`.
        &quot;localizedBody&quot;: { # Translated strings for the message body.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;localizedHeader&quot;: { # Translated strings for the message header.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;messageType&quot;: &quot;A String&quot;, # The type of the message. Currently, this can only be set for offers.
      },
    ],
    &quot;multipleDevicesAndHoldersAllowedStatus&quot;: &quot;A String&quot;, # Identifies whether multiple users and devices will save the same object referencing this class.
    &quot;provider&quot;: &quot;A String&quot;, # Required. The offer provider (either the aggregator name or merchant name). Recommended maximum length is 12 characters to ensure full string is displayed on smaller screens.
    &quot;redemptionChannel&quot;: &quot;A String&quot;, # Required. The redemption channels applicable to this offer.
    &quot;redemptionIssuers&quot;: [ # 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.
      &quot;A String&quot;,
    ],
    &quot;review&quot;: { # The review comments set by the platform when a class is marked `approved` or `rejected`.
      &quot;comments&quot;: &quot;A String&quot;,
    },
    &quot;reviewStatus&quot;: &quot;A String&quot;, # Required. The status of the class. This field can be set to `draft` or The status of the class. This field can be set to `draft` or `underReview` using the insert, patch, or update API calls. Once the review state is changed from `draft` it may not be changed back to `draft`. You should keep this field to `draft` when the class is under development. A `draft` class cannot be used to create any object. You should set this field to `underReview` when you believe the class is ready for use. The platform will automatically set this field to `approved` and it can be immediately used to create or migrate objects. When updating an already `approved` class you should keep setting this field to `underReview`.
    &quot;securityAnimation&quot;: { # Optional information about the security animation. If this is set a security animation will be rendered on pass details.
      &quot;animationType&quot;: &quot;A String&quot;, # Type of animation.
    },
    &quot;shortTitle&quot;: &quot;A String&quot;, # A shortened version of the title of the offer, such as &quot;20% off,&quot; shown to users as a quick reference to the offer contents. Recommended maximum length is 20 characters.
    &quot;textModulesData&quot;: [ # Text module data. If text module data is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from the object and 10 from the class.
      { # 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.
        &quot;body&quot;: &quot;A String&quot;, # 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.
        &quot;header&quot;: &quot;A String&quot;, # The header of the Text Module. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
        &quot;id&quot;: &quot;A String&quot;, # The ID associated with a text module. This field is here to enable ease of management of text modules.
        &quot;localizedBody&quot;: { # Translated strings for the body. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;localizedHeader&quot;: { # Translated strings for the header. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
      },
    ],
    &quot;title&quot;: &quot;A String&quot;, # Required. The title of the offer, such as &quot;20% off any t-shirt.&quot; Recommended maximum length is 60 characters to ensure full string is displayed on smaller screens.
    &quot;titleImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The title image of the offer. This image is displayed in both the details and list views of the app.
      &quot;contentDescription&quot;: { # Description of the image used for accessibility.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
      &quot;sourceUri&quot;: { # The URI for the image.
        &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
        &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
      },
    },
    &quot;version&quot;: &quot;A String&quot;, # Deprecated
    &quot;viewUnlockRequirement&quot;: &quot;A String&quot;, # View Unlock Requirement options for the offer.
    &quot;wideTitleImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The wide title image of the offer. When provided, this will be used in place of the title image in the top left of the card view.
      &quot;contentDescription&quot;: { # Description of the image used for accessibility.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
      &quot;sourceUri&quot;: { # The URI for the image.
        &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
        &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
      },
    },
    &quot;wordMark&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Deprecated.
      &quot;contentDescription&quot;: { # Description of the image used for accessibility.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
      &quot;sourceUri&quot;: { # The URI for the image.
        &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
        &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
      },
    },
  },
  &quot;disableExpirationNotification&quot;: True or False, # Indicates if notifications should explicitly be suppressed. If this field is set to true, regardless of the `messages` field, expiration notifications to the user will be suppressed. By default, this field is set to false. Currently, this can only be set for offers.
  &quot;groupingInfo&quot;: { # Information that controls how passes are grouped together.
    &quot;groupingId&quot;: &quot;A String&quot;, # Optional grouping ID for grouping the passes with the same ID visually together. Grouping with different types of passes is allowed.
    &quot;sortIndex&quot;: 42, # Optional index for sorting the passes when they are grouped with other passes. Passes with lower sort index are shown before passes with higher sort index. If unspecified, the value is assumed to be INT_MAX. For two passes with the same sort index, the sorting behavior is undefined.
  },
  &quot;hasLinkedDevice&quot;: True or False, # Whether this object is currently linked to a single device. This field is set by the platform when a user saves the object, linking it to their device. Intended for use by select partners. Contact support for additional information.
  &quot;hasUsers&quot;: True or False, # Indicates if the object has users. This field is set by the platform.
  &quot;heroImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional banner image displayed on the front of the card. If none is present, hero image of the class, if present, will be displayed. If hero image of the class is also not present, nothing will be displayed.
    &quot;contentDescription&quot;: { # Description of the image used for accessibility.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
    &quot;sourceUri&quot;: { # The URI for the image.
      &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
      &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
    },
  },
  &quot;id&quot;: &quot;A String&quot;, # Required. The unique identifier for an object. This ID must be unique across all objects 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. The unique identifier should only include alphanumeric characters, &#x27;.&#x27;, &#x27;_&#x27;, or &#x27;-&#x27;.
  &quot;imageModulesData&quot;: [ # Image module data. The maximum number of these fields displayed is 1 from object level and 1 for class object level.
    {
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with an image module. This field is here to enable ease of management of image modules.
      &quot;mainImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A 100% width image.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
    },
  ],
  &quot;infoModuleData&quot;: { # Deprecated. Use textModulesData instead.
    &quot;labelValueRows&quot;: [ # A list of collections of labels and values. These will be displayed one after the other in a singular column.
      {
        &quot;columns&quot;: [ # A list of labels and values. These will be displayed in a singular column, one after the other, not in multiple columns, despite the field name.
          { # A pair of text strings to be displayed in the details view. Note we no longer display LabelValue/LabelValueRow as a table, instead a list of items.
            &quot;label&quot;: &quot;A String&quot;, # The label for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
            &quot;localizedLabel&quot;: { # Translated strings for the label. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;localizedValue&quot;: { # Translated strings for the value. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;value&quot;: &quot;A String&quot;, # The value for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
          },
        ],
      },
    ],
    &quot;showLastUpdateTime&quot;: True or False,
  },
  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#offerObject&quot;`.
  &quot;linksModuleData&quot;: { # Links module data. If links module data is also defined on the class, both will be displayed.
    &quot;uris&quot;: [ # The list of URIs.
      {
        &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
        &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
        &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;uri&quot;: &quot;A String&quot;, # 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.
      },
    ],
  },
  &quot;locations&quot;: [ # Note: This field is currently not supported to trigger geo notifications.
    {
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#latLongPoint&quot;`.
      &quot;latitude&quot;: 3.14, # The latitude specified as any value in the range of -90.0 through +90.0, both inclusive. Values outside these bounds will be rejected.
      &quot;longitude&quot;: 3.14, # The longitude specified in the range -180.0 through +180.0, both inclusive. Values outside these bounds will be rejected.
    },
  ],
  &quot;messages&quot;: [ # 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.
    { # A message that will be displayed with a Valuable
      &quot;body&quot;: &quot;A String&quot;, # The message body.
      &quot;displayInterval&quot;: { # The period of time that the message will be displayed to users. You can define both a `startTime` and `endTime` for each message. A message is displayed immediately after a Wallet Object is inserted unless a `startTime` is set. The message will appear in a list of messages indefinitely if `endTime` is not provided.
        &quot;end&quot;: { # End time of the interval. Offset is not required. If an offset is provided and `start` time is set, `start` must also include an offset.
          &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#timeInterval&quot;`.
        &quot;start&quot;: { # Start time of the interval. Offset is not required. If an offset is provided and `end` time is set, `end` must also include an offset.
          &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
        },
      },
      &quot;header&quot;: &quot;A String&quot;, # The message header.
      &quot;id&quot;: &quot;A String&quot;, # 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.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#walletObjectMessage&quot;`.
      &quot;localizedBody&quot;: { # Translated strings for the message body.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;localizedHeader&quot;: { # Translated strings for the message header.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;messageType&quot;: &quot;A String&quot;, # The type of the message. Currently, this can only be set for offers.
    },
  ],
  &quot;passConstraints&quot;: { # Container for any constraints that may be placed on passes. # Pass constraints for the object. Includes limiting NFC and screenshot behaviors.
    &quot;nfcConstraint&quot;: [ # The NFC constraints for the pass.
      &quot;A String&quot;,
    ],
    &quot;screenshotEligibility&quot;: &quot;A String&quot;, # The screenshot eligibility for the pass.
  },
  &quot;rotatingBarcode&quot;: { # The rotating barcode type and value.
    &quot;alternateText&quot;: &quot;A String&quot;, # An optional text that will override the default text that shows under the barcode. This field is intended for a human readable equivalent of the barcode value, used when the barcode cannot be scanned.
    &quot;initialRotatingBarcodeValues&quot;: { # A payload containing many barcode values and start date/time. # Input only. NOTE: This feature is only available for the transit vertical. Optional set of initial rotating barcode values. This allows a small subset of barcodes to be included with the object. Further rotating barcode values must be uploaded with the UploadRotatingBarcodeValues endpoint.
      &quot;periodMillis&quot;: &quot;A String&quot;, # Required. The amount of time each barcode is valid for.
      &quot;startDateTime&quot;: &quot;A String&quot;, # Required. The date/time the first barcode is valid from. Barcodes will be rotated through using period_millis defined on the object&#x27;s RotatingBarcodeValueInfo. This is an ISO 8601 extended format date/time, with an offset. 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 event were 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.
      &quot;values&quot;: [ # Required. The values to encode in the barcode. At least one value is required.
        &quot;A String&quot;,
      ],
    },
    &quot;renderEncoding&quot;: &quot;A String&quot;, # The render encoding for the barcode. When specified, barcode is rendered in the given encoding. Otherwise best known encoding is chosen by Google.
    &quot;showCodeText&quot;: { # Optional text that will be shown when the barcode is hidden behind a click action. This happens in cases where a pass has Smart Tap enabled. If not specified, a default is chosen by Google.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;totpDetails&quot;: { # Configuration for the time-based OTP substitutions. See https://tools.ietf.org/html/rfc6238 # Details used to evaluate the {totp_value_n} substitutions.
      &quot;algorithm&quot;: &quot;A String&quot;, # The TOTP algorithm used to generate the OTP.
      &quot;parameters&quot;: [ # The TOTP parameters for each of the {totp_value_*} substitutions. The TotpParameters at index n is used for the {totp_value_n} substitution.
        { # Configuration for the key and value length. See https://www.rfc-editor.org/rfc/rfc4226#section-5.3
          &quot;key&quot;: &quot;A String&quot;, # The secret key used for the TOTP value generation, encoded as a Base16 string.
          &quot;valueLength&quot;: 42, # The length of the TOTP value in decimal digits.
        },
      ],
      &quot;periodMillis&quot;: &quot;A String&quot;, # The time interval used for the TOTP value generation, in milliseconds.
    },
    &quot;type&quot;: &quot;A String&quot;, # The type of this barcode.
    &quot;valuePattern&quot;: &quot;A String&quot;, # String encoded barcode value. This string supports the following substitutions: * {totp_value_n}: Replaced with the TOTP value (see TotpDetails.parameters). * {totp_timestamp_millis}: Replaced with the timestamp (millis since epoch) at which the barcode was generated. * {totp_timestamp_seconds}: Replaced with the timestamp (seconds since epoch) at which the barcode was generated.
  },
  &quot;smartTapRedemptionValue&quot;: &quot;A String&quot;, # The value that will be transmitted to a Smart Tap certified terminal over NFC for this object. The class level fields `enableSmartTap` and `redemptionIssuers` must also be set up correctly in order for the pass to support Smart Tap. Only ASCII characters are supported.
  &quot;state&quot;: &quot;A String&quot;, # Required. The state of the object. This field is used to determine how an object is displayed in the app. For example, an `inactive` object is moved to the &quot;Expired passes&quot; section.
  &quot;textModulesData&quot;: [ # Text module data. If text module data is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from the object and 10 from the class.
    { # 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.
      &quot;body&quot;: &quot;A String&quot;, # 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.
      &quot;header&quot;: &quot;A String&quot;, # The header of the Text Module. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with a text module. This field is here to enable ease of management of text modules.
      &quot;localizedBody&quot;: { # Translated strings for the body. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;localizedHeader&quot;: { # Translated strings for the header. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
    },
  ],
  &quot;validTimeInterval&quot;: { # The time period this object will be `active` and object can be used. An object&#x27;s state will be changed to `expired` when this time period has passed.
    &quot;end&quot;: { # End time of the interval. Offset is not required. If an offset is provided and `start` time is set, `start` must also include an offset.
      &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#timeInterval&quot;`.
    &quot;start&quot;: { # Start time of the interval. Offset is not required. If an offset is provided and `end` time is set, `end` must also include an offset.
      &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
    },
  },
  &quot;version&quot;: &quot;A String&quot;, # Deprecated
}</pre>
</div>

<div class="method">
    <code class="details" id="list">list(classId=None, maxResults=None, token=None, x__xgafv=None)</code>
  <pre>Returns a list of all offer objects for a given issuer ID.

Args:
  classId: string, The ID of the class whose objects will be listed.
  maxResults: integer, Identifies the max number of results returned by a list. All results are returned if `maxResults` isn&#x27;t defined.
  token: string, Used to get the next set of results if `maxResults` is specified, but more than `maxResults` objects are available in a list. For example, if you have a list of 200 objects and you call list with `maxResults` set to 20, list will return the first 20 objects and a token. Call list again with `maxResults` set to 20 and the token to get the next 20 objects.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
  &quot;pagination&quot;: { # Pagination of the response.
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#pagination&quot;`.
    &quot;nextPageToken&quot;: &quot;A String&quot;, # Page token to send to fetch the next page.
    &quot;resultsPerPage&quot;: 42, # Number of results returned in this page.
  },
  &quot;resources&quot;: [ # Resources corresponding to the list request.
    {
      &quot;appLinkData&quot;: { # Optional information about the partner app link.
        &quot;androidAppLinkInfo&quot;: { # Optional information about the partner app link. If included, the app link link module will be rendered on the valuable details on the android client.
          &quot;appLogoImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional image to be displayed in the App Link Module
            &quot;contentDescription&quot;: { # Description of the image used for accessibility.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
            &quot;sourceUri&quot;: { # The URI for the image.
              &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
              &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
                &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
                &quot;translatedValues&quot;: [ # Contains the translations for the string.
                  {
                    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                    &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                    &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                  },
                ],
              },
              &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
            },
          },
          &quot;appTarget&quot;: { # Url to follow when opening the App Link Module on clients. It will be used by partners to open their webpage or deeplink into their app.
            &quot;targetUri&quot;: {
              &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
              &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
              &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
                &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
                &quot;translatedValues&quot;: [ # Contains the translations for the string.
                  {
                    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                    &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                    &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                  },
                ],
              },
              &quot;uri&quot;: &quot;A String&quot;, # 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.
            },
          },
          &quot;description&quot;: { # String to be displayed in the description of the App Link Module Required
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;title&quot;: { # String to be displayed in the title of the App Link Module Required
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
        },
        &quot;iosAppLinkInfo&quot;: { # Optional information about the partner app link. If included, the app link link module will be rendered on the valuable details on the ios client.
          &quot;appLogoImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional image to be displayed in the App Link Module
            &quot;contentDescription&quot;: { # Description of the image used for accessibility.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
            &quot;sourceUri&quot;: { # The URI for the image.
              &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
              &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
                &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
                &quot;translatedValues&quot;: [ # Contains the translations for the string.
                  {
                    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                    &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                    &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                  },
                ],
              },
              &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
            },
          },
          &quot;appTarget&quot;: { # Url to follow when opening the App Link Module on clients. It will be used by partners to open their webpage or deeplink into their app.
            &quot;targetUri&quot;: {
              &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
              &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
              &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
                &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
                &quot;translatedValues&quot;: [ # Contains the translations for the string.
                  {
                    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                    &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                    &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                  },
                ],
              },
              &quot;uri&quot;: &quot;A String&quot;, # 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.
            },
          },
          &quot;description&quot;: { # String to be displayed in the description of the App Link Module Required
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;title&quot;: { # String to be displayed in the title of the App Link Module Required
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
        },
        &quot;webAppLinkInfo&quot;: { # Optional information about the partner app link. If included, the app link link module will be rendered on the valuable details on the web client.
          &quot;appLogoImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional image to be displayed in the App Link Module
            &quot;contentDescription&quot;: { # Description of the image used for accessibility.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
            &quot;sourceUri&quot;: { # The URI for the image.
              &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
              &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
                &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
                &quot;translatedValues&quot;: [ # Contains the translations for the string.
                  {
                    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                    &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                    &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                  },
                ],
              },
              &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
            },
          },
          &quot;appTarget&quot;: { # Url to follow when opening the App Link Module on clients. It will be used by partners to open their webpage or deeplink into their app.
            &quot;targetUri&quot;: {
              &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
              &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
              &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
                &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
                &quot;translatedValues&quot;: [ # Contains the translations for the string.
                  {
                    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                    &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                    &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                  },
                ],
              },
              &quot;uri&quot;: &quot;A String&quot;, # 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.
            },
          },
          &quot;description&quot;: { # String to be displayed in the description of the App Link Module Required
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;title&quot;: { # String to be displayed in the title of the App Link Module Required
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
        },
      },
      &quot;barcode&quot;: { # The barcode type and value.
        &quot;alternateText&quot;: &quot;A String&quot;, # An optional text that will override the default text that shows under the barcode. This field is intended for a human readable equivalent of the barcode value, used when the barcode cannot be scanned.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#barcode&quot;`.
        &quot;renderEncoding&quot;: &quot;A String&quot;, # The render encoding for the barcode. When specified, barcode is rendered in the given encoding. Otherwise best known encoding is chosen by Google.
        &quot;showCodeText&quot;: { # Optional text that will be shown when the barcode is hidden behind a click action. This happens in cases where a pass has Smart Tap enabled. If not specified, a default is chosen by Google.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;type&quot;: &quot;A String&quot;, # The type of barcode.
        &quot;value&quot;: &quot;A String&quot;, # The value encoded in the barcode.
      },
      &quot;classId&quot;: &quot;A String&quot;, # Required. The class associated with this object. The class must be of the same type as this object, must already exist, and must be approved. Class IDs should follow the format issuer ID.identifier where the former is issued by Google and latter is chosen by you.
      &quot;classReference&quot;: { # A copy of the inherited fields of the parent class. These fields are retrieved during a GET.
        &quot;allowMultipleUsersPerObject&quot;: True or False, # Deprecated. Use `multipleDevicesAndHoldersAllowedStatus` instead.
        &quot;callbackOptions&quot;: { # Callback options to be used to call the issuer back for every save/delete of an object for this class by the end-user. All objects of this class are eligible for the callback.
          &quot;updateRequestUrl&quot;: &quot;A String&quot;, # 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:Google-Valuables. Deprecated.
          &quot;url&quot;: &quot;A String&quot;, # 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:Google-Valuables.
        },
        &quot;classTemplateInfo&quot;: { # Template information about how the class should be displayed. If unset, Google will fallback to a default set of fields to display.
          &quot;cardBarcodeSectionDetails&quot;: { # Specifies extra information to be displayed above and below the barcode.
            &quot;firstBottomDetail&quot;: { # Optional information to display below the barcode.
              &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
            },
            &quot;firstTopDetail&quot;: { # Optional information to display above the barcode. If `secondTopDetail` is defined, this will be displayed to the start side of this detail section.
              &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
            },
            &quot;secondTopDetail&quot;: { # Optional second piece of information to display above the barcode. If `firstTopDetail` is defined, this will be displayed to the end side of this detail section.
              &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
            },
          },
          &quot;cardTemplateOverride&quot;: { # Override for the card view.
            &quot;cardRowTemplateInfos&quot;: [ # Template information for rows in the card view. At most three rows are allowed to be specified.
              {
                &quot;oneItem&quot;: { # Template for a row containing one item. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
                  &quot;item&quot;: { # The item to be displayed in the row. This item will be automatically centered.
                    &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                      &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                        { # Reference definition to use with field overrides.
                          &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                          &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                        },
                      ],
                    },
                    &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                    &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                      &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                        { # Reference definition to use with field overrides.
                          &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                          &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                        },
                      ],
                    },
                  },
                },
                &quot;threeItems&quot;: { # Template for a row containing three items. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
                  &quot;endItem&quot;: { # The item to be displayed at the end of the row. This item will be aligned to the right.
                    &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                      &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                        { # Reference definition to use with field overrides.
                          &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                          &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                        },
                      ],
                    },
                    &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                    &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                      &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                        { # Reference definition to use with field overrides.
                          &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                          &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                        },
                      ],
                    },
                  },
                  &quot;middleItem&quot;: { # The item to be displayed in the middle of the row. This item will be centered between the start and end items.
                    &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                      &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                        { # Reference definition to use with field overrides.
                          &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                          &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                        },
                      ],
                    },
                    &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                    &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                      &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                        { # Reference definition to use with field overrides.
                          &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                          &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                        },
                      ],
                    },
                  },
                  &quot;startItem&quot;: { # The item to be displayed at the start of the row. This item will be aligned to the left.
                    &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                      &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                        { # Reference definition to use with field overrides.
                          &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                          &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                        },
                      ],
                    },
                    &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                    &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                      &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                        { # Reference definition to use with field overrides.
                          &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                          &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                        },
                      ],
                    },
                  },
                },
                &quot;twoItems&quot;: { # Template for a row containing two items. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
                  &quot;endItem&quot;: { # The item to be displayed at the end of the row. This item will be aligned to the right.
                    &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                      &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                        { # Reference definition to use with field overrides.
                          &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                          &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                        },
                      ],
                    },
                    &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                    &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                      &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                        { # Reference definition to use with field overrides.
                          &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                          &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                        },
                      ],
                    },
                  },
                  &quot;startItem&quot;: { # The item to be displayed at the start of the row. This item will be aligned to the left.
                    &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                      &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                        { # Reference definition to use with field overrides.
                          &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                          &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                        },
                      ],
                    },
                    &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                    &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                      &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                        { # Reference definition to use with field overrides.
                          &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                          &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                        },
                      ],
                    },
                  },
                },
              },
            ],
          },
          &quot;detailsTemplateOverride&quot;: { # Override for the details view (beneath the card view).
            &quot;detailsItemInfos&quot;: [ # Information for the &quot;nth&quot; item displayed in the details list.
              {
                &quot;item&quot;: { # The item to be displayed in the details list.
                  &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                    &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                      { # Reference definition to use with field overrides.
                        &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                        &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                      },
                    ],
                  },
                  &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                  &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                    &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                      { # Reference definition to use with field overrides.
                        &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                        &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                      },
                    ],
                  },
                },
              },
            ],
          },
          &quot;listTemplateOverride&quot;: { # Override for the passes list view.
            &quot;firstRowOption&quot;: { # Specifies from a predefined set of options or from a reference to the field what will be displayed in the first row.
              &quot;fieldOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the first row.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
              &quot;transitOption&quot;: &quot;A String&quot;,
            },
            &quot;secondRowOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the second row. This option is only displayed if there are not multiple user objects in a group. If there is a group, the second row will always display a field shared by all objects.
              &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                { # Reference definition to use with field overrides.
                  &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                  &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                },
              ],
            },
            &quot;thirdRowOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the third row. This option is only displayed if there are not multiple user objects in a group. If there is a group, the third row will always display the number of objects in the group. Eg: &quot;3 passes&quot;
              &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                { # Reference definition to use with field overrides.
                  &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                  &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                },
              ],
            },
          },
        },
        &quot;countryCode&quot;: &quot;A String&quot;, # Country code used to display the card&#x27;s country (when the user is not in that country), as well as to display localized content when content is not available in the user&#x27;s locale.
        &quot;details&quot;: &quot;A String&quot;, # The details of the offer.
        &quot;enableSmartTap&quot;: True or False, # Identifies whether this class supports Smart Tap. The `redemptionIssuers` and object level `smartTapRedemptionLevel` fields must also be set up correctly in order for a pass to support Smart Tap.
        &quot;finePrint&quot;: &quot;A String&quot;, # The fine print or terms of the offer, such as &quot;20% off any t-shirt at Adam&#x27;s Apparel.&quot;
        &quot;helpUri&quot;: { # The help link for the offer, such as `http://myownpersonaldomain.com/help`
          &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
          &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
          &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # 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.
        },
        &quot;heroImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional banner image displayed on the front of the card. If none is present, nothing will be displayed. The image will display at 100% width.
          &quot;contentDescription&quot;: { # Description of the image used for accessibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
          &quot;sourceUri&quot;: { # The URI for the image.
            &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
            &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
          },
        },
        &quot;hexBackgroundColor&quot;: &quot;A String&quot;, # The background color for the card. If not set the dominant color of the hero image is used, and if no hero image is set, the dominant color of the logo is used. The format is #rrggbb where rrggbb is a hex RGB triplet, such as `#ffcc00`. You can also use the shorthand version of the RGB triplet which is #rgb, such as `#fc0`.
        &quot;homepageUri&quot;: { # The URI of your application&#x27;s home page. Populating the URI in this field results in the exact same behavior as populating an URI in linksModuleData (when an object is rendered, a link to the homepage is shown in what would usually be thought of as the linksModuleData section of the object).
          &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
          &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
          &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # 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.
        },
        &quot;id&quot;: &quot;A String&quot;, # Required. 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, &#x27;.&#x27;, &#x27;_&#x27;, or &#x27;-&#x27;.
        &quot;imageModulesData&quot;: [ # Image module data. The maximum number of these fields displayed is 1 from object level and 1 for class object level.
          {
            &quot;id&quot;: &quot;A String&quot;, # The ID associated with an image module. This field is here to enable ease of management of image modules.
            &quot;mainImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A 100% width image.
              &quot;contentDescription&quot;: { # Description of the image used for accessibility.
                &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
                &quot;translatedValues&quot;: [ # Contains the translations for the string.
                  {
                    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                    &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                    &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                  },
                ],
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
              &quot;sourceUri&quot;: { # The URI for the image.
                &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
                &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
                  &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                    &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                    &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                  },
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
                  &quot;translatedValues&quot;: [ # Contains the translations for the string.
                    {
                      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                      &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                      &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                    },
                  ],
                },
                &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
              },
            },
          },
        ],
        &quot;infoModuleData&quot;: { # Deprecated. Use textModulesData instead.
          &quot;labelValueRows&quot;: [ # A list of collections of labels and values. These will be displayed one after the other in a singular column.
            {
              &quot;columns&quot;: [ # A list of labels and values. These will be displayed in a singular column, one after the other, not in multiple columns, despite the field name.
                { # A pair of text strings to be displayed in the details view. Note we no longer display LabelValue/LabelValueRow as a table, instead a list of items.
                  &quot;label&quot;: &quot;A String&quot;, # The label for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
                  &quot;localizedLabel&quot;: { # Translated strings for the label. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
                    &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                      &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                      &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                    },
                    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
                    &quot;translatedValues&quot;: [ # Contains the translations for the string.
                      {
                        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                      },
                    ],
                  },
                  &quot;localizedValue&quot;: { # Translated strings for the value. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
                    &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                      &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                      &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                    },
                    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
                    &quot;translatedValues&quot;: [ # Contains the translations for the string.
                      {
                        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                      },
                    ],
                  },
                  &quot;value&quot;: &quot;A String&quot;, # The value for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
                },
              ],
            },
          ],
          &quot;showLastUpdateTime&quot;: True or False,
        },
        &quot;issuerName&quot;: &quot;A String&quot;, # Required. The issuer name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#offerClass&quot;`.
        &quot;linksModuleData&quot;: { # Links module data. If links module data is also defined on the object, both will be displayed.
          &quot;uris&quot;: [ # The list of URIs.
            {
              &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
              &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
              &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
                &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
                &quot;translatedValues&quot;: [ # Contains the translations for the string.
                  {
                    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                    &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                    &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                  },
                ],
              },
              &quot;uri&quot;: &quot;A String&quot;, # 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.
            },
          ],
        },
        &quot;localizedDetails&quot;: { # Translated strings for the details.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;localizedFinePrint&quot;: { # Translated strings for the fine_print.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;localizedIssuerName&quot;: { # Translated strings for the issuer_name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;localizedProvider&quot;: { # Translated strings for the provider. Recommended maximum length is 12 characters to ensure full string is displayed on smaller screens.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;localizedShortTitle&quot;: { # Translated strings for the short title. Recommended maximum length is 20 characters.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;localizedTitle&quot;: { # Translated strings for the title. Recommended maximum length is 60 characters to ensure full string is displayed on smaller screens.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;locations&quot;: [ # Note: This field is currently not supported to trigger geo notifications.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#latLongPoint&quot;`.
            &quot;latitude&quot;: 3.14, # The latitude specified as any value in the range of -90.0 through +90.0, both inclusive. Values outside these bounds will be rejected.
            &quot;longitude&quot;: 3.14, # The longitude specified in the range -180.0 through +180.0, both inclusive. Values outside these bounds will be rejected.
          },
        ],
        &quot;messages&quot;: [ # 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.
          { # A message that will be displayed with a Valuable
            &quot;body&quot;: &quot;A String&quot;, # The message body.
            &quot;displayInterval&quot;: { # The period of time that the message will be displayed to users. You can define both a `startTime` and `endTime` for each message. A message is displayed immediately after a Wallet Object is inserted unless a `startTime` is set. The message will appear in a list of messages indefinitely if `endTime` is not provided.
              &quot;end&quot;: { # End time of the interval. Offset is not required. If an offset is provided and `start` time is set, `start` must also include an offset.
                &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#timeInterval&quot;`.
              &quot;start&quot;: { # Start time of the interval. Offset is not required. If an offset is provided and `end` time is set, `end` must also include an offset.
                &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
              },
            },
            &quot;header&quot;: &quot;A String&quot;, # The message header.
            &quot;id&quot;: &quot;A String&quot;, # 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.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#walletObjectMessage&quot;`.
            &quot;localizedBody&quot;: { # Translated strings for the message body.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;localizedHeader&quot;: { # Translated strings for the message header.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;messageType&quot;: &quot;A String&quot;, # The type of the message. Currently, this can only be set for offers.
          },
        ],
        &quot;multipleDevicesAndHoldersAllowedStatus&quot;: &quot;A String&quot;, # Identifies whether multiple users and devices will save the same object referencing this class.
        &quot;provider&quot;: &quot;A String&quot;, # Required. The offer provider (either the aggregator name or merchant name). Recommended maximum length is 12 characters to ensure full string is displayed on smaller screens.
        &quot;redemptionChannel&quot;: &quot;A String&quot;, # Required. The redemption channels applicable to this offer.
        &quot;redemptionIssuers&quot;: [ # 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.
          &quot;A String&quot;,
        ],
        &quot;review&quot;: { # The review comments set by the platform when a class is marked `approved` or `rejected`.
          &quot;comments&quot;: &quot;A String&quot;,
        },
        &quot;reviewStatus&quot;: &quot;A String&quot;, # Required. The status of the class. This field can be set to `draft` or The status of the class. This field can be set to `draft` or `underReview` using the insert, patch, or update API calls. Once the review state is changed from `draft` it may not be changed back to `draft`. You should keep this field to `draft` when the class is under development. A `draft` class cannot be used to create any object. You should set this field to `underReview` when you believe the class is ready for use. The platform will automatically set this field to `approved` and it can be immediately used to create or migrate objects. When updating an already `approved` class you should keep setting this field to `underReview`.
        &quot;securityAnimation&quot;: { # Optional information about the security animation. If this is set a security animation will be rendered on pass details.
          &quot;animationType&quot;: &quot;A String&quot;, # Type of animation.
        },
        &quot;shortTitle&quot;: &quot;A String&quot;, # A shortened version of the title of the offer, such as &quot;20% off,&quot; shown to users as a quick reference to the offer contents. Recommended maximum length is 20 characters.
        &quot;textModulesData&quot;: [ # Text module data. If text module data is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from the object and 10 from the class.
          { # 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.
            &quot;body&quot;: &quot;A String&quot;, # 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.
            &quot;header&quot;: &quot;A String&quot;, # The header of the Text Module. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
            &quot;id&quot;: &quot;A String&quot;, # The ID associated with a text module. This field is here to enable ease of management of text modules.
            &quot;localizedBody&quot;: { # Translated strings for the body. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;localizedHeader&quot;: { # Translated strings for the header. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
          },
        ],
        &quot;title&quot;: &quot;A String&quot;, # Required. The title of the offer, such as &quot;20% off any t-shirt.&quot; Recommended maximum length is 60 characters to ensure full string is displayed on smaller screens.
        &quot;titleImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The title image of the offer. This image is displayed in both the details and list views of the app.
          &quot;contentDescription&quot;: { # Description of the image used for accessibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
          &quot;sourceUri&quot;: { # The URI for the image.
            &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
            &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
          },
        },
        &quot;version&quot;: &quot;A String&quot;, # Deprecated
        &quot;viewUnlockRequirement&quot;: &quot;A String&quot;, # View Unlock Requirement options for the offer.
        &quot;wideTitleImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The wide title image of the offer. When provided, this will be used in place of the title image in the top left of the card view.
          &quot;contentDescription&quot;: { # Description of the image used for accessibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
          &quot;sourceUri&quot;: { # The URI for the image.
            &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
            &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
          },
        },
        &quot;wordMark&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Deprecated.
          &quot;contentDescription&quot;: { # Description of the image used for accessibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
          &quot;sourceUri&quot;: { # The URI for the image.
            &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
            &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
          },
        },
      },
      &quot;disableExpirationNotification&quot;: True or False, # Indicates if notifications should explicitly be suppressed. If this field is set to true, regardless of the `messages` field, expiration notifications to the user will be suppressed. By default, this field is set to false. Currently, this can only be set for offers.
      &quot;groupingInfo&quot;: { # Information that controls how passes are grouped together.
        &quot;groupingId&quot;: &quot;A String&quot;, # Optional grouping ID for grouping the passes with the same ID visually together. Grouping with different types of passes is allowed.
        &quot;sortIndex&quot;: 42, # Optional index for sorting the passes when they are grouped with other passes. Passes with lower sort index are shown before passes with higher sort index. If unspecified, the value is assumed to be INT_MAX. For two passes with the same sort index, the sorting behavior is undefined.
      },
      &quot;hasLinkedDevice&quot;: True or False, # Whether this object is currently linked to a single device. This field is set by the platform when a user saves the object, linking it to their device. Intended for use by select partners. Contact support for additional information.
      &quot;hasUsers&quot;: True or False, # Indicates if the object has users. This field is set by the platform.
      &quot;heroImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional banner image displayed on the front of the card. If none is present, hero image of the class, if present, will be displayed. If hero image of the class is also not present, nothing will be displayed.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;id&quot;: &quot;A String&quot;, # Required. The unique identifier for an object. This ID must be unique across all objects 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. The unique identifier should only include alphanumeric characters, &#x27;.&#x27;, &#x27;_&#x27;, or &#x27;-&#x27;.
      &quot;imageModulesData&quot;: [ # Image module data. The maximum number of these fields displayed is 1 from object level and 1 for class object level.
        {
          &quot;id&quot;: &quot;A String&quot;, # The ID associated with an image module. This field is here to enable ease of management of image modules.
          &quot;mainImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A 100% width image.
            &quot;contentDescription&quot;: { # Description of the image used for accessibility.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
            &quot;sourceUri&quot;: { # The URI for the image.
              &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
              &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
                &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
                &quot;translatedValues&quot;: [ # Contains the translations for the string.
                  {
                    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                    &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                    &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                  },
                ],
              },
              &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
            },
          },
        },
      ],
      &quot;infoModuleData&quot;: { # Deprecated. Use textModulesData instead.
        &quot;labelValueRows&quot;: [ # A list of collections of labels and values. These will be displayed one after the other in a singular column.
          {
            &quot;columns&quot;: [ # A list of labels and values. These will be displayed in a singular column, one after the other, not in multiple columns, despite the field name.
              { # A pair of text strings to be displayed in the details view. Note we no longer display LabelValue/LabelValueRow as a table, instead a list of items.
                &quot;label&quot;: &quot;A String&quot;, # The label for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
                &quot;localizedLabel&quot;: { # Translated strings for the label. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
                  &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                    &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                    &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                  },
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
                  &quot;translatedValues&quot;: [ # Contains the translations for the string.
                    {
                      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                      &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                      &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                    },
                  ],
                },
                &quot;localizedValue&quot;: { # Translated strings for the value. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
                  &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                    &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                    &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                  },
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
                  &quot;translatedValues&quot;: [ # Contains the translations for the string.
                    {
                      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                      &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                      &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                    },
                  ],
                },
                &quot;value&quot;: &quot;A String&quot;, # The value for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
              },
            ],
          },
        ],
        &quot;showLastUpdateTime&quot;: True or False,
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#offerObject&quot;`.
      &quot;linksModuleData&quot;: { # Links module data. If links module data is also defined on the class, both will be displayed.
        &quot;uris&quot;: [ # The list of URIs.
          {
            &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
            &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
            &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;uri&quot;: &quot;A String&quot;, # 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.
          },
        ],
      },
      &quot;locations&quot;: [ # Note: This field is currently not supported to trigger geo notifications.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#latLongPoint&quot;`.
          &quot;latitude&quot;: 3.14, # The latitude specified as any value in the range of -90.0 through +90.0, both inclusive. Values outside these bounds will be rejected.
          &quot;longitude&quot;: 3.14, # The longitude specified in the range -180.0 through +180.0, both inclusive. Values outside these bounds will be rejected.
        },
      ],
      &quot;messages&quot;: [ # 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.
        { # A message that will be displayed with a Valuable
          &quot;body&quot;: &quot;A String&quot;, # The message body.
          &quot;displayInterval&quot;: { # The period of time that the message will be displayed to users. You can define both a `startTime` and `endTime` for each message. A message is displayed immediately after a Wallet Object is inserted unless a `startTime` is set. The message will appear in a list of messages indefinitely if `endTime` is not provided.
            &quot;end&quot;: { # End time of the interval. Offset is not required. If an offset is provided and `start` time is set, `start` must also include an offset.
              &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#timeInterval&quot;`.
            &quot;start&quot;: { # Start time of the interval. Offset is not required. If an offset is provided and `end` time is set, `end` must also include an offset.
              &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
            },
          },
          &quot;header&quot;: &quot;A String&quot;, # The message header.
          &quot;id&quot;: &quot;A String&quot;, # 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.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#walletObjectMessage&quot;`.
          &quot;localizedBody&quot;: { # Translated strings for the message body.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;localizedHeader&quot;: { # Translated strings for the message header.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;messageType&quot;: &quot;A String&quot;, # The type of the message. Currently, this can only be set for offers.
        },
      ],
      &quot;passConstraints&quot;: { # Container for any constraints that may be placed on passes. # Pass constraints for the object. Includes limiting NFC and screenshot behaviors.
        &quot;nfcConstraint&quot;: [ # The NFC constraints for the pass.
          &quot;A String&quot;,
        ],
        &quot;screenshotEligibility&quot;: &quot;A String&quot;, # The screenshot eligibility for the pass.
      },
      &quot;rotatingBarcode&quot;: { # The rotating barcode type and value.
        &quot;alternateText&quot;: &quot;A String&quot;, # An optional text that will override the default text that shows under the barcode. This field is intended for a human readable equivalent of the barcode value, used when the barcode cannot be scanned.
        &quot;initialRotatingBarcodeValues&quot;: { # A payload containing many barcode values and start date/time. # Input only. NOTE: This feature is only available for the transit vertical. Optional set of initial rotating barcode values. This allows a small subset of barcodes to be included with the object. Further rotating barcode values must be uploaded with the UploadRotatingBarcodeValues endpoint.
          &quot;periodMillis&quot;: &quot;A String&quot;, # Required. The amount of time each barcode is valid for.
          &quot;startDateTime&quot;: &quot;A String&quot;, # Required. The date/time the first barcode is valid from. Barcodes will be rotated through using period_millis defined on the object&#x27;s RotatingBarcodeValueInfo. This is an ISO 8601 extended format date/time, with an offset. 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 event were 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.
          &quot;values&quot;: [ # Required. The values to encode in the barcode. At least one value is required.
            &quot;A String&quot;,
          ],
        },
        &quot;renderEncoding&quot;: &quot;A String&quot;, # The render encoding for the barcode. When specified, barcode is rendered in the given encoding. Otherwise best known encoding is chosen by Google.
        &quot;showCodeText&quot;: { # Optional text that will be shown when the barcode is hidden behind a click action. This happens in cases where a pass has Smart Tap enabled. If not specified, a default is chosen by Google.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;totpDetails&quot;: { # Configuration for the time-based OTP substitutions. See https://tools.ietf.org/html/rfc6238 # Details used to evaluate the {totp_value_n} substitutions.
          &quot;algorithm&quot;: &quot;A String&quot;, # The TOTP algorithm used to generate the OTP.
          &quot;parameters&quot;: [ # The TOTP parameters for each of the {totp_value_*} substitutions. The TotpParameters at index n is used for the {totp_value_n} substitution.
            { # Configuration for the key and value length. See https://www.rfc-editor.org/rfc/rfc4226#section-5.3
              &quot;key&quot;: &quot;A String&quot;, # The secret key used for the TOTP value generation, encoded as a Base16 string.
              &quot;valueLength&quot;: 42, # The length of the TOTP value in decimal digits.
            },
          ],
          &quot;periodMillis&quot;: &quot;A String&quot;, # The time interval used for the TOTP value generation, in milliseconds.
        },
        &quot;type&quot;: &quot;A String&quot;, # The type of this barcode.
        &quot;valuePattern&quot;: &quot;A String&quot;, # String encoded barcode value. This string supports the following substitutions: * {totp_value_n}: Replaced with the TOTP value (see TotpDetails.parameters). * {totp_timestamp_millis}: Replaced with the timestamp (millis since epoch) at which the barcode was generated. * {totp_timestamp_seconds}: Replaced with the timestamp (seconds since epoch) at which the barcode was generated.
      },
      &quot;smartTapRedemptionValue&quot;: &quot;A String&quot;, # The value that will be transmitted to a Smart Tap certified terminal over NFC for this object. The class level fields `enableSmartTap` and `redemptionIssuers` must also be set up correctly in order for the pass to support Smart Tap. Only ASCII characters are supported.
      &quot;state&quot;: &quot;A String&quot;, # Required. The state of the object. This field is used to determine how an object is displayed in the app. For example, an `inactive` object is moved to the &quot;Expired passes&quot; section.
      &quot;textModulesData&quot;: [ # Text module data. If text module data is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from the object and 10 from the class.
        { # 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.
          &quot;body&quot;: &quot;A String&quot;, # 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.
          &quot;header&quot;: &quot;A String&quot;, # The header of the Text Module. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
          &quot;id&quot;: &quot;A String&quot;, # The ID associated with a text module. This field is here to enable ease of management of text modules.
          &quot;localizedBody&quot;: { # Translated strings for the body. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;localizedHeader&quot;: { # Translated strings for the header. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
        },
      ],
      &quot;validTimeInterval&quot;: { # The time period this object will be `active` and object can be used. An object&#x27;s state will be changed to `expired` when this time period has passed.
        &quot;end&quot;: { # End time of the interval. Offset is not required. If an offset is provided and `start` time is set, `start` must also include an offset.
          &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#timeInterval&quot;`.
        &quot;start&quot;: { # Start time of the interval. Offset is not required. If an offset is provided and `end` time is set, `end` must also include an offset.
          &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
        },
      },
      &quot;version&quot;: &quot;A String&quot;, # Deprecated
    },
  ],
}</pre>
</div>

<div class="method">
    <code class="details" id="patch">patch(resourceId, body=None, x__xgafv=None)</code>
  <pre>Updates the offer object referenced by the given object ID. This method supports patch semantics.

Args:
  resourceId: string, The unique identifier for an object. This ID must be unique across all objects 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, &#x27;.&#x27;, &#x27;_&#x27;, or &#x27;-&#x27;. (required)
  body: object, The request body.
    The object takes the form of:

{
  &quot;appLinkData&quot;: { # Optional information about the partner app link.
    &quot;androidAppLinkInfo&quot;: { # Optional information about the partner app link. If included, the app link link module will be rendered on the valuable details on the android client.
      &quot;appLogoImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional image to be displayed in the App Link Module
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;appTarget&quot;: { # Url to follow when opening the App Link Module on clients. It will be used by partners to open their webpage or deeplink into their app.
        &quot;targetUri&quot;: {
          &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
          &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
          &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # 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.
        },
      },
      &quot;description&quot;: { # String to be displayed in the description of the App Link Module Required
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;title&quot;: { # String to be displayed in the title of the App Link Module Required
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
    },
    &quot;iosAppLinkInfo&quot;: { # Optional information about the partner app link. If included, the app link link module will be rendered on the valuable details on the ios client.
      &quot;appLogoImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional image to be displayed in the App Link Module
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;appTarget&quot;: { # Url to follow when opening the App Link Module on clients. It will be used by partners to open their webpage or deeplink into their app.
        &quot;targetUri&quot;: {
          &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
          &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
          &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # 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.
        },
      },
      &quot;description&quot;: { # String to be displayed in the description of the App Link Module Required
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;title&quot;: { # String to be displayed in the title of the App Link Module Required
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
    },
    &quot;webAppLinkInfo&quot;: { # Optional information about the partner app link. If included, the app link link module will be rendered on the valuable details on the web client.
      &quot;appLogoImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional image to be displayed in the App Link Module
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;appTarget&quot;: { # Url to follow when opening the App Link Module on clients. It will be used by partners to open their webpage or deeplink into their app.
        &quot;targetUri&quot;: {
          &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
          &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
          &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # 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.
        },
      },
      &quot;description&quot;: { # String to be displayed in the description of the App Link Module Required
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;title&quot;: { # String to be displayed in the title of the App Link Module Required
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
    },
  },
  &quot;barcode&quot;: { # The barcode type and value.
    &quot;alternateText&quot;: &quot;A String&quot;, # An optional text that will override the default text that shows under the barcode. This field is intended for a human readable equivalent of the barcode value, used when the barcode cannot be scanned.
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#barcode&quot;`.
    &quot;renderEncoding&quot;: &quot;A String&quot;, # The render encoding for the barcode. When specified, barcode is rendered in the given encoding. Otherwise best known encoding is chosen by Google.
    &quot;showCodeText&quot;: { # Optional text that will be shown when the barcode is hidden behind a click action. This happens in cases where a pass has Smart Tap enabled. If not specified, a default is chosen by Google.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;type&quot;: &quot;A String&quot;, # The type of barcode.
    &quot;value&quot;: &quot;A String&quot;, # The value encoded in the barcode.
  },
  &quot;classId&quot;: &quot;A String&quot;, # Required. The class associated with this object. The class must be of the same type as this object, must already exist, and must be approved. Class IDs should follow the format issuer ID.identifier where the former is issued by Google and latter is chosen by you.
  &quot;classReference&quot;: { # A copy of the inherited fields of the parent class. These fields are retrieved during a GET.
    &quot;allowMultipleUsersPerObject&quot;: True or False, # Deprecated. Use `multipleDevicesAndHoldersAllowedStatus` instead.
    &quot;callbackOptions&quot;: { # Callback options to be used to call the issuer back for every save/delete of an object for this class by the end-user. All objects of this class are eligible for the callback.
      &quot;updateRequestUrl&quot;: &quot;A String&quot;, # 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:Google-Valuables. Deprecated.
      &quot;url&quot;: &quot;A String&quot;, # 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:Google-Valuables.
    },
    &quot;classTemplateInfo&quot;: { # Template information about how the class should be displayed. If unset, Google will fallback to a default set of fields to display.
      &quot;cardBarcodeSectionDetails&quot;: { # Specifies extra information to be displayed above and below the barcode.
        &quot;firstBottomDetail&quot;: { # Optional information to display below the barcode.
          &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
            &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
              { # Reference definition to use with field overrides.
                &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
              },
            ],
          },
        },
        &quot;firstTopDetail&quot;: { # Optional information to display above the barcode. If `secondTopDetail` is defined, this will be displayed to the start side of this detail section.
          &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
            &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
              { # Reference definition to use with field overrides.
                &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
              },
            ],
          },
        },
        &quot;secondTopDetail&quot;: { # Optional second piece of information to display above the barcode. If `firstTopDetail` is defined, this will be displayed to the end side of this detail section.
          &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
            &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
              { # Reference definition to use with field overrides.
                &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
              },
            ],
          },
        },
      },
      &quot;cardTemplateOverride&quot;: { # Override for the card view.
        &quot;cardRowTemplateInfos&quot;: [ # Template information for rows in the card view. At most three rows are allowed to be specified.
          {
            &quot;oneItem&quot;: { # Template for a row containing one item. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
              &quot;item&quot;: { # The item to be displayed in the row. This item will be automatically centered.
                &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
                &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
              },
            },
            &quot;threeItems&quot;: { # Template for a row containing three items. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
              &quot;endItem&quot;: { # The item to be displayed at the end of the row. This item will be aligned to the right.
                &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
                &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
              },
              &quot;middleItem&quot;: { # The item to be displayed in the middle of the row. This item will be centered between the start and end items.
                &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
                &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
              },
              &quot;startItem&quot;: { # The item to be displayed at the start of the row. This item will be aligned to the left.
                &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
                &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
              },
            },
            &quot;twoItems&quot;: { # Template for a row containing two items. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
              &quot;endItem&quot;: { # The item to be displayed at the end of the row. This item will be aligned to the right.
                &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
                &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
              },
              &quot;startItem&quot;: { # The item to be displayed at the start of the row. This item will be aligned to the left.
                &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
                &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
              },
            },
          },
        ],
      },
      &quot;detailsTemplateOverride&quot;: { # Override for the details view (beneath the card view).
        &quot;detailsItemInfos&quot;: [ # Information for the &quot;nth&quot; item displayed in the details list.
          {
            &quot;item&quot;: { # The item to be displayed in the details list.
              &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
              &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
              &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
            },
          },
        ],
      },
      &quot;listTemplateOverride&quot;: { # Override for the passes list view.
        &quot;firstRowOption&quot;: { # Specifies from a predefined set of options or from a reference to the field what will be displayed in the first row.
          &quot;fieldOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the first row.
            &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
              { # Reference definition to use with field overrides.
                &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
              },
            ],
          },
          &quot;transitOption&quot;: &quot;A String&quot;,
        },
        &quot;secondRowOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the second row. This option is only displayed if there are not multiple user objects in a group. If there is a group, the second row will always display a field shared by all objects.
          &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
            { # Reference definition to use with field overrides.
              &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
              &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
            },
          ],
        },
        &quot;thirdRowOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the third row. This option is only displayed if there are not multiple user objects in a group. If there is a group, the third row will always display the number of objects in the group. Eg: &quot;3 passes&quot;
          &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
            { # Reference definition to use with field overrides.
              &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
              &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
            },
          ],
        },
      },
    },
    &quot;countryCode&quot;: &quot;A String&quot;, # Country code used to display the card&#x27;s country (when the user is not in that country), as well as to display localized content when content is not available in the user&#x27;s locale.
    &quot;details&quot;: &quot;A String&quot;, # The details of the offer.
    &quot;enableSmartTap&quot;: True or False, # Identifies whether this class supports Smart Tap. The `redemptionIssuers` and object level `smartTapRedemptionLevel` fields must also be set up correctly in order for a pass to support Smart Tap.
    &quot;finePrint&quot;: &quot;A String&quot;, # The fine print or terms of the offer, such as &quot;20% off any t-shirt at Adam&#x27;s Apparel.&quot;
    &quot;helpUri&quot;: { # The help link for the offer, such as `http://myownpersonaldomain.com/help`
      &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
      &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;uri&quot;: &quot;A String&quot;, # 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.
    },
    &quot;heroImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional banner image displayed on the front of the card. If none is present, nothing will be displayed. The image will display at 100% width.
      &quot;contentDescription&quot;: { # Description of the image used for accessibility.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
      &quot;sourceUri&quot;: { # The URI for the image.
        &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
        &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
      },
    },
    &quot;hexBackgroundColor&quot;: &quot;A String&quot;, # The background color for the card. If not set the dominant color of the hero image is used, and if no hero image is set, the dominant color of the logo is used. The format is #rrggbb where rrggbb is a hex RGB triplet, such as `#ffcc00`. You can also use the shorthand version of the RGB triplet which is #rgb, such as `#fc0`.
    &quot;homepageUri&quot;: { # The URI of your application&#x27;s home page. Populating the URI in this field results in the exact same behavior as populating an URI in linksModuleData (when an object is rendered, a link to the homepage is shown in what would usually be thought of as the linksModuleData section of the object).
      &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
      &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;uri&quot;: &quot;A String&quot;, # 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.
    },
    &quot;id&quot;: &quot;A String&quot;, # Required. 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, &#x27;.&#x27;, &#x27;_&#x27;, or &#x27;-&#x27;.
    &quot;imageModulesData&quot;: [ # Image module data. The maximum number of these fields displayed is 1 from object level and 1 for class object level.
      {
        &quot;id&quot;: &quot;A String&quot;, # The ID associated with an image module. This field is here to enable ease of management of image modules.
        &quot;mainImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A 100% width image.
          &quot;contentDescription&quot;: { # Description of the image used for accessibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
          &quot;sourceUri&quot;: { # The URI for the image.
            &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
            &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
          },
        },
      },
    ],
    &quot;infoModuleData&quot;: { # Deprecated. Use textModulesData instead.
      &quot;labelValueRows&quot;: [ # A list of collections of labels and values. These will be displayed one after the other in a singular column.
        {
          &quot;columns&quot;: [ # A list of labels and values. These will be displayed in a singular column, one after the other, not in multiple columns, despite the field name.
            { # A pair of text strings to be displayed in the details view. Note we no longer display LabelValue/LabelValueRow as a table, instead a list of items.
              &quot;label&quot;: &quot;A String&quot;, # The label for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
              &quot;localizedLabel&quot;: { # Translated strings for the label. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
                &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
                &quot;translatedValues&quot;: [ # Contains the translations for the string.
                  {
                    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                    &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                    &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                  },
                ],
              },
              &quot;localizedValue&quot;: { # Translated strings for the value. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
                &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
                &quot;translatedValues&quot;: [ # Contains the translations for the string.
                  {
                    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                    &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                    &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                  },
                ],
              },
              &quot;value&quot;: &quot;A String&quot;, # The value for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
            },
          ],
        },
      ],
      &quot;showLastUpdateTime&quot;: True or False,
    },
    &quot;issuerName&quot;: &quot;A String&quot;, # Required. The issuer name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens.
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#offerClass&quot;`.
    &quot;linksModuleData&quot;: { # Links module data. If links module data is also defined on the object, both will be displayed.
      &quot;uris&quot;: [ # The list of URIs.
        {
          &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
          &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
          &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # 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.
        },
      ],
    },
    &quot;localizedDetails&quot;: { # Translated strings for the details.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;localizedFinePrint&quot;: { # Translated strings for the fine_print.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;localizedIssuerName&quot;: { # Translated strings for the issuer_name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;localizedProvider&quot;: { # Translated strings for the provider. Recommended maximum length is 12 characters to ensure full string is displayed on smaller screens.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;localizedShortTitle&quot;: { # Translated strings for the short title. Recommended maximum length is 20 characters.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;localizedTitle&quot;: { # Translated strings for the title. Recommended maximum length is 60 characters to ensure full string is displayed on smaller screens.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;locations&quot;: [ # Note: This field is currently not supported to trigger geo notifications.
      {
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#latLongPoint&quot;`.
        &quot;latitude&quot;: 3.14, # The latitude specified as any value in the range of -90.0 through +90.0, both inclusive. Values outside these bounds will be rejected.
        &quot;longitude&quot;: 3.14, # The longitude specified in the range -180.0 through +180.0, both inclusive. Values outside these bounds will be rejected.
      },
    ],
    &quot;messages&quot;: [ # 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.
      { # A message that will be displayed with a Valuable
        &quot;body&quot;: &quot;A String&quot;, # The message body.
        &quot;displayInterval&quot;: { # The period of time that the message will be displayed to users. You can define both a `startTime` and `endTime` for each message. A message is displayed immediately after a Wallet Object is inserted unless a `startTime` is set. The message will appear in a list of messages indefinitely if `endTime` is not provided.
          &quot;end&quot;: { # End time of the interval. Offset is not required. If an offset is provided and `start` time is set, `start` must also include an offset.
            &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#timeInterval&quot;`.
          &quot;start&quot;: { # Start time of the interval. Offset is not required. If an offset is provided and `end` time is set, `end` must also include an offset.
            &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
          },
        },
        &quot;header&quot;: &quot;A String&quot;, # The message header.
        &quot;id&quot;: &quot;A String&quot;, # 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.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#walletObjectMessage&quot;`.
        &quot;localizedBody&quot;: { # Translated strings for the message body.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;localizedHeader&quot;: { # Translated strings for the message header.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;messageType&quot;: &quot;A String&quot;, # The type of the message. Currently, this can only be set for offers.
      },
    ],
    &quot;multipleDevicesAndHoldersAllowedStatus&quot;: &quot;A String&quot;, # Identifies whether multiple users and devices will save the same object referencing this class.
    &quot;provider&quot;: &quot;A String&quot;, # Required. The offer provider (either the aggregator name or merchant name). Recommended maximum length is 12 characters to ensure full string is displayed on smaller screens.
    &quot;redemptionChannel&quot;: &quot;A String&quot;, # Required. The redemption channels applicable to this offer.
    &quot;redemptionIssuers&quot;: [ # 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.
      &quot;A String&quot;,
    ],
    &quot;review&quot;: { # The review comments set by the platform when a class is marked `approved` or `rejected`.
      &quot;comments&quot;: &quot;A String&quot;,
    },
    &quot;reviewStatus&quot;: &quot;A String&quot;, # Required. The status of the class. This field can be set to `draft` or The status of the class. This field can be set to `draft` or `underReview` using the insert, patch, or update API calls. Once the review state is changed from `draft` it may not be changed back to `draft`. You should keep this field to `draft` when the class is under development. A `draft` class cannot be used to create any object. You should set this field to `underReview` when you believe the class is ready for use. The platform will automatically set this field to `approved` and it can be immediately used to create or migrate objects. When updating an already `approved` class you should keep setting this field to `underReview`.
    &quot;securityAnimation&quot;: { # Optional information about the security animation. If this is set a security animation will be rendered on pass details.
      &quot;animationType&quot;: &quot;A String&quot;, # Type of animation.
    },
    &quot;shortTitle&quot;: &quot;A String&quot;, # A shortened version of the title of the offer, such as &quot;20% off,&quot; shown to users as a quick reference to the offer contents. Recommended maximum length is 20 characters.
    &quot;textModulesData&quot;: [ # Text module data. If text module data is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from the object and 10 from the class.
      { # 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.
        &quot;body&quot;: &quot;A String&quot;, # 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.
        &quot;header&quot;: &quot;A String&quot;, # The header of the Text Module. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
        &quot;id&quot;: &quot;A String&quot;, # The ID associated with a text module. This field is here to enable ease of management of text modules.
        &quot;localizedBody&quot;: { # Translated strings for the body. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;localizedHeader&quot;: { # Translated strings for the header. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
      },
    ],
    &quot;title&quot;: &quot;A String&quot;, # Required. The title of the offer, such as &quot;20% off any t-shirt.&quot; Recommended maximum length is 60 characters to ensure full string is displayed on smaller screens.
    &quot;titleImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The title image of the offer. This image is displayed in both the details and list views of the app.
      &quot;contentDescription&quot;: { # Description of the image used for accessibility.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
      &quot;sourceUri&quot;: { # The URI for the image.
        &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
        &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
      },
    },
    &quot;version&quot;: &quot;A String&quot;, # Deprecated
    &quot;viewUnlockRequirement&quot;: &quot;A String&quot;, # View Unlock Requirement options for the offer.
    &quot;wideTitleImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The wide title image of the offer. When provided, this will be used in place of the title image in the top left of the card view.
      &quot;contentDescription&quot;: { # Description of the image used for accessibility.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
      &quot;sourceUri&quot;: { # The URI for the image.
        &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
        &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
      },
    },
    &quot;wordMark&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Deprecated.
      &quot;contentDescription&quot;: { # Description of the image used for accessibility.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
      &quot;sourceUri&quot;: { # The URI for the image.
        &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
        &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
      },
    },
  },
  &quot;disableExpirationNotification&quot;: True or False, # Indicates if notifications should explicitly be suppressed. If this field is set to true, regardless of the `messages` field, expiration notifications to the user will be suppressed. By default, this field is set to false. Currently, this can only be set for offers.
  &quot;groupingInfo&quot;: { # Information that controls how passes are grouped together.
    &quot;groupingId&quot;: &quot;A String&quot;, # Optional grouping ID for grouping the passes with the same ID visually together. Grouping with different types of passes is allowed.
    &quot;sortIndex&quot;: 42, # Optional index for sorting the passes when they are grouped with other passes. Passes with lower sort index are shown before passes with higher sort index. If unspecified, the value is assumed to be INT_MAX. For two passes with the same sort index, the sorting behavior is undefined.
  },
  &quot;hasLinkedDevice&quot;: True or False, # Whether this object is currently linked to a single device. This field is set by the platform when a user saves the object, linking it to their device. Intended for use by select partners. Contact support for additional information.
  &quot;hasUsers&quot;: True or False, # Indicates if the object has users. This field is set by the platform.
  &quot;heroImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional banner image displayed on the front of the card. If none is present, hero image of the class, if present, will be displayed. If hero image of the class is also not present, nothing will be displayed.
    &quot;contentDescription&quot;: { # Description of the image used for accessibility.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
    &quot;sourceUri&quot;: { # The URI for the image.
      &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
      &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
    },
  },
  &quot;id&quot;: &quot;A String&quot;, # Required. The unique identifier for an object. This ID must be unique across all objects 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. The unique identifier should only include alphanumeric characters, &#x27;.&#x27;, &#x27;_&#x27;, or &#x27;-&#x27;.
  &quot;imageModulesData&quot;: [ # Image module data. The maximum number of these fields displayed is 1 from object level and 1 for class object level.
    {
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with an image module. This field is here to enable ease of management of image modules.
      &quot;mainImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A 100% width image.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
    },
  ],
  &quot;infoModuleData&quot;: { # Deprecated. Use textModulesData instead.
    &quot;labelValueRows&quot;: [ # A list of collections of labels and values. These will be displayed one after the other in a singular column.
      {
        &quot;columns&quot;: [ # A list of labels and values. These will be displayed in a singular column, one after the other, not in multiple columns, despite the field name.
          { # A pair of text strings to be displayed in the details view. Note we no longer display LabelValue/LabelValueRow as a table, instead a list of items.
            &quot;label&quot;: &quot;A String&quot;, # The label for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
            &quot;localizedLabel&quot;: { # Translated strings for the label. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;localizedValue&quot;: { # Translated strings for the value. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;value&quot;: &quot;A String&quot;, # The value for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
          },
        ],
      },
    ],
    &quot;showLastUpdateTime&quot;: True or False,
  },
  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#offerObject&quot;`.
  &quot;linksModuleData&quot;: { # Links module data. If links module data is also defined on the class, both will be displayed.
    &quot;uris&quot;: [ # The list of URIs.
      {
        &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
        &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
        &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;uri&quot;: &quot;A String&quot;, # 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.
      },
    ],
  },
  &quot;locations&quot;: [ # Note: This field is currently not supported to trigger geo notifications.
    {
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#latLongPoint&quot;`.
      &quot;latitude&quot;: 3.14, # The latitude specified as any value in the range of -90.0 through +90.0, both inclusive. Values outside these bounds will be rejected.
      &quot;longitude&quot;: 3.14, # The longitude specified in the range -180.0 through +180.0, both inclusive. Values outside these bounds will be rejected.
    },
  ],
  &quot;messages&quot;: [ # 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.
    { # A message that will be displayed with a Valuable
      &quot;body&quot;: &quot;A String&quot;, # The message body.
      &quot;displayInterval&quot;: { # The period of time that the message will be displayed to users. You can define both a `startTime` and `endTime` for each message. A message is displayed immediately after a Wallet Object is inserted unless a `startTime` is set. The message will appear in a list of messages indefinitely if `endTime` is not provided.
        &quot;end&quot;: { # End time of the interval. Offset is not required. If an offset is provided and `start` time is set, `start` must also include an offset.
          &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#timeInterval&quot;`.
        &quot;start&quot;: { # Start time of the interval. Offset is not required. If an offset is provided and `end` time is set, `end` must also include an offset.
          &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
        },
      },
      &quot;header&quot;: &quot;A String&quot;, # The message header.
      &quot;id&quot;: &quot;A String&quot;, # 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.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#walletObjectMessage&quot;`.
      &quot;localizedBody&quot;: { # Translated strings for the message body.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;localizedHeader&quot;: { # Translated strings for the message header.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;messageType&quot;: &quot;A String&quot;, # The type of the message. Currently, this can only be set for offers.
    },
  ],
  &quot;passConstraints&quot;: { # Container for any constraints that may be placed on passes. # Pass constraints for the object. Includes limiting NFC and screenshot behaviors.
    &quot;nfcConstraint&quot;: [ # The NFC constraints for the pass.
      &quot;A String&quot;,
    ],
    &quot;screenshotEligibility&quot;: &quot;A String&quot;, # The screenshot eligibility for the pass.
  },
  &quot;rotatingBarcode&quot;: { # The rotating barcode type and value.
    &quot;alternateText&quot;: &quot;A String&quot;, # An optional text that will override the default text that shows under the barcode. This field is intended for a human readable equivalent of the barcode value, used when the barcode cannot be scanned.
    &quot;initialRotatingBarcodeValues&quot;: { # A payload containing many barcode values and start date/time. # Input only. NOTE: This feature is only available for the transit vertical. Optional set of initial rotating barcode values. This allows a small subset of barcodes to be included with the object. Further rotating barcode values must be uploaded with the UploadRotatingBarcodeValues endpoint.
      &quot;periodMillis&quot;: &quot;A String&quot;, # Required. The amount of time each barcode is valid for.
      &quot;startDateTime&quot;: &quot;A String&quot;, # Required. The date/time the first barcode is valid from. Barcodes will be rotated through using period_millis defined on the object&#x27;s RotatingBarcodeValueInfo. This is an ISO 8601 extended format date/time, with an offset. 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 event were 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.
      &quot;values&quot;: [ # Required. The values to encode in the barcode. At least one value is required.
        &quot;A String&quot;,
      ],
    },
    &quot;renderEncoding&quot;: &quot;A String&quot;, # The render encoding for the barcode. When specified, barcode is rendered in the given encoding. Otherwise best known encoding is chosen by Google.
    &quot;showCodeText&quot;: { # Optional text that will be shown when the barcode is hidden behind a click action. This happens in cases where a pass has Smart Tap enabled. If not specified, a default is chosen by Google.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;totpDetails&quot;: { # Configuration for the time-based OTP substitutions. See https://tools.ietf.org/html/rfc6238 # Details used to evaluate the {totp_value_n} substitutions.
      &quot;algorithm&quot;: &quot;A String&quot;, # The TOTP algorithm used to generate the OTP.
      &quot;parameters&quot;: [ # The TOTP parameters for each of the {totp_value_*} substitutions. The TotpParameters at index n is used for the {totp_value_n} substitution.
        { # Configuration for the key and value length. See https://www.rfc-editor.org/rfc/rfc4226#section-5.3
          &quot;key&quot;: &quot;A String&quot;, # The secret key used for the TOTP value generation, encoded as a Base16 string.
          &quot;valueLength&quot;: 42, # The length of the TOTP value in decimal digits.
        },
      ],
      &quot;periodMillis&quot;: &quot;A String&quot;, # The time interval used for the TOTP value generation, in milliseconds.
    },
    &quot;type&quot;: &quot;A String&quot;, # The type of this barcode.
    &quot;valuePattern&quot;: &quot;A String&quot;, # String encoded barcode value. This string supports the following substitutions: * {totp_value_n}: Replaced with the TOTP value (see TotpDetails.parameters). * {totp_timestamp_millis}: Replaced with the timestamp (millis since epoch) at which the barcode was generated. * {totp_timestamp_seconds}: Replaced with the timestamp (seconds since epoch) at which the barcode was generated.
  },
  &quot;smartTapRedemptionValue&quot;: &quot;A String&quot;, # The value that will be transmitted to a Smart Tap certified terminal over NFC for this object. The class level fields `enableSmartTap` and `redemptionIssuers` must also be set up correctly in order for the pass to support Smart Tap. Only ASCII characters are supported.
  &quot;state&quot;: &quot;A String&quot;, # Required. The state of the object. This field is used to determine how an object is displayed in the app. For example, an `inactive` object is moved to the &quot;Expired passes&quot; section.
  &quot;textModulesData&quot;: [ # Text module data. If text module data is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from the object and 10 from the class.
    { # 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.
      &quot;body&quot;: &quot;A String&quot;, # 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.
      &quot;header&quot;: &quot;A String&quot;, # The header of the Text Module. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with a text module. This field is here to enable ease of management of text modules.
      &quot;localizedBody&quot;: { # Translated strings for the body. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;localizedHeader&quot;: { # Translated strings for the header. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
    },
  ],
  &quot;validTimeInterval&quot;: { # The time period this object will be `active` and object can be used. An object&#x27;s state will be changed to `expired` when this time period has passed.
    &quot;end&quot;: { # End time of the interval. Offset is not required. If an offset is provided and `start` time is set, `start` must also include an offset.
      &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#timeInterval&quot;`.
    &quot;start&quot;: { # Start time of the interval. Offset is not required. If an offset is provided and `end` time is set, `end` must also include an offset.
      &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
    },
  },
  &quot;version&quot;: &quot;A String&quot;, # Deprecated
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
  &quot;appLinkData&quot;: { # Optional information about the partner app link.
    &quot;androidAppLinkInfo&quot;: { # Optional information about the partner app link. If included, the app link link module will be rendered on the valuable details on the android client.
      &quot;appLogoImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional image to be displayed in the App Link Module
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;appTarget&quot;: { # Url to follow when opening the App Link Module on clients. It will be used by partners to open their webpage or deeplink into their app.
        &quot;targetUri&quot;: {
          &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
          &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
          &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # 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.
        },
      },
      &quot;description&quot;: { # String to be displayed in the description of the App Link Module Required
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;title&quot;: { # String to be displayed in the title of the App Link Module Required
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
    },
    &quot;iosAppLinkInfo&quot;: { # Optional information about the partner app link. If included, the app link link module will be rendered on the valuable details on the ios client.
      &quot;appLogoImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional image to be displayed in the App Link Module
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;appTarget&quot;: { # Url to follow when opening the App Link Module on clients. It will be used by partners to open their webpage or deeplink into their app.
        &quot;targetUri&quot;: {
          &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
          &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
          &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # 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.
        },
      },
      &quot;description&quot;: { # String to be displayed in the description of the App Link Module Required
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;title&quot;: { # String to be displayed in the title of the App Link Module Required
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
    },
    &quot;webAppLinkInfo&quot;: { # Optional information about the partner app link. If included, the app link link module will be rendered on the valuable details on the web client.
      &quot;appLogoImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional image to be displayed in the App Link Module
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;appTarget&quot;: { # Url to follow when opening the App Link Module on clients. It will be used by partners to open their webpage or deeplink into their app.
        &quot;targetUri&quot;: {
          &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
          &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
          &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # 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.
        },
      },
      &quot;description&quot;: { # String to be displayed in the description of the App Link Module Required
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;title&quot;: { # String to be displayed in the title of the App Link Module Required
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
    },
  },
  &quot;barcode&quot;: { # The barcode type and value.
    &quot;alternateText&quot;: &quot;A String&quot;, # An optional text that will override the default text that shows under the barcode. This field is intended for a human readable equivalent of the barcode value, used when the barcode cannot be scanned.
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#barcode&quot;`.
    &quot;renderEncoding&quot;: &quot;A String&quot;, # The render encoding for the barcode. When specified, barcode is rendered in the given encoding. Otherwise best known encoding is chosen by Google.
    &quot;showCodeText&quot;: { # Optional text that will be shown when the barcode is hidden behind a click action. This happens in cases where a pass has Smart Tap enabled. If not specified, a default is chosen by Google.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;type&quot;: &quot;A String&quot;, # The type of barcode.
    &quot;value&quot;: &quot;A String&quot;, # The value encoded in the barcode.
  },
  &quot;classId&quot;: &quot;A String&quot;, # Required. The class associated with this object. The class must be of the same type as this object, must already exist, and must be approved. Class IDs should follow the format issuer ID.identifier where the former is issued by Google and latter is chosen by you.
  &quot;classReference&quot;: { # A copy of the inherited fields of the parent class. These fields are retrieved during a GET.
    &quot;allowMultipleUsersPerObject&quot;: True or False, # Deprecated. Use `multipleDevicesAndHoldersAllowedStatus` instead.
    &quot;callbackOptions&quot;: { # Callback options to be used to call the issuer back for every save/delete of an object for this class by the end-user. All objects of this class are eligible for the callback.
      &quot;updateRequestUrl&quot;: &quot;A String&quot;, # 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:Google-Valuables. Deprecated.
      &quot;url&quot;: &quot;A String&quot;, # 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:Google-Valuables.
    },
    &quot;classTemplateInfo&quot;: { # Template information about how the class should be displayed. If unset, Google will fallback to a default set of fields to display.
      &quot;cardBarcodeSectionDetails&quot;: { # Specifies extra information to be displayed above and below the barcode.
        &quot;firstBottomDetail&quot;: { # Optional information to display below the barcode.
          &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
            &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
              { # Reference definition to use with field overrides.
                &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
              },
            ],
          },
        },
        &quot;firstTopDetail&quot;: { # Optional information to display above the barcode. If `secondTopDetail` is defined, this will be displayed to the start side of this detail section.
          &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
            &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
              { # Reference definition to use with field overrides.
                &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
              },
            ],
          },
        },
        &quot;secondTopDetail&quot;: { # Optional second piece of information to display above the barcode. If `firstTopDetail` is defined, this will be displayed to the end side of this detail section.
          &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
            &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
              { # Reference definition to use with field overrides.
                &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
              },
            ],
          },
        },
      },
      &quot;cardTemplateOverride&quot;: { # Override for the card view.
        &quot;cardRowTemplateInfos&quot;: [ # Template information for rows in the card view. At most three rows are allowed to be specified.
          {
            &quot;oneItem&quot;: { # Template for a row containing one item. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
              &quot;item&quot;: { # The item to be displayed in the row. This item will be automatically centered.
                &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
                &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
              },
            },
            &quot;threeItems&quot;: { # Template for a row containing three items. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
              &quot;endItem&quot;: { # The item to be displayed at the end of the row. This item will be aligned to the right.
                &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
                &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
              },
              &quot;middleItem&quot;: { # The item to be displayed in the middle of the row. This item will be centered between the start and end items.
                &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
                &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
              },
              &quot;startItem&quot;: { # The item to be displayed at the start of the row. This item will be aligned to the left.
                &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
                &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
              },
            },
            &quot;twoItems&quot;: { # Template for a row containing two items. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
              &quot;endItem&quot;: { # The item to be displayed at the end of the row. This item will be aligned to the right.
                &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
                &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
              },
              &quot;startItem&quot;: { # The item to be displayed at the start of the row. This item will be aligned to the left.
                &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
                &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
              },
            },
          },
        ],
      },
      &quot;detailsTemplateOverride&quot;: { # Override for the details view (beneath the card view).
        &quot;detailsItemInfos&quot;: [ # Information for the &quot;nth&quot; item displayed in the details list.
          {
            &quot;item&quot;: { # The item to be displayed in the details list.
              &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
              &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
              &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
            },
          },
        ],
      },
      &quot;listTemplateOverride&quot;: { # Override for the passes list view.
        &quot;firstRowOption&quot;: { # Specifies from a predefined set of options or from a reference to the field what will be displayed in the first row.
          &quot;fieldOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the first row.
            &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
              { # Reference definition to use with field overrides.
                &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
              },
            ],
          },
          &quot;transitOption&quot;: &quot;A String&quot;,
        },
        &quot;secondRowOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the second row. This option is only displayed if there are not multiple user objects in a group. If there is a group, the second row will always display a field shared by all objects.
          &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
            { # Reference definition to use with field overrides.
              &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
              &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
            },
          ],
        },
        &quot;thirdRowOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the third row. This option is only displayed if there are not multiple user objects in a group. If there is a group, the third row will always display the number of objects in the group. Eg: &quot;3 passes&quot;
          &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
            { # Reference definition to use with field overrides.
              &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
              &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
            },
          ],
        },
      },
    },
    &quot;countryCode&quot;: &quot;A String&quot;, # Country code used to display the card&#x27;s country (when the user is not in that country), as well as to display localized content when content is not available in the user&#x27;s locale.
    &quot;details&quot;: &quot;A String&quot;, # The details of the offer.
    &quot;enableSmartTap&quot;: True or False, # Identifies whether this class supports Smart Tap. The `redemptionIssuers` and object level `smartTapRedemptionLevel` fields must also be set up correctly in order for a pass to support Smart Tap.
    &quot;finePrint&quot;: &quot;A String&quot;, # The fine print or terms of the offer, such as &quot;20% off any t-shirt at Adam&#x27;s Apparel.&quot;
    &quot;helpUri&quot;: { # The help link for the offer, such as `http://myownpersonaldomain.com/help`
      &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
      &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;uri&quot;: &quot;A String&quot;, # 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.
    },
    &quot;heroImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional banner image displayed on the front of the card. If none is present, nothing will be displayed. The image will display at 100% width.
      &quot;contentDescription&quot;: { # Description of the image used for accessibility.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
      &quot;sourceUri&quot;: { # The URI for the image.
        &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
        &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
      },
    },
    &quot;hexBackgroundColor&quot;: &quot;A String&quot;, # The background color for the card. If not set the dominant color of the hero image is used, and if no hero image is set, the dominant color of the logo is used. The format is #rrggbb where rrggbb is a hex RGB triplet, such as `#ffcc00`. You can also use the shorthand version of the RGB triplet which is #rgb, such as `#fc0`.
    &quot;homepageUri&quot;: { # The URI of your application&#x27;s home page. Populating the URI in this field results in the exact same behavior as populating an URI in linksModuleData (when an object is rendered, a link to the homepage is shown in what would usually be thought of as the linksModuleData section of the object).
      &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
      &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;uri&quot;: &quot;A String&quot;, # 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.
    },
    &quot;id&quot;: &quot;A String&quot;, # Required. 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, &#x27;.&#x27;, &#x27;_&#x27;, or &#x27;-&#x27;.
    &quot;imageModulesData&quot;: [ # Image module data. The maximum number of these fields displayed is 1 from object level and 1 for class object level.
      {
        &quot;id&quot;: &quot;A String&quot;, # The ID associated with an image module. This field is here to enable ease of management of image modules.
        &quot;mainImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A 100% width image.
          &quot;contentDescription&quot;: { # Description of the image used for accessibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
          &quot;sourceUri&quot;: { # The URI for the image.
            &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
            &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
          },
        },
      },
    ],
    &quot;infoModuleData&quot;: { # Deprecated. Use textModulesData instead.
      &quot;labelValueRows&quot;: [ # A list of collections of labels and values. These will be displayed one after the other in a singular column.
        {
          &quot;columns&quot;: [ # A list of labels and values. These will be displayed in a singular column, one after the other, not in multiple columns, despite the field name.
            { # A pair of text strings to be displayed in the details view. Note we no longer display LabelValue/LabelValueRow as a table, instead a list of items.
              &quot;label&quot;: &quot;A String&quot;, # The label for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
              &quot;localizedLabel&quot;: { # Translated strings for the label. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
                &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
                &quot;translatedValues&quot;: [ # Contains the translations for the string.
                  {
                    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                    &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                    &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                  },
                ],
              },
              &quot;localizedValue&quot;: { # Translated strings for the value. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
                &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
                &quot;translatedValues&quot;: [ # Contains the translations for the string.
                  {
                    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                    &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                    &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                  },
                ],
              },
              &quot;value&quot;: &quot;A String&quot;, # The value for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
            },
          ],
        },
      ],
      &quot;showLastUpdateTime&quot;: True or False,
    },
    &quot;issuerName&quot;: &quot;A String&quot;, # Required. The issuer name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens.
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#offerClass&quot;`.
    &quot;linksModuleData&quot;: { # Links module data. If links module data is also defined on the object, both will be displayed.
      &quot;uris&quot;: [ # The list of URIs.
        {
          &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
          &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
          &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # 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.
        },
      ],
    },
    &quot;localizedDetails&quot;: { # Translated strings for the details.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;localizedFinePrint&quot;: { # Translated strings for the fine_print.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;localizedIssuerName&quot;: { # Translated strings for the issuer_name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;localizedProvider&quot;: { # Translated strings for the provider. Recommended maximum length is 12 characters to ensure full string is displayed on smaller screens.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;localizedShortTitle&quot;: { # Translated strings for the short title. Recommended maximum length is 20 characters.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;localizedTitle&quot;: { # Translated strings for the title. Recommended maximum length is 60 characters to ensure full string is displayed on smaller screens.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;locations&quot;: [ # Note: This field is currently not supported to trigger geo notifications.
      {
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#latLongPoint&quot;`.
        &quot;latitude&quot;: 3.14, # The latitude specified as any value in the range of -90.0 through +90.0, both inclusive. Values outside these bounds will be rejected.
        &quot;longitude&quot;: 3.14, # The longitude specified in the range -180.0 through +180.0, both inclusive. Values outside these bounds will be rejected.
      },
    ],
    &quot;messages&quot;: [ # 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.
      { # A message that will be displayed with a Valuable
        &quot;body&quot;: &quot;A String&quot;, # The message body.
        &quot;displayInterval&quot;: { # The period of time that the message will be displayed to users. You can define both a `startTime` and `endTime` for each message. A message is displayed immediately after a Wallet Object is inserted unless a `startTime` is set. The message will appear in a list of messages indefinitely if `endTime` is not provided.
          &quot;end&quot;: { # End time of the interval. Offset is not required. If an offset is provided and `start` time is set, `start` must also include an offset.
            &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#timeInterval&quot;`.
          &quot;start&quot;: { # Start time of the interval. Offset is not required. If an offset is provided and `end` time is set, `end` must also include an offset.
            &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
          },
        },
        &quot;header&quot;: &quot;A String&quot;, # The message header.
        &quot;id&quot;: &quot;A String&quot;, # 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.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#walletObjectMessage&quot;`.
        &quot;localizedBody&quot;: { # Translated strings for the message body.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;localizedHeader&quot;: { # Translated strings for the message header.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;messageType&quot;: &quot;A String&quot;, # The type of the message. Currently, this can only be set for offers.
      },
    ],
    &quot;multipleDevicesAndHoldersAllowedStatus&quot;: &quot;A String&quot;, # Identifies whether multiple users and devices will save the same object referencing this class.
    &quot;provider&quot;: &quot;A String&quot;, # Required. The offer provider (either the aggregator name or merchant name). Recommended maximum length is 12 characters to ensure full string is displayed on smaller screens.
    &quot;redemptionChannel&quot;: &quot;A String&quot;, # Required. The redemption channels applicable to this offer.
    &quot;redemptionIssuers&quot;: [ # 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.
      &quot;A String&quot;,
    ],
    &quot;review&quot;: { # The review comments set by the platform when a class is marked `approved` or `rejected`.
      &quot;comments&quot;: &quot;A String&quot;,
    },
    &quot;reviewStatus&quot;: &quot;A String&quot;, # Required. The status of the class. This field can be set to `draft` or The status of the class. This field can be set to `draft` or `underReview` using the insert, patch, or update API calls. Once the review state is changed from `draft` it may not be changed back to `draft`. You should keep this field to `draft` when the class is under development. A `draft` class cannot be used to create any object. You should set this field to `underReview` when you believe the class is ready for use. The platform will automatically set this field to `approved` and it can be immediately used to create or migrate objects. When updating an already `approved` class you should keep setting this field to `underReview`.
    &quot;securityAnimation&quot;: { # Optional information about the security animation. If this is set a security animation will be rendered on pass details.
      &quot;animationType&quot;: &quot;A String&quot;, # Type of animation.
    },
    &quot;shortTitle&quot;: &quot;A String&quot;, # A shortened version of the title of the offer, such as &quot;20% off,&quot; shown to users as a quick reference to the offer contents. Recommended maximum length is 20 characters.
    &quot;textModulesData&quot;: [ # Text module data. If text module data is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from the object and 10 from the class.
      { # 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.
        &quot;body&quot;: &quot;A String&quot;, # 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.
        &quot;header&quot;: &quot;A String&quot;, # The header of the Text Module. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
        &quot;id&quot;: &quot;A String&quot;, # The ID associated with a text module. This field is here to enable ease of management of text modules.
        &quot;localizedBody&quot;: { # Translated strings for the body. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;localizedHeader&quot;: { # Translated strings for the header. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
      },
    ],
    &quot;title&quot;: &quot;A String&quot;, # Required. The title of the offer, such as &quot;20% off any t-shirt.&quot; Recommended maximum length is 60 characters to ensure full string is displayed on smaller screens.
    &quot;titleImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The title image of the offer. This image is displayed in both the details and list views of the app.
      &quot;contentDescription&quot;: { # Description of the image used for accessibility.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
      &quot;sourceUri&quot;: { # The URI for the image.
        &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
        &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
      },
    },
    &quot;version&quot;: &quot;A String&quot;, # Deprecated
    &quot;viewUnlockRequirement&quot;: &quot;A String&quot;, # View Unlock Requirement options for the offer.
    &quot;wideTitleImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The wide title image of the offer. When provided, this will be used in place of the title image in the top left of the card view.
      &quot;contentDescription&quot;: { # Description of the image used for accessibility.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
      &quot;sourceUri&quot;: { # The URI for the image.
        &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
        &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
      },
    },
    &quot;wordMark&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Deprecated.
      &quot;contentDescription&quot;: { # Description of the image used for accessibility.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
      &quot;sourceUri&quot;: { # The URI for the image.
        &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
        &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
      },
    },
  },
  &quot;disableExpirationNotification&quot;: True or False, # Indicates if notifications should explicitly be suppressed. If this field is set to true, regardless of the `messages` field, expiration notifications to the user will be suppressed. By default, this field is set to false. Currently, this can only be set for offers.
  &quot;groupingInfo&quot;: { # Information that controls how passes are grouped together.
    &quot;groupingId&quot;: &quot;A String&quot;, # Optional grouping ID for grouping the passes with the same ID visually together. Grouping with different types of passes is allowed.
    &quot;sortIndex&quot;: 42, # Optional index for sorting the passes when they are grouped with other passes. Passes with lower sort index are shown before passes with higher sort index. If unspecified, the value is assumed to be INT_MAX. For two passes with the same sort index, the sorting behavior is undefined.
  },
  &quot;hasLinkedDevice&quot;: True or False, # Whether this object is currently linked to a single device. This field is set by the platform when a user saves the object, linking it to their device. Intended for use by select partners. Contact support for additional information.
  &quot;hasUsers&quot;: True or False, # Indicates if the object has users. This field is set by the platform.
  &quot;heroImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional banner image displayed on the front of the card. If none is present, hero image of the class, if present, will be displayed. If hero image of the class is also not present, nothing will be displayed.
    &quot;contentDescription&quot;: { # Description of the image used for accessibility.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
    &quot;sourceUri&quot;: { # The URI for the image.
      &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
      &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
    },
  },
  &quot;id&quot;: &quot;A String&quot;, # Required. The unique identifier for an object. This ID must be unique across all objects 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. The unique identifier should only include alphanumeric characters, &#x27;.&#x27;, &#x27;_&#x27;, or &#x27;-&#x27;.
  &quot;imageModulesData&quot;: [ # Image module data. The maximum number of these fields displayed is 1 from object level and 1 for class object level.
    {
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with an image module. This field is here to enable ease of management of image modules.
      &quot;mainImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A 100% width image.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
    },
  ],
  &quot;infoModuleData&quot;: { # Deprecated. Use textModulesData instead.
    &quot;labelValueRows&quot;: [ # A list of collections of labels and values. These will be displayed one after the other in a singular column.
      {
        &quot;columns&quot;: [ # A list of labels and values. These will be displayed in a singular column, one after the other, not in multiple columns, despite the field name.
          { # A pair of text strings to be displayed in the details view. Note we no longer display LabelValue/LabelValueRow as a table, instead a list of items.
            &quot;label&quot;: &quot;A String&quot;, # The label for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
            &quot;localizedLabel&quot;: { # Translated strings for the label. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;localizedValue&quot;: { # Translated strings for the value. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;value&quot;: &quot;A String&quot;, # The value for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
          },
        ],
      },
    ],
    &quot;showLastUpdateTime&quot;: True or False,
  },
  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#offerObject&quot;`.
  &quot;linksModuleData&quot;: { # Links module data. If links module data is also defined on the class, both will be displayed.
    &quot;uris&quot;: [ # The list of URIs.
      {
        &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
        &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
        &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;uri&quot;: &quot;A String&quot;, # 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.
      },
    ],
  },
  &quot;locations&quot;: [ # Note: This field is currently not supported to trigger geo notifications.
    {
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#latLongPoint&quot;`.
      &quot;latitude&quot;: 3.14, # The latitude specified as any value in the range of -90.0 through +90.0, both inclusive. Values outside these bounds will be rejected.
      &quot;longitude&quot;: 3.14, # The longitude specified in the range -180.0 through +180.0, both inclusive. Values outside these bounds will be rejected.
    },
  ],
  &quot;messages&quot;: [ # 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.
    { # A message that will be displayed with a Valuable
      &quot;body&quot;: &quot;A String&quot;, # The message body.
      &quot;displayInterval&quot;: { # The period of time that the message will be displayed to users. You can define both a `startTime` and `endTime` for each message. A message is displayed immediately after a Wallet Object is inserted unless a `startTime` is set. The message will appear in a list of messages indefinitely if `endTime` is not provided.
        &quot;end&quot;: { # End time of the interval. Offset is not required. If an offset is provided and `start` time is set, `start` must also include an offset.
          &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#timeInterval&quot;`.
        &quot;start&quot;: { # Start time of the interval. Offset is not required. If an offset is provided and `end` time is set, `end` must also include an offset.
          &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
        },
      },
      &quot;header&quot;: &quot;A String&quot;, # The message header.
      &quot;id&quot;: &quot;A String&quot;, # 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.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#walletObjectMessage&quot;`.
      &quot;localizedBody&quot;: { # Translated strings for the message body.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;localizedHeader&quot;: { # Translated strings for the message header.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;messageType&quot;: &quot;A String&quot;, # The type of the message. Currently, this can only be set for offers.
    },
  ],
  &quot;passConstraints&quot;: { # Container for any constraints that may be placed on passes. # Pass constraints for the object. Includes limiting NFC and screenshot behaviors.
    &quot;nfcConstraint&quot;: [ # The NFC constraints for the pass.
      &quot;A String&quot;,
    ],
    &quot;screenshotEligibility&quot;: &quot;A String&quot;, # The screenshot eligibility for the pass.
  },
  &quot;rotatingBarcode&quot;: { # The rotating barcode type and value.
    &quot;alternateText&quot;: &quot;A String&quot;, # An optional text that will override the default text that shows under the barcode. This field is intended for a human readable equivalent of the barcode value, used when the barcode cannot be scanned.
    &quot;initialRotatingBarcodeValues&quot;: { # A payload containing many barcode values and start date/time. # Input only. NOTE: This feature is only available for the transit vertical. Optional set of initial rotating barcode values. This allows a small subset of barcodes to be included with the object. Further rotating barcode values must be uploaded with the UploadRotatingBarcodeValues endpoint.
      &quot;periodMillis&quot;: &quot;A String&quot;, # Required. The amount of time each barcode is valid for.
      &quot;startDateTime&quot;: &quot;A String&quot;, # Required. The date/time the first barcode is valid from. Barcodes will be rotated through using period_millis defined on the object&#x27;s RotatingBarcodeValueInfo. This is an ISO 8601 extended format date/time, with an offset. 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 event were 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.
      &quot;values&quot;: [ # Required. The values to encode in the barcode. At least one value is required.
        &quot;A String&quot;,
      ],
    },
    &quot;renderEncoding&quot;: &quot;A String&quot;, # The render encoding for the barcode. When specified, barcode is rendered in the given encoding. Otherwise best known encoding is chosen by Google.
    &quot;showCodeText&quot;: { # Optional text that will be shown when the barcode is hidden behind a click action. This happens in cases where a pass has Smart Tap enabled. If not specified, a default is chosen by Google.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;totpDetails&quot;: { # Configuration for the time-based OTP substitutions. See https://tools.ietf.org/html/rfc6238 # Details used to evaluate the {totp_value_n} substitutions.
      &quot;algorithm&quot;: &quot;A String&quot;, # The TOTP algorithm used to generate the OTP.
      &quot;parameters&quot;: [ # The TOTP parameters for each of the {totp_value_*} substitutions. The TotpParameters at index n is used for the {totp_value_n} substitution.
        { # Configuration for the key and value length. See https://www.rfc-editor.org/rfc/rfc4226#section-5.3
          &quot;key&quot;: &quot;A String&quot;, # The secret key used for the TOTP value generation, encoded as a Base16 string.
          &quot;valueLength&quot;: 42, # The length of the TOTP value in decimal digits.
        },
      ],
      &quot;periodMillis&quot;: &quot;A String&quot;, # The time interval used for the TOTP value generation, in milliseconds.
    },
    &quot;type&quot;: &quot;A String&quot;, # The type of this barcode.
    &quot;valuePattern&quot;: &quot;A String&quot;, # String encoded barcode value. This string supports the following substitutions: * {totp_value_n}: Replaced with the TOTP value (see TotpDetails.parameters). * {totp_timestamp_millis}: Replaced with the timestamp (millis since epoch) at which the barcode was generated. * {totp_timestamp_seconds}: Replaced with the timestamp (seconds since epoch) at which the barcode was generated.
  },
  &quot;smartTapRedemptionValue&quot;: &quot;A String&quot;, # The value that will be transmitted to a Smart Tap certified terminal over NFC for this object. The class level fields `enableSmartTap` and `redemptionIssuers` must also be set up correctly in order for the pass to support Smart Tap. Only ASCII characters are supported.
  &quot;state&quot;: &quot;A String&quot;, # Required. The state of the object. This field is used to determine how an object is displayed in the app. For example, an `inactive` object is moved to the &quot;Expired passes&quot; section.
  &quot;textModulesData&quot;: [ # Text module data. If text module data is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from the object and 10 from the class.
    { # 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.
      &quot;body&quot;: &quot;A String&quot;, # 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.
      &quot;header&quot;: &quot;A String&quot;, # The header of the Text Module. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with a text module. This field is here to enable ease of management of text modules.
      &quot;localizedBody&quot;: { # Translated strings for the body. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;localizedHeader&quot;: { # Translated strings for the header. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
    },
  ],
  &quot;validTimeInterval&quot;: { # The time period this object will be `active` and object can be used. An object&#x27;s state will be changed to `expired` when this time period has passed.
    &quot;end&quot;: { # End time of the interval. Offset is not required. If an offset is provided and `start` time is set, `start` must also include an offset.
      &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#timeInterval&quot;`.
    &quot;start&quot;: { # Start time of the interval. Offset is not required. If an offset is provided and `end` time is set, `end` must also include an offset.
      &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
    },
  },
  &quot;version&quot;: &quot;A String&quot;, # Deprecated
}</pre>
</div>

<div class="method">
    <code class="details" id="update">update(resourceId, body=None, x__xgafv=None)</code>
  <pre>Updates the offer object referenced by the given object ID.

Args:
  resourceId: string, The unique identifier for an object. This ID must be unique across all objects 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, &#x27;.&#x27;, &#x27;_&#x27;, or &#x27;-&#x27;. (required)
  body: object, The request body.
    The object takes the form of:

{
  &quot;appLinkData&quot;: { # Optional information about the partner app link.
    &quot;androidAppLinkInfo&quot;: { # Optional information about the partner app link. If included, the app link link module will be rendered on the valuable details on the android client.
      &quot;appLogoImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional image to be displayed in the App Link Module
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;appTarget&quot;: { # Url to follow when opening the App Link Module on clients. It will be used by partners to open their webpage or deeplink into their app.
        &quot;targetUri&quot;: {
          &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
          &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
          &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # 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.
        },
      },
      &quot;description&quot;: { # String to be displayed in the description of the App Link Module Required
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;title&quot;: { # String to be displayed in the title of the App Link Module Required
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
    },
    &quot;iosAppLinkInfo&quot;: { # Optional information about the partner app link. If included, the app link link module will be rendered on the valuable details on the ios client.
      &quot;appLogoImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional image to be displayed in the App Link Module
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;appTarget&quot;: { # Url to follow when opening the App Link Module on clients. It will be used by partners to open their webpage or deeplink into their app.
        &quot;targetUri&quot;: {
          &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
          &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
          &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # 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.
        },
      },
      &quot;description&quot;: { # String to be displayed in the description of the App Link Module Required
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;title&quot;: { # String to be displayed in the title of the App Link Module Required
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
    },
    &quot;webAppLinkInfo&quot;: { # Optional information about the partner app link. If included, the app link link module will be rendered on the valuable details on the web client.
      &quot;appLogoImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional image to be displayed in the App Link Module
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;appTarget&quot;: { # Url to follow when opening the App Link Module on clients. It will be used by partners to open their webpage or deeplink into their app.
        &quot;targetUri&quot;: {
          &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
          &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
          &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # 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.
        },
      },
      &quot;description&quot;: { # String to be displayed in the description of the App Link Module Required
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;title&quot;: { # String to be displayed in the title of the App Link Module Required
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
    },
  },
  &quot;barcode&quot;: { # The barcode type and value.
    &quot;alternateText&quot;: &quot;A String&quot;, # An optional text that will override the default text that shows under the barcode. This field is intended for a human readable equivalent of the barcode value, used when the barcode cannot be scanned.
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#barcode&quot;`.
    &quot;renderEncoding&quot;: &quot;A String&quot;, # The render encoding for the barcode. When specified, barcode is rendered in the given encoding. Otherwise best known encoding is chosen by Google.
    &quot;showCodeText&quot;: { # Optional text that will be shown when the barcode is hidden behind a click action. This happens in cases where a pass has Smart Tap enabled. If not specified, a default is chosen by Google.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;type&quot;: &quot;A String&quot;, # The type of barcode.
    &quot;value&quot;: &quot;A String&quot;, # The value encoded in the barcode.
  },
  &quot;classId&quot;: &quot;A String&quot;, # Required. The class associated with this object. The class must be of the same type as this object, must already exist, and must be approved. Class IDs should follow the format issuer ID.identifier where the former is issued by Google and latter is chosen by you.
  &quot;classReference&quot;: { # A copy of the inherited fields of the parent class. These fields are retrieved during a GET.
    &quot;allowMultipleUsersPerObject&quot;: True or False, # Deprecated. Use `multipleDevicesAndHoldersAllowedStatus` instead.
    &quot;callbackOptions&quot;: { # Callback options to be used to call the issuer back for every save/delete of an object for this class by the end-user. All objects of this class are eligible for the callback.
      &quot;updateRequestUrl&quot;: &quot;A String&quot;, # 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:Google-Valuables. Deprecated.
      &quot;url&quot;: &quot;A String&quot;, # 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:Google-Valuables.
    },
    &quot;classTemplateInfo&quot;: { # Template information about how the class should be displayed. If unset, Google will fallback to a default set of fields to display.
      &quot;cardBarcodeSectionDetails&quot;: { # Specifies extra information to be displayed above and below the barcode.
        &quot;firstBottomDetail&quot;: { # Optional information to display below the barcode.
          &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
            &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
              { # Reference definition to use with field overrides.
                &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
              },
            ],
          },
        },
        &quot;firstTopDetail&quot;: { # Optional information to display above the barcode. If `secondTopDetail` is defined, this will be displayed to the start side of this detail section.
          &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
            &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
              { # Reference definition to use with field overrides.
                &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
              },
            ],
          },
        },
        &quot;secondTopDetail&quot;: { # Optional second piece of information to display above the barcode. If `firstTopDetail` is defined, this will be displayed to the end side of this detail section.
          &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
            &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
              { # Reference definition to use with field overrides.
                &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
              },
            ],
          },
        },
      },
      &quot;cardTemplateOverride&quot;: { # Override for the card view.
        &quot;cardRowTemplateInfos&quot;: [ # Template information for rows in the card view. At most three rows are allowed to be specified.
          {
            &quot;oneItem&quot;: { # Template for a row containing one item. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
              &quot;item&quot;: { # The item to be displayed in the row. This item will be automatically centered.
                &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
                &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
              },
            },
            &quot;threeItems&quot;: { # Template for a row containing three items. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
              &quot;endItem&quot;: { # The item to be displayed at the end of the row. This item will be aligned to the right.
                &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
                &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
              },
              &quot;middleItem&quot;: { # The item to be displayed in the middle of the row. This item will be centered between the start and end items.
                &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
                &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
              },
              &quot;startItem&quot;: { # The item to be displayed at the start of the row. This item will be aligned to the left.
                &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
                &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
              },
            },
            &quot;twoItems&quot;: { # Template for a row containing two items. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
              &quot;endItem&quot;: { # The item to be displayed at the end of the row. This item will be aligned to the right.
                &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
                &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
              },
              &quot;startItem&quot;: { # The item to be displayed at the start of the row. This item will be aligned to the left.
                &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
                &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
              },
            },
          },
        ],
      },
      &quot;detailsTemplateOverride&quot;: { # Override for the details view (beneath the card view).
        &quot;detailsItemInfos&quot;: [ # Information for the &quot;nth&quot; item displayed in the details list.
          {
            &quot;item&quot;: { # The item to be displayed in the details list.
              &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
              &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
              &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
            },
          },
        ],
      },
      &quot;listTemplateOverride&quot;: { # Override for the passes list view.
        &quot;firstRowOption&quot;: { # Specifies from a predefined set of options or from a reference to the field what will be displayed in the first row.
          &quot;fieldOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the first row.
            &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
              { # Reference definition to use with field overrides.
                &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
              },
            ],
          },
          &quot;transitOption&quot;: &quot;A String&quot;,
        },
        &quot;secondRowOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the second row. This option is only displayed if there are not multiple user objects in a group. If there is a group, the second row will always display a field shared by all objects.
          &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
            { # Reference definition to use with field overrides.
              &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
              &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
            },
          ],
        },
        &quot;thirdRowOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the third row. This option is only displayed if there are not multiple user objects in a group. If there is a group, the third row will always display the number of objects in the group. Eg: &quot;3 passes&quot;
          &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
            { # Reference definition to use with field overrides.
              &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
              &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
            },
          ],
        },
      },
    },
    &quot;countryCode&quot;: &quot;A String&quot;, # Country code used to display the card&#x27;s country (when the user is not in that country), as well as to display localized content when content is not available in the user&#x27;s locale.
    &quot;details&quot;: &quot;A String&quot;, # The details of the offer.
    &quot;enableSmartTap&quot;: True or False, # Identifies whether this class supports Smart Tap. The `redemptionIssuers` and object level `smartTapRedemptionLevel` fields must also be set up correctly in order for a pass to support Smart Tap.
    &quot;finePrint&quot;: &quot;A String&quot;, # The fine print or terms of the offer, such as &quot;20% off any t-shirt at Adam&#x27;s Apparel.&quot;
    &quot;helpUri&quot;: { # The help link for the offer, such as `http://myownpersonaldomain.com/help`
      &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
      &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;uri&quot;: &quot;A String&quot;, # 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.
    },
    &quot;heroImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional banner image displayed on the front of the card. If none is present, nothing will be displayed. The image will display at 100% width.
      &quot;contentDescription&quot;: { # Description of the image used for accessibility.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
      &quot;sourceUri&quot;: { # The URI for the image.
        &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
        &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
      },
    },
    &quot;hexBackgroundColor&quot;: &quot;A String&quot;, # The background color for the card. If not set the dominant color of the hero image is used, and if no hero image is set, the dominant color of the logo is used. The format is #rrggbb where rrggbb is a hex RGB triplet, such as `#ffcc00`. You can also use the shorthand version of the RGB triplet which is #rgb, such as `#fc0`.
    &quot;homepageUri&quot;: { # The URI of your application&#x27;s home page. Populating the URI in this field results in the exact same behavior as populating an URI in linksModuleData (when an object is rendered, a link to the homepage is shown in what would usually be thought of as the linksModuleData section of the object).
      &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
      &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;uri&quot;: &quot;A String&quot;, # 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.
    },
    &quot;id&quot;: &quot;A String&quot;, # Required. 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, &#x27;.&#x27;, &#x27;_&#x27;, or &#x27;-&#x27;.
    &quot;imageModulesData&quot;: [ # Image module data. The maximum number of these fields displayed is 1 from object level and 1 for class object level.
      {
        &quot;id&quot;: &quot;A String&quot;, # The ID associated with an image module. This field is here to enable ease of management of image modules.
        &quot;mainImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A 100% width image.
          &quot;contentDescription&quot;: { # Description of the image used for accessibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
          &quot;sourceUri&quot;: { # The URI for the image.
            &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
            &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
          },
        },
      },
    ],
    &quot;infoModuleData&quot;: { # Deprecated. Use textModulesData instead.
      &quot;labelValueRows&quot;: [ # A list of collections of labels and values. These will be displayed one after the other in a singular column.
        {
          &quot;columns&quot;: [ # A list of labels and values. These will be displayed in a singular column, one after the other, not in multiple columns, despite the field name.
            { # A pair of text strings to be displayed in the details view. Note we no longer display LabelValue/LabelValueRow as a table, instead a list of items.
              &quot;label&quot;: &quot;A String&quot;, # The label for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
              &quot;localizedLabel&quot;: { # Translated strings for the label. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
                &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
                &quot;translatedValues&quot;: [ # Contains the translations for the string.
                  {
                    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                    &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                    &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                  },
                ],
              },
              &quot;localizedValue&quot;: { # Translated strings for the value. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
                &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
                &quot;translatedValues&quot;: [ # Contains the translations for the string.
                  {
                    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                    &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                    &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                  },
                ],
              },
              &quot;value&quot;: &quot;A String&quot;, # The value for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
            },
          ],
        },
      ],
      &quot;showLastUpdateTime&quot;: True or False,
    },
    &quot;issuerName&quot;: &quot;A String&quot;, # Required. The issuer name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens.
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#offerClass&quot;`.
    &quot;linksModuleData&quot;: { # Links module data. If links module data is also defined on the object, both will be displayed.
      &quot;uris&quot;: [ # The list of URIs.
        {
          &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
          &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
          &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # 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.
        },
      ],
    },
    &quot;localizedDetails&quot;: { # Translated strings for the details.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;localizedFinePrint&quot;: { # Translated strings for the fine_print.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;localizedIssuerName&quot;: { # Translated strings for the issuer_name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;localizedProvider&quot;: { # Translated strings for the provider. Recommended maximum length is 12 characters to ensure full string is displayed on smaller screens.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;localizedShortTitle&quot;: { # Translated strings for the short title. Recommended maximum length is 20 characters.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;localizedTitle&quot;: { # Translated strings for the title. Recommended maximum length is 60 characters to ensure full string is displayed on smaller screens.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;locations&quot;: [ # Note: This field is currently not supported to trigger geo notifications.
      {
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#latLongPoint&quot;`.
        &quot;latitude&quot;: 3.14, # The latitude specified as any value in the range of -90.0 through +90.0, both inclusive. Values outside these bounds will be rejected.
        &quot;longitude&quot;: 3.14, # The longitude specified in the range -180.0 through +180.0, both inclusive. Values outside these bounds will be rejected.
      },
    ],
    &quot;messages&quot;: [ # 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.
      { # A message that will be displayed with a Valuable
        &quot;body&quot;: &quot;A String&quot;, # The message body.
        &quot;displayInterval&quot;: { # The period of time that the message will be displayed to users. You can define both a `startTime` and `endTime` for each message. A message is displayed immediately after a Wallet Object is inserted unless a `startTime` is set. The message will appear in a list of messages indefinitely if `endTime` is not provided.
          &quot;end&quot;: { # End time of the interval. Offset is not required. If an offset is provided and `start` time is set, `start` must also include an offset.
            &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#timeInterval&quot;`.
          &quot;start&quot;: { # Start time of the interval. Offset is not required. If an offset is provided and `end` time is set, `end` must also include an offset.
            &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
          },
        },
        &quot;header&quot;: &quot;A String&quot;, # The message header.
        &quot;id&quot;: &quot;A String&quot;, # 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.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#walletObjectMessage&quot;`.
        &quot;localizedBody&quot;: { # Translated strings for the message body.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;localizedHeader&quot;: { # Translated strings for the message header.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;messageType&quot;: &quot;A String&quot;, # The type of the message. Currently, this can only be set for offers.
      },
    ],
    &quot;multipleDevicesAndHoldersAllowedStatus&quot;: &quot;A String&quot;, # Identifies whether multiple users and devices will save the same object referencing this class.
    &quot;provider&quot;: &quot;A String&quot;, # Required. The offer provider (either the aggregator name or merchant name). Recommended maximum length is 12 characters to ensure full string is displayed on smaller screens.
    &quot;redemptionChannel&quot;: &quot;A String&quot;, # Required. The redemption channels applicable to this offer.
    &quot;redemptionIssuers&quot;: [ # 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.
      &quot;A String&quot;,
    ],
    &quot;review&quot;: { # The review comments set by the platform when a class is marked `approved` or `rejected`.
      &quot;comments&quot;: &quot;A String&quot;,
    },
    &quot;reviewStatus&quot;: &quot;A String&quot;, # Required. The status of the class. This field can be set to `draft` or The status of the class. This field can be set to `draft` or `underReview` using the insert, patch, or update API calls. Once the review state is changed from `draft` it may not be changed back to `draft`. You should keep this field to `draft` when the class is under development. A `draft` class cannot be used to create any object. You should set this field to `underReview` when you believe the class is ready for use. The platform will automatically set this field to `approved` and it can be immediately used to create or migrate objects. When updating an already `approved` class you should keep setting this field to `underReview`.
    &quot;securityAnimation&quot;: { # Optional information about the security animation. If this is set a security animation will be rendered on pass details.
      &quot;animationType&quot;: &quot;A String&quot;, # Type of animation.
    },
    &quot;shortTitle&quot;: &quot;A String&quot;, # A shortened version of the title of the offer, such as &quot;20% off,&quot; shown to users as a quick reference to the offer contents. Recommended maximum length is 20 characters.
    &quot;textModulesData&quot;: [ # Text module data. If text module data is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from the object and 10 from the class.
      { # 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.
        &quot;body&quot;: &quot;A String&quot;, # 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.
        &quot;header&quot;: &quot;A String&quot;, # The header of the Text Module. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
        &quot;id&quot;: &quot;A String&quot;, # The ID associated with a text module. This field is here to enable ease of management of text modules.
        &quot;localizedBody&quot;: { # Translated strings for the body. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;localizedHeader&quot;: { # Translated strings for the header. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
      },
    ],
    &quot;title&quot;: &quot;A String&quot;, # Required. The title of the offer, such as &quot;20% off any t-shirt.&quot; Recommended maximum length is 60 characters to ensure full string is displayed on smaller screens.
    &quot;titleImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The title image of the offer. This image is displayed in both the details and list views of the app.
      &quot;contentDescription&quot;: { # Description of the image used for accessibility.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
      &quot;sourceUri&quot;: { # The URI for the image.
        &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
        &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
      },
    },
    &quot;version&quot;: &quot;A String&quot;, # Deprecated
    &quot;viewUnlockRequirement&quot;: &quot;A String&quot;, # View Unlock Requirement options for the offer.
    &quot;wideTitleImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The wide title image of the offer. When provided, this will be used in place of the title image in the top left of the card view.
      &quot;contentDescription&quot;: { # Description of the image used for accessibility.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
      &quot;sourceUri&quot;: { # The URI for the image.
        &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
        &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
      },
    },
    &quot;wordMark&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Deprecated.
      &quot;contentDescription&quot;: { # Description of the image used for accessibility.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
      &quot;sourceUri&quot;: { # The URI for the image.
        &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
        &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
      },
    },
  },
  &quot;disableExpirationNotification&quot;: True or False, # Indicates if notifications should explicitly be suppressed. If this field is set to true, regardless of the `messages` field, expiration notifications to the user will be suppressed. By default, this field is set to false. Currently, this can only be set for offers.
  &quot;groupingInfo&quot;: { # Information that controls how passes are grouped together.
    &quot;groupingId&quot;: &quot;A String&quot;, # Optional grouping ID for grouping the passes with the same ID visually together. Grouping with different types of passes is allowed.
    &quot;sortIndex&quot;: 42, # Optional index for sorting the passes when they are grouped with other passes. Passes with lower sort index are shown before passes with higher sort index. If unspecified, the value is assumed to be INT_MAX. For two passes with the same sort index, the sorting behavior is undefined.
  },
  &quot;hasLinkedDevice&quot;: True or False, # Whether this object is currently linked to a single device. This field is set by the platform when a user saves the object, linking it to their device. Intended for use by select partners. Contact support for additional information.
  &quot;hasUsers&quot;: True or False, # Indicates if the object has users. This field is set by the platform.
  &quot;heroImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional banner image displayed on the front of the card. If none is present, hero image of the class, if present, will be displayed. If hero image of the class is also not present, nothing will be displayed.
    &quot;contentDescription&quot;: { # Description of the image used for accessibility.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
    &quot;sourceUri&quot;: { # The URI for the image.
      &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
      &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
    },
  },
  &quot;id&quot;: &quot;A String&quot;, # Required. The unique identifier for an object. This ID must be unique across all objects 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. The unique identifier should only include alphanumeric characters, &#x27;.&#x27;, &#x27;_&#x27;, or &#x27;-&#x27;.
  &quot;imageModulesData&quot;: [ # Image module data. The maximum number of these fields displayed is 1 from object level and 1 for class object level.
    {
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with an image module. This field is here to enable ease of management of image modules.
      &quot;mainImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A 100% width image.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
    },
  ],
  &quot;infoModuleData&quot;: { # Deprecated. Use textModulesData instead.
    &quot;labelValueRows&quot;: [ # A list of collections of labels and values. These will be displayed one after the other in a singular column.
      {
        &quot;columns&quot;: [ # A list of labels and values. These will be displayed in a singular column, one after the other, not in multiple columns, despite the field name.
          { # A pair of text strings to be displayed in the details view. Note we no longer display LabelValue/LabelValueRow as a table, instead a list of items.
            &quot;label&quot;: &quot;A String&quot;, # The label for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
            &quot;localizedLabel&quot;: { # Translated strings for the label. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;localizedValue&quot;: { # Translated strings for the value. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;value&quot;: &quot;A String&quot;, # The value for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
          },
        ],
      },
    ],
    &quot;showLastUpdateTime&quot;: True or False,
  },
  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#offerObject&quot;`.
  &quot;linksModuleData&quot;: { # Links module data. If links module data is also defined on the class, both will be displayed.
    &quot;uris&quot;: [ # The list of URIs.
      {
        &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
        &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
        &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;uri&quot;: &quot;A String&quot;, # 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.
      },
    ],
  },
  &quot;locations&quot;: [ # Note: This field is currently not supported to trigger geo notifications.
    {
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#latLongPoint&quot;`.
      &quot;latitude&quot;: 3.14, # The latitude specified as any value in the range of -90.0 through +90.0, both inclusive. Values outside these bounds will be rejected.
      &quot;longitude&quot;: 3.14, # The longitude specified in the range -180.0 through +180.0, both inclusive. Values outside these bounds will be rejected.
    },
  ],
  &quot;messages&quot;: [ # 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.
    { # A message that will be displayed with a Valuable
      &quot;body&quot;: &quot;A String&quot;, # The message body.
      &quot;displayInterval&quot;: { # The period of time that the message will be displayed to users. You can define both a `startTime` and `endTime` for each message. A message is displayed immediately after a Wallet Object is inserted unless a `startTime` is set. The message will appear in a list of messages indefinitely if `endTime` is not provided.
        &quot;end&quot;: { # End time of the interval. Offset is not required. If an offset is provided and `start` time is set, `start` must also include an offset.
          &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#timeInterval&quot;`.
        &quot;start&quot;: { # Start time of the interval. Offset is not required. If an offset is provided and `end` time is set, `end` must also include an offset.
          &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
        },
      },
      &quot;header&quot;: &quot;A String&quot;, # The message header.
      &quot;id&quot;: &quot;A String&quot;, # 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.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#walletObjectMessage&quot;`.
      &quot;localizedBody&quot;: { # Translated strings for the message body.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;localizedHeader&quot;: { # Translated strings for the message header.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;messageType&quot;: &quot;A String&quot;, # The type of the message. Currently, this can only be set for offers.
    },
  ],
  &quot;passConstraints&quot;: { # Container for any constraints that may be placed on passes. # Pass constraints for the object. Includes limiting NFC and screenshot behaviors.
    &quot;nfcConstraint&quot;: [ # The NFC constraints for the pass.
      &quot;A String&quot;,
    ],
    &quot;screenshotEligibility&quot;: &quot;A String&quot;, # The screenshot eligibility for the pass.
  },
  &quot;rotatingBarcode&quot;: { # The rotating barcode type and value.
    &quot;alternateText&quot;: &quot;A String&quot;, # An optional text that will override the default text that shows under the barcode. This field is intended for a human readable equivalent of the barcode value, used when the barcode cannot be scanned.
    &quot;initialRotatingBarcodeValues&quot;: { # A payload containing many barcode values and start date/time. # Input only. NOTE: This feature is only available for the transit vertical. Optional set of initial rotating barcode values. This allows a small subset of barcodes to be included with the object. Further rotating barcode values must be uploaded with the UploadRotatingBarcodeValues endpoint.
      &quot;periodMillis&quot;: &quot;A String&quot;, # Required. The amount of time each barcode is valid for.
      &quot;startDateTime&quot;: &quot;A String&quot;, # Required. The date/time the first barcode is valid from. Barcodes will be rotated through using period_millis defined on the object&#x27;s RotatingBarcodeValueInfo. This is an ISO 8601 extended format date/time, with an offset. 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 event were 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.
      &quot;values&quot;: [ # Required. The values to encode in the barcode. At least one value is required.
        &quot;A String&quot;,
      ],
    },
    &quot;renderEncoding&quot;: &quot;A String&quot;, # The render encoding for the barcode. When specified, barcode is rendered in the given encoding. Otherwise best known encoding is chosen by Google.
    &quot;showCodeText&quot;: { # Optional text that will be shown when the barcode is hidden behind a click action. This happens in cases where a pass has Smart Tap enabled. If not specified, a default is chosen by Google.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;totpDetails&quot;: { # Configuration for the time-based OTP substitutions. See https://tools.ietf.org/html/rfc6238 # Details used to evaluate the {totp_value_n} substitutions.
      &quot;algorithm&quot;: &quot;A String&quot;, # The TOTP algorithm used to generate the OTP.
      &quot;parameters&quot;: [ # The TOTP parameters for each of the {totp_value_*} substitutions. The TotpParameters at index n is used for the {totp_value_n} substitution.
        { # Configuration for the key and value length. See https://www.rfc-editor.org/rfc/rfc4226#section-5.3
          &quot;key&quot;: &quot;A String&quot;, # The secret key used for the TOTP value generation, encoded as a Base16 string.
          &quot;valueLength&quot;: 42, # The length of the TOTP value in decimal digits.
        },
      ],
      &quot;periodMillis&quot;: &quot;A String&quot;, # The time interval used for the TOTP value generation, in milliseconds.
    },
    &quot;type&quot;: &quot;A String&quot;, # The type of this barcode.
    &quot;valuePattern&quot;: &quot;A String&quot;, # String encoded barcode value. This string supports the following substitutions: * {totp_value_n}: Replaced with the TOTP value (see TotpDetails.parameters). * {totp_timestamp_millis}: Replaced with the timestamp (millis since epoch) at which the barcode was generated. * {totp_timestamp_seconds}: Replaced with the timestamp (seconds since epoch) at which the barcode was generated.
  },
  &quot;smartTapRedemptionValue&quot;: &quot;A String&quot;, # The value that will be transmitted to a Smart Tap certified terminal over NFC for this object. The class level fields `enableSmartTap` and `redemptionIssuers` must also be set up correctly in order for the pass to support Smart Tap. Only ASCII characters are supported.
  &quot;state&quot;: &quot;A String&quot;, # Required. The state of the object. This field is used to determine how an object is displayed in the app. For example, an `inactive` object is moved to the &quot;Expired passes&quot; section.
  &quot;textModulesData&quot;: [ # Text module data. If text module data is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from the object and 10 from the class.
    { # 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.
      &quot;body&quot;: &quot;A String&quot;, # 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.
      &quot;header&quot;: &quot;A String&quot;, # The header of the Text Module. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with a text module. This field is here to enable ease of management of text modules.
      &quot;localizedBody&quot;: { # Translated strings for the body. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;localizedHeader&quot;: { # Translated strings for the header. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
    },
  ],
  &quot;validTimeInterval&quot;: { # The time period this object will be `active` and object can be used. An object&#x27;s state will be changed to `expired` when this time period has passed.
    &quot;end&quot;: { # End time of the interval. Offset is not required. If an offset is provided and `start` time is set, `start` must also include an offset.
      &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#timeInterval&quot;`.
    &quot;start&quot;: { # Start time of the interval. Offset is not required. If an offset is provided and `end` time is set, `end` must also include an offset.
      &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
    },
  },
  &quot;version&quot;: &quot;A String&quot;, # Deprecated
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
  &quot;appLinkData&quot;: { # Optional information about the partner app link.
    &quot;androidAppLinkInfo&quot;: { # Optional information about the partner app link. If included, the app link link module will be rendered on the valuable details on the android client.
      &quot;appLogoImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional image to be displayed in the App Link Module
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;appTarget&quot;: { # Url to follow when opening the App Link Module on clients. It will be used by partners to open their webpage or deeplink into their app.
        &quot;targetUri&quot;: {
          &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
          &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
          &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # 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.
        },
      },
      &quot;description&quot;: { # String to be displayed in the description of the App Link Module Required
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;title&quot;: { # String to be displayed in the title of the App Link Module Required
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
    },
    &quot;iosAppLinkInfo&quot;: { # Optional information about the partner app link. If included, the app link link module will be rendered on the valuable details on the ios client.
      &quot;appLogoImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional image to be displayed in the App Link Module
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;appTarget&quot;: { # Url to follow when opening the App Link Module on clients. It will be used by partners to open their webpage or deeplink into their app.
        &quot;targetUri&quot;: {
          &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
          &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
          &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # 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.
        },
      },
      &quot;description&quot;: { # String to be displayed in the description of the App Link Module Required
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;title&quot;: { # String to be displayed in the title of the App Link Module Required
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
    },
    &quot;webAppLinkInfo&quot;: { # Optional information about the partner app link. If included, the app link link module will be rendered on the valuable details on the web client.
      &quot;appLogoImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional image to be displayed in the App Link Module
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;appTarget&quot;: { # Url to follow when opening the App Link Module on clients. It will be used by partners to open their webpage or deeplink into their app.
        &quot;targetUri&quot;: {
          &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
          &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
          &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # 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.
        },
      },
      &quot;description&quot;: { # String to be displayed in the description of the App Link Module Required
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;title&quot;: { # String to be displayed in the title of the App Link Module Required
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
    },
  },
  &quot;barcode&quot;: { # The barcode type and value.
    &quot;alternateText&quot;: &quot;A String&quot;, # An optional text that will override the default text that shows under the barcode. This field is intended for a human readable equivalent of the barcode value, used when the barcode cannot be scanned.
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#barcode&quot;`.
    &quot;renderEncoding&quot;: &quot;A String&quot;, # The render encoding for the barcode. When specified, barcode is rendered in the given encoding. Otherwise best known encoding is chosen by Google.
    &quot;showCodeText&quot;: { # Optional text that will be shown when the barcode is hidden behind a click action. This happens in cases where a pass has Smart Tap enabled. If not specified, a default is chosen by Google.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;type&quot;: &quot;A String&quot;, # The type of barcode.
    &quot;value&quot;: &quot;A String&quot;, # The value encoded in the barcode.
  },
  &quot;classId&quot;: &quot;A String&quot;, # Required. The class associated with this object. The class must be of the same type as this object, must already exist, and must be approved. Class IDs should follow the format issuer ID.identifier where the former is issued by Google and latter is chosen by you.
  &quot;classReference&quot;: { # A copy of the inherited fields of the parent class. These fields are retrieved during a GET.
    &quot;allowMultipleUsersPerObject&quot;: True or False, # Deprecated. Use `multipleDevicesAndHoldersAllowedStatus` instead.
    &quot;callbackOptions&quot;: { # Callback options to be used to call the issuer back for every save/delete of an object for this class by the end-user. All objects of this class are eligible for the callback.
      &quot;updateRequestUrl&quot;: &quot;A String&quot;, # 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:Google-Valuables. Deprecated.
      &quot;url&quot;: &quot;A String&quot;, # 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:Google-Valuables.
    },
    &quot;classTemplateInfo&quot;: { # Template information about how the class should be displayed. If unset, Google will fallback to a default set of fields to display.
      &quot;cardBarcodeSectionDetails&quot;: { # Specifies extra information to be displayed above and below the barcode.
        &quot;firstBottomDetail&quot;: { # Optional information to display below the barcode.
          &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
            &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
              { # Reference definition to use with field overrides.
                &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
              },
            ],
          },
        },
        &quot;firstTopDetail&quot;: { # Optional information to display above the barcode. If `secondTopDetail` is defined, this will be displayed to the start side of this detail section.
          &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
            &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
              { # Reference definition to use with field overrides.
                &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
              },
            ],
          },
        },
        &quot;secondTopDetail&quot;: { # Optional second piece of information to display above the barcode. If `firstTopDetail` is defined, this will be displayed to the end side of this detail section.
          &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
            &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
              { # Reference definition to use with field overrides.
                &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
              },
            ],
          },
        },
      },
      &quot;cardTemplateOverride&quot;: { # Override for the card view.
        &quot;cardRowTemplateInfos&quot;: [ # Template information for rows in the card view. At most three rows are allowed to be specified.
          {
            &quot;oneItem&quot;: { # Template for a row containing one item. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
              &quot;item&quot;: { # The item to be displayed in the row. This item will be automatically centered.
                &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
                &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
              },
            },
            &quot;threeItems&quot;: { # Template for a row containing three items. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
              &quot;endItem&quot;: { # The item to be displayed at the end of the row. This item will be aligned to the right.
                &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
                &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
              },
              &quot;middleItem&quot;: { # The item to be displayed in the middle of the row. This item will be centered between the start and end items.
                &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
                &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
              },
              &quot;startItem&quot;: { # The item to be displayed at the start of the row. This item will be aligned to the left.
                &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
                &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
              },
            },
            &quot;twoItems&quot;: { # Template for a row containing two items. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
              &quot;endItem&quot;: { # The item to be displayed at the end of the row. This item will be aligned to the right.
                &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
                &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
              },
              &quot;startItem&quot;: { # The item to be displayed at the start of the row. This item will be aligned to the left.
                &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
                &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
              },
            },
          },
        ],
      },
      &quot;detailsTemplateOverride&quot;: { # Override for the details view (beneath the card view).
        &quot;detailsItemInfos&quot;: [ # Information for the &quot;nth&quot; item displayed in the details list.
          {
            &quot;item&quot;: { # The item to be displayed in the details list.
              &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
              &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
              &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
            },
          },
        ],
      },
      &quot;listTemplateOverride&quot;: { # Override for the passes list view.
        &quot;firstRowOption&quot;: { # Specifies from a predefined set of options or from a reference to the field what will be displayed in the first row.
          &quot;fieldOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the first row.
            &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
              { # Reference definition to use with field overrides.
                &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
              },
            ],
          },
          &quot;transitOption&quot;: &quot;A String&quot;,
        },
        &quot;secondRowOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the second row. This option is only displayed if there are not multiple user objects in a group. If there is a group, the second row will always display a field shared by all objects.
          &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
            { # Reference definition to use with field overrides.
              &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
              &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
            },
          ],
        },
        &quot;thirdRowOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the third row. This option is only displayed if there are not multiple user objects in a group. If there is a group, the third row will always display the number of objects in the group. Eg: &quot;3 passes&quot;
          &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
            { # Reference definition to use with field overrides.
              &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
              &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
            },
          ],
        },
      },
    },
    &quot;countryCode&quot;: &quot;A String&quot;, # Country code used to display the card&#x27;s country (when the user is not in that country), as well as to display localized content when content is not available in the user&#x27;s locale.
    &quot;details&quot;: &quot;A String&quot;, # The details of the offer.
    &quot;enableSmartTap&quot;: True or False, # Identifies whether this class supports Smart Tap. The `redemptionIssuers` and object level `smartTapRedemptionLevel` fields must also be set up correctly in order for a pass to support Smart Tap.
    &quot;finePrint&quot;: &quot;A String&quot;, # The fine print or terms of the offer, such as &quot;20% off any t-shirt at Adam&#x27;s Apparel.&quot;
    &quot;helpUri&quot;: { # The help link for the offer, such as `http://myownpersonaldomain.com/help`
      &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
      &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;uri&quot;: &quot;A String&quot;, # 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.
    },
    &quot;heroImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional banner image displayed on the front of the card. If none is present, nothing will be displayed. The image will display at 100% width.
      &quot;contentDescription&quot;: { # Description of the image used for accessibility.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
      &quot;sourceUri&quot;: { # The URI for the image.
        &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
        &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
      },
    },
    &quot;hexBackgroundColor&quot;: &quot;A String&quot;, # The background color for the card. If not set the dominant color of the hero image is used, and if no hero image is set, the dominant color of the logo is used. The format is #rrggbb where rrggbb is a hex RGB triplet, such as `#ffcc00`. You can also use the shorthand version of the RGB triplet which is #rgb, such as `#fc0`.
    &quot;homepageUri&quot;: { # The URI of your application&#x27;s home page. Populating the URI in this field results in the exact same behavior as populating an URI in linksModuleData (when an object is rendered, a link to the homepage is shown in what would usually be thought of as the linksModuleData section of the object).
      &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
      &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;uri&quot;: &quot;A String&quot;, # 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.
    },
    &quot;id&quot;: &quot;A String&quot;, # Required. 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, &#x27;.&#x27;, &#x27;_&#x27;, or &#x27;-&#x27;.
    &quot;imageModulesData&quot;: [ # Image module data. The maximum number of these fields displayed is 1 from object level and 1 for class object level.
      {
        &quot;id&quot;: &quot;A String&quot;, # The ID associated with an image module. This field is here to enable ease of management of image modules.
        &quot;mainImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A 100% width image.
          &quot;contentDescription&quot;: { # Description of the image used for accessibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
          &quot;sourceUri&quot;: { # The URI for the image.
            &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
            &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
          },
        },
      },
    ],
    &quot;infoModuleData&quot;: { # Deprecated. Use textModulesData instead.
      &quot;labelValueRows&quot;: [ # A list of collections of labels and values. These will be displayed one after the other in a singular column.
        {
          &quot;columns&quot;: [ # A list of labels and values. These will be displayed in a singular column, one after the other, not in multiple columns, despite the field name.
            { # A pair of text strings to be displayed in the details view. Note we no longer display LabelValue/LabelValueRow as a table, instead a list of items.
              &quot;label&quot;: &quot;A String&quot;, # The label for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
              &quot;localizedLabel&quot;: { # Translated strings for the label. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
                &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
                &quot;translatedValues&quot;: [ # Contains the translations for the string.
                  {
                    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                    &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                    &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                  },
                ],
              },
              &quot;localizedValue&quot;: { # Translated strings for the value. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
                &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
                &quot;translatedValues&quot;: [ # Contains the translations for the string.
                  {
                    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                    &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                    &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                  },
                ],
              },
              &quot;value&quot;: &quot;A String&quot;, # The value for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
            },
          ],
        },
      ],
      &quot;showLastUpdateTime&quot;: True or False,
    },
    &quot;issuerName&quot;: &quot;A String&quot;, # Required. The issuer name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens.
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#offerClass&quot;`.
    &quot;linksModuleData&quot;: { # Links module data. If links module data is also defined on the object, both will be displayed.
      &quot;uris&quot;: [ # The list of URIs.
        {
          &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
          &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
          &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # 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.
        },
      ],
    },
    &quot;localizedDetails&quot;: { # Translated strings for the details.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;localizedFinePrint&quot;: { # Translated strings for the fine_print.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;localizedIssuerName&quot;: { # Translated strings for the issuer_name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;localizedProvider&quot;: { # Translated strings for the provider. Recommended maximum length is 12 characters to ensure full string is displayed on smaller screens.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;localizedShortTitle&quot;: { # Translated strings for the short title. Recommended maximum length is 20 characters.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;localizedTitle&quot;: { # Translated strings for the title. Recommended maximum length is 60 characters to ensure full string is displayed on smaller screens.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;locations&quot;: [ # Note: This field is currently not supported to trigger geo notifications.
      {
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#latLongPoint&quot;`.
        &quot;latitude&quot;: 3.14, # The latitude specified as any value in the range of -90.0 through +90.0, both inclusive. Values outside these bounds will be rejected.
        &quot;longitude&quot;: 3.14, # The longitude specified in the range -180.0 through +180.0, both inclusive. Values outside these bounds will be rejected.
      },
    ],
    &quot;messages&quot;: [ # 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.
      { # A message that will be displayed with a Valuable
        &quot;body&quot;: &quot;A String&quot;, # The message body.
        &quot;displayInterval&quot;: { # The period of time that the message will be displayed to users. You can define both a `startTime` and `endTime` for each message. A message is displayed immediately after a Wallet Object is inserted unless a `startTime` is set. The message will appear in a list of messages indefinitely if `endTime` is not provided.
          &quot;end&quot;: { # End time of the interval. Offset is not required. If an offset is provided and `start` time is set, `start` must also include an offset.
            &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#timeInterval&quot;`.
          &quot;start&quot;: { # Start time of the interval. Offset is not required. If an offset is provided and `end` time is set, `end` must also include an offset.
            &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
          },
        },
        &quot;header&quot;: &quot;A String&quot;, # The message header.
        &quot;id&quot;: &quot;A String&quot;, # 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.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#walletObjectMessage&quot;`.
        &quot;localizedBody&quot;: { # Translated strings for the message body.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;localizedHeader&quot;: { # Translated strings for the message header.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;messageType&quot;: &quot;A String&quot;, # The type of the message. Currently, this can only be set for offers.
      },
    ],
    &quot;multipleDevicesAndHoldersAllowedStatus&quot;: &quot;A String&quot;, # Identifies whether multiple users and devices will save the same object referencing this class.
    &quot;provider&quot;: &quot;A String&quot;, # Required. The offer provider (either the aggregator name or merchant name). Recommended maximum length is 12 characters to ensure full string is displayed on smaller screens.
    &quot;redemptionChannel&quot;: &quot;A String&quot;, # Required. The redemption channels applicable to this offer.
    &quot;redemptionIssuers&quot;: [ # 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.
      &quot;A String&quot;,
    ],
    &quot;review&quot;: { # The review comments set by the platform when a class is marked `approved` or `rejected`.
      &quot;comments&quot;: &quot;A String&quot;,
    },
    &quot;reviewStatus&quot;: &quot;A String&quot;, # Required. The status of the class. This field can be set to `draft` or The status of the class. This field can be set to `draft` or `underReview` using the insert, patch, or update API calls. Once the review state is changed from `draft` it may not be changed back to `draft`. You should keep this field to `draft` when the class is under development. A `draft` class cannot be used to create any object. You should set this field to `underReview` when you believe the class is ready for use. The platform will automatically set this field to `approved` and it can be immediately used to create or migrate objects. When updating an already `approved` class you should keep setting this field to `underReview`.
    &quot;securityAnimation&quot;: { # Optional information about the security animation. If this is set a security animation will be rendered on pass details.
      &quot;animationType&quot;: &quot;A String&quot;, # Type of animation.
    },
    &quot;shortTitle&quot;: &quot;A String&quot;, # A shortened version of the title of the offer, such as &quot;20% off,&quot; shown to users as a quick reference to the offer contents. Recommended maximum length is 20 characters.
    &quot;textModulesData&quot;: [ # Text module data. If text module data is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from the object and 10 from the class.
      { # 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.
        &quot;body&quot;: &quot;A String&quot;, # 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.
        &quot;header&quot;: &quot;A String&quot;, # The header of the Text Module. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
        &quot;id&quot;: &quot;A String&quot;, # The ID associated with a text module. This field is here to enable ease of management of text modules.
        &quot;localizedBody&quot;: { # Translated strings for the body. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;localizedHeader&quot;: { # Translated strings for the header. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
      },
    ],
    &quot;title&quot;: &quot;A String&quot;, # Required. The title of the offer, such as &quot;20% off any t-shirt.&quot; Recommended maximum length is 60 characters to ensure full string is displayed on smaller screens.
    &quot;titleImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The title image of the offer. This image is displayed in both the details and list views of the app.
      &quot;contentDescription&quot;: { # Description of the image used for accessibility.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
      &quot;sourceUri&quot;: { # The URI for the image.
        &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
        &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
      },
    },
    &quot;version&quot;: &quot;A String&quot;, # Deprecated
    &quot;viewUnlockRequirement&quot;: &quot;A String&quot;, # View Unlock Requirement options for the offer.
    &quot;wideTitleImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The wide title image of the offer. When provided, this will be used in place of the title image in the top left of the card view.
      &quot;contentDescription&quot;: { # Description of the image used for accessibility.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
      &quot;sourceUri&quot;: { # The URI for the image.
        &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
        &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
      },
    },
    &quot;wordMark&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Deprecated.
      &quot;contentDescription&quot;: { # Description of the image used for accessibility.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
      &quot;sourceUri&quot;: { # The URI for the image.
        &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
        &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
      },
    },
  },
  &quot;disableExpirationNotification&quot;: True or False, # Indicates if notifications should explicitly be suppressed. If this field is set to true, regardless of the `messages` field, expiration notifications to the user will be suppressed. By default, this field is set to false. Currently, this can only be set for offers.
  &quot;groupingInfo&quot;: { # Information that controls how passes are grouped together.
    &quot;groupingId&quot;: &quot;A String&quot;, # Optional grouping ID for grouping the passes with the same ID visually together. Grouping with different types of passes is allowed.
    &quot;sortIndex&quot;: 42, # Optional index for sorting the passes when they are grouped with other passes. Passes with lower sort index are shown before passes with higher sort index. If unspecified, the value is assumed to be INT_MAX. For two passes with the same sort index, the sorting behavior is undefined.
  },
  &quot;hasLinkedDevice&quot;: True or False, # Whether this object is currently linked to a single device. This field is set by the platform when a user saves the object, linking it to their device. Intended for use by select partners. Contact support for additional information.
  &quot;hasUsers&quot;: True or False, # Indicates if the object has users. This field is set by the platform.
  &quot;heroImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional banner image displayed on the front of the card. If none is present, hero image of the class, if present, will be displayed. If hero image of the class is also not present, nothing will be displayed.
    &quot;contentDescription&quot;: { # Description of the image used for accessibility.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
    &quot;sourceUri&quot;: { # The URI for the image.
      &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
      &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
    },
  },
  &quot;id&quot;: &quot;A String&quot;, # Required. The unique identifier for an object. This ID must be unique across all objects 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. The unique identifier should only include alphanumeric characters, &#x27;.&#x27;, &#x27;_&#x27;, or &#x27;-&#x27;.
  &quot;imageModulesData&quot;: [ # Image module data. The maximum number of these fields displayed is 1 from object level and 1 for class object level.
    {
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with an image module. This field is here to enable ease of management of image modules.
      &quot;mainImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A 100% width image.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
    },
  ],
  &quot;infoModuleData&quot;: { # Deprecated. Use textModulesData instead.
    &quot;labelValueRows&quot;: [ # A list of collections of labels and values. These will be displayed one after the other in a singular column.
      {
        &quot;columns&quot;: [ # A list of labels and values. These will be displayed in a singular column, one after the other, not in multiple columns, despite the field name.
          { # A pair of text strings to be displayed in the details view. Note we no longer display LabelValue/LabelValueRow as a table, instead a list of items.
            &quot;label&quot;: &quot;A String&quot;, # The label for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
            &quot;localizedLabel&quot;: { # Translated strings for the label. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;localizedValue&quot;: { # Translated strings for the value. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;value&quot;: &quot;A String&quot;, # The value for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
          },
        ],
      },
    ],
    &quot;showLastUpdateTime&quot;: True or False,
  },
  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#offerObject&quot;`.
  &quot;linksModuleData&quot;: { # Links module data. If links module data is also defined on the class, both will be displayed.
    &quot;uris&quot;: [ # The list of URIs.
      {
        &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;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.
        &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
        &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;uri&quot;: &quot;A String&quot;, # 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.
      },
    ],
  },
  &quot;locations&quot;: [ # Note: This field is currently not supported to trigger geo notifications.
    {
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#latLongPoint&quot;`.
      &quot;latitude&quot;: 3.14, # The latitude specified as any value in the range of -90.0 through +90.0, both inclusive. Values outside these bounds will be rejected.
      &quot;longitude&quot;: 3.14, # The longitude specified in the range -180.0 through +180.0, both inclusive. Values outside these bounds will be rejected.
    },
  ],
  &quot;messages&quot;: [ # 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.
    { # A message that will be displayed with a Valuable
      &quot;body&quot;: &quot;A String&quot;, # The message body.
      &quot;displayInterval&quot;: { # The period of time that the message will be displayed to users. You can define both a `startTime` and `endTime` for each message. A message is displayed immediately after a Wallet Object is inserted unless a `startTime` is set. The message will appear in a list of messages indefinitely if `endTime` is not provided.
        &quot;end&quot;: { # End time of the interval. Offset is not required. If an offset is provided and `start` time is set, `start` must also include an offset.
          &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#timeInterval&quot;`.
        &quot;start&quot;: { # Start time of the interval. Offset is not required. If an offset is provided and `end` time is set, `end` must also include an offset.
          &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
        },
      },
      &quot;header&quot;: &quot;A String&quot;, # The message header.
      &quot;id&quot;: &quot;A String&quot;, # 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.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#walletObjectMessage&quot;`.
      &quot;localizedBody&quot;: { # Translated strings for the message body.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;localizedHeader&quot;: { # Translated strings for the message header.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;messageType&quot;: &quot;A String&quot;, # The type of the message. Currently, this can only be set for offers.
    },
  ],
  &quot;passConstraints&quot;: { # Container for any constraints that may be placed on passes. # Pass constraints for the object. Includes limiting NFC and screenshot behaviors.
    &quot;nfcConstraint&quot;: [ # The NFC constraints for the pass.
      &quot;A String&quot;,
    ],
    &quot;screenshotEligibility&quot;: &quot;A String&quot;, # The screenshot eligibility for the pass.
  },
  &quot;rotatingBarcode&quot;: { # The rotating barcode type and value.
    &quot;alternateText&quot;: &quot;A String&quot;, # An optional text that will override the default text that shows under the barcode. This field is intended for a human readable equivalent of the barcode value, used when the barcode cannot be scanned.
    &quot;initialRotatingBarcodeValues&quot;: { # A payload containing many barcode values and start date/time. # Input only. NOTE: This feature is only available for the transit vertical. Optional set of initial rotating barcode values. This allows a small subset of barcodes to be included with the object. Further rotating barcode values must be uploaded with the UploadRotatingBarcodeValues endpoint.
      &quot;periodMillis&quot;: &quot;A String&quot;, # Required. The amount of time each barcode is valid for.
      &quot;startDateTime&quot;: &quot;A String&quot;, # Required. The date/time the first barcode is valid from. Barcodes will be rotated through using period_millis defined on the object&#x27;s RotatingBarcodeValueInfo. This is an ISO 8601 extended format date/time, with an offset. 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 event were 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.
      &quot;values&quot;: [ # Required. The values to encode in the barcode. At least one value is required.
        &quot;A String&quot;,
      ],
    },
    &quot;renderEncoding&quot;: &quot;A String&quot;, # The render encoding for the barcode. When specified, barcode is rendered in the given encoding. Otherwise best known encoding is chosen by Google.
    &quot;showCodeText&quot;: { # Optional text that will be shown when the barcode is hidden behind a click action. This happens in cases where a pass has Smart Tap enabled. If not specified, a default is chosen by Google.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;totpDetails&quot;: { # Configuration for the time-based OTP substitutions. See https://tools.ietf.org/html/rfc6238 # Details used to evaluate the {totp_value_n} substitutions.
      &quot;algorithm&quot;: &quot;A String&quot;, # The TOTP algorithm used to generate the OTP.
      &quot;parameters&quot;: [ # The TOTP parameters for each of the {totp_value_*} substitutions. The TotpParameters at index n is used for the {totp_value_n} substitution.
        { # Configuration for the key and value length. See https://www.rfc-editor.org/rfc/rfc4226#section-5.3
          &quot;key&quot;: &quot;A String&quot;, # The secret key used for the TOTP value generation, encoded as a Base16 string.
          &quot;valueLength&quot;: 42, # The length of the TOTP value in decimal digits.
        },
      ],
      &quot;periodMillis&quot;: &quot;A String&quot;, # The time interval used for the TOTP value generation, in milliseconds.
    },
    &quot;type&quot;: &quot;A String&quot;, # The type of this barcode.
    &quot;valuePattern&quot;: &quot;A String&quot;, # String encoded barcode value. This string supports the following substitutions: * {totp_value_n}: Replaced with the TOTP value (see TotpDetails.parameters). * {totp_timestamp_millis}: Replaced with the timestamp (millis since epoch) at which the barcode was generated. * {totp_timestamp_seconds}: Replaced with the timestamp (seconds since epoch) at which the barcode was generated.
  },
  &quot;smartTapRedemptionValue&quot;: &quot;A String&quot;, # The value that will be transmitted to a Smart Tap certified terminal over NFC for this object. The class level fields `enableSmartTap` and `redemptionIssuers` must also be set up correctly in order for the pass to support Smart Tap. Only ASCII characters are supported.
  &quot;state&quot;: &quot;A String&quot;, # Required. The state of the object. This field is used to determine how an object is displayed in the app. For example, an `inactive` object is moved to the &quot;Expired passes&quot; section.
  &quot;textModulesData&quot;: [ # Text module data. If text module data is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from the object and 10 from the class.
    { # 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.
      &quot;body&quot;: &quot;A String&quot;, # 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.
      &quot;header&quot;: &quot;A String&quot;, # The header of the Text Module. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with a text module. This field is here to enable ease of management of text modules.
      &quot;localizedBody&quot;: { # Translated strings for the body. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;localizedHeader&quot;: { # Translated strings for the header. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
    },
  ],
  &quot;validTimeInterval&quot;: { # The time period this object will be `active` and object can be used. An object&#x27;s state will be changed to `expired` when this time period has passed.
    &quot;end&quot;: { # End time of the interval. Offset is not required. If an offset is provided and `start` time is set, `start` must also include an offset.
      &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#timeInterval&quot;`.
    &quot;start&quot;: { # Start time of the interval. Offset is not required. If an offset is provided and `end` time is set, `end` must also include an offset.
      &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;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&#x27;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&#x27;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.
    },
  },
  &quot;version&quot;: &quot;A String&quot;, # Deprecated
}</pre>
</div>

</body></html>