<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.transitobject.html">transitobject</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 transit 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 transit 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 transit 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 transit 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 transit 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 transit 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 transit 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 TransitObject resource.
    &quot;activationStatus&quot;: { # The activation status of the object. This field includes activation status if valuable supports activation. # The activation status for the object. Required if the class has `activationOptions` set.
      &quot;state&quot;: &quot;A String&quot;,
    },
    &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;activationOptions&quot;: { # ActivationOptions for the class # Activation options for an activatable ticket.
        &quot;activationUrl&quot;: &quot;A String&quot;, # HTTPS URL that supports REST semantics. Would be used for requesting activation from partners for given valuable, triggered by the users.
        &quot;allowReactivation&quot;: True or False, # Flag to allow users to make activation call from different device. This allows client to render the activation button enabled even if the activationStatus is ACTIVATED but the requested device is different than the current device.
      },
      &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;customCarriageLabel&quot;: { # A custom label to use for the carriage value (`transitObject.ticketLeg.carriage`).
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;customCoachLabel&quot;: { # A custom label to use for the coach value (`transitObject.ticketLeg.ticketSeat.coach`).
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;customConcessionCategoryLabel&quot;: { # A custom label to use for the transit concession category value (`transitObject.concessionCategory`).
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;customConfirmationCodeLabel&quot;: { # A custom label to use for the confirmation code value (`transitObject.purchaseDetails.confirmationCode`).
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;customDiscountMessageLabel&quot;: { # A custom label to use for the transit discount message value (`transitObject.purchaseDetails.ticketCost.discountMessage`).
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;customFareClassLabel&quot;: { # A custom label to use for the fare class value (`transitObject.ticketLeg.ticketSeat.fareClass`).
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;customFareNameLabel&quot;: { # A custom label to use for the transit fare name value (`transitObject.ticketLeg.fareName`).
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;customOtherRestrictionsLabel&quot;: { # A custom label to use for the other restrictions value (`transitObject.ticketRestrictions.otherRestrictions`).
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;customPlatformLabel&quot;: { # A custom label to use for the boarding platform value (`transitObject.ticketLeg.platform`).
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;customPurchaseFaceValueLabel&quot;: { # A custom label to use for the purchase face value (`transitObject.purchaseDetails.ticketCost.faceValue`).
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;customPurchasePriceLabel&quot;: { # A custom label to use for the purchase price value (`transitObject.purchaseDetails.ticketCost.purchasePrice`).
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;customPurchaseReceiptNumberLabel&quot;: { # A custom label to use for the purchase receipt number value (`transitObject.purchaseDetails.purchaseReceiptNumber`).
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;customRouteRestrictionsDetailsLabel&quot;: { # A custom label to use for the route restrictions details value (`transitObject.ticketRestrictions.routeRestrictionsDetails`).
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;customRouteRestrictionsLabel&quot;: { # A custom label to use for the route restrictions value (`transitObject.ticketRestrictions.routeRestrictions`).
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;customSeatLabel&quot;: { # A custom label to use for the seat location value (`transitObject.ticketLeg.ticketSeat.seat`).
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;customTicketNumberLabel&quot;: { # A custom label to use for the ticket number value (`transitObject.ticketNumber`).
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;customTimeRestrictionsLabel&quot;: { # A custom label to use for the time restrictions details value (`transitObject.ticketRestrictions.timeRestrictions`).
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;customTransitTerminusNameLabel&quot;: { # A custom label to use for the transit terminus name value (`transitObject.ticketLeg.transitTerminusName`).
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;customZoneLabel&quot;: { # A custom label to use for the boarding zone value (`transitObject.ticketLeg.zone`).
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;enableSingleLegItinerary&quot;: True or False, # Controls the display of the single-leg itinerary for this class. By default, an itinerary will only display for multi-leg trips.
      &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;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;languageOverride&quot;: &quot;A String&quot;, # If this field is present, transit tickets served to a user&#x27;s device will always be in this language. Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&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;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;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;logo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Required. The logo image of the ticket. This image is displayed in the card detail view 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;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;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 `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;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;transitOperatorName&quot;: { # The name of the transit operator.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;transitType&quot;: &quot;A String&quot;, # Required. The type of transit this class represents, such as &quot;bus&quot;.
      &quot;version&quot;: &quot;A String&quot;, # Deprecated
      &quot;viewUnlockRequirement&quot;: &quot;A String&quot;, # View Unlock Requirement options for the transit ticket.
      &quot;watermark&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Watermark image to display on the user&#x27;s device.
        &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;wideLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The wide logo of the ticket. When provided, this will be used in place of the logo 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;concessionCategory&quot;: &quot;A String&quot;, # The concession category for the ticket.
    &quot;customConcessionCategory&quot;: { # A custom concession category to use when `concessionCategory` does not provide the right option. Both `concessionCategory` and `customConcessionCategory` may not be set.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customTicketStatus&quot;: { # A custom status to use for the ticket status value when `ticketStatus` does not provide the right option. Both `ticketStatus` and `customTicketStatus` may not be set.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;deviceContext&quot;: { # Device context associated with the object. # Device context associated with the object.
      &quot;deviceToken&quot;: &quot;A String&quot;, # If set, redemption information will only be returned to the given device upon activation of the object. This should not be used as a stable identifier to trace a user&#x27;s device. It can change across different passes for the same device or even across different activations for the same device. When setting this, callers must also set has_linked_device on the object being activated.
    },
    &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;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;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;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;passengerNames&quot;: &quot;A String&quot;, # The name(s) of the passengers the ticket is assigned to. The above `passengerType` field is meant to give Google context on this field.
    &quot;passengerType&quot;: &quot;A String&quot;, # The number of passengers.
    &quot;purchaseDetails&quot;: { # Purchase details for this ticket.
      &quot;accountId&quot;: &quot;A String&quot;, # ID of the account used to purchase the ticket.
      &quot;confirmationCode&quot;: &quot;A String&quot;, # The confirmation code for the purchase. This may be the same for multiple different tickets and is used to group tickets together.
      &quot;purchaseDateTime&quot;: &quot;A String&quot;, # The purchase date/time of the ticket. This is an ISO 8601 extended format date/time, with or without 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. `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. Without offset information, some rich features may not be available.
      &quot;purchaseReceiptNumber&quot;: &quot;A String&quot;, # Receipt number/identifier for tracking the ticket purchase via the body that sold the ticket.
      &quot;ticketCost&quot;: { # The cost of the ticket.
        &quot;discountMessage&quot;: { # A message describing any kind of discount that was applied.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;faceValue&quot;: { # The face value of the ticket.
          &quot;currencyCode&quot;: &quot;A String&quot;, # The currency code, such as &quot;USD&quot; or &quot;EUR.&quot;
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#money&quot;`.
          &quot;micros&quot;: &quot;A String&quot;, # The unit of money amount in micros. For example, $1 USD would be represented as 1000000 micros.
        },
        &quot;purchasePrice&quot;: { # The actual purchase price of the ticket, after tax and/or discounts.
          &quot;currencyCode&quot;: &quot;A String&quot;, # The currency code, such as &quot;USD&quot; or &quot;EUR.&quot;
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#money&quot;`.
          &quot;micros&quot;: &quot;A String&quot;, # The unit of money amount in micros. For example, $1 USD would be represented as 1000000 micros.
        },
      },
    },
    &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;ticketLeg&quot;: { # A single ticket leg contains departure and arrival information along with boarding and seating information. If more than one leg is to be specified then use the `ticketLegs` field instead. Both `ticketLeg` and `ticketLegs` may not be set.
      &quot;arrivalDateTime&quot;: &quot;A String&quot;, # The date/time of arrival. This is an ISO 8601 extended format date/time, with or without 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. `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. The portion of the date/time without the offset is considered the &quot;local date/time&quot;. This should be the local date/time at the destination station. For example, if the event occurs at the 20th hour of June 5th, 2018 at the destination station, the local date/time portion should be `2018-06-05T20:00:00`. If the local date/time at the destination station is 4 hours before UTC, an offset of `-04:00` may be appended. Without offset information, some rich features may not be available.
      &quot;carriage&quot;: &quot;A String&quot;, # The train or ship name/number that the passsenger needs to board.
      &quot;departureDateTime&quot;: &quot;A String&quot;, # The date/time of departure. This is required if there is no validity time interval set on the transit object. This is an ISO 8601 extended format date/time, with or without 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. `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. The portion of the date/time without the offset is considered the &quot;local date/time&quot;. This should be the local date/time at the origin station. For example, if the departure occurs at the 20th hour of June 5th, 2018 at the origin station, the local date/time portion should be `2018-06-05T20:00:00`. If the local date/time at the origin station is 4 hours before UTC, an offset of `-04:00` may be appended. Without offset information, some rich features may not be available.
      &quot;destinationName&quot;: { # The destination name.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;destinationStationCode&quot;: &quot;A String&quot;, # The destination station code.
      &quot;fareName&quot;: { # Short description/name of the fare for this leg of travel. Eg &quot;Anytime Single Use&quot;.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;originName&quot;: { # The name of the origin station. This is required if `desinationName` is present or if `originStationCode` is not present.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;originStationCode&quot;: &quot;A String&quot;, # The origin station code. This is required if `destinationStationCode` is present or if `originName` is not present.
      &quot;platform&quot;: &quot;A String&quot;, # The platform or gate where the passenger can board the carriage.
      &quot;ticketSeat&quot;: { # The reserved seat for the passenger(s). If more than one seat is to be specified then use the `ticketSeats` field instead. Both `ticketSeat` and `ticketSeats` may not be set.
        &quot;coach&quot;: &quot;A String&quot;, # The identifier of the train car or coach in which the ticketed seat is located. Eg. &quot;10&quot;
        &quot;customFareClass&quot;: { # A custome fare class to be used if no `fareClass` applies. Both `fareClass` and `customFareClass` may not be set.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;fareClass&quot;: &quot;A String&quot;, # The fare class of the ticketed seat.
        &quot;seat&quot;: &quot;A String&quot;, # The identifier of where the ticketed seat is located. Eg. &quot;42&quot;. If there is no specific identifier, use `seatAssigment` instead.
        &quot;seatAssignment&quot;: { # The passenger&#x27;s seat assignment. Eg. &quot;no specific seat&quot;. To be used when there is no specific identifier to use in `seat`.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
      },
      &quot;ticketSeats&quot;: [ # The reserved seat for the passenger(s). If only one seat is to be specified then use the `ticketSeat` field instead. Both `ticketSeat` and `ticketSeats` may not be set.
        {
          &quot;coach&quot;: &quot;A String&quot;, # The identifier of the train car or coach in which the ticketed seat is located. Eg. &quot;10&quot;
          &quot;customFareClass&quot;: { # A custome fare class to be used if no `fareClass` applies. Both `fareClass` and `customFareClass` may not be set.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;fareClass&quot;: &quot;A String&quot;, # The fare class of the ticketed seat.
          &quot;seat&quot;: &quot;A String&quot;, # The identifier of where the ticketed seat is located. Eg. &quot;42&quot;. If there is no specific identifier, use `seatAssigment` instead.
          &quot;seatAssignment&quot;: { # The passenger&#x27;s seat assignment. Eg. &quot;no specific seat&quot;. To be used when there is no specific identifier to use in `seat`.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
        },
      ],
      &quot;transitOperatorName&quot;: { # The name of the transit operator that is operating this leg of a trip.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;transitTerminusName&quot;: { # Terminus station or destination of the train/bus/etc.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;zone&quot;: &quot;A String&quot;, # The zone of boarding within the platform.
    },
    &quot;ticketLegs&quot;: [ # Each ticket may contain one or more legs. Each leg contains departure and arrival information along with boarding and seating information. If only one leg is to be specified then use the `ticketLeg` field instead. Both `ticketLeg` and `ticketLegs` may not be set.
      {
        &quot;arrivalDateTime&quot;: &quot;A String&quot;, # The date/time of arrival. This is an ISO 8601 extended format date/time, with or without 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. `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. The portion of the date/time without the offset is considered the &quot;local date/time&quot;. This should be the local date/time at the destination station. For example, if the event occurs at the 20th hour of June 5th, 2018 at the destination station, the local date/time portion should be `2018-06-05T20:00:00`. If the local date/time at the destination station is 4 hours before UTC, an offset of `-04:00` may be appended. Without offset information, some rich features may not be available.
        &quot;carriage&quot;: &quot;A String&quot;, # The train or ship name/number that the passsenger needs to board.
        &quot;departureDateTime&quot;: &quot;A String&quot;, # The date/time of departure. This is required if there is no validity time interval set on the transit object. This is an ISO 8601 extended format date/time, with or without 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. `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. The portion of the date/time without the offset is considered the &quot;local date/time&quot;. This should be the local date/time at the origin station. For example, if the departure occurs at the 20th hour of June 5th, 2018 at the origin station, the local date/time portion should be `2018-06-05T20:00:00`. If the local date/time at the origin station is 4 hours before UTC, an offset of `-04:00` may be appended. Without offset information, some rich features may not be available.
        &quot;destinationName&quot;: { # The destination name.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;destinationStationCode&quot;: &quot;A String&quot;, # The destination station code.
        &quot;fareName&quot;: { # Short description/name of the fare for this leg of travel. Eg &quot;Anytime Single Use&quot;.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;originName&quot;: { # The name of the origin station. This is required if `desinationName` is present or if `originStationCode` is not present.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;originStationCode&quot;: &quot;A String&quot;, # The origin station code. This is required if `destinationStationCode` is present or if `originName` is not present.
        &quot;platform&quot;: &quot;A String&quot;, # The platform or gate where the passenger can board the carriage.
        &quot;ticketSeat&quot;: { # The reserved seat for the passenger(s). If more than one seat is to be specified then use the `ticketSeats` field instead. Both `ticketSeat` and `ticketSeats` may not be set.
          &quot;coach&quot;: &quot;A String&quot;, # The identifier of the train car or coach in which the ticketed seat is located. Eg. &quot;10&quot;
          &quot;customFareClass&quot;: { # A custome fare class to be used if no `fareClass` applies. Both `fareClass` and `customFareClass` may not be set.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;fareClass&quot;: &quot;A String&quot;, # The fare class of the ticketed seat.
          &quot;seat&quot;: &quot;A String&quot;, # The identifier of where the ticketed seat is located. Eg. &quot;42&quot;. If there is no specific identifier, use `seatAssigment` instead.
          &quot;seatAssignment&quot;: { # The passenger&#x27;s seat assignment. Eg. &quot;no specific seat&quot;. To be used when there is no specific identifier to use in `seat`.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
        },
        &quot;ticketSeats&quot;: [ # The reserved seat for the passenger(s). If only one seat is to be specified then use the `ticketSeat` field instead. Both `ticketSeat` and `ticketSeats` may not be set.
          {
            &quot;coach&quot;: &quot;A String&quot;, # The identifier of the train car or coach in which the ticketed seat is located. Eg. &quot;10&quot;
            &quot;customFareClass&quot;: { # A custome fare class to be used if no `fareClass` applies. Both `fareClass` and `customFareClass` may not be set.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;fareClass&quot;: &quot;A String&quot;, # The fare class of the ticketed seat.
            &quot;seat&quot;: &quot;A String&quot;, # The identifier of where the ticketed seat is located. Eg. &quot;42&quot;. If there is no specific identifier, use `seatAssigment` instead.
            &quot;seatAssignment&quot;: { # The passenger&#x27;s seat assignment. Eg. &quot;no specific seat&quot;. To be used when there is no specific identifier to use in `seat`.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
          },
        ],
        &quot;transitOperatorName&quot;: { # The name of the transit operator that is operating this leg of a trip.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;transitTerminusName&quot;: { # Terminus station or destination of the train/bus/etc.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;zone&quot;: &quot;A String&quot;, # The zone of boarding within the platform.
      },
    ],
    &quot;ticketNumber&quot;: &quot;A String&quot;, # The number of the ticket. This is a unique identifier for the ticket in the transit operator&#x27;s system.
    &quot;ticketRestrictions&quot;: { # Information about what kind of restrictions there are on using this ticket. For example, which days of the week it must be used, or which routes are allowed to be taken.
      &quot;otherRestrictions&quot;: { # Extra restrictions that don&#x27;t fall under the &quot;route&quot; or &quot;time&quot; categories.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;routeRestrictions&quot;: { # Restrictions about routes that may be taken. For example, this may be the string &quot;Reserved CrossCountry trains only&quot;.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;routeRestrictionsDetails&quot;: { # More details about the above `routeRestrictions`.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;timeRestrictions&quot;: { # Restrictions about times this ticket may be used.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
    },
    &quot;ticketStatus&quot;: &quot;A String&quot;, # The status of the ticket. For states which affect display, use the `state` field instead.
    &quot;tripId&quot;: &quot;A String&quot;, # This id is used to group tickets together if the user has saved multiple tickets for the same trip.
    &quot;tripType&quot;: &quot;A String&quot;, # Required. The type of trip this transit object represents. Used to determine the pass title and/or which symbol to use between the origin and destination.
    &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 transit 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;activationStatus&quot;: { # The activation status of the object. This field includes activation status if valuable supports activation. # The activation status for the object. Required if the class has `activationOptions` set.
    &quot;state&quot;: &quot;A String&quot;,
  },
  &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;activationOptions&quot;: { # ActivationOptions for the class # Activation options for an activatable ticket.
      &quot;activationUrl&quot;: &quot;A String&quot;, # HTTPS URL that supports REST semantics. Would be used for requesting activation from partners for given valuable, triggered by the users.
      &quot;allowReactivation&quot;: True or False, # Flag to allow users to make activation call from different device. This allows client to render the activation button enabled even if the activationStatus is ACTIVATED but the requested device is different than the current device.
    },
    &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;customCarriageLabel&quot;: { # A custom label to use for the carriage value (`transitObject.ticketLeg.carriage`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customCoachLabel&quot;: { # A custom label to use for the coach value (`transitObject.ticketLeg.ticketSeat.coach`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customConcessionCategoryLabel&quot;: { # A custom label to use for the transit concession category value (`transitObject.concessionCategory`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customConfirmationCodeLabel&quot;: { # A custom label to use for the confirmation code value (`transitObject.purchaseDetails.confirmationCode`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customDiscountMessageLabel&quot;: { # A custom label to use for the transit discount message value (`transitObject.purchaseDetails.ticketCost.discountMessage`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customFareClassLabel&quot;: { # A custom label to use for the fare class value (`transitObject.ticketLeg.ticketSeat.fareClass`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customFareNameLabel&quot;: { # A custom label to use for the transit fare name value (`transitObject.ticketLeg.fareName`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customOtherRestrictionsLabel&quot;: { # A custom label to use for the other restrictions value (`transitObject.ticketRestrictions.otherRestrictions`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customPlatformLabel&quot;: { # A custom label to use for the boarding platform value (`transitObject.ticketLeg.platform`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customPurchaseFaceValueLabel&quot;: { # A custom label to use for the purchase face value (`transitObject.purchaseDetails.ticketCost.faceValue`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customPurchasePriceLabel&quot;: { # A custom label to use for the purchase price value (`transitObject.purchaseDetails.ticketCost.purchasePrice`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customPurchaseReceiptNumberLabel&quot;: { # A custom label to use for the purchase receipt number value (`transitObject.purchaseDetails.purchaseReceiptNumber`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customRouteRestrictionsDetailsLabel&quot;: { # A custom label to use for the route restrictions details value (`transitObject.ticketRestrictions.routeRestrictionsDetails`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customRouteRestrictionsLabel&quot;: { # A custom label to use for the route restrictions value (`transitObject.ticketRestrictions.routeRestrictions`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customSeatLabel&quot;: { # A custom label to use for the seat location value (`transitObject.ticketLeg.ticketSeat.seat`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customTicketNumberLabel&quot;: { # A custom label to use for the ticket number value (`transitObject.ticketNumber`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customTimeRestrictionsLabel&quot;: { # A custom label to use for the time restrictions details value (`transitObject.ticketRestrictions.timeRestrictions`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customTransitTerminusNameLabel&quot;: { # A custom label to use for the transit terminus name value (`transitObject.ticketLeg.transitTerminusName`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customZoneLabel&quot;: { # A custom label to use for the boarding zone value (`transitObject.ticketLeg.zone`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;enableSingleLegItinerary&quot;: True or False, # Controls the display of the single-leg itinerary for this class. By default, an itinerary will only display for multi-leg trips.
    &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;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;languageOverride&quot;: &quot;A String&quot;, # If this field is present, transit tickets served to a user&#x27;s device will always be in this language. Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&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;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;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;logo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Required. The logo image of the ticket. This image is displayed in the card detail view 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;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;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 `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;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;transitOperatorName&quot;: { # The name of the transit operator.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;transitType&quot;: &quot;A String&quot;, # Required. The type of transit this class represents, such as &quot;bus&quot;.
    &quot;version&quot;: &quot;A String&quot;, # Deprecated
    &quot;viewUnlockRequirement&quot;: &quot;A String&quot;, # View Unlock Requirement options for the transit ticket.
    &quot;watermark&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Watermark image to display on the user&#x27;s device.
      &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;wideLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The wide logo of the ticket. When provided, this will be used in place of the logo 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;concessionCategory&quot;: &quot;A String&quot;, # The concession category for the ticket.
  &quot;customConcessionCategory&quot;: { # A custom concession category to use when `concessionCategory` does not provide the right option. Both `concessionCategory` and `customConcessionCategory` may not be set.
    &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
      &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
      &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
    &quot;translatedValues&quot;: [ # Contains the translations for the string.
      {
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
    ],
  },
  &quot;customTicketStatus&quot;: { # A custom status to use for the ticket status value when `ticketStatus` does not provide the right option. Both `ticketStatus` and `customTicketStatus` may not be set.
    &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
      &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
      &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
    &quot;translatedValues&quot;: [ # Contains the translations for the string.
      {
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
    ],
  },
  &quot;deviceContext&quot;: { # Device context associated with the object. # Device context associated with the object.
    &quot;deviceToken&quot;: &quot;A String&quot;, # If set, redemption information will only be returned to the given device upon activation of the object. This should not be used as a stable identifier to trace a user&#x27;s device. It can change across different passes for the same device or even across different activations for the same device. When setting this, callers must also set has_linked_device on the object being activated.
  },
  &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;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;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;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;passengerNames&quot;: &quot;A String&quot;, # The name(s) of the passengers the ticket is assigned to. The above `passengerType` field is meant to give Google context on this field.
  &quot;passengerType&quot;: &quot;A String&quot;, # The number of passengers.
  &quot;purchaseDetails&quot;: { # Purchase details for this ticket.
    &quot;accountId&quot;: &quot;A String&quot;, # ID of the account used to purchase the ticket.
    &quot;confirmationCode&quot;: &quot;A String&quot;, # The confirmation code for the purchase. This may be the same for multiple different tickets and is used to group tickets together.
    &quot;purchaseDateTime&quot;: &quot;A String&quot;, # The purchase date/time of the ticket. This is an ISO 8601 extended format date/time, with or without 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. `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. Without offset information, some rich features may not be available.
    &quot;purchaseReceiptNumber&quot;: &quot;A String&quot;, # Receipt number/identifier for tracking the ticket purchase via the body that sold the ticket.
    &quot;ticketCost&quot;: { # The cost of the ticket.
      &quot;discountMessage&quot;: { # A message describing any kind of discount that was applied.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;faceValue&quot;: { # The face value of the ticket.
        &quot;currencyCode&quot;: &quot;A String&quot;, # The currency code, such as &quot;USD&quot; or &quot;EUR.&quot;
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#money&quot;`.
        &quot;micros&quot;: &quot;A String&quot;, # The unit of money amount in micros. For example, $1 USD would be represented as 1000000 micros.
      },
      &quot;purchasePrice&quot;: { # The actual purchase price of the ticket, after tax and/or discounts.
        &quot;currencyCode&quot;: &quot;A String&quot;, # The currency code, such as &quot;USD&quot; or &quot;EUR.&quot;
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#money&quot;`.
        &quot;micros&quot;: &quot;A String&quot;, # The unit of money amount in micros. For example, $1 USD would be represented as 1000000 micros.
      },
    },
  },
  &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;ticketLeg&quot;: { # A single ticket leg contains departure and arrival information along with boarding and seating information. If more than one leg is to be specified then use the `ticketLegs` field instead. Both `ticketLeg` and `ticketLegs` may not be set.
    &quot;arrivalDateTime&quot;: &quot;A String&quot;, # The date/time of arrival. This is an ISO 8601 extended format date/time, with or without 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. `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. The portion of the date/time without the offset is considered the &quot;local date/time&quot;. This should be the local date/time at the destination station. For example, if the event occurs at the 20th hour of June 5th, 2018 at the destination station, the local date/time portion should be `2018-06-05T20:00:00`. If the local date/time at the destination station is 4 hours before UTC, an offset of `-04:00` may be appended. Without offset information, some rich features may not be available.
    &quot;carriage&quot;: &quot;A String&quot;, # The train or ship name/number that the passsenger needs to board.
    &quot;departureDateTime&quot;: &quot;A String&quot;, # The date/time of departure. This is required if there is no validity time interval set on the transit object. This is an ISO 8601 extended format date/time, with or without 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. `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. The portion of the date/time without the offset is considered the &quot;local date/time&quot;. This should be the local date/time at the origin station. For example, if the departure occurs at the 20th hour of June 5th, 2018 at the origin station, the local date/time portion should be `2018-06-05T20:00:00`. If the local date/time at the origin station is 4 hours before UTC, an offset of `-04:00` may be appended. Without offset information, some rich features may not be available.
    &quot;destinationName&quot;: { # The destination name.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;destinationStationCode&quot;: &quot;A String&quot;, # The destination station code.
    &quot;fareName&quot;: { # Short description/name of the fare for this leg of travel. Eg &quot;Anytime Single Use&quot;.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;originName&quot;: { # The name of the origin station. This is required if `desinationName` is present or if `originStationCode` is not present.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;originStationCode&quot;: &quot;A String&quot;, # The origin station code. This is required if `destinationStationCode` is present or if `originName` is not present.
    &quot;platform&quot;: &quot;A String&quot;, # The platform or gate where the passenger can board the carriage.
    &quot;ticketSeat&quot;: { # The reserved seat for the passenger(s). If more than one seat is to be specified then use the `ticketSeats` field instead. Both `ticketSeat` and `ticketSeats` may not be set.
      &quot;coach&quot;: &quot;A String&quot;, # The identifier of the train car or coach in which the ticketed seat is located. Eg. &quot;10&quot;
      &quot;customFareClass&quot;: { # A custome fare class to be used if no `fareClass` applies. Both `fareClass` and `customFareClass` may not be set.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;fareClass&quot;: &quot;A String&quot;, # The fare class of the ticketed seat.
      &quot;seat&quot;: &quot;A String&quot;, # The identifier of where the ticketed seat is located. Eg. &quot;42&quot;. If there is no specific identifier, use `seatAssigment` instead.
      &quot;seatAssignment&quot;: { # The passenger&#x27;s seat assignment. Eg. &quot;no specific seat&quot;. To be used when there is no specific identifier to use in `seat`.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
    },
    &quot;ticketSeats&quot;: [ # The reserved seat for the passenger(s). If only one seat is to be specified then use the `ticketSeat` field instead. Both `ticketSeat` and `ticketSeats` may not be set.
      {
        &quot;coach&quot;: &quot;A String&quot;, # The identifier of the train car or coach in which the ticketed seat is located. Eg. &quot;10&quot;
        &quot;customFareClass&quot;: { # A custome fare class to be used if no `fareClass` applies. Both `fareClass` and `customFareClass` may not be set.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;fareClass&quot;: &quot;A String&quot;, # The fare class of the ticketed seat.
        &quot;seat&quot;: &quot;A String&quot;, # The identifier of where the ticketed seat is located. Eg. &quot;42&quot;. If there is no specific identifier, use `seatAssigment` instead.
        &quot;seatAssignment&quot;: { # The passenger&#x27;s seat assignment. Eg. &quot;no specific seat&quot;. To be used when there is no specific identifier to use in `seat`.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
      },
    ],
    &quot;transitOperatorName&quot;: { # The name of the transit operator that is operating this leg of a trip.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;transitTerminusName&quot;: { # Terminus station or destination of the train/bus/etc.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;zone&quot;: &quot;A String&quot;, # The zone of boarding within the platform.
  },
  &quot;ticketLegs&quot;: [ # Each ticket may contain one or more legs. Each leg contains departure and arrival information along with boarding and seating information. If only one leg is to be specified then use the `ticketLeg` field instead. Both `ticketLeg` and `ticketLegs` may not be set.
    {
      &quot;arrivalDateTime&quot;: &quot;A String&quot;, # The date/time of arrival. This is an ISO 8601 extended format date/time, with or without 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. `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. The portion of the date/time without the offset is considered the &quot;local date/time&quot;. This should be the local date/time at the destination station. For example, if the event occurs at the 20th hour of June 5th, 2018 at the destination station, the local date/time portion should be `2018-06-05T20:00:00`. If the local date/time at the destination station is 4 hours before UTC, an offset of `-04:00` may be appended. Without offset information, some rich features may not be available.
      &quot;carriage&quot;: &quot;A String&quot;, # The train or ship name/number that the passsenger needs to board.
      &quot;departureDateTime&quot;: &quot;A String&quot;, # The date/time of departure. This is required if there is no validity time interval set on the transit object. This is an ISO 8601 extended format date/time, with or without 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. `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. The portion of the date/time without the offset is considered the &quot;local date/time&quot;. This should be the local date/time at the origin station. For example, if the departure occurs at the 20th hour of June 5th, 2018 at the origin station, the local date/time portion should be `2018-06-05T20:00:00`. If the local date/time at the origin station is 4 hours before UTC, an offset of `-04:00` may be appended. Without offset information, some rich features may not be available.
      &quot;destinationName&quot;: { # The destination name.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;destinationStationCode&quot;: &quot;A String&quot;, # The destination station code.
      &quot;fareName&quot;: { # Short description/name of the fare for this leg of travel. Eg &quot;Anytime Single Use&quot;.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;originName&quot;: { # The name of the origin station. This is required if `desinationName` is present or if `originStationCode` is not present.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;originStationCode&quot;: &quot;A String&quot;, # The origin station code. This is required if `destinationStationCode` is present or if `originName` is not present.
      &quot;platform&quot;: &quot;A String&quot;, # The platform or gate where the passenger can board the carriage.
      &quot;ticketSeat&quot;: { # The reserved seat for the passenger(s). If more than one seat is to be specified then use the `ticketSeats` field instead. Both `ticketSeat` and `ticketSeats` may not be set.
        &quot;coach&quot;: &quot;A String&quot;, # The identifier of the train car or coach in which the ticketed seat is located. Eg. &quot;10&quot;
        &quot;customFareClass&quot;: { # A custome fare class to be used if no `fareClass` applies. Both `fareClass` and `customFareClass` may not be set.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;fareClass&quot;: &quot;A String&quot;, # The fare class of the ticketed seat.
        &quot;seat&quot;: &quot;A String&quot;, # The identifier of where the ticketed seat is located. Eg. &quot;42&quot;. If there is no specific identifier, use `seatAssigment` instead.
        &quot;seatAssignment&quot;: { # The passenger&#x27;s seat assignment. Eg. &quot;no specific seat&quot;. To be used when there is no specific identifier to use in `seat`.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
      },
      &quot;ticketSeats&quot;: [ # The reserved seat for the passenger(s). If only one seat is to be specified then use the `ticketSeat` field instead. Both `ticketSeat` and `ticketSeats` may not be set.
        {
          &quot;coach&quot;: &quot;A String&quot;, # The identifier of the train car or coach in which the ticketed seat is located. Eg. &quot;10&quot;
          &quot;customFareClass&quot;: { # A custome fare class to be used if no `fareClass` applies. Both `fareClass` and `customFareClass` may not be set.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;fareClass&quot;: &quot;A String&quot;, # The fare class of the ticketed seat.
          &quot;seat&quot;: &quot;A String&quot;, # The identifier of where the ticketed seat is located. Eg. &quot;42&quot;. If there is no specific identifier, use `seatAssigment` instead.
          &quot;seatAssignment&quot;: { # The passenger&#x27;s seat assignment. Eg. &quot;no specific seat&quot;. To be used when there is no specific identifier to use in `seat`.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
        },
      ],
      &quot;transitOperatorName&quot;: { # The name of the transit operator that is operating this leg of a trip.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;transitTerminusName&quot;: { # Terminus station or destination of the train/bus/etc.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;zone&quot;: &quot;A String&quot;, # The zone of boarding within the platform.
    },
  ],
  &quot;ticketNumber&quot;: &quot;A String&quot;, # The number of the ticket. This is a unique identifier for the ticket in the transit operator&#x27;s system.
  &quot;ticketRestrictions&quot;: { # Information about what kind of restrictions there are on using this ticket. For example, which days of the week it must be used, or which routes are allowed to be taken.
    &quot;otherRestrictions&quot;: { # Extra restrictions that don&#x27;t fall under the &quot;route&quot; or &quot;time&quot; categories.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;routeRestrictions&quot;: { # Restrictions about routes that may be taken. For example, this may be the string &quot;Reserved CrossCountry trains only&quot;.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;routeRestrictionsDetails&quot;: { # More details about the above `routeRestrictions`.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;timeRestrictions&quot;: { # Restrictions about times this ticket may be used.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
  },
  &quot;ticketStatus&quot;: &quot;A String&quot;, # The status of the ticket. For states which affect display, use the `state` field instead.
  &quot;tripId&quot;: &quot;A String&quot;, # This id is used to group tickets together if the user has saved multiple tickets for the same trip.
  &quot;tripType&quot;: &quot;A String&quot;, # Required. The type of trip this transit object represents. Used to determine the pass title and/or which symbol to use between the origin and destination.
  &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 transit object with the given ID and properties.

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

{
  &quot;activationStatus&quot;: { # The activation status of the object. This field includes activation status if valuable supports activation. # The activation status for the object. Required if the class has `activationOptions` set.
    &quot;state&quot;: &quot;A String&quot;,
  },
  &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;activationOptions&quot;: { # ActivationOptions for the class # Activation options for an activatable ticket.
      &quot;activationUrl&quot;: &quot;A String&quot;, # HTTPS URL that supports REST semantics. Would be used for requesting activation from partners for given valuable, triggered by the users.
      &quot;allowReactivation&quot;: True or False, # Flag to allow users to make activation call from different device. This allows client to render the activation button enabled even if the activationStatus is ACTIVATED but the requested device is different than the current device.
    },
    &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;customCarriageLabel&quot;: { # A custom label to use for the carriage value (`transitObject.ticketLeg.carriage`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customCoachLabel&quot;: { # A custom label to use for the coach value (`transitObject.ticketLeg.ticketSeat.coach`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customConcessionCategoryLabel&quot;: { # A custom label to use for the transit concession category value (`transitObject.concessionCategory`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customConfirmationCodeLabel&quot;: { # A custom label to use for the confirmation code value (`transitObject.purchaseDetails.confirmationCode`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customDiscountMessageLabel&quot;: { # A custom label to use for the transit discount message value (`transitObject.purchaseDetails.ticketCost.discountMessage`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customFareClassLabel&quot;: { # A custom label to use for the fare class value (`transitObject.ticketLeg.ticketSeat.fareClass`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customFareNameLabel&quot;: { # A custom label to use for the transit fare name value (`transitObject.ticketLeg.fareName`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customOtherRestrictionsLabel&quot;: { # A custom label to use for the other restrictions value (`transitObject.ticketRestrictions.otherRestrictions`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customPlatformLabel&quot;: { # A custom label to use for the boarding platform value (`transitObject.ticketLeg.platform`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customPurchaseFaceValueLabel&quot;: { # A custom label to use for the purchase face value (`transitObject.purchaseDetails.ticketCost.faceValue`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customPurchasePriceLabel&quot;: { # A custom label to use for the purchase price value (`transitObject.purchaseDetails.ticketCost.purchasePrice`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customPurchaseReceiptNumberLabel&quot;: { # A custom label to use for the purchase receipt number value (`transitObject.purchaseDetails.purchaseReceiptNumber`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customRouteRestrictionsDetailsLabel&quot;: { # A custom label to use for the route restrictions details value (`transitObject.ticketRestrictions.routeRestrictionsDetails`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customRouteRestrictionsLabel&quot;: { # A custom label to use for the route restrictions value (`transitObject.ticketRestrictions.routeRestrictions`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customSeatLabel&quot;: { # A custom label to use for the seat location value (`transitObject.ticketLeg.ticketSeat.seat`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customTicketNumberLabel&quot;: { # A custom label to use for the ticket number value (`transitObject.ticketNumber`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customTimeRestrictionsLabel&quot;: { # A custom label to use for the time restrictions details value (`transitObject.ticketRestrictions.timeRestrictions`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customTransitTerminusNameLabel&quot;: { # A custom label to use for the transit terminus name value (`transitObject.ticketLeg.transitTerminusName`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customZoneLabel&quot;: { # A custom label to use for the boarding zone value (`transitObject.ticketLeg.zone`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;enableSingleLegItinerary&quot;: True or False, # Controls the display of the single-leg itinerary for this class. By default, an itinerary will only display for multi-leg trips.
    &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;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;languageOverride&quot;: &quot;A String&quot;, # If this field is present, transit tickets served to a user&#x27;s device will always be in this language. Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&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;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;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;logo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Required. The logo image of the ticket. This image is displayed in the card detail view 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;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;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 `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;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;transitOperatorName&quot;: { # The name of the transit operator.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;transitType&quot;: &quot;A String&quot;, # Required. The type of transit this class represents, such as &quot;bus&quot;.
    &quot;version&quot;: &quot;A String&quot;, # Deprecated
    &quot;viewUnlockRequirement&quot;: &quot;A String&quot;, # View Unlock Requirement options for the transit ticket.
    &quot;watermark&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Watermark image to display on the user&#x27;s device.
      &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;wideLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The wide logo of the ticket. When provided, this will be used in place of the logo 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;concessionCategory&quot;: &quot;A String&quot;, # The concession category for the ticket.
  &quot;customConcessionCategory&quot;: { # A custom concession category to use when `concessionCategory` does not provide the right option. Both `concessionCategory` and `customConcessionCategory` may not be set.
    &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
      &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
      &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
    &quot;translatedValues&quot;: [ # Contains the translations for the string.
      {
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
    ],
  },
  &quot;customTicketStatus&quot;: { # A custom status to use for the ticket status value when `ticketStatus` does not provide the right option. Both `ticketStatus` and `customTicketStatus` may not be set.
    &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
      &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
      &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
    &quot;translatedValues&quot;: [ # Contains the translations for the string.
      {
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
    ],
  },
  &quot;deviceContext&quot;: { # Device context associated with the object. # Device context associated with the object.
    &quot;deviceToken&quot;: &quot;A String&quot;, # If set, redemption information will only be returned to the given device upon activation of the object. This should not be used as a stable identifier to trace a user&#x27;s device. It can change across different passes for the same device or even across different activations for the same device. When setting this, callers must also set has_linked_device on the object being activated.
  },
  &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;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;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;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;passengerNames&quot;: &quot;A String&quot;, # The name(s) of the passengers the ticket is assigned to. The above `passengerType` field is meant to give Google context on this field.
  &quot;passengerType&quot;: &quot;A String&quot;, # The number of passengers.
  &quot;purchaseDetails&quot;: { # Purchase details for this ticket.
    &quot;accountId&quot;: &quot;A String&quot;, # ID of the account used to purchase the ticket.
    &quot;confirmationCode&quot;: &quot;A String&quot;, # The confirmation code for the purchase. This may be the same for multiple different tickets and is used to group tickets together.
    &quot;purchaseDateTime&quot;: &quot;A String&quot;, # The purchase date/time of the ticket. This is an ISO 8601 extended format date/time, with or without 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. `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. Without offset information, some rich features may not be available.
    &quot;purchaseReceiptNumber&quot;: &quot;A String&quot;, # Receipt number/identifier for tracking the ticket purchase via the body that sold the ticket.
    &quot;ticketCost&quot;: { # The cost of the ticket.
      &quot;discountMessage&quot;: { # A message describing any kind of discount that was applied.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;faceValue&quot;: { # The face value of the ticket.
        &quot;currencyCode&quot;: &quot;A String&quot;, # The currency code, such as &quot;USD&quot; or &quot;EUR.&quot;
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#money&quot;`.
        &quot;micros&quot;: &quot;A String&quot;, # The unit of money amount in micros. For example, $1 USD would be represented as 1000000 micros.
      },
      &quot;purchasePrice&quot;: { # The actual purchase price of the ticket, after tax and/or discounts.
        &quot;currencyCode&quot;: &quot;A String&quot;, # The currency code, such as &quot;USD&quot; or &quot;EUR.&quot;
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#money&quot;`.
        &quot;micros&quot;: &quot;A String&quot;, # The unit of money amount in micros. For example, $1 USD would be represented as 1000000 micros.
      },
    },
  },
  &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;ticketLeg&quot;: { # A single ticket leg contains departure and arrival information along with boarding and seating information. If more than one leg is to be specified then use the `ticketLegs` field instead. Both `ticketLeg` and `ticketLegs` may not be set.
    &quot;arrivalDateTime&quot;: &quot;A String&quot;, # The date/time of arrival. This is an ISO 8601 extended format date/time, with or without 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. `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. The portion of the date/time without the offset is considered the &quot;local date/time&quot;. This should be the local date/time at the destination station. For example, if the event occurs at the 20th hour of June 5th, 2018 at the destination station, the local date/time portion should be `2018-06-05T20:00:00`. If the local date/time at the destination station is 4 hours before UTC, an offset of `-04:00` may be appended. Without offset information, some rich features may not be available.
    &quot;carriage&quot;: &quot;A String&quot;, # The train or ship name/number that the passsenger needs to board.
    &quot;departureDateTime&quot;: &quot;A String&quot;, # The date/time of departure. This is required if there is no validity time interval set on the transit object. This is an ISO 8601 extended format date/time, with or without 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. `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. The portion of the date/time without the offset is considered the &quot;local date/time&quot;. This should be the local date/time at the origin station. For example, if the departure occurs at the 20th hour of June 5th, 2018 at the origin station, the local date/time portion should be `2018-06-05T20:00:00`. If the local date/time at the origin station is 4 hours before UTC, an offset of `-04:00` may be appended. Without offset information, some rich features may not be available.
    &quot;destinationName&quot;: { # The destination name.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;destinationStationCode&quot;: &quot;A String&quot;, # The destination station code.
    &quot;fareName&quot;: { # Short description/name of the fare for this leg of travel. Eg &quot;Anytime Single Use&quot;.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;originName&quot;: { # The name of the origin station. This is required if `desinationName` is present or if `originStationCode` is not present.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;originStationCode&quot;: &quot;A String&quot;, # The origin station code. This is required if `destinationStationCode` is present or if `originName` is not present.
    &quot;platform&quot;: &quot;A String&quot;, # The platform or gate where the passenger can board the carriage.
    &quot;ticketSeat&quot;: { # The reserved seat for the passenger(s). If more than one seat is to be specified then use the `ticketSeats` field instead. Both `ticketSeat` and `ticketSeats` may not be set.
      &quot;coach&quot;: &quot;A String&quot;, # The identifier of the train car or coach in which the ticketed seat is located. Eg. &quot;10&quot;
      &quot;customFareClass&quot;: { # A custome fare class to be used if no `fareClass` applies. Both `fareClass` and `customFareClass` may not be set.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;fareClass&quot;: &quot;A String&quot;, # The fare class of the ticketed seat.
      &quot;seat&quot;: &quot;A String&quot;, # The identifier of where the ticketed seat is located. Eg. &quot;42&quot;. If there is no specific identifier, use `seatAssigment` instead.
      &quot;seatAssignment&quot;: { # The passenger&#x27;s seat assignment. Eg. &quot;no specific seat&quot;. To be used when there is no specific identifier to use in `seat`.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
    },
    &quot;ticketSeats&quot;: [ # The reserved seat for the passenger(s). If only one seat is to be specified then use the `ticketSeat` field instead. Both `ticketSeat` and `ticketSeats` may not be set.
      {
        &quot;coach&quot;: &quot;A String&quot;, # The identifier of the train car or coach in which the ticketed seat is located. Eg. &quot;10&quot;
        &quot;customFareClass&quot;: { # A custome fare class to be used if no `fareClass` applies. Both `fareClass` and `customFareClass` may not be set.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;fareClass&quot;: &quot;A String&quot;, # The fare class of the ticketed seat.
        &quot;seat&quot;: &quot;A String&quot;, # The identifier of where the ticketed seat is located. Eg. &quot;42&quot;. If there is no specific identifier, use `seatAssigment` instead.
        &quot;seatAssignment&quot;: { # The passenger&#x27;s seat assignment. Eg. &quot;no specific seat&quot;. To be used when there is no specific identifier to use in `seat`.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
      },
    ],
    &quot;transitOperatorName&quot;: { # The name of the transit operator that is operating this leg of a trip.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;transitTerminusName&quot;: { # Terminus station or destination of the train/bus/etc.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;zone&quot;: &quot;A String&quot;, # The zone of boarding within the platform.
  },
  &quot;ticketLegs&quot;: [ # Each ticket may contain one or more legs. Each leg contains departure and arrival information along with boarding and seating information. If only one leg is to be specified then use the `ticketLeg` field instead. Both `ticketLeg` and `ticketLegs` may not be set.
    {
      &quot;arrivalDateTime&quot;: &quot;A String&quot;, # The date/time of arrival. This is an ISO 8601 extended format date/time, with or without 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. `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. The portion of the date/time without the offset is considered the &quot;local date/time&quot;. This should be the local date/time at the destination station. For example, if the event occurs at the 20th hour of June 5th, 2018 at the destination station, the local date/time portion should be `2018-06-05T20:00:00`. If the local date/time at the destination station is 4 hours before UTC, an offset of `-04:00` may be appended. Without offset information, some rich features may not be available.
      &quot;carriage&quot;: &quot;A String&quot;, # The train or ship name/number that the passsenger needs to board.
      &quot;departureDateTime&quot;: &quot;A String&quot;, # The date/time of departure. This is required if there is no validity time interval set on the transit object. This is an ISO 8601 extended format date/time, with or without 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. `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. The portion of the date/time without the offset is considered the &quot;local date/time&quot;. This should be the local date/time at the origin station. For example, if the departure occurs at the 20th hour of June 5th, 2018 at the origin station, the local date/time portion should be `2018-06-05T20:00:00`. If the local date/time at the origin station is 4 hours before UTC, an offset of `-04:00` may be appended. Without offset information, some rich features may not be available.
      &quot;destinationName&quot;: { # The destination name.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;destinationStationCode&quot;: &quot;A String&quot;, # The destination station code.
      &quot;fareName&quot;: { # Short description/name of the fare for this leg of travel. Eg &quot;Anytime Single Use&quot;.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;originName&quot;: { # The name of the origin station. This is required if `desinationName` is present or if `originStationCode` is not present.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;originStationCode&quot;: &quot;A String&quot;, # The origin station code. This is required if `destinationStationCode` is present or if `originName` is not present.
      &quot;platform&quot;: &quot;A String&quot;, # The platform or gate where the passenger can board the carriage.
      &quot;ticketSeat&quot;: { # The reserved seat for the passenger(s). If more than one seat is to be specified then use the `ticketSeats` field instead. Both `ticketSeat` and `ticketSeats` may not be set.
        &quot;coach&quot;: &quot;A String&quot;, # The identifier of the train car or coach in which the ticketed seat is located. Eg. &quot;10&quot;
        &quot;customFareClass&quot;: { # A custome fare class to be used if no `fareClass` applies. Both `fareClass` and `customFareClass` may not be set.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;fareClass&quot;: &quot;A String&quot;, # The fare class of the ticketed seat.
        &quot;seat&quot;: &quot;A String&quot;, # The identifier of where the ticketed seat is located. Eg. &quot;42&quot;. If there is no specific identifier, use `seatAssigment` instead.
        &quot;seatAssignment&quot;: { # The passenger&#x27;s seat assignment. Eg. &quot;no specific seat&quot;. To be used when there is no specific identifier to use in `seat`.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
      },
      &quot;ticketSeats&quot;: [ # The reserved seat for the passenger(s). If only one seat is to be specified then use the `ticketSeat` field instead. Both `ticketSeat` and `ticketSeats` may not be set.
        {
          &quot;coach&quot;: &quot;A String&quot;, # The identifier of the train car or coach in which the ticketed seat is located. Eg. &quot;10&quot;
          &quot;customFareClass&quot;: { # A custome fare class to be used if no `fareClass` applies. Both `fareClass` and `customFareClass` may not be set.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;fareClass&quot;: &quot;A String&quot;, # The fare class of the ticketed seat.
          &quot;seat&quot;: &quot;A String&quot;, # The identifier of where the ticketed seat is located. Eg. &quot;42&quot;. If there is no specific identifier, use `seatAssigment` instead.
          &quot;seatAssignment&quot;: { # The passenger&#x27;s seat assignment. Eg. &quot;no specific seat&quot;. To be used when there is no specific identifier to use in `seat`.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
        },
      ],
      &quot;transitOperatorName&quot;: { # The name of the transit operator that is operating this leg of a trip.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;transitTerminusName&quot;: { # Terminus station or destination of the train/bus/etc.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;zone&quot;: &quot;A String&quot;, # The zone of boarding within the platform.
    },
  ],
  &quot;ticketNumber&quot;: &quot;A String&quot;, # The number of the ticket. This is a unique identifier for the ticket in the transit operator&#x27;s system.
  &quot;ticketRestrictions&quot;: { # Information about what kind of restrictions there are on using this ticket. For example, which days of the week it must be used, or which routes are allowed to be taken.
    &quot;otherRestrictions&quot;: { # Extra restrictions that don&#x27;t fall under the &quot;route&quot; or &quot;time&quot; categories.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;routeRestrictions&quot;: { # Restrictions about routes that may be taken. For example, this may be the string &quot;Reserved CrossCountry trains only&quot;.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;routeRestrictionsDetails&quot;: { # More details about the above `routeRestrictions`.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;timeRestrictions&quot;: { # Restrictions about times this ticket may be used.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
  },
  &quot;ticketStatus&quot;: &quot;A String&quot;, # The status of the ticket. For states which affect display, use the `state` field instead.
  &quot;tripId&quot;: &quot;A String&quot;, # This id is used to group tickets together if the user has saved multiple tickets for the same trip.
  &quot;tripType&quot;: &quot;A String&quot;, # Required. The type of trip this transit object represents. Used to determine the pass title and/or which symbol to use between the origin and destination.
  &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;activationStatus&quot;: { # The activation status of the object. This field includes activation status if valuable supports activation. # The activation status for the object. Required if the class has `activationOptions` set.
    &quot;state&quot;: &quot;A String&quot;,
  },
  &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;activationOptions&quot;: { # ActivationOptions for the class # Activation options for an activatable ticket.
      &quot;activationUrl&quot;: &quot;A String&quot;, # HTTPS URL that supports REST semantics. Would be used for requesting activation from partners for given valuable, triggered by the users.
      &quot;allowReactivation&quot;: True or False, # Flag to allow users to make activation call from different device. This allows client to render the activation button enabled even if the activationStatus is ACTIVATED but the requested device is different than the current device.
    },
    &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;customCarriageLabel&quot;: { # A custom label to use for the carriage value (`transitObject.ticketLeg.carriage`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customCoachLabel&quot;: { # A custom label to use for the coach value (`transitObject.ticketLeg.ticketSeat.coach`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customConcessionCategoryLabel&quot;: { # A custom label to use for the transit concession category value (`transitObject.concessionCategory`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customConfirmationCodeLabel&quot;: { # A custom label to use for the confirmation code value (`transitObject.purchaseDetails.confirmationCode`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customDiscountMessageLabel&quot;: { # A custom label to use for the transit discount message value (`transitObject.purchaseDetails.ticketCost.discountMessage`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customFareClassLabel&quot;: { # A custom label to use for the fare class value (`transitObject.ticketLeg.ticketSeat.fareClass`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customFareNameLabel&quot;: { # A custom label to use for the transit fare name value (`transitObject.ticketLeg.fareName`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customOtherRestrictionsLabel&quot;: { # A custom label to use for the other restrictions value (`transitObject.ticketRestrictions.otherRestrictions`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customPlatformLabel&quot;: { # A custom label to use for the boarding platform value (`transitObject.ticketLeg.platform`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customPurchaseFaceValueLabel&quot;: { # A custom label to use for the purchase face value (`transitObject.purchaseDetails.ticketCost.faceValue`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customPurchasePriceLabel&quot;: { # A custom label to use for the purchase price value (`transitObject.purchaseDetails.ticketCost.purchasePrice`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customPurchaseReceiptNumberLabel&quot;: { # A custom label to use for the purchase receipt number value (`transitObject.purchaseDetails.purchaseReceiptNumber`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customRouteRestrictionsDetailsLabel&quot;: { # A custom label to use for the route restrictions details value (`transitObject.ticketRestrictions.routeRestrictionsDetails`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customRouteRestrictionsLabel&quot;: { # A custom label to use for the route restrictions value (`transitObject.ticketRestrictions.routeRestrictions`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customSeatLabel&quot;: { # A custom label to use for the seat location value (`transitObject.ticketLeg.ticketSeat.seat`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customTicketNumberLabel&quot;: { # A custom label to use for the ticket number value (`transitObject.ticketNumber`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customTimeRestrictionsLabel&quot;: { # A custom label to use for the time restrictions details value (`transitObject.ticketRestrictions.timeRestrictions`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customTransitTerminusNameLabel&quot;: { # A custom label to use for the transit terminus name value (`transitObject.ticketLeg.transitTerminusName`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customZoneLabel&quot;: { # A custom label to use for the boarding zone value (`transitObject.ticketLeg.zone`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;enableSingleLegItinerary&quot;: True or False, # Controls the display of the single-leg itinerary for this class. By default, an itinerary will only display for multi-leg trips.
    &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;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;languageOverride&quot;: &quot;A String&quot;, # If this field is present, transit tickets served to a user&#x27;s device will always be in this language. Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&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;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;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;logo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Required. The logo image of the ticket. This image is displayed in the card detail view 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;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;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 `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;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;transitOperatorName&quot;: { # The name of the transit operator.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;transitType&quot;: &quot;A String&quot;, # Required. The type of transit this class represents, such as &quot;bus&quot;.
    &quot;version&quot;: &quot;A String&quot;, # Deprecated
    &quot;viewUnlockRequirement&quot;: &quot;A String&quot;, # View Unlock Requirement options for the transit ticket.
    &quot;watermark&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Watermark image to display on the user&#x27;s device.
      &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;wideLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The wide logo of the ticket. When provided, this will be used in place of the logo 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;concessionCategory&quot;: &quot;A String&quot;, # The concession category for the ticket.
  &quot;customConcessionCategory&quot;: { # A custom concession category to use when `concessionCategory` does not provide the right option. Both `concessionCategory` and `customConcessionCategory` may not be set.
    &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
      &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
      &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
    &quot;translatedValues&quot;: [ # Contains the translations for the string.
      {
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
    ],
  },
  &quot;customTicketStatus&quot;: { # A custom status to use for the ticket status value when `ticketStatus` does not provide the right option. Both `ticketStatus` and `customTicketStatus` may not be set.
    &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
      &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
      &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
    &quot;translatedValues&quot;: [ # Contains the translations for the string.
      {
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
    ],
  },
  &quot;deviceContext&quot;: { # Device context associated with the object. # Device context associated with the object.
    &quot;deviceToken&quot;: &quot;A String&quot;, # If set, redemption information will only be returned to the given device upon activation of the object. This should not be used as a stable identifier to trace a user&#x27;s device. It can change across different passes for the same device or even across different activations for the same device. When setting this, callers must also set has_linked_device on the object being activated.
  },
  &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;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;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;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;passengerNames&quot;: &quot;A String&quot;, # The name(s) of the passengers the ticket is assigned to. The above `passengerType` field is meant to give Google context on this field.
  &quot;passengerType&quot;: &quot;A String&quot;, # The number of passengers.
  &quot;purchaseDetails&quot;: { # Purchase details for this ticket.
    &quot;accountId&quot;: &quot;A String&quot;, # ID of the account used to purchase the ticket.
    &quot;confirmationCode&quot;: &quot;A String&quot;, # The confirmation code for the purchase. This may be the same for multiple different tickets and is used to group tickets together.
    &quot;purchaseDateTime&quot;: &quot;A String&quot;, # The purchase date/time of the ticket. This is an ISO 8601 extended format date/time, with or without 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. `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. Without offset information, some rich features may not be available.
    &quot;purchaseReceiptNumber&quot;: &quot;A String&quot;, # Receipt number/identifier for tracking the ticket purchase via the body that sold the ticket.
    &quot;ticketCost&quot;: { # The cost of the ticket.
      &quot;discountMessage&quot;: { # A message describing any kind of discount that was applied.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;faceValue&quot;: { # The face value of the ticket.
        &quot;currencyCode&quot;: &quot;A String&quot;, # The currency code, such as &quot;USD&quot; or &quot;EUR.&quot;
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#money&quot;`.
        &quot;micros&quot;: &quot;A String&quot;, # The unit of money amount in micros. For example, $1 USD would be represented as 1000000 micros.
      },
      &quot;purchasePrice&quot;: { # The actual purchase price of the ticket, after tax and/or discounts.
        &quot;currencyCode&quot;: &quot;A String&quot;, # The currency code, such as &quot;USD&quot; or &quot;EUR.&quot;
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#money&quot;`.
        &quot;micros&quot;: &quot;A String&quot;, # The unit of money amount in micros. For example, $1 USD would be represented as 1000000 micros.
      },
    },
  },
  &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;ticketLeg&quot;: { # A single ticket leg contains departure and arrival information along with boarding and seating information. If more than one leg is to be specified then use the `ticketLegs` field instead. Both `ticketLeg` and `ticketLegs` may not be set.
    &quot;arrivalDateTime&quot;: &quot;A String&quot;, # The date/time of arrival. This is an ISO 8601 extended format date/time, with or without 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. `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. The portion of the date/time without the offset is considered the &quot;local date/time&quot;. This should be the local date/time at the destination station. For example, if the event occurs at the 20th hour of June 5th, 2018 at the destination station, the local date/time portion should be `2018-06-05T20:00:00`. If the local date/time at the destination station is 4 hours before UTC, an offset of `-04:00` may be appended. Without offset information, some rich features may not be available.
    &quot;carriage&quot;: &quot;A String&quot;, # The train or ship name/number that the passsenger needs to board.
    &quot;departureDateTime&quot;: &quot;A String&quot;, # The date/time of departure. This is required if there is no validity time interval set on the transit object. This is an ISO 8601 extended format date/time, with or without 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. `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. The portion of the date/time without the offset is considered the &quot;local date/time&quot;. This should be the local date/time at the origin station. For example, if the departure occurs at the 20th hour of June 5th, 2018 at the origin station, the local date/time portion should be `2018-06-05T20:00:00`. If the local date/time at the origin station is 4 hours before UTC, an offset of `-04:00` may be appended. Without offset information, some rich features may not be available.
    &quot;destinationName&quot;: { # The destination name.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;destinationStationCode&quot;: &quot;A String&quot;, # The destination station code.
    &quot;fareName&quot;: { # Short description/name of the fare for this leg of travel. Eg &quot;Anytime Single Use&quot;.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;originName&quot;: { # The name of the origin station. This is required if `desinationName` is present or if `originStationCode` is not present.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;originStationCode&quot;: &quot;A String&quot;, # The origin station code. This is required if `destinationStationCode` is present or if `originName` is not present.
    &quot;platform&quot;: &quot;A String&quot;, # The platform or gate where the passenger can board the carriage.
    &quot;ticketSeat&quot;: { # The reserved seat for the passenger(s). If more than one seat is to be specified then use the `ticketSeats` field instead. Both `ticketSeat` and `ticketSeats` may not be set.
      &quot;coach&quot;: &quot;A String&quot;, # The identifier of the train car or coach in which the ticketed seat is located. Eg. &quot;10&quot;
      &quot;customFareClass&quot;: { # A custome fare class to be used if no `fareClass` applies. Both `fareClass` and `customFareClass` may not be set.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;fareClass&quot;: &quot;A String&quot;, # The fare class of the ticketed seat.
      &quot;seat&quot;: &quot;A String&quot;, # The identifier of where the ticketed seat is located. Eg. &quot;42&quot;. If there is no specific identifier, use `seatAssigment` instead.
      &quot;seatAssignment&quot;: { # The passenger&#x27;s seat assignment. Eg. &quot;no specific seat&quot;. To be used when there is no specific identifier to use in `seat`.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
    },
    &quot;ticketSeats&quot;: [ # The reserved seat for the passenger(s). If only one seat is to be specified then use the `ticketSeat` field instead. Both `ticketSeat` and `ticketSeats` may not be set.
      {
        &quot;coach&quot;: &quot;A String&quot;, # The identifier of the train car or coach in which the ticketed seat is located. Eg. &quot;10&quot;
        &quot;customFareClass&quot;: { # A custome fare class to be used if no `fareClass` applies. Both `fareClass` and `customFareClass` may not be set.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;fareClass&quot;: &quot;A String&quot;, # The fare class of the ticketed seat.
        &quot;seat&quot;: &quot;A String&quot;, # The identifier of where the ticketed seat is located. Eg. &quot;42&quot;. If there is no specific identifier, use `seatAssigment` instead.
        &quot;seatAssignment&quot;: { # The passenger&#x27;s seat assignment. Eg. &quot;no specific seat&quot;. To be used when there is no specific identifier to use in `seat`.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
      },
    ],
    &quot;transitOperatorName&quot;: { # The name of the transit operator that is operating this leg of a trip.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;transitTerminusName&quot;: { # Terminus station or destination of the train/bus/etc.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;zone&quot;: &quot;A String&quot;, # The zone of boarding within the platform.
  },
  &quot;ticketLegs&quot;: [ # Each ticket may contain one or more legs. Each leg contains departure and arrival information along with boarding and seating information. If only one leg is to be specified then use the `ticketLeg` field instead. Both `ticketLeg` and `ticketLegs` may not be set.
    {
      &quot;arrivalDateTime&quot;: &quot;A String&quot;, # The date/time of arrival. This is an ISO 8601 extended format date/time, with or without 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. `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. The portion of the date/time without the offset is considered the &quot;local date/time&quot;. This should be the local date/time at the destination station. For example, if the event occurs at the 20th hour of June 5th, 2018 at the destination station, the local date/time portion should be `2018-06-05T20:00:00`. If the local date/time at the destination station is 4 hours before UTC, an offset of `-04:00` may be appended. Without offset information, some rich features may not be available.
      &quot;carriage&quot;: &quot;A String&quot;, # The train or ship name/number that the passsenger needs to board.
      &quot;departureDateTime&quot;: &quot;A String&quot;, # The date/time of departure. This is required if there is no validity time interval set on the transit object. This is an ISO 8601 extended format date/time, with or without 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. `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. The portion of the date/time without the offset is considered the &quot;local date/time&quot;. This should be the local date/time at the origin station. For example, if the departure occurs at the 20th hour of June 5th, 2018 at the origin station, the local date/time portion should be `2018-06-05T20:00:00`. If the local date/time at the origin station is 4 hours before UTC, an offset of `-04:00` may be appended. Without offset information, some rich features may not be available.
      &quot;destinationName&quot;: { # The destination name.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;destinationStationCode&quot;: &quot;A String&quot;, # The destination station code.
      &quot;fareName&quot;: { # Short description/name of the fare for this leg of travel. Eg &quot;Anytime Single Use&quot;.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;originName&quot;: { # The name of the origin station. This is required if `desinationName` is present or if `originStationCode` is not present.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;originStationCode&quot;: &quot;A String&quot;, # The origin station code. This is required if `destinationStationCode` is present or if `originName` is not present.
      &quot;platform&quot;: &quot;A String&quot;, # The platform or gate where the passenger can board the carriage.
      &quot;ticketSeat&quot;: { # The reserved seat for the passenger(s). If more than one seat is to be specified then use the `ticketSeats` field instead. Both `ticketSeat` and `ticketSeats` may not be set.
        &quot;coach&quot;: &quot;A String&quot;, # The identifier of the train car or coach in which the ticketed seat is located. Eg. &quot;10&quot;
        &quot;customFareClass&quot;: { # A custome fare class to be used if no `fareClass` applies. Both `fareClass` and `customFareClass` may not be set.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;fareClass&quot;: &quot;A String&quot;, # The fare class of the ticketed seat.
        &quot;seat&quot;: &quot;A String&quot;, # The identifier of where the ticketed seat is located. Eg. &quot;42&quot;. If there is no specific identifier, use `seatAssigment` instead.
        &quot;seatAssignment&quot;: { # The passenger&#x27;s seat assignment. Eg. &quot;no specific seat&quot;. To be used when there is no specific identifier to use in `seat`.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
      },
      &quot;ticketSeats&quot;: [ # The reserved seat for the passenger(s). If only one seat is to be specified then use the `ticketSeat` field instead. Both `ticketSeat` and `ticketSeats` may not be set.
        {
          &quot;coach&quot;: &quot;A String&quot;, # The identifier of the train car or coach in which the ticketed seat is located. Eg. &quot;10&quot;
          &quot;customFareClass&quot;: { # A custome fare class to be used if no `fareClass` applies. Both `fareClass` and `customFareClass` may not be set.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;fareClass&quot;: &quot;A String&quot;, # The fare class of the ticketed seat.
          &quot;seat&quot;: &quot;A String&quot;, # The identifier of where the ticketed seat is located. Eg. &quot;42&quot;. If there is no specific identifier, use `seatAssigment` instead.
          &quot;seatAssignment&quot;: { # The passenger&#x27;s seat assignment. Eg. &quot;no specific seat&quot;. To be used when there is no specific identifier to use in `seat`.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
        },
      ],
      &quot;transitOperatorName&quot;: { # The name of the transit operator that is operating this leg of a trip.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;transitTerminusName&quot;: { # Terminus station or destination of the train/bus/etc.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;zone&quot;: &quot;A String&quot;, # The zone of boarding within the platform.
    },
  ],
  &quot;ticketNumber&quot;: &quot;A String&quot;, # The number of the ticket. This is a unique identifier for the ticket in the transit operator&#x27;s system.
  &quot;ticketRestrictions&quot;: { # Information about what kind of restrictions there are on using this ticket. For example, which days of the week it must be used, or which routes are allowed to be taken.
    &quot;otherRestrictions&quot;: { # Extra restrictions that don&#x27;t fall under the &quot;route&quot; or &quot;time&quot; categories.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;routeRestrictions&quot;: { # Restrictions about routes that may be taken. For example, this may be the string &quot;Reserved CrossCountry trains only&quot;.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;routeRestrictionsDetails&quot;: { # More details about the above `routeRestrictions`.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;timeRestrictions&quot;: { # Restrictions about times this ticket may be used.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
  },
  &quot;ticketStatus&quot;: &quot;A String&quot;, # The status of the ticket. For states which affect display, use the `state` field instead.
  &quot;tripId&quot;: &quot;A String&quot;, # This id is used to group tickets together if the user has saved multiple tickets for the same trip.
  &quot;tripType&quot;: &quot;A String&quot;, # Required. The type of trip this transit object represents. Used to determine the pass title and/or which symbol to use between the origin and destination.
  &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 transit 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;activationStatus&quot;: { # The activation status of the object. This field includes activation status if valuable supports activation. # The activation status for the object. Required if the class has `activationOptions` set.
        &quot;state&quot;: &quot;A String&quot;,
      },
      &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;activationOptions&quot;: { # ActivationOptions for the class # Activation options for an activatable ticket.
          &quot;activationUrl&quot;: &quot;A String&quot;, # HTTPS URL that supports REST semantics. Would be used for requesting activation from partners for given valuable, triggered by the users.
          &quot;allowReactivation&quot;: True or False, # Flag to allow users to make activation call from different device. This allows client to render the activation button enabled even if the activationStatus is ACTIVATED but the requested device is different than the current device.
        },
        &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;customCarriageLabel&quot;: { # A custom label to use for the carriage value (`transitObject.ticketLeg.carriage`).
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;customCoachLabel&quot;: { # A custom label to use for the coach value (`transitObject.ticketLeg.ticketSeat.coach`).
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;customConcessionCategoryLabel&quot;: { # A custom label to use for the transit concession category value (`transitObject.concessionCategory`).
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;customConfirmationCodeLabel&quot;: { # A custom label to use for the confirmation code value (`transitObject.purchaseDetails.confirmationCode`).
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;customDiscountMessageLabel&quot;: { # A custom label to use for the transit discount message value (`transitObject.purchaseDetails.ticketCost.discountMessage`).
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;customFareClassLabel&quot;: { # A custom label to use for the fare class value (`transitObject.ticketLeg.ticketSeat.fareClass`).
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;customFareNameLabel&quot;: { # A custom label to use for the transit fare name value (`transitObject.ticketLeg.fareName`).
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;customOtherRestrictionsLabel&quot;: { # A custom label to use for the other restrictions value (`transitObject.ticketRestrictions.otherRestrictions`).
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;customPlatformLabel&quot;: { # A custom label to use for the boarding platform value (`transitObject.ticketLeg.platform`).
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;customPurchaseFaceValueLabel&quot;: { # A custom label to use for the purchase face value (`transitObject.purchaseDetails.ticketCost.faceValue`).
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;customPurchasePriceLabel&quot;: { # A custom label to use for the purchase price value (`transitObject.purchaseDetails.ticketCost.purchasePrice`).
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;customPurchaseReceiptNumberLabel&quot;: { # A custom label to use for the purchase receipt number value (`transitObject.purchaseDetails.purchaseReceiptNumber`).
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;customRouteRestrictionsDetailsLabel&quot;: { # A custom label to use for the route restrictions details value (`transitObject.ticketRestrictions.routeRestrictionsDetails`).
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;customRouteRestrictionsLabel&quot;: { # A custom label to use for the route restrictions value (`transitObject.ticketRestrictions.routeRestrictions`).
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;customSeatLabel&quot;: { # A custom label to use for the seat location value (`transitObject.ticketLeg.ticketSeat.seat`).
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;customTicketNumberLabel&quot;: { # A custom label to use for the ticket number value (`transitObject.ticketNumber`).
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;customTimeRestrictionsLabel&quot;: { # A custom label to use for the time restrictions details value (`transitObject.ticketRestrictions.timeRestrictions`).
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;customTransitTerminusNameLabel&quot;: { # A custom label to use for the transit terminus name value (`transitObject.ticketLeg.transitTerminusName`).
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;customZoneLabel&quot;: { # A custom label to use for the boarding zone value (`transitObject.ticketLeg.zone`).
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;enableSingleLegItinerary&quot;: True or False, # Controls the display of the single-leg itinerary for this class. By default, an itinerary will only display for multi-leg trips.
        &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;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;languageOverride&quot;: &quot;A String&quot;, # If this field is present, transit tickets served to a user&#x27;s device will always be in this language. Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&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;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;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;logo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Required. The logo image of the ticket. This image is displayed in the card detail view 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;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;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 `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;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;transitOperatorName&quot;: { # The name of the transit operator.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;transitType&quot;: &quot;A String&quot;, # Required. The type of transit this class represents, such as &quot;bus&quot;.
        &quot;version&quot;: &quot;A String&quot;, # Deprecated
        &quot;viewUnlockRequirement&quot;: &quot;A String&quot;, # View Unlock Requirement options for the transit ticket.
        &quot;watermark&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Watermark image to display on the user&#x27;s device.
          &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;wideLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The wide logo of the ticket. When provided, this will be used in place of the logo 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;concessionCategory&quot;: &quot;A String&quot;, # The concession category for the ticket.
      &quot;customConcessionCategory&quot;: { # A custom concession category to use when `concessionCategory` does not provide the right option. Both `concessionCategory` and `customConcessionCategory` may not be set.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;customTicketStatus&quot;: { # A custom status to use for the ticket status value when `ticketStatus` does not provide the right option. Both `ticketStatus` and `customTicketStatus` may not be set.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;deviceContext&quot;: { # Device context associated with the object. # Device context associated with the object.
        &quot;deviceToken&quot;: &quot;A String&quot;, # If set, redemption information will only be returned to the given device upon activation of the object. This should not be used as a stable identifier to trace a user&#x27;s device. It can change across different passes for the same device or even across different activations for the same device. When setting this, callers must also set has_linked_device on the object being activated.
      },
      &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;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;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;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;passengerNames&quot;: &quot;A String&quot;, # The name(s) of the passengers the ticket is assigned to. The above `passengerType` field is meant to give Google context on this field.
      &quot;passengerType&quot;: &quot;A String&quot;, # The number of passengers.
      &quot;purchaseDetails&quot;: { # Purchase details for this ticket.
        &quot;accountId&quot;: &quot;A String&quot;, # ID of the account used to purchase the ticket.
        &quot;confirmationCode&quot;: &quot;A String&quot;, # The confirmation code for the purchase. This may be the same for multiple different tickets and is used to group tickets together.
        &quot;purchaseDateTime&quot;: &quot;A String&quot;, # The purchase date/time of the ticket. This is an ISO 8601 extended format date/time, with or without 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. `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. Without offset information, some rich features may not be available.
        &quot;purchaseReceiptNumber&quot;: &quot;A String&quot;, # Receipt number/identifier for tracking the ticket purchase via the body that sold the ticket.
        &quot;ticketCost&quot;: { # The cost of the ticket.
          &quot;discountMessage&quot;: { # A message describing any kind of discount that was applied.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;faceValue&quot;: { # The face value of the ticket.
            &quot;currencyCode&quot;: &quot;A String&quot;, # The currency code, such as &quot;USD&quot; or &quot;EUR.&quot;
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#money&quot;`.
            &quot;micros&quot;: &quot;A String&quot;, # The unit of money amount in micros. For example, $1 USD would be represented as 1000000 micros.
          },
          &quot;purchasePrice&quot;: { # The actual purchase price of the ticket, after tax and/or discounts.
            &quot;currencyCode&quot;: &quot;A String&quot;, # The currency code, such as &quot;USD&quot; or &quot;EUR.&quot;
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#money&quot;`.
            &quot;micros&quot;: &quot;A String&quot;, # The unit of money amount in micros. For example, $1 USD would be represented as 1000000 micros.
          },
        },
      },
      &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;ticketLeg&quot;: { # A single ticket leg contains departure and arrival information along with boarding and seating information. If more than one leg is to be specified then use the `ticketLegs` field instead. Both `ticketLeg` and `ticketLegs` may not be set.
        &quot;arrivalDateTime&quot;: &quot;A String&quot;, # The date/time of arrival. This is an ISO 8601 extended format date/time, with or without 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. `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. The portion of the date/time without the offset is considered the &quot;local date/time&quot;. This should be the local date/time at the destination station. For example, if the event occurs at the 20th hour of June 5th, 2018 at the destination station, the local date/time portion should be `2018-06-05T20:00:00`. If the local date/time at the destination station is 4 hours before UTC, an offset of `-04:00` may be appended. Without offset information, some rich features may not be available.
        &quot;carriage&quot;: &quot;A String&quot;, # The train or ship name/number that the passsenger needs to board.
        &quot;departureDateTime&quot;: &quot;A String&quot;, # The date/time of departure. This is required if there is no validity time interval set on the transit object. This is an ISO 8601 extended format date/time, with or without 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. `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. The portion of the date/time without the offset is considered the &quot;local date/time&quot;. This should be the local date/time at the origin station. For example, if the departure occurs at the 20th hour of June 5th, 2018 at the origin station, the local date/time portion should be `2018-06-05T20:00:00`. If the local date/time at the origin station is 4 hours before UTC, an offset of `-04:00` may be appended. Without offset information, some rich features may not be available.
        &quot;destinationName&quot;: { # The destination name.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;destinationStationCode&quot;: &quot;A String&quot;, # The destination station code.
        &quot;fareName&quot;: { # Short description/name of the fare for this leg of travel. Eg &quot;Anytime Single Use&quot;.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;originName&quot;: { # The name of the origin station. This is required if `desinationName` is present or if `originStationCode` is not present.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;originStationCode&quot;: &quot;A String&quot;, # The origin station code. This is required if `destinationStationCode` is present or if `originName` is not present.
        &quot;platform&quot;: &quot;A String&quot;, # The platform or gate where the passenger can board the carriage.
        &quot;ticketSeat&quot;: { # The reserved seat for the passenger(s). If more than one seat is to be specified then use the `ticketSeats` field instead. Both `ticketSeat` and `ticketSeats` may not be set.
          &quot;coach&quot;: &quot;A String&quot;, # The identifier of the train car or coach in which the ticketed seat is located. Eg. &quot;10&quot;
          &quot;customFareClass&quot;: { # A custome fare class to be used if no `fareClass` applies. Both `fareClass` and `customFareClass` may not be set.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;fareClass&quot;: &quot;A String&quot;, # The fare class of the ticketed seat.
          &quot;seat&quot;: &quot;A String&quot;, # The identifier of where the ticketed seat is located. Eg. &quot;42&quot;. If there is no specific identifier, use `seatAssigment` instead.
          &quot;seatAssignment&quot;: { # The passenger&#x27;s seat assignment. Eg. &quot;no specific seat&quot;. To be used when there is no specific identifier to use in `seat`.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
        },
        &quot;ticketSeats&quot;: [ # The reserved seat for the passenger(s). If only one seat is to be specified then use the `ticketSeat` field instead. Both `ticketSeat` and `ticketSeats` may not be set.
          {
            &quot;coach&quot;: &quot;A String&quot;, # The identifier of the train car or coach in which the ticketed seat is located. Eg. &quot;10&quot;
            &quot;customFareClass&quot;: { # A custome fare class to be used if no `fareClass` applies. Both `fareClass` and `customFareClass` may not be set.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;fareClass&quot;: &quot;A String&quot;, # The fare class of the ticketed seat.
            &quot;seat&quot;: &quot;A String&quot;, # The identifier of where the ticketed seat is located. Eg. &quot;42&quot;. If there is no specific identifier, use `seatAssigment` instead.
            &quot;seatAssignment&quot;: { # The passenger&#x27;s seat assignment. Eg. &quot;no specific seat&quot;. To be used when there is no specific identifier to use in `seat`.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
          },
        ],
        &quot;transitOperatorName&quot;: { # The name of the transit operator that is operating this leg of a trip.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;transitTerminusName&quot;: { # Terminus station or destination of the train/bus/etc.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;zone&quot;: &quot;A String&quot;, # The zone of boarding within the platform.
      },
      &quot;ticketLegs&quot;: [ # Each ticket may contain one or more legs. Each leg contains departure and arrival information along with boarding and seating information. If only one leg is to be specified then use the `ticketLeg` field instead. Both `ticketLeg` and `ticketLegs` may not be set.
        {
          &quot;arrivalDateTime&quot;: &quot;A String&quot;, # The date/time of arrival. This is an ISO 8601 extended format date/time, with or without 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. `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. The portion of the date/time without the offset is considered the &quot;local date/time&quot;. This should be the local date/time at the destination station. For example, if the event occurs at the 20th hour of June 5th, 2018 at the destination station, the local date/time portion should be `2018-06-05T20:00:00`. If the local date/time at the destination station is 4 hours before UTC, an offset of `-04:00` may be appended. Without offset information, some rich features may not be available.
          &quot;carriage&quot;: &quot;A String&quot;, # The train or ship name/number that the passsenger needs to board.
          &quot;departureDateTime&quot;: &quot;A String&quot;, # The date/time of departure. This is required if there is no validity time interval set on the transit object. This is an ISO 8601 extended format date/time, with or without 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. `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. The portion of the date/time without the offset is considered the &quot;local date/time&quot;. This should be the local date/time at the origin station. For example, if the departure occurs at the 20th hour of June 5th, 2018 at the origin station, the local date/time portion should be `2018-06-05T20:00:00`. If the local date/time at the origin station is 4 hours before UTC, an offset of `-04:00` may be appended. Without offset information, some rich features may not be available.
          &quot;destinationName&quot;: { # The destination name.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;destinationStationCode&quot;: &quot;A String&quot;, # The destination station code.
          &quot;fareName&quot;: { # Short description/name of the fare for this leg of travel. Eg &quot;Anytime Single Use&quot;.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;originName&quot;: { # The name of the origin station. This is required if `desinationName` is present or if `originStationCode` is not present.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;originStationCode&quot;: &quot;A String&quot;, # The origin station code. This is required if `destinationStationCode` is present or if `originName` is not present.
          &quot;platform&quot;: &quot;A String&quot;, # The platform or gate where the passenger can board the carriage.
          &quot;ticketSeat&quot;: { # The reserved seat for the passenger(s). If more than one seat is to be specified then use the `ticketSeats` field instead. Both `ticketSeat` and `ticketSeats` may not be set.
            &quot;coach&quot;: &quot;A String&quot;, # The identifier of the train car or coach in which the ticketed seat is located. Eg. &quot;10&quot;
            &quot;customFareClass&quot;: { # A custome fare class to be used if no `fareClass` applies. Both `fareClass` and `customFareClass` may not be set.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;fareClass&quot;: &quot;A String&quot;, # The fare class of the ticketed seat.
            &quot;seat&quot;: &quot;A String&quot;, # The identifier of where the ticketed seat is located. Eg. &quot;42&quot;. If there is no specific identifier, use `seatAssigment` instead.
            &quot;seatAssignment&quot;: { # The passenger&#x27;s seat assignment. Eg. &quot;no specific seat&quot;. To be used when there is no specific identifier to use in `seat`.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
          },
          &quot;ticketSeats&quot;: [ # The reserved seat for the passenger(s). If only one seat is to be specified then use the `ticketSeat` field instead. Both `ticketSeat` and `ticketSeats` may not be set.
            {
              &quot;coach&quot;: &quot;A String&quot;, # The identifier of the train car or coach in which the ticketed seat is located. Eg. &quot;10&quot;
              &quot;customFareClass&quot;: { # A custome fare class to be used if no `fareClass` applies. Both `fareClass` and `customFareClass` may not be set.
                &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
                &quot;translatedValues&quot;: [ # Contains the translations for the string.
                  {
                    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                    &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                    &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                  },
                ],
              },
              &quot;fareClass&quot;: &quot;A String&quot;, # The fare class of the ticketed seat.
              &quot;seat&quot;: &quot;A String&quot;, # The identifier of where the ticketed seat is located. Eg. &quot;42&quot;. If there is no specific identifier, use `seatAssigment` instead.
              &quot;seatAssignment&quot;: { # The passenger&#x27;s seat assignment. Eg. &quot;no specific seat&quot;. To be used when there is no specific identifier to use in `seat`.
                &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
                &quot;translatedValues&quot;: [ # Contains the translations for the string.
                  {
                    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                    &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                    &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                  },
                ],
              },
            },
          ],
          &quot;transitOperatorName&quot;: { # The name of the transit operator that is operating this leg of a trip.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;transitTerminusName&quot;: { # Terminus station or destination of the train/bus/etc.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;zone&quot;: &quot;A String&quot;, # The zone of boarding within the platform.
        },
      ],
      &quot;ticketNumber&quot;: &quot;A String&quot;, # The number of the ticket. This is a unique identifier for the ticket in the transit operator&#x27;s system.
      &quot;ticketRestrictions&quot;: { # Information about what kind of restrictions there are on using this ticket. For example, which days of the week it must be used, or which routes are allowed to be taken.
        &quot;otherRestrictions&quot;: { # Extra restrictions that don&#x27;t fall under the &quot;route&quot; or &quot;time&quot; categories.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;routeRestrictions&quot;: { # Restrictions about routes that may be taken. For example, this may be the string &quot;Reserved CrossCountry trains only&quot;.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;routeRestrictionsDetails&quot;: { # More details about the above `routeRestrictions`.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;timeRestrictions&quot;: { # Restrictions about times this ticket may be used.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
      },
      &quot;ticketStatus&quot;: &quot;A String&quot;, # The status of the ticket. For states which affect display, use the `state` field instead.
      &quot;tripId&quot;: &quot;A String&quot;, # This id is used to group tickets together if the user has saved multiple tickets for the same trip.
      &quot;tripType&quot;: &quot;A String&quot;, # Required. The type of trip this transit object represents. Used to determine the pass title and/or which symbol to use between the origin and destination.
      &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 transit 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;activationStatus&quot;: { # The activation status of the object. This field includes activation status if valuable supports activation. # The activation status for the object. Required if the class has `activationOptions` set.
    &quot;state&quot;: &quot;A String&quot;,
  },
  &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;activationOptions&quot;: { # ActivationOptions for the class # Activation options for an activatable ticket.
      &quot;activationUrl&quot;: &quot;A String&quot;, # HTTPS URL that supports REST semantics. Would be used for requesting activation from partners for given valuable, triggered by the users.
      &quot;allowReactivation&quot;: True or False, # Flag to allow users to make activation call from different device. This allows client to render the activation button enabled even if the activationStatus is ACTIVATED but the requested device is different than the current device.
    },
    &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;customCarriageLabel&quot;: { # A custom label to use for the carriage value (`transitObject.ticketLeg.carriage`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customCoachLabel&quot;: { # A custom label to use for the coach value (`transitObject.ticketLeg.ticketSeat.coach`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customConcessionCategoryLabel&quot;: { # A custom label to use for the transit concession category value (`transitObject.concessionCategory`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customConfirmationCodeLabel&quot;: { # A custom label to use for the confirmation code value (`transitObject.purchaseDetails.confirmationCode`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customDiscountMessageLabel&quot;: { # A custom label to use for the transit discount message value (`transitObject.purchaseDetails.ticketCost.discountMessage`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customFareClassLabel&quot;: { # A custom label to use for the fare class value (`transitObject.ticketLeg.ticketSeat.fareClass`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customFareNameLabel&quot;: { # A custom label to use for the transit fare name value (`transitObject.ticketLeg.fareName`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customOtherRestrictionsLabel&quot;: { # A custom label to use for the other restrictions value (`transitObject.ticketRestrictions.otherRestrictions`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customPlatformLabel&quot;: { # A custom label to use for the boarding platform value (`transitObject.ticketLeg.platform`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customPurchaseFaceValueLabel&quot;: { # A custom label to use for the purchase face value (`transitObject.purchaseDetails.ticketCost.faceValue`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customPurchasePriceLabel&quot;: { # A custom label to use for the purchase price value (`transitObject.purchaseDetails.ticketCost.purchasePrice`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customPurchaseReceiptNumberLabel&quot;: { # A custom label to use for the purchase receipt number value (`transitObject.purchaseDetails.purchaseReceiptNumber`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customRouteRestrictionsDetailsLabel&quot;: { # A custom label to use for the route restrictions details value (`transitObject.ticketRestrictions.routeRestrictionsDetails`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customRouteRestrictionsLabel&quot;: { # A custom label to use for the route restrictions value (`transitObject.ticketRestrictions.routeRestrictions`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customSeatLabel&quot;: { # A custom label to use for the seat location value (`transitObject.ticketLeg.ticketSeat.seat`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customTicketNumberLabel&quot;: { # A custom label to use for the ticket number value (`transitObject.ticketNumber`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customTimeRestrictionsLabel&quot;: { # A custom label to use for the time restrictions details value (`transitObject.ticketRestrictions.timeRestrictions`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customTransitTerminusNameLabel&quot;: { # A custom label to use for the transit terminus name value (`transitObject.ticketLeg.transitTerminusName`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customZoneLabel&quot;: { # A custom label to use for the boarding zone value (`transitObject.ticketLeg.zone`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;enableSingleLegItinerary&quot;: True or False, # Controls the display of the single-leg itinerary for this class. By default, an itinerary will only display for multi-leg trips.
    &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;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;languageOverride&quot;: &quot;A String&quot;, # If this field is present, transit tickets served to a user&#x27;s device will always be in this language. Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&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;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;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;logo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Required. The logo image of the ticket. This image is displayed in the card detail view 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;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;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 `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;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;transitOperatorName&quot;: { # The name of the transit operator.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;transitType&quot;: &quot;A String&quot;, # Required. The type of transit this class represents, such as &quot;bus&quot;.
    &quot;version&quot;: &quot;A String&quot;, # Deprecated
    &quot;viewUnlockRequirement&quot;: &quot;A String&quot;, # View Unlock Requirement options for the transit ticket.
    &quot;watermark&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Watermark image to display on the user&#x27;s device.
      &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;wideLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The wide logo of the ticket. When provided, this will be used in place of the logo 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;concessionCategory&quot;: &quot;A String&quot;, # The concession category for the ticket.
  &quot;customConcessionCategory&quot;: { # A custom concession category to use when `concessionCategory` does not provide the right option. Both `concessionCategory` and `customConcessionCategory` may not be set.
    &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
      &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
      &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
    &quot;translatedValues&quot;: [ # Contains the translations for the string.
      {
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
    ],
  },
  &quot;customTicketStatus&quot;: { # A custom status to use for the ticket status value when `ticketStatus` does not provide the right option. Both `ticketStatus` and `customTicketStatus` may not be set.
    &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
      &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
      &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
    &quot;translatedValues&quot;: [ # Contains the translations for the string.
      {
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
    ],
  },
  &quot;deviceContext&quot;: { # Device context associated with the object. # Device context associated with the object.
    &quot;deviceToken&quot;: &quot;A String&quot;, # If set, redemption information will only be returned to the given device upon activation of the object. This should not be used as a stable identifier to trace a user&#x27;s device. It can change across different passes for the same device or even across different activations for the same device. When setting this, callers must also set has_linked_device on the object being activated.
  },
  &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;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;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;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;passengerNames&quot;: &quot;A String&quot;, # The name(s) of the passengers the ticket is assigned to. The above `passengerType` field is meant to give Google context on this field.
  &quot;passengerType&quot;: &quot;A String&quot;, # The number of passengers.
  &quot;purchaseDetails&quot;: { # Purchase details for this ticket.
    &quot;accountId&quot;: &quot;A String&quot;, # ID of the account used to purchase the ticket.
    &quot;confirmationCode&quot;: &quot;A String&quot;, # The confirmation code for the purchase. This may be the same for multiple different tickets and is used to group tickets together.
    &quot;purchaseDateTime&quot;: &quot;A String&quot;, # The purchase date/time of the ticket. This is an ISO 8601 extended format date/time, with or without 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. `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. Without offset information, some rich features may not be available.
    &quot;purchaseReceiptNumber&quot;: &quot;A String&quot;, # Receipt number/identifier for tracking the ticket purchase via the body that sold the ticket.
    &quot;ticketCost&quot;: { # The cost of the ticket.
      &quot;discountMessage&quot;: { # A message describing any kind of discount that was applied.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;faceValue&quot;: { # The face value of the ticket.
        &quot;currencyCode&quot;: &quot;A String&quot;, # The currency code, such as &quot;USD&quot; or &quot;EUR.&quot;
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#money&quot;`.
        &quot;micros&quot;: &quot;A String&quot;, # The unit of money amount in micros. For example, $1 USD would be represented as 1000000 micros.
      },
      &quot;purchasePrice&quot;: { # The actual purchase price of the ticket, after tax and/or discounts.
        &quot;currencyCode&quot;: &quot;A String&quot;, # The currency code, such as &quot;USD&quot; or &quot;EUR.&quot;
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#money&quot;`.
        &quot;micros&quot;: &quot;A String&quot;, # The unit of money amount in micros. For example, $1 USD would be represented as 1000000 micros.
      },
    },
  },
  &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;ticketLeg&quot;: { # A single ticket leg contains departure and arrival information along with boarding and seating information. If more than one leg is to be specified then use the `ticketLegs` field instead. Both `ticketLeg` and `ticketLegs` may not be set.
    &quot;arrivalDateTime&quot;: &quot;A String&quot;, # The date/time of arrival. This is an ISO 8601 extended format date/time, with or without 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. `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. The portion of the date/time without the offset is considered the &quot;local date/time&quot;. This should be the local date/time at the destination station. For example, if the event occurs at the 20th hour of June 5th, 2018 at the destination station, the local date/time portion should be `2018-06-05T20:00:00`. If the local date/time at the destination station is 4 hours before UTC, an offset of `-04:00` may be appended. Without offset information, some rich features may not be available.
    &quot;carriage&quot;: &quot;A String&quot;, # The train or ship name/number that the passsenger needs to board.
    &quot;departureDateTime&quot;: &quot;A String&quot;, # The date/time of departure. This is required if there is no validity time interval set on the transit object. This is an ISO 8601 extended format date/time, with or without 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. `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. The portion of the date/time without the offset is considered the &quot;local date/time&quot;. This should be the local date/time at the origin station. For example, if the departure occurs at the 20th hour of June 5th, 2018 at the origin station, the local date/time portion should be `2018-06-05T20:00:00`. If the local date/time at the origin station is 4 hours before UTC, an offset of `-04:00` may be appended. Without offset information, some rich features may not be available.
    &quot;destinationName&quot;: { # The destination name.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;destinationStationCode&quot;: &quot;A String&quot;, # The destination station code.
    &quot;fareName&quot;: { # Short description/name of the fare for this leg of travel. Eg &quot;Anytime Single Use&quot;.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;originName&quot;: { # The name of the origin station. This is required if `desinationName` is present or if `originStationCode` is not present.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;originStationCode&quot;: &quot;A String&quot;, # The origin station code. This is required if `destinationStationCode` is present or if `originName` is not present.
    &quot;platform&quot;: &quot;A String&quot;, # The platform or gate where the passenger can board the carriage.
    &quot;ticketSeat&quot;: { # The reserved seat for the passenger(s). If more than one seat is to be specified then use the `ticketSeats` field instead. Both `ticketSeat` and `ticketSeats` may not be set.
      &quot;coach&quot;: &quot;A String&quot;, # The identifier of the train car or coach in which the ticketed seat is located. Eg. &quot;10&quot;
      &quot;customFareClass&quot;: { # A custome fare class to be used if no `fareClass` applies. Both `fareClass` and `customFareClass` may not be set.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;fareClass&quot;: &quot;A String&quot;, # The fare class of the ticketed seat.
      &quot;seat&quot;: &quot;A String&quot;, # The identifier of where the ticketed seat is located. Eg. &quot;42&quot;. If there is no specific identifier, use `seatAssigment` instead.
      &quot;seatAssignment&quot;: { # The passenger&#x27;s seat assignment. Eg. &quot;no specific seat&quot;. To be used when there is no specific identifier to use in `seat`.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
    },
    &quot;ticketSeats&quot;: [ # The reserved seat for the passenger(s). If only one seat is to be specified then use the `ticketSeat` field instead. Both `ticketSeat` and `ticketSeats` may not be set.
      {
        &quot;coach&quot;: &quot;A String&quot;, # The identifier of the train car or coach in which the ticketed seat is located. Eg. &quot;10&quot;
        &quot;customFareClass&quot;: { # A custome fare class to be used if no `fareClass` applies. Both `fareClass` and `customFareClass` may not be set.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;fareClass&quot;: &quot;A String&quot;, # The fare class of the ticketed seat.
        &quot;seat&quot;: &quot;A String&quot;, # The identifier of where the ticketed seat is located. Eg. &quot;42&quot;. If there is no specific identifier, use `seatAssigment` instead.
        &quot;seatAssignment&quot;: { # The passenger&#x27;s seat assignment. Eg. &quot;no specific seat&quot;. To be used when there is no specific identifier to use in `seat`.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
      },
    ],
    &quot;transitOperatorName&quot;: { # The name of the transit operator that is operating this leg of a trip.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;transitTerminusName&quot;: { # Terminus station or destination of the train/bus/etc.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;zone&quot;: &quot;A String&quot;, # The zone of boarding within the platform.
  },
  &quot;ticketLegs&quot;: [ # Each ticket may contain one or more legs. Each leg contains departure and arrival information along with boarding and seating information. If only one leg is to be specified then use the `ticketLeg` field instead. Both `ticketLeg` and `ticketLegs` may not be set.
    {
      &quot;arrivalDateTime&quot;: &quot;A String&quot;, # The date/time of arrival. This is an ISO 8601 extended format date/time, with or without 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. `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. The portion of the date/time without the offset is considered the &quot;local date/time&quot;. This should be the local date/time at the destination station. For example, if the event occurs at the 20th hour of June 5th, 2018 at the destination station, the local date/time portion should be `2018-06-05T20:00:00`. If the local date/time at the destination station is 4 hours before UTC, an offset of `-04:00` may be appended. Without offset information, some rich features may not be available.
      &quot;carriage&quot;: &quot;A String&quot;, # The train or ship name/number that the passsenger needs to board.
      &quot;departureDateTime&quot;: &quot;A String&quot;, # The date/time of departure. This is required if there is no validity time interval set on the transit object. This is an ISO 8601 extended format date/time, with or without 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. `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. The portion of the date/time without the offset is considered the &quot;local date/time&quot;. This should be the local date/time at the origin station. For example, if the departure occurs at the 20th hour of June 5th, 2018 at the origin station, the local date/time portion should be `2018-06-05T20:00:00`. If the local date/time at the origin station is 4 hours before UTC, an offset of `-04:00` may be appended. Without offset information, some rich features may not be available.
      &quot;destinationName&quot;: { # The destination name.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;destinationStationCode&quot;: &quot;A String&quot;, # The destination station code.
      &quot;fareName&quot;: { # Short description/name of the fare for this leg of travel. Eg &quot;Anytime Single Use&quot;.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;originName&quot;: { # The name of the origin station. This is required if `desinationName` is present or if `originStationCode` is not present.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;originStationCode&quot;: &quot;A String&quot;, # The origin station code. This is required if `destinationStationCode` is present or if `originName` is not present.
      &quot;platform&quot;: &quot;A String&quot;, # The platform or gate where the passenger can board the carriage.
      &quot;ticketSeat&quot;: { # The reserved seat for the passenger(s). If more than one seat is to be specified then use the `ticketSeats` field instead. Both `ticketSeat` and `ticketSeats` may not be set.
        &quot;coach&quot;: &quot;A String&quot;, # The identifier of the train car or coach in which the ticketed seat is located. Eg. &quot;10&quot;
        &quot;customFareClass&quot;: { # A custome fare class to be used if no `fareClass` applies. Both `fareClass` and `customFareClass` may not be set.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;fareClass&quot;: &quot;A String&quot;, # The fare class of the ticketed seat.
        &quot;seat&quot;: &quot;A String&quot;, # The identifier of where the ticketed seat is located. Eg. &quot;42&quot;. If there is no specific identifier, use `seatAssigment` instead.
        &quot;seatAssignment&quot;: { # The passenger&#x27;s seat assignment. Eg. &quot;no specific seat&quot;. To be used when there is no specific identifier to use in `seat`.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
      },
      &quot;ticketSeats&quot;: [ # The reserved seat for the passenger(s). If only one seat is to be specified then use the `ticketSeat` field instead. Both `ticketSeat` and `ticketSeats` may not be set.
        {
          &quot;coach&quot;: &quot;A String&quot;, # The identifier of the train car or coach in which the ticketed seat is located. Eg. &quot;10&quot;
          &quot;customFareClass&quot;: { # A custome fare class to be used if no `fareClass` applies. Both `fareClass` and `customFareClass` may not be set.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;fareClass&quot;: &quot;A String&quot;, # The fare class of the ticketed seat.
          &quot;seat&quot;: &quot;A String&quot;, # The identifier of where the ticketed seat is located. Eg. &quot;42&quot;. If there is no specific identifier, use `seatAssigment` instead.
          &quot;seatAssignment&quot;: { # The passenger&#x27;s seat assignment. Eg. &quot;no specific seat&quot;. To be used when there is no specific identifier to use in `seat`.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
        },
      ],
      &quot;transitOperatorName&quot;: { # The name of the transit operator that is operating this leg of a trip.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;transitTerminusName&quot;: { # Terminus station or destination of the train/bus/etc.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;zone&quot;: &quot;A String&quot;, # The zone of boarding within the platform.
    },
  ],
  &quot;ticketNumber&quot;: &quot;A String&quot;, # The number of the ticket. This is a unique identifier for the ticket in the transit operator&#x27;s system.
  &quot;ticketRestrictions&quot;: { # Information about what kind of restrictions there are on using this ticket. For example, which days of the week it must be used, or which routes are allowed to be taken.
    &quot;otherRestrictions&quot;: { # Extra restrictions that don&#x27;t fall under the &quot;route&quot; or &quot;time&quot; categories.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;routeRestrictions&quot;: { # Restrictions about routes that may be taken. For example, this may be the string &quot;Reserved CrossCountry trains only&quot;.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;routeRestrictionsDetails&quot;: { # More details about the above `routeRestrictions`.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;timeRestrictions&quot;: { # Restrictions about times this ticket may be used.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
  },
  &quot;ticketStatus&quot;: &quot;A String&quot;, # The status of the ticket. For states which affect display, use the `state` field instead.
  &quot;tripId&quot;: &quot;A String&quot;, # This id is used to group tickets together if the user has saved multiple tickets for the same trip.
  &quot;tripType&quot;: &quot;A String&quot;, # Required. The type of trip this transit object represents. Used to determine the pass title and/or which symbol to use between the origin and destination.
  &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;activationStatus&quot;: { # The activation status of the object. This field includes activation status if valuable supports activation. # The activation status for the object. Required if the class has `activationOptions` set.
    &quot;state&quot;: &quot;A String&quot;,
  },
  &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;activationOptions&quot;: { # ActivationOptions for the class # Activation options for an activatable ticket.
      &quot;activationUrl&quot;: &quot;A String&quot;, # HTTPS URL that supports REST semantics. Would be used for requesting activation from partners for given valuable, triggered by the users.
      &quot;allowReactivation&quot;: True or False, # Flag to allow users to make activation call from different device. This allows client to render the activation button enabled even if the activationStatus is ACTIVATED but the requested device is different than the current device.
    },
    &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;customCarriageLabel&quot;: { # A custom label to use for the carriage value (`transitObject.ticketLeg.carriage`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customCoachLabel&quot;: { # A custom label to use for the coach value (`transitObject.ticketLeg.ticketSeat.coach`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customConcessionCategoryLabel&quot;: { # A custom label to use for the transit concession category value (`transitObject.concessionCategory`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customConfirmationCodeLabel&quot;: { # A custom label to use for the confirmation code value (`transitObject.purchaseDetails.confirmationCode`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customDiscountMessageLabel&quot;: { # A custom label to use for the transit discount message value (`transitObject.purchaseDetails.ticketCost.discountMessage`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customFareClassLabel&quot;: { # A custom label to use for the fare class value (`transitObject.ticketLeg.ticketSeat.fareClass`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customFareNameLabel&quot;: { # A custom label to use for the transit fare name value (`transitObject.ticketLeg.fareName`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customOtherRestrictionsLabel&quot;: { # A custom label to use for the other restrictions value (`transitObject.ticketRestrictions.otherRestrictions`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customPlatformLabel&quot;: { # A custom label to use for the boarding platform value (`transitObject.ticketLeg.platform`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customPurchaseFaceValueLabel&quot;: { # A custom label to use for the purchase face value (`transitObject.purchaseDetails.ticketCost.faceValue`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customPurchasePriceLabel&quot;: { # A custom label to use for the purchase price value (`transitObject.purchaseDetails.ticketCost.purchasePrice`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customPurchaseReceiptNumberLabel&quot;: { # A custom label to use for the purchase receipt number value (`transitObject.purchaseDetails.purchaseReceiptNumber`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customRouteRestrictionsDetailsLabel&quot;: { # A custom label to use for the route restrictions details value (`transitObject.ticketRestrictions.routeRestrictionsDetails`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customRouteRestrictionsLabel&quot;: { # A custom label to use for the route restrictions value (`transitObject.ticketRestrictions.routeRestrictions`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customSeatLabel&quot;: { # A custom label to use for the seat location value (`transitObject.ticketLeg.ticketSeat.seat`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customTicketNumberLabel&quot;: { # A custom label to use for the ticket number value (`transitObject.ticketNumber`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customTimeRestrictionsLabel&quot;: { # A custom label to use for the time restrictions details value (`transitObject.ticketRestrictions.timeRestrictions`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customTransitTerminusNameLabel&quot;: { # A custom label to use for the transit terminus name value (`transitObject.ticketLeg.transitTerminusName`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customZoneLabel&quot;: { # A custom label to use for the boarding zone value (`transitObject.ticketLeg.zone`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;enableSingleLegItinerary&quot;: True or False, # Controls the display of the single-leg itinerary for this class. By default, an itinerary will only display for multi-leg trips.
    &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;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;languageOverride&quot;: &quot;A String&quot;, # If this field is present, transit tickets served to a user&#x27;s device will always be in this language. Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&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;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;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;logo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Required. The logo image of the ticket. This image is displayed in the card detail view 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;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;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 `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;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;transitOperatorName&quot;: { # The name of the transit operator.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;transitType&quot;: &quot;A String&quot;, # Required. The type of transit this class represents, such as &quot;bus&quot;.
    &quot;version&quot;: &quot;A String&quot;, # Deprecated
    &quot;viewUnlockRequirement&quot;: &quot;A String&quot;, # View Unlock Requirement options for the transit ticket.
    &quot;watermark&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Watermark image to display on the user&#x27;s device.
      &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;wideLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The wide logo of the ticket. When provided, this will be used in place of the logo 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;concessionCategory&quot;: &quot;A String&quot;, # The concession category for the ticket.
  &quot;customConcessionCategory&quot;: { # A custom concession category to use when `concessionCategory` does not provide the right option. Both `concessionCategory` and `customConcessionCategory` may not be set.
    &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
      &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
      &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
    &quot;translatedValues&quot;: [ # Contains the translations for the string.
      {
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
    ],
  },
  &quot;customTicketStatus&quot;: { # A custom status to use for the ticket status value when `ticketStatus` does not provide the right option. Both `ticketStatus` and `customTicketStatus` may not be set.
    &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
      &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
      &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
    &quot;translatedValues&quot;: [ # Contains the translations for the string.
      {
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
    ],
  },
  &quot;deviceContext&quot;: { # Device context associated with the object. # Device context associated with the object.
    &quot;deviceToken&quot;: &quot;A String&quot;, # If set, redemption information will only be returned to the given device upon activation of the object. This should not be used as a stable identifier to trace a user&#x27;s device. It can change across different passes for the same device or even across different activations for the same device. When setting this, callers must also set has_linked_device on the object being activated.
  },
  &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;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;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;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;passengerNames&quot;: &quot;A String&quot;, # The name(s) of the passengers the ticket is assigned to. The above `passengerType` field is meant to give Google context on this field.
  &quot;passengerType&quot;: &quot;A String&quot;, # The number of passengers.
  &quot;purchaseDetails&quot;: { # Purchase details for this ticket.
    &quot;accountId&quot;: &quot;A String&quot;, # ID of the account used to purchase the ticket.
    &quot;confirmationCode&quot;: &quot;A String&quot;, # The confirmation code for the purchase. This may be the same for multiple different tickets and is used to group tickets together.
    &quot;purchaseDateTime&quot;: &quot;A String&quot;, # The purchase date/time of the ticket. This is an ISO 8601 extended format date/time, with or without 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. `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. Without offset information, some rich features may not be available.
    &quot;purchaseReceiptNumber&quot;: &quot;A String&quot;, # Receipt number/identifier for tracking the ticket purchase via the body that sold the ticket.
    &quot;ticketCost&quot;: { # The cost of the ticket.
      &quot;discountMessage&quot;: { # A message describing any kind of discount that was applied.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;faceValue&quot;: { # The face value of the ticket.
        &quot;currencyCode&quot;: &quot;A String&quot;, # The currency code, such as &quot;USD&quot; or &quot;EUR.&quot;
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#money&quot;`.
        &quot;micros&quot;: &quot;A String&quot;, # The unit of money amount in micros. For example, $1 USD would be represented as 1000000 micros.
      },
      &quot;purchasePrice&quot;: { # The actual purchase price of the ticket, after tax and/or discounts.
        &quot;currencyCode&quot;: &quot;A String&quot;, # The currency code, such as &quot;USD&quot; or &quot;EUR.&quot;
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#money&quot;`.
        &quot;micros&quot;: &quot;A String&quot;, # The unit of money amount in micros. For example, $1 USD would be represented as 1000000 micros.
      },
    },
  },
  &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;ticketLeg&quot;: { # A single ticket leg contains departure and arrival information along with boarding and seating information. If more than one leg is to be specified then use the `ticketLegs` field instead. Both `ticketLeg` and `ticketLegs` may not be set.
    &quot;arrivalDateTime&quot;: &quot;A String&quot;, # The date/time of arrival. This is an ISO 8601 extended format date/time, with or without 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. `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. The portion of the date/time without the offset is considered the &quot;local date/time&quot;. This should be the local date/time at the destination station. For example, if the event occurs at the 20th hour of June 5th, 2018 at the destination station, the local date/time portion should be `2018-06-05T20:00:00`. If the local date/time at the destination station is 4 hours before UTC, an offset of `-04:00` may be appended. Without offset information, some rich features may not be available.
    &quot;carriage&quot;: &quot;A String&quot;, # The train or ship name/number that the passsenger needs to board.
    &quot;departureDateTime&quot;: &quot;A String&quot;, # The date/time of departure. This is required if there is no validity time interval set on the transit object. This is an ISO 8601 extended format date/time, with or without 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. `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. The portion of the date/time without the offset is considered the &quot;local date/time&quot;. This should be the local date/time at the origin station. For example, if the departure occurs at the 20th hour of June 5th, 2018 at the origin station, the local date/time portion should be `2018-06-05T20:00:00`. If the local date/time at the origin station is 4 hours before UTC, an offset of `-04:00` may be appended. Without offset information, some rich features may not be available.
    &quot;destinationName&quot;: { # The destination name.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;destinationStationCode&quot;: &quot;A String&quot;, # The destination station code.
    &quot;fareName&quot;: { # Short description/name of the fare for this leg of travel. Eg &quot;Anytime Single Use&quot;.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;originName&quot;: { # The name of the origin station. This is required if `desinationName` is present or if `originStationCode` is not present.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;originStationCode&quot;: &quot;A String&quot;, # The origin station code. This is required if `destinationStationCode` is present or if `originName` is not present.
    &quot;platform&quot;: &quot;A String&quot;, # The platform or gate where the passenger can board the carriage.
    &quot;ticketSeat&quot;: { # The reserved seat for the passenger(s). If more than one seat is to be specified then use the `ticketSeats` field instead. Both `ticketSeat` and `ticketSeats` may not be set.
      &quot;coach&quot;: &quot;A String&quot;, # The identifier of the train car or coach in which the ticketed seat is located. Eg. &quot;10&quot;
      &quot;customFareClass&quot;: { # A custome fare class to be used if no `fareClass` applies. Both `fareClass` and `customFareClass` may not be set.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;fareClass&quot;: &quot;A String&quot;, # The fare class of the ticketed seat.
      &quot;seat&quot;: &quot;A String&quot;, # The identifier of where the ticketed seat is located. Eg. &quot;42&quot;. If there is no specific identifier, use `seatAssigment` instead.
      &quot;seatAssignment&quot;: { # The passenger&#x27;s seat assignment. Eg. &quot;no specific seat&quot;. To be used when there is no specific identifier to use in `seat`.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
    },
    &quot;ticketSeats&quot;: [ # The reserved seat for the passenger(s). If only one seat is to be specified then use the `ticketSeat` field instead. Both `ticketSeat` and `ticketSeats` may not be set.
      {
        &quot;coach&quot;: &quot;A String&quot;, # The identifier of the train car or coach in which the ticketed seat is located. Eg. &quot;10&quot;
        &quot;customFareClass&quot;: { # A custome fare class to be used if no `fareClass` applies. Both `fareClass` and `customFareClass` may not be set.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;fareClass&quot;: &quot;A String&quot;, # The fare class of the ticketed seat.
        &quot;seat&quot;: &quot;A String&quot;, # The identifier of where the ticketed seat is located. Eg. &quot;42&quot;. If there is no specific identifier, use `seatAssigment` instead.
        &quot;seatAssignment&quot;: { # The passenger&#x27;s seat assignment. Eg. &quot;no specific seat&quot;. To be used when there is no specific identifier to use in `seat`.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
      },
    ],
    &quot;transitOperatorName&quot;: { # The name of the transit operator that is operating this leg of a trip.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;transitTerminusName&quot;: { # Terminus station or destination of the train/bus/etc.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;zone&quot;: &quot;A String&quot;, # The zone of boarding within the platform.
  },
  &quot;ticketLegs&quot;: [ # Each ticket may contain one or more legs. Each leg contains departure and arrival information along with boarding and seating information. If only one leg is to be specified then use the `ticketLeg` field instead. Both `ticketLeg` and `ticketLegs` may not be set.
    {
      &quot;arrivalDateTime&quot;: &quot;A String&quot;, # The date/time of arrival. This is an ISO 8601 extended format date/time, with or without 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. `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. The portion of the date/time without the offset is considered the &quot;local date/time&quot;. This should be the local date/time at the destination station. For example, if the event occurs at the 20th hour of June 5th, 2018 at the destination station, the local date/time portion should be `2018-06-05T20:00:00`. If the local date/time at the destination station is 4 hours before UTC, an offset of `-04:00` may be appended. Without offset information, some rich features may not be available.
      &quot;carriage&quot;: &quot;A String&quot;, # The train or ship name/number that the passsenger needs to board.
      &quot;departureDateTime&quot;: &quot;A String&quot;, # The date/time of departure. This is required if there is no validity time interval set on the transit object. This is an ISO 8601 extended format date/time, with or without 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. `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. The portion of the date/time without the offset is considered the &quot;local date/time&quot;. This should be the local date/time at the origin station. For example, if the departure occurs at the 20th hour of June 5th, 2018 at the origin station, the local date/time portion should be `2018-06-05T20:00:00`. If the local date/time at the origin station is 4 hours before UTC, an offset of `-04:00` may be appended. Without offset information, some rich features may not be available.
      &quot;destinationName&quot;: { # The destination name.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;destinationStationCode&quot;: &quot;A String&quot;, # The destination station code.
      &quot;fareName&quot;: { # Short description/name of the fare for this leg of travel. Eg &quot;Anytime Single Use&quot;.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;originName&quot;: { # The name of the origin station. This is required if `desinationName` is present or if `originStationCode` is not present.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;originStationCode&quot;: &quot;A String&quot;, # The origin station code. This is required if `destinationStationCode` is present or if `originName` is not present.
      &quot;platform&quot;: &quot;A String&quot;, # The platform or gate where the passenger can board the carriage.
      &quot;ticketSeat&quot;: { # The reserved seat for the passenger(s). If more than one seat is to be specified then use the `ticketSeats` field instead. Both `ticketSeat` and `ticketSeats` may not be set.
        &quot;coach&quot;: &quot;A String&quot;, # The identifier of the train car or coach in which the ticketed seat is located. Eg. &quot;10&quot;
        &quot;customFareClass&quot;: { # A custome fare class to be used if no `fareClass` applies. Both `fareClass` and `customFareClass` may not be set.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;fareClass&quot;: &quot;A String&quot;, # The fare class of the ticketed seat.
        &quot;seat&quot;: &quot;A String&quot;, # The identifier of where the ticketed seat is located. Eg. &quot;42&quot;. If there is no specific identifier, use `seatAssigment` instead.
        &quot;seatAssignment&quot;: { # The passenger&#x27;s seat assignment. Eg. &quot;no specific seat&quot;. To be used when there is no specific identifier to use in `seat`.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
      },
      &quot;ticketSeats&quot;: [ # The reserved seat for the passenger(s). If only one seat is to be specified then use the `ticketSeat` field instead. Both `ticketSeat` and `ticketSeats` may not be set.
        {
          &quot;coach&quot;: &quot;A String&quot;, # The identifier of the train car or coach in which the ticketed seat is located. Eg. &quot;10&quot;
          &quot;customFareClass&quot;: { # A custome fare class to be used if no `fareClass` applies. Both `fareClass` and `customFareClass` may not be set.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;fareClass&quot;: &quot;A String&quot;, # The fare class of the ticketed seat.
          &quot;seat&quot;: &quot;A String&quot;, # The identifier of where the ticketed seat is located. Eg. &quot;42&quot;. If there is no specific identifier, use `seatAssigment` instead.
          &quot;seatAssignment&quot;: { # The passenger&#x27;s seat assignment. Eg. &quot;no specific seat&quot;. To be used when there is no specific identifier to use in `seat`.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
        },
      ],
      &quot;transitOperatorName&quot;: { # The name of the transit operator that is operating this leg of a trip.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;transitTerminusName&quot;: { # Terminus station or destination of the train/bus/etc.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;zone&quot;: &quot;A String&quot;, # The zone of boarding within the platform.
    },
  ],
  &quot;ticketNumber&quot;: &quot;A String&quot;, # The number of the ticket. This is a unique identifier for the ticket in the transit operator&#x27;s system.
  &quot;ticketRestrictions&quot;: { # Information about what kind of restrictions there are on using this ticket. For example, which days of the week it must be used, or which routes are allowed to be taken.
    &quot;otherRestrictions&quot;: { # Extra restrictions that don&#x27;t fall under the &quot;route&quot; or &quot;time&quot; categories.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;routeRestrictions&quot;: { # Restrictions about routes that may be taken. For example, this may be the string &quot;Reserved CrossCountry trains only&quot;.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;routeRestrictionsDetails&quot;: { # More details about the above `routeRestrictions`.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;timeRestrictions&quot;: { # Restrictions about times this ticket may be used.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
  },
  &quot;ticketStatus&quot;: &quot;A String&quot;, # The status of the ticket. For states which affect display, use the `state` field instead.
  &quot;tripId&quot;: &quot;A String&quot;, # This id is used to group tickets together if the user has saved multiple tickets for the same trip.
  &quot;tripType&quot;: &quot;A String&quot;, # Required. The type of trip this transit object represents. Used to determine the pass title and/or which symbol to use between the origin and destination.
  &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 transit 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;activationStatus&quot;: { # The activation status of the object. This field includes activation status if valuable supports activation. # The activation status for the object. Required if the class has `activationOptions` set.
    &quot;state&quot;: &quot;A String&quot;,
  },
  &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;activationOptions&quot;: { # ActivationOptions for the class # Activation options for an activatable ticket.
      &quot;activationUrl&quot;: &quot;A String&quot;, # HTTPS URL that supports REST semantics. Would be used for requesting activation from partners for given valuable, triggered by the users.
      &quot;allowReactivation&quot;: True or False, # Flag to allow users to make activation call from different device. This allows client to render the activation button enabled even if the activationStatus is ACTIVATED but the requested device is different than the current device.
    },
    &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;customCarriageLabel&quot;: { # A custom label to use for the carriage value (`transitObject.ticketLeg.carriage`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customCoachLabel&quot;: { # A custom label to use for the coach value (`transitObject.ticketLeg.ticketSeat.coach`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customConcessionCategoryLabel&quot;: { # A custom label to use for the transit concession category value (`transitObject.concessionCategory`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customConfirmationCodeLabel&quot;: { # A custom label to use for the confirmation code value (`transitObject.purchaseDetails.confirmationCode`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customDiscountMessageLabel&quot;: { # A custom label to use for the transit discount message value (`transitObject.purchaseDetails.ticketCost.discountMessage`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customFareClassLabel&quot;: { # A custom label to use for the fare class value (`transitObject.ticketLeg.ticketSeat.fareClass`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customFareNameLabel&quot;: { # A custom label to use for the transit fare name value (`transitObject.ticketLeg.fareName`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customOtherRestrictionsLabel&quot;: { # A custom label to use for the other restrictions value (`transitObject.ticketRestrictions.otherRestrictions`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customPlatformLabel&quot;: { # A custom label to use for the boarding platform value (`transitObject.ticketLeg.platform`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customPurchaseFaceValueLabel&quot;: { # A custom label to use for the purchase face value (`transitObject.purchaseDetails.ticketCost.faceValue`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customPurchasePriceLabel&quot;: { # A custom label to use for the purchase price value (`transitObject.purchaseDetails.ticketCost.purchasePrice`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customPurchaseReceiptNumberLabel&quot;: { # A custom label to use for the purchase receipt number value (`transitObject.purchaseDetails.purchaseReceiptNumber`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customRouteRestrictionsDetailsLabel&quot;: { # A custom label to use for the route restrictions details value (`transitObject.ticketRestrictions.routeRestrictionsDetails`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customRouteRestrictionsLabel&quot;: { # A custom label to use for the route restrictions value (`transitObject.ticketRestrictions.routeRestrictions`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customSeatLabel&quot;: { # A custom label to use for the seat location value (`transitObject.ticketLeg.ticketSeat.seat`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customTicketNumberLabel&quot;: { # A custom label to use for the ticket number value (`transitObject.ticketNumber`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customTimeRestrictionsLabel&quot;: { # A custom label to use for the time restrictions details value (`transitObject.ticketRestrictions.timeRestrictions`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customTransitTerminusNameLabel&quot;: { # A custom label to use for the transit terminus name value (`transitObject.ticketLeg.transitTerminusName`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customZoneLabel&quot;: { # A custom label to use for the boarding zone value (`transitObject.ticketLeg.zone`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;enableSingleLegItinerary&quot;: True or False, # Controls the display of the single-leg itinerary for this class. By default, an itinerary will only display for multi-leg trips.
    &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;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;languageOverride&quot;: &quot;A String&quot;, # If this field is present, transit tickets served to a user&#x27;s device will always be in this language. Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&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;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;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;logo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Required. The logo image of the ticket. This image is displayed in the card detail view 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;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;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 `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;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;transitOperatorName&quot;: { # The name of the transit operator.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;transitType&quot;: &quot;A String&quot;, # Required. The type of transit this class represents, such as &quot;bus&quot;.
    &quot;version&quot;: &quot;A String&quot;, # Deprecated
    &quot;viewUnlockRequirement&quot;: &quot;A String&quot;, # View Unlock Requirement options for the transit ticket.
    &quot;watermark&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Watermark image to display on the user&#x27;s device.
      &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;wideLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The wide logo of the ticket. When provided, this will be used in place of the logo 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;concessionCategory&quot;: &quot;A String&quot;, # The concession category for the ticket.
  &quot;customConcessionCategory&quot;: { # A custom concession category to use when `concessionCategory` does not provide the right option. Both `concessionCategory` and `customConcessionCategory` may not be set.
    &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
      &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
      &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
    &quot;translatedValues&quot;: [ # Contains the translations for the string.
      {
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
    ],
  },
  &quot;customTicketStatus&quot;: { # A custom status to use for the ticket status value when `ticketStatus` does not provide the right option. Both `ticketStatus` and `customTicketStatus` may not be set.
    &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
      &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
      &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
    &quot;translatedValues&quot;: [ # Contains the translations for the string.
      {
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
    ],
  },
  &quot;deviceContext&quot;: { # Device context associated with the object. # Device context associated with the object.
    &quot;deviceToken&quot;: &quot;A String&quot;, # If set, redemption information will only be returned to the given device upon activation of the object. This should not be used as a stable identifier to trace a user&#x27;s device. It can change across different passes for the same device or even across different activations for the same device. When setting this, callers must also set has_linked_device on the object being activated.
  },
  &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;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;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;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;passengerNames&quot;: &quot;A String&quot;, # The name(s) of the passengers the ticket is assigned to. The above `passengerType` field is meant to give Google context on this field.
  &quot;passengerType&quot;: &quot;A String&quot;, # The number of passengers.
  &quot;purchaseDetails&quot;: { # Purchase details for this ticket.
    &quot;accountId&quot;: &quot;A String&quot;, # ID of the account used to purchase the ticket.
    &quot;confirmationCode&quot;: &quot;A String&quot;, # The confirmation code for the purchase. This may be the same for multiple different tickets and is used to group tickets together.
    &quot;purchaseDateTime&quot;: &quot;A String&quot;, # The purchase date/time of the ticket. This is an ISO 8601 extended format date/time, with or without 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. `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. Without offset information, some rich features may not be available.
    &quot;purchaseReceiptNumber&quot;: &quot;A String&quot;, # Receipt number/identifier for tracking the ticket purchase via the body that sold the ticket.
    &quot;ticketCost&quot;: { # The cost of the ticket.
      &quot;discountMessage&quot;: { # A message describing any kind of discount that was applied.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;faceValue&quot;: { # The face value of the ticket.
        &quot;currencyCode&quot;: &quot;A String&quot;, # The currency code, such as &quot;USD&quot; or &quot;EUR.&quot;
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#money&quot;`.
        &quot;micros&quot;: &quot;A String&quot;, # The unit of money amount in micros. For example, $1 USD would be represented as 1000000 micros.
      },
      &quot;purchasePrice&quot;: { # The actual purchase price of the ticket, after tax and/or discounts.
        &quot;currencyCode&quot;: &quot;A String&quot;, # The currency code, such as &quot;USD&quot; or &quot;EUR.&quot;
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#money&quot;`.
        &quot;micros&quot;: &quot;A String&quot;, # The unit of money amount in micros. For example, $1 USD would be represented as 1000000 micros.
      },
    },
  },
  &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;ticketLeg&quot;: { # A single ticket leg contains departure and arrival information along with boarding and seating information. If more than one leg is to be specified then use the `ticketLegs` field instead. Both `ticketLeg` and `ticketLegs` may not be set.
    &quot;arrivalDateTime&quot;: &quot;A String&quot;, # The date/time of arrival. This is an ISO 8601 extended format date/time, with or without 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. `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. The portion of the date/time without the offset is considered the &quot;local date/time&quot;. This should be the local date/time at the destination station. For example, if the event occurs at the 20th hour of June 5th, 2018 at the destination station, the local date/time portion should be `2018-06-05T20:00:00`. If the local date/time at the destination station is 4 hours before UTC, an offset of `-04:00` may be appended. Without offset information, some rich features may not be available.
    &quot;carriage&quot;: &quot;A String&quot;, # The train or ship name/number that the passsenger needs to board.
    &quot;departureDateTime&quot;: &quot;A String&quot;, # The date/time of departure. This is required if there is no validity time interval set on the transit object. This is an ISO 8601 extended format date/time, with or without 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. `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. The portion of the date/time without the offset is considered the &quot;local date/time&quot;. This should be the local date/time at the origin station. For example, if the departure occurs at the 20th hour of June 5th, 2018 at the origin station, the local date/time portion should be `2018-06-05T20:00:00`. If the local date/time at the origin station is 4 hours before UTC, an offset of `-04:00` may be appended. Without offset information, some rich features may not be available.
    &quot;destinationName&quot;: { # The destination name.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;destinationStationCode&quot;: &quot;A String&quot;, # The destination station code.
    &quot;fareName&quot;: { # Short description/name of the fare for this leg of travel. Eg &quot;Anytime Single Use&quot;.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;originName&quot;: { # The name of the origin station. This is required if `desinationName` is present or if `originStationCode` is not present.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;originStationCode&quot;: &quot;A String&quot;, # The origin station code. This is required if `destinationStationCode` is present or if `originName` is not present.
    &quot;platform&quot;: &quot;A String&quot;, # The platform or gate where the passenger can board the carriage.
    &quot;ticketSeat&quot;: { # The reserved seat for the passenger(s). If more than one seat is to be specified then use the `ticketSeats` field instead. Both `ticketSeat` and `ticketSeats` may not be set.
      &quot;coach&quot;: &quot;A String&quot;, # The identifier of the train car or coach in which the ticketed seat is located. Eg. &quot;10&quot;
      &quot;customFareClass&quot;: { # A custome fare class to be used if no `fareClass` applies. Both `fareClass` and `customFareClass` may not be set.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;fareClass&quot;: &quot;A String&quot;, # The fare class of the ticketed seat.
      &quot;seat&quot;: &quot;A String&quot;, # The identifier of where the ticketed seat is located. Eg. &quot;42&quot;. If there is no specific identifier, use `seatAssigment` instead.
      &quot;seatAssignment&quot;: { # The passenger&#x27;s seat assignment. Eg. &quot;no specific seat&quot;. To be used when there is no specific identifier to use in `seat`.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
    },
    &quot;ticketSeats&quot;: [ # The reserved seat for the passenger(s). If only one seat is to be specified then use the `ticketSeat` field instead. Both `ticketSeat` and `ticketSeats` may not be set.
      {
        &quot;coach&quot;: &quot;A String&quot;, # The identifier of the train car or coach in which the ticketed seat is located. Eg. &quot;10&quot;
        &quot;customFareClass&quot;: { # A custome fare class to be used if no `fareClass` applies. Both `fareClass` and `customFareClass` may not be set.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;fareClass&quot;: &quot;A String&quot;, # The fare class of the ticketed seat.
        &quot;seat&quot;: &quot;A String&quot;, # The identifier of where the ticketed seat is located. Eg. &quot;42&quot;. If there is no specific identifier, use `seatAssigment` instead.
        &quot;seatAssignment&quot;: { # The passenger&#x27;s seat assignment. Eg. &quot;no specific seat&quot;. To be used when there is no specific identifier to use in `seat`.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
      },
    ],
    &quot;transitOperatorName&quot;: { # The name of the transit operator that is operating this leg of a trip.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;transitTerminusName&quot;: { # Terminus station or destination of the train/bus/etc.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;zone&quot;: &quot;A String&quot;, # The zone of boarding within the platform.
  },
  &quot;ticketLegs&quot;: [ # Each ticket may contain one or more legs. Each leg contains departure and arrival information along with boarding and seating information. If only one leg is to be specified then use the `ticketLeg` field instead. Both `ticketLeg` and `ticketLegs` may not be set.
    {
      &quot;arrivalDateTime&quot;: &quot;A String&quot;, # The date/time of arrival. This is an ISO 8601 extended format date/time, with or without 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. `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. The portion of the date/time without the offset is considered the &quot;local date/time&quot;. This should be the local date/time at the destination station. For example, if the event occurs at the 20th hour of June 5th, 2018 at the destination station, the local date/time portion should be `2018-06-05T20:00:00`. If the local date/time at the destination station is 4 hours before UTC, an offset of `-04:00` may be appended. Without offset information, some rich features may not be available.
      &quot;carriage&quot;: &quot;A String&quot;, # The train or ship name/number that the passsenger needs to board.
      &quot;departureDateTime&quot;: &quot;A String&quot;, # The date/time of departure. This is required if there is no validity time interval set on the transit object. This is an ISO 8601 extended format date/time, with or without 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. `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. The portion of the date/time without the offset is considered the &quot;local date/time&quot;. This should be the local date/time at the origin station. For example, if the departure occurs at the 20th hour of June 5th, 2018 at the origin station, the local date/time portion should be `2018-06-05T20:00:00`. If the local date/time at the origin station is 4 hours before UTC, an offset of `-04:00` may be appended. Without offset information, some rich features may not be available.
      &quot;destinationName&quot;: { # The destination name.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;destinationStationCode&quot;: &quot;A String&quot;, # The destination station code.
      &quot;fareName&quot;: { # Short description/name of the fare for this leg of travel. Eg &quot;Anytime Single Use&quot;.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;originName&quot;: { # The name of the origin station. This is required if `desinationName` is present or if `originStationCode` is not present.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;originStationCode&quot;: &quot;A String&quot;, # The origin station code. This is required if `destinationStationCode` is present or if `originName` is not present.
      &quot;platform&quot;: &quot;A String&quot;, # The platform or gate where the passenger can board the carriage.
      &quot;ticketSeat&quot;: { # The reserved seat for the passenger(s). If more than one seat is to be specified then use the `ticketSeats` field instead. Both `ticketSeat` and `ticketSeats` may not be set.
        &quot;coach&quot;: &quot;A String&quot;, # The identifier of the train car or coach in which the ticketed seat is located. Eg. &quot;10&quot;
        &quot;customFareClass&quot;: { # A custome fare class to be used if no `fareClass` applies. Both `fareClass` and `customFareClass` may not be set.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;fareClass&quot;: &quot;A String&quot;, # The fare class of the ticketed seat.
        &quot;seat&quot;: &quot;A String&quot;, # The identifier of where the ticketed seat is located. Eg. &quot;42&quot;. If there is no specific identifier, use `seatAssigment` instead.
        &quot;seatAssignment&quot;: { # The passenger&#x27;s seat assignment. Eg. &quot;no specific seat&quot;. To be used when there is no specific identifier to use in `seat`.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
      },
      &quot;ticketSeats&quot;: [ # The reserved seat for the passenger(s). If only one seat is to be specified then use the `ticketSeat` field instead. Both `ticketSeat` and `ticketSeats` may not be set.
        {
          &quot;coach&quot;: &quot;A String&quot;, # The identifier of the train car or coach in which the ticketed seat is located. Eg. &quot;10&quot;
          &quot;customFareClass&quot;: { # A custome fare class to be used if no `fareClass` applies. Both `fareClass` and `customFareClass` may not be set.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;fareClass&quot;: &quot;A String&quot;, # The fare class of the ticketed seat.
          &quot;seat&quot;: &quot;A String&quot;, # The identifier of where the ticketed seat is located. Eg. &quot;42&quot;. If there is no specific identifier, use `seatAssigment` instead.
          &quot;seatAssignment&quot;: { # The passenger&#x27;s seat assignment. Eg. &quot;no specific seat&quot;. To be used when there is no specific identifier to use in `seat`.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
        },
      ],
      &quot;transitOperatorName&quot;: { # The name of the transit operator that is operating this leg of a trip.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;transitTerminusName&quot;: { # Terminus station or destination of the train/bus/etc.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;zone&quot;: &quot;A String&quot;, # The zone of boarding within the platform.
    },
  ],
  &quot;ticketNumber&quot;: &quot;A String&quot;, # The number of the ticket. This is a unique identifier for the ticket in the transit operator&#x27;s system.
  &quot;ticketRestrictions&quot;: { # Information about what kind of restrictions there are on using this ticket. For example, which days of the week it must be used, or which routes are allowed to be taken.
    &quot;otherRestrictions&quot;: { # Extra restrictions that don&#x27;t fall under the &quot;route&quot; or &quot;time&quot; categories.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;routeRestrictions&quot;: { # Restrictions about routes that may be taken. For example, this may be the string &quot;Reserved CrossCountry trains only&quot;.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;routeRestrictionsDetails&quot;: { # More details about the above `routeRestrictions`.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;timeRestrictions&quot;: { # Restrictions about times this ticket may be used.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
  },
  &quot;ticketStatus&quot;: &quot;A String&quot;, # The status of the ticket. For states which affect display, use the `state` field instead.
  &quot;tripId&quot;: &quot;A String&quot;, # This id is used to group tickets together if the user has saved multiple tickets for the same trip.
  &quot;tripType&quot;: &quot;A String&quot;, # Required. The type of trip this transit object represents. Used to determine the pass title and/or which symbol to use between the origin and destination.
  &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;activationStatus&quot;: { # The activation status of the object. This field includes activation status if valuable supports activation. # The activation status for the object. Required if the class has `activationOptions` set.
    &quot;state&quot;: &quot;A String&quot;,
  },
  &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;activationOptions&quot;: { # ActivationOptions for the class # Activation options for an activatable ticket.
      &quot;activationUrl&quot;: &quot;A String&quot;, # HTTPS URL that supports REST semantics. Would be used for requesting activation from partners for given valuable, triggered by the users.
      &quot;allowReactivation&quot;: True or False, # Flag to allow users to make activation call from different device. This allows client to render the activation button enabled even if the activationStatus is ACTIVATED but the requested device is different than the current device.
    },
    &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;customCarriageLabel&quot;: { # A custom label to use for the carriage value (`transitObject.ticketLeg.carriage`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customCoachLabel&quot;: { # A custom label to use for the coach value (`transitObject.ticketLeg.ticketSeat.coach`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customConcessionCategoryLabel&quot;: { # A custom label to use for the transit concession category value (`transitObject.concessionCategory`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customConfirmationCodeLabel&quot;: { # A custom label to use for the confirmation code value (`transitObject.purchaseDetails.confirmationCode`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customDiscountMessageLabel&quot;: { # A custom label to use for the transit discount message value (`transitObject.purchaseDetails.ticketCost.discountMessage`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customFareClassLabel&quot;: { # A custom label to use for the fare class value (`transitObject.ticketLeg.ticketSeat.fareClass`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customFareNameLabel&quot;: { # A custom label to use for the transit fare name value (`transitObject.ticketLeg.fareName`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customOtherRestrictionsLabel&quot;: { # A custom label to use for the other restrictions value (`transitObject.ticketRestrictions.otherRestrictions`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customPlatformLabel&quot;: { # A custom label to use for the boarding platform value (`transitObject.ticketLeg.platform`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customPurchaseFaceValueLabel&quot;: { # A custom label to use for the purchase face value (`transitObject.purchaseDetails.ticketCost.faceValue`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customPurchasePriceLabel&quot;: { # A custom label to use for the purchase price value (`transitObject.purchaseDetails.ticketCost.purchasePrice`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customPurchaseReceiptNumberLabel&quot;: { # A custom label to use for the purchase receipt number value (`transitObject.purchaseDetails.purchaseReceiptNumber`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customRouteRestrictionsDetailsLabel&quot;: { # A custom label to use for the route restrictions details value (`transitObject.ticketRestrictions.routeRestrictionsDetails`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customRouteRestrictionsLabel&quot;: { # A custom label to use for the route restrictions value (`transitObject.ticketRestrictions.routeRestrictions`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customSeatLabel&quot;: { # A custom label to use for the seat location value (`transitObject.ticketLeg.ticketSeat.seat`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customTicketNumberLabel&quot;: { # A custom label to use for the ticket number value (`transitObject.ticketNumber`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customTimeRestrictionsLabel&quot;: { # A custom label to use for the time restrictions details value (`transitObject.ticketRestrictions.timeRestrictions`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customTransitTerminusNameLabel&quot;: { # A custom label to use for the transit terminus name value (`transitObject.ticketLeg.transitTerminusName`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;customZoneLabel&quot;: { # A custom label to use for the boarding zone value (`transitObject.ticketLeg.zone`).
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;enableSingleLegItinerary&quot;: True or False, # Controls the display of the single-leg itinerary for this class. By default, an itinerary will only display for multi-leg trips.
    &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;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;languageOverride&quot;: &quot;A String&quot;, # If this field is present, transit tickets served to a user&#x27;s device will always be in this language. Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&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;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;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;logo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Required. The logo image of the ticket. This image is displayed in the card detail view 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;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;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 `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;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;transitOperatorName&quot;: { # The name of the transit operator.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;transitType&quot;: &quot;A String&quot;, # Required. The type of transit this class represents, such as &quot;bus&quot;.
    &quot;version&quot;: &quot;A String&quot;, # Deprecated
    &quot;viewUnlockRequirement&quot;: &quot;A String&quot;, # View Unlock Requirement options for the transit ticket.
    &quot;watermark&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Watermark image to display on the user&#x27;s device.
      &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;wideLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The wide logo of the ticket. When provided, this will be used in place of the logo 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;concessionCategory&quot;: &quot;A String&quot;, # The concession category for the ticket.
  &quot;customConcessionCategory&quot;: { # A custom concession category to use when `concessionCategory` does not provide the right option. Both `concessionCategory` and `customConcessionCategory` may not be set.
    &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
      &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
      &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
    &quot;translatedValues&quot;: [ # Contains the translations for the string.
      {
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
    ],
  },
  &quot;customTicketStatus&quot;: { # A custom status to use for the ticket status value when `ticketStatus` does not provide the right option. Both `ticketStatus` and `customTicketStatus` may not be set.
    &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
      &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
      &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
    &quot;translatedValues&quot;: [ # Contains the translations for the string.
      {
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
    ],
  },
  &quot;deviceContext&quot;: { # Device context associated with the object. # Device context associated with the object.
    &quot;deviceToken&quot;: &quot;A String&quot;, # If set, redemption information will only be returned to the given device upon activation of the object. This should not be used as a stable identifier to trace a user&#x27;s device. It can change across different passes for the same device or even across different activations for the same device. When setting this, callers must also set has_linked_device on the object being activated.
  },
  &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;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;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;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;passengerNames&quot;: &quot;A String&quot;, # The name(s) of the passengers the ticket is assigned to. The above `passengerType` field is meant to give Google context on this field.
  &quot;passengerType&quot;: &quot;A String&quot;, # The number of passengers.
  &quot;purchaseDetails&quot;: { # Purchase details for this ticket.
    &quot;accountId&quot;: &quot;A String&quot;, # ID of the account used to purchase the ticket.
    &quot;confirmationCode&quot;: &quot;A String&quot;, # The confirmation code for the purchase. This may be the same for multiple different tickets and is used to group tickets together.
    &quot;purchaseDateTime&quot;: &quot;A String&quot;, # The purchase date/time of the ticket. This is an ISO 8601 extended format date/time, with or without 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. `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. Without offset information, some rich features may not be available.
    &quot;purchaseReceiptNumber&quot;: &quot;A String&quot;, # Receipt number/identifier for tracking the ticket purchase via the body that sold the ticket.
    &quot;ticketCost&quot;: { # The cost of the ticket.
      &quot;discountMessage&quot;: { # A message describing any kind of discount that was applied.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;faceValue&quot;: { # The face value of the ticket.
        &quot;currencyCode&quot;: &quot;A String&quot;, # The currency code, such as &quot;USD&quot; or &quot;EUR.&quot;
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#money&quot;`.
        &quot;micros&quot;: &quot;A String&quot;, # The unit of money amount in micros. For example, $1 USD would be represented as 1000000 micros.
      },
      &quot;purchasePrice&quot;: { # The actual purchase price of the ticket, after tax and/or discounts.
        &quot;currencyCode&quot;: &quot;A String&quot;, # The currency code, such as &quot;USD&quot; or &quot;EUR.&quot;
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#money&quot;`.
        &quot;micros&quot;: &quot;A String&quot;, # The unit of money amount in micros. For example, $1 USD would be represented as 1000000 micros.
      },
    },
  },
  &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;ticketLeg&quot;: { # A single ticket leg contains departure and arrival information along with boarding and seating information. If more than one leg is to be specified then use the `ticketLegs` field instead. Both `ticketLeg` and `ticketLegs` may not be set.
    &quot;arrivalDateTime&quot;: &quot;A String&quot;, # The date/time of arrival. This is an ISO 8601 extended format date/time, with or without 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. `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. The portion of the date/time without the offset is considered the &quot;local date/time&quot;. This should be the local date/time at the destination station. For example, if the event occurs at the 20th hour of June 5th, 2018 at the destination station, the local date/time portion should be `2018-06-05T20:00:00`. If the local date/time at the destination station is 4 hours before UTC, an offset of `-04:00` may be appended. Without offset information, some rich features may not be available.
    &quot;carriage&quot;: &quot;A String&quot;, # The train or ship name/number that the passsenger needs to board.
    &quot;departureDateTime&quot;: &quot;A String&quot;, # The date/time of departure. This is required if there is no validity time interval set on the transit object. This is an ISO 8601 extended format date/time, with or without 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. `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. The portion of the date/time without the offset is considered the &quot;local date/time&quot;. This should be the local date/time at the origin station. For example, if the departure occurs at the 20th hour of June 5th, 2018 at the origin station, the local date/time portion should be `2018-06-05T20:00:00`. If the local date/time at the origin station is 4 hours before UTC, an offset of `-04:00` may be appended. Without offset information, some rich features may not be available.
    &quot;destinationName&quot;: { # The destination name.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;destinationStationCode&quot;: &quot;A String&quot;, # The destination station code.
    &quot;fareName&quot;: { # Short description/name of the fare for this leg of travel. Eg &quot;Anytime Single Use&quot;.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;originName&quot;: { # The name of the origin station. This is required if `desinationName` is present or if `originStationCode` is not present.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;originStationCode&quot;: &quot;A String&quot;, # The origin station code. This is required if `destinationStationCode` is present or if `originName` is not present.
    &quot;platform&quot;: &quot;A String&quot;, # The platform or gate where the passenger can board the carriage.
    &quot;ticketSeat&quot;: { # The reserved seat for the passenger(s). If more than one seat is to be specified then use the `ticketSeats` field instead. Both `ticketSeat` and `ticketSeats` may not be set.
      &quot;coach&quot;: &quot;A String&quot;, # The identifier of the train car or coach in which the ticketed seat is located. Eg. &quot;10&quot;
      &quot;customFareClass&quot;: { # A custome fare class to be used if no `fareClass` applies. Both `fareClass` and `customFareClass` may not be set.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;fareClass&quot;: &quot;A String&quot;, # The fare class of the ticketed seat.
      &quot;seat&quot;: &quot;A String&quot;, # The identifier of where the ticketed seat is located. Eg. &quot;42&quot;. If there is no specific identifier, use `seatAssigment` instead.
      &quot;seatAssignment&quot;: { # The passenger&#x27;s seat assignment. Eg. &quot;no specific seat&quot;. To be used when there is no specific identifier to use in `seat`.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
    },
    &quot;ticketSeats&quot;: [ # The reserved seat for the passenger(s). If only one seat is to be specified then use the `ticketSeat` field instead. Both `ticketSeat` and `ticketSeats` may not be set.
      {
        &quot;coach&quot;: &quot;A String&quot;, # The identifier of the train car or coach in which the ticketed seat is located. Eg. &quot;10&quot;
        &quot;customFareClass&quot;: { # A custome fare class to be used if no `fareClass` applies. Both `fareClass` and `customFareClass` may not be set.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;fareClass&quot;: &quot;A String&quot;, # The fare class of the ticketed seat.
        &quot;seat&quot;: &quot;A String&quot;, # The identifier of where the ticketed seat is located. Eg. &quot;42&quot;. If there is no specific identifier, use `seatAssigment` instead.
        &quot;seatAssignment&quot;: { # The passenger&#x27;s seat assignment. Eg. &quot;no specific seat&quot;. To be used when there is no specific identifier to use in `seat`.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
      },
    ],
    &quot;transitOperatorName&quot;: { # The name of the transit operator that is operating this leg of a trip.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;transitTerminusName&quot;: { # Terminus station or destination of the train/bus/etc.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;zone&quot;: &quot;A String&quot;, # The zone of boarding within the platform.
  },
  &quot;ticketLegs&quot;: [ # Each ticket may contain one or more legs. Each leg contains departure and arrival information along with boarding and seating information. If only one leg is to be specified then use the `ticketLeg` field instead. Both `ticketLeg` and `ticketLegs` may not be set.
    {
      &quot;arrivalDateTime&quot;: &quot;A String&quot;, # The date/time of arrival. This is an ISO 8601 extended format date/time, with or without 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. `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. The portion of the date/time without the offset is considered the &quot;local date/time&quot;. This should be the local date/time at the destination station. For example, if the event occurs at the 20th hour of June 5th, 2018 at the destination station, the local date/time portion should be `2018-06-05T20:00:00`. If the local date/time at the destination station is 4 hours before UTC, an offset of `-04:00` may be appended. Without offset information, some rich features may not be available.
      &quot;carriage&quot;: &quot;A String&quot;, # The train or ship name/number that the passsenger needs to board.
      &quot;departureDateTime&quot;: &quot;A String&quot;, # The date/time of departure. This is required if there is no validity time interval set on the transit object. This is an ISO 8601 extended format date/time, with or without 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. `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. The portion of the date/time without the offset is considered the &quot;local date/time&quot;. This should be the local date/time at the origin station. For example, if the departure occurs at the 20th hour of June 5th, 2018 at the origin station, the local date/time portion should be `2018-06-05T20:00:00`. If the local date/time at the origin station is 4 hours before UTC, an offset of `-04:00` may be appended. Without offset information, some rich features may not be available.
      &quot;destinationName&quot;: { # The destination name.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;destinationStationCode&quot;: &quot;A String&quot;, # The destination station code.
      &quot;fareName&quot;: { # Short description/name of the fare for this leg of travel. Eg &quot;Anytime Single Use&quot;.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;originName&quot;: { # The name of the origin station. This is required if `desinationName` is present or if `originStationCode` is not present.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;originStationCode&quot;: &quot;A String&quot;, # The origin station code. This is required if `destinationStationCode` is present or if `originName` is not present.
      &quot;platform&quot;: &quot;A String&quot;, # The platform or gate where the passenger can board the carriage.
      &quot;ticketSeat&quot;: { # The reserved seat for the passenger(s). If more than one seat is to be specified then use the `ticketSeats` field instead. Both `ticketSeat` and `ticketSeats` may not be set.
        &quot;coach&quot;: &quot;A String&quot;, # The identifier of the train car or coach in which the ticketed seat is located. Eg. &quot;10&quot;
        &quot;customFareClass&quot;: { # A custome fare class to be used if no `fareClass` applies. Both `fareClass` and `customFareClass` may not be set.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;fareClass&quot;: &quot;A String&quot;, # The fare class of the ticketed seat.
        &quot;seat&quot;: &quot;A String&quot;, # The identifier of where the ticketed seat is located. Eg. &quot;42&quot;. If there is no specific identifier, use `seatAssigment` instead.
        &quot;seatAssignment&quot;: { # The passenger&#x27;s seat assignment. Eg. &quot;no specific seat&quot;. To be used when there is no specific identifier to use in `seat`.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
      },
      &quot;ticketSeats&quot;: [ # The reserved seat for the passenger(s). If only one seat is to be specified then use the `ticketSeat` field instead. Both `ticketSeat` and `ticketSeats` may not be set.
        {
          &quot;coach&quot;: &quot;A String&quot;, # The identifier of the train car or coach in which the ticketed seat is located. Eg. &quot;10&quot;
          &quot;customFareClass&quot;: { # A custome fare class to be used if no `fareClass` applies. Both `fareClass` and `customFareClass` may not be set.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;fareClass&quot;: &quot;A String&quot;, # The fare class of the ticketed seat.
          &quot;seat&quot;: &quot;A String&quot;, # The identifier of where the ticketed seat is located. Eg. &quot;42&quot;. If there is no specific identifier, use `seatAssigment` instead.
          &quot;seatAssignment&quot;: { # The passenger&#x27;s seat assignment. Eg. &quot;no specific seat&quot;. To be used when there is no specific identifier to use in `seat`.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
        },
      ],
      &quot;transitOperatorName&quot;: { # The name of the transit operator that is operating this leg of a trip.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;transitTerminusName&quot;: { # Terminus station or destination of the train/bus/etc.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;zone&quot;: &quot;A String&quot;, # The zone of boarding within the platform.
    },
  ],
  &quot;ticketNumber&quot;: &quot;A String&quot;, # The number of the ticket. This is a unique identifier for the ticket in the transit operator&#x27;s system.
  &quot;ticketRestrictions&quot;: { # Information about what kind of restrictions there are on using this ticket. For example, which days of the week it must be used, or which routes are allowed to be taken.
    &quot;otherRestrictions&quot;: { # Extra restrictions that don&#x27;t fall under the &quot;route&quot; or &quot;time&quot; categories.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;routeRestrictions&quot;: { # Restrictions about routes that may be taken. For example, this may be the string &quot;Reserved CrossCountry trains only&quot;.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;routeRestrictionsDetails&quot;: { # More details about the above `routeRestrictions`.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;timeRestrictions&quot;: { # Restrictions about times this ticket may be used.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
  },
  &quot;ticketStatus&quot;: &quot;A String&quot;, # The status of the ticket. For states which affect display, use the `state` field instead.
  &quot;tripId&quot;: &quot;A String&quot;, # This id is used to group tickets together if the user has saved multiple tickets for the same trip.
  &quot;tripType&quot;: &quot;A String&quot;, # Required. The type of trip this transit object represents. Used to determine the pass title and/or which symbol to use between the origin and destination.
  &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>