<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.genericobject.html">genericobject</a></h1>
<h2>Instance Methods</h2>
<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 generic 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 a generic 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 generic 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 generic 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 generic object referenced by the given object ID.</p>
<h3>Method Details</h3>
<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 generic 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 needs to follow the format `issuerID.identifier` where `issuerID` is issued by Google and `identifier` is chosen by you. The unique identifier can only include alphanumeric characters, `.`, `_`, or `-`. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Generic Object Next ID: 121
  &quot;appLinkData&quot;: { # Information about the partner app link. The maximum number of these fields displayed is 10.
    &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. If pass does not have a barcode, we can allow the issuer to set Barcode.alternate_text and display just that.
    &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;cardTitle&quot;: { # Required. The header of the pass. This is usually the Business name such as &quot;XXX Gym&quot;, &quot;AAA Insurance&quot;. This field is required and appears in the header row at the very top of the pass.
    &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
      &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
      &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
    &quot;translatedValues&quot;: [ # Contains the translations for the string.
      {
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
    ],
  },
  &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 `issuerID.identifier` where `issuerID` is issued by Google and `identifier` is chosen by you.
  &quot;genericType&quot;: &quot;A String&quot;, # Specify which `GenericType` the card belongs to.
  &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;hasUsers&quot;: True or False, # Indicates if the object has users. This field is set by the platform.
  &quot;header&quot;: { # Required. The title of the pass, such as &quot;50% off coupon&quot; or &quot;Library card&quot; or &quot;Voucher&quot;. This field is required and appears in the title row of the pass detail view.
    &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
      &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
      &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
    &quot;translatedValues&quot;: [ # Contains the translations for the string.
      {
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
    ],
  },
  &quot;heroImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Banner image displayed on the front of the card if present. The image will be displayed 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 and if logo is not set, a color would be chosen by Google.
  &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 needs to follow the format `issuerID.identifier` where `issuerID` is issued by Google and `identifier` is chosen by you. The unique identifier can only include alphanumeric characters, `.`, `_`, or `-`.
  &quot;imageModulesData&quot;: [ # Image module data. Only one of the image from class and one from object level will be rendered when both set.
    {
      &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;linksModuleData&quot;: { # Links module data. If `linksModuleData` is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from class and 10 from object.
    &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;logo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The logo image of the pass. This image is displayed in the card detail view in upper left, and also on the list/thumbnail view. If the logo is not present, the first letter of `cardTitle` would be shown as logo.
    &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;notifications&quot;: { # Indicates if the object needs to have notification enabled. We support only one of ExpiryNotification/UpcomingNotification. `expiryNotification` takes precedence over `upcomingNotification`. In other words if `expiryNotification` is set, we ignore the `upcomingNotification` field. # The notification settings that are enabled for this object.
    &quot;expiryNotification&quot;: { # Indicates that the issuer would like Google Wallet to send expiry notifications 2 days prior to the card expiration. # A notification would be triggered at a specific time before the card expires.
      &quot;enableNotification&quot;: True or False, # Indicates if the object needs to have expiry notification enabled.
    },
    &quot;upcomingNotification&quot;: { # Indicates that the issuer would like Google Wallet to send an upcoming card validity notification 1 day before card becomes valid/usable. # A notification would be triggered at a specific time before the card becomes usable.
      &quot;enableNotification&quot;: True or False, # Indicates if the object needs to have upcoming notification enabled.
    },
  },
  &quot;passConstraints&quot;: { # Container for any constraints that may be placed on passes. # Pass constraints for the object. Includes limiting NFC and screenshot behaviors.
    &quot;nfcConstraint&quot;: [ # The NFC constraints for the pass.
      &quot;A String&quot;,
    ],
    &quot;screenshotEligibility&quot;: &quot;A String&quot;, # The screenshot eligibility for the pass.
  },
  &quot;rotatingBarcode&quot;: { # The rotating barcode settings/details.
    &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;, # 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. If this is not provided, the object would be considered `ACTIVE`.
  &quot;subheader&quot;: { # The title label of the pass, such as location where this pass can be used. Appears right above the title in the title row in the pass detail view.
    &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
      &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
      &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
    &quot;translatedValues&quot;: [ # Contains the translations for the string.
      {
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
    ],
  },
  &quot;textModulesData&quot;: [ # Text module data. If `textModulesData` is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from class and 10 from object.
    { # Data for Text module. All fields are optional. Header will be displayed if available, different types of bodies will be concatenated if they are defined.
      &quot;body&quot;: &quot;A String&quot;, # The body of the Text Module, which is defined as an uninterrupted string. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
      &quot;header&quot;: &quot;A String&quot;, # The header of the Text Module. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with a text module. This field is here to enable ease of management of text modules.
      &quot;localizedBody&quot;: { # Translated strings for the body. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;localizedHeader&quot;: { # Translated strings for the header. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
    },
  ],
  &quot;validTimeInterval&quot;: { # The time period this object will be considered valid or usable. When the time period is passed, the object will be considered expired, which will affect the rendering on user&#x27;s devices.
    &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;wideLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The wide logo of the pass. 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.
    },
  },
}</pre>
</div>

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

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

{ # Generic Object Next ID: 121
  &quot;appLinkData&quot;: { # Information about the partner app link. The maximum number of these fields displayed is 10.
    &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. If pass does not have a barcode, we can allow the issuer to set Barcode.alternate_text and display just that.
    &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;cardTitle&quot;: { # Required. The header of the pass. This is usually the Business name such as &quot;XXX Gym&quot;, &quot;AAA Insurance&quot;. This field is required and appears in the header row at the very top of the pass.
    &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
      &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
      &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
    &quot;translatedValues&quot;: [ # Contains the translations for the string.
      {
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
    ],
  },
  &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 `issuerID.identifier` where `issuerID` is issued by Google and `identifier` is chosen by you.
  &quot;genericType&quot;: &quot;A String&quot;, # Specify which `GenericType` the card belongs to.
  &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;hasUsers&quot;: True or False, # Indicates if the object has users. This field is set by the platform.
  &quot;header&quot;: { # Required. The title of the pass, such as &quot;50% off coupon&quot; or &quot;Library card&quot; or &quot;Voucher&quot;. This field is required and appears in the title row of the pass detail view.
    &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
      &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
      &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
    &quot;translatedValues&quot;: [ # Contains the translations for the string.
      {
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
    ],
  },
  &quot;heroImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Banner image displayed on the front of the card if present. The image will be displayed 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 and if logo is not set, a color would be chosen by Google.
  &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 needs to follow the format `issuerID.identifier` where `issuerID` is issued by Google and `identifier` is chosen by you. The unique identifier can only include alphanumeric characters, `.`, `_`, or `-`.
  &quot;imageModulesData&quot;: [ # Image module data. Only one of the image from class and one from object level will be rendered when both set.
    {
      &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;linksModuleData&quot;: { # Links module data. If `linksModuleData` is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from class and 10 from object.
    &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;logo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The logo image of the pass. This image is displayed in the card detail view in upper left, and also on the list/thumbnail view. If the logo is not present, the first letter of `cardTitle` would be shown as logo.
    &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;notifications&quot;: { # Indicates if the object needs to have notification enabled. We support only one of ExpiryNotification/UpcomingNotification. `expiryNotification` takes precedence over `upcomingNotification`. In other words if `expiryNotification` is set, we ignore the `upcomingNotification` field. # The notification settings that are enabled for this object.
    &quot;expiryNotification&quot;: { # Indicates that the issuer would like Google Wallet to send expiry notifications 2 days prior to the card expiration. # A notification would be triggered at a specific time before the card expires.
      &quot;enableNotification&quot;: True or False, # Indicates if the object needs to have expiry notification enabled.
    },
    &quot;upcomingNotification&quot;: { # Indicates that the issuer would like Google Wallet to send an upcoming card validity notification 1 day before card becomes valid/usable. # A notification would be triggered at a specific time before the card becomes usable.
      &quot;enableNotification&quot;: True or False, # Indicates if the object needs to have upcoming notification enabled.
    },
  },
  &quot;passConstraints&quot;: { # Container for any constraints that may be placed on passes. # Pass constraints for the object. Includes limiting NFC and screenshot behaviors.
    &quot;nfcConstraint&quot;: [ # The NFC constraints for the pass.
      &quot;A String&quot;,
    ],
    &quot;screenshotEligibility&quot;: &quot;A String&quot;, # The screenshot eligibility for the pass.
  },
  &quot;rotatingBarcode&quot;: { # The rotating barcode settings/details.
    &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;, # 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. If this is not provided, the object would be considered `ACTIVE`.
  &quot;subheader&quot;: { # The title label of the pass, such as location where this pass can be used. Appears right above the title in the title row in the pass detail view.
    &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
      &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
      &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
    &quot;translatedValues&quot;: [ # Contains the translations for the string.
      {
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
    ],
  },
  &quot;textModulesData&quot;: [ # Text module data. If `textModulesData` is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from class and 10 from object.
    { # Data for Text module. All fields are optional. Header will be displayed if available, different types of bodies will be concatenated if they are defined.
      &quot;body&quot;: &quot;A String&quot;, # The body of the Text Module, which is defined as an uninterrupted string. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
      &quot;header&quot;: &quot;A String&quot;, # The header of the Text Module. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with a text module. This field is here to enable ease of management of text modules.
      &quot;localizedBody&quot;: { # Translated strings for the body. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;localizedHeader&quot;: { # Translated strings for the header. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
    },
  ],
  &quot;validTimeInterval&quot;: { # The time period this object will be considered valid or usable. When the time period is passed, the object will be considered expired, which will affect the rendering on user&#x27;s devices.
    &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;wideLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The wide logo of the pass. 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.
    },
  },
}

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

Returns:
  An object of the form:

    { # Generic Object Next ID: 121
  &quot;appLinkData&quot;: { # Information about the partner app link. The maximum number of these fields displayed is 10.
    &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. If pass does not have a barcode, we can allow the issuer to set Barcode.alternate_text and display just that.
    &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;cardTitle&quot;: { # Required. The header of the pass. This is usually the Business name such as &quot;XXX Gym&quot;, &quot;AAA Insurance&quot;. This field is required and appears in the header row at the very top of the pass.
    &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
      &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
      &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
    &quot;translatedValues&quot;: [ # Contains the translations for the string.
      {
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
    ],
  },
  &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 `issuerID.identifier` where `issuerID` is issued by Google and `identifier` is chosen by you.
  &quot;genericType&quot;: &quot;A String&quot;, # Specify which `GenericType` the card belongs to.
  &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;hasUsers&quot;: True or False, # Indicates if the object has users. This field is set by the platform.
  &quot;header&quot;: { # Required. The title of the pass, such as &quot;50% off coupon&quot; or &quot;Library card&quot; or &quot;Voucher&quot;. This field is required and appears in the title row of the pass detail view.
    &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
      &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
      &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
    &quot;translatedValues&quot;: [ # Contains the translations for the string.
      {
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
    ],
  },
  &quot;heroImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Banner image displayed on the front of the card if present. The image will be displayed 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 and if logo is not set, a color would be chosen by Google.
  &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 needs to follow the format `issuerID.identifier` where `issuerID` is issued by Google and `identifier` is chosen by you. The unique identifier can only include alphanumeric characters, `.`, `_`, or `-`.
  &quot;imageModulesData&quot;: [ # Image module data. Only one of the image from class and one from object level will be rendered when both set.
    {
      &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;linksModuleData&quot;: { # Links module data. If `linksModuleData` is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from class and 10 from object.
    &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;logo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The logo image of the pass. This image is displayed in the card detail view in upper left, and also on the list/thumbnail view. If the logo is not present, the first letter of `cardTitle` would be shown as logo.
    &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;notifications&quot;: { # Indicates if the object needs to have notification enabled. We support only one of ExpiryNotification/UpcomingNotification. `expiryNotification` takes precedence over `upcomingNotification`. In other words if `expiryNotification` is set, we ignore the `upcomingNotification` field. # The notification settings that are enabled for this object.
    &quot;expiryNotification&quot;: { # Indicates that the issuer would like Google Wallet to send expiry notifications 2 days prior to the card expiration. # A notification would be triggered at a specific time before the card expires.
      &quot;enableNotification&quot;: True or False, # Indicates if the object needs to have expiry notification enabled.
    },
    &quot;upcomingNotification&quot;: { # Indicates that the issuer would like Google Wallet to send an upcoming card validity notification 1 day before card becomes valid/usable. # A notification would be triggered at a specific time before the card becomes usable.
      &quot;enableNotification&quot;: True or False, # Indicates if the object needs to have upcoming notification enabled.
    },
  },
  &quot;passConstraints&quot;: { # Container for any constraints that may be placed on passes. # Pass constraints for the object. Includes limiting NFC and screenshot behaviors.
    &quot;nfcConstraint&quot;: [ # The NFC constraints for the pass.
      &quot;A String&quot;,
    ],
    &quot;screenshotEligibility&quot;: &quot;A String&quot;, # The screenshot eligibility for the pass.
  },
  &quot;rotatingBarcode&quot;: { # The rotating barcode settings/details.
    &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;, # 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. If this is not provided, the object would be considered `ACTIVE`.
  &quot;subheader&quot;: { # The title label of the pass, such as location where this pass can be used. Appears right above the title in the title row in the pass detail view.
    &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
      &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
      &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
    &quot;translatedValues&quot;: [ # Contains the translations for the string.
      {
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
    ],
  },
  &quot;textModulesData&quot;: [ # Text module data. If `textModulesData` is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from class and 10 from object.
    { # Data for Text module. All fields are optional. Header will be displayed if available, different types of bodies will be concatenated if they are defined.
      &quot;body&quot;: &quot;A String&quot;, # The body of the Text Module, which is defined as an uninterrupted string. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
      &quot;header&quot;: &quot;A String&quot;, # The header of the Text Module. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with a text module. This field is here to enable ease of management of text modules.
      &quot;localizedBody&quot;: { # Translated strings for the body. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;localizedHeader&quot;: { # Translated strings for the header. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
    },
  ],
  &quot;validTimeInterval&quot;: { # The time period this object will be considered valid or usable. When the time period is passed, the object will be considered expired, which will affect the rendering on user&#x27;s devices.
    &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;wideLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The wide logo of the pass. 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.
    },
  },
}</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 generic 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:

    { # List response which contains the list of all generic objects for a given issuer ID.
  &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.
    { # Generic Object Next ID: 121
      &quot;appLinkData&quot;: { # Information about the partner app link. The maximum number of these fields displayed is 10.
        &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. If pass does not have a barcode, we can allow the issuer to set Barcode.alternate_text and display just that.
        &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;cardTitle&quot;: { # Required. The header of the pass. This is usually the Business name such as &quot;XXX Gym&quot;, &quot;AAA Insurance&quot;. This field is required and appears in the header row at the very top of the pass.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &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 `issuerID.identifier` where `issuerID` is issued by Google and `identifier` is chosen by you.
      &quot;genericType&quot;: &quot;A String&quot;, # Specify which `GenericType` the card belongs to.
      &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;hasUsers&quot;: True or False, # Indicates if the object has users. This field is set by the platform.
      &quot;header&quot;: { # Required. The title of the pass, such as &quot;50% off coupon&quot; or &quot;Library card&quot; or &quot;Voucher&quot;. This field is required and appears in the title row of the pass detail view.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;heroImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Banner image displayed on the front of the card if present. The image will be displayed 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 and if logo is not set, a color would be chosen by Google.
      &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 needs to follow the format `issuerID.identifier` where `issuerID` is issued by Google and `identifier` is chosen by you. The unique identifier can only include alphanumeric characters, `.`, `_`, or `-`.
      &quot;imageModulesData&quot;: [ # Image module data. Only one of the image from class and one from object level will be rendered when both set.
        {
          &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;linksModuleData&quot;: { # Links module data. If `linksModuleData` is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from class and 10 from object.
        &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;logo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The logo image of the pass. This image is displayed in the card detail view in upper left, and also on the list/thumbnail view. If the logo is not present, the first letter of `cardTitle` would be shown as logo.
        &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;notifications&quot;: { # Indicates if the object needs to have notification enabled. We support only one of ExpiryNotification/UpcomingNotification. `expiryNotification` takes precedence over `upcomingNotification`. In other words if `expiryNotification` is set, we ignore the `upcomingNotification` field. # The notification settings that are enabled for this object.
        &quot;expiryNotification&quot;: { # Indicates that the issuer would like Google Wallet to send expiry notifications 2 days prior to the card expiration. # A notification would be triggered at a specific time before the card expires.
          &quot;enableNotification&quot;: True or False, # Indicates if the object needs to have expiry notification enabled.
        },
        &quot;upcomingNotification&quot;: { # Indicates that the issuer would like Google Wallet to send an upcoming card validity notification 1 day before card becomes valid/usable. # A notification would be triggered at a specific time before the card becomes usable.
          &quot;enableNotification&quot;: True or False, # Indicates if the object needs to have upcoming notification enabled.
        },
      },
      &quot;passConstraints&quot;: { # Container for any constraints that may be placed on passes. # Pass constraints for the object. Includes limiting NFC and screenshot behaviors.
        &quot;nfcConstraint&quot;: [ # The NFC constraints for the pass.
          &quot;A String&quot;,
        ],
        &quot;screenshotEligibility&quot;: &quot;A String&quot;, # The screenshot eligibility for the pass.
      },
      &quot;rotatingBarcode&quot;: { # The rotating barcode settings/details.
        &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;, # 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. If this is not provided, the object would be considered `ACTIVE`.
      &quot;subheader&quot;: { # The title label of the pass, such as location where this pass can be used. Appears right above the title in the title row in the pass detail view.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;textModulesData&quot;: [ # Text module data. If `textModulesData` is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from class and 10 from object.
        { # Data for Text module. All fields are optional. Header will be displayed if available, different types of bodies will be concatenated if they are defined.
          &quot;body&quot;: &quot;A String&quot;, # The body of the Text Module, which is defined as an uninterrupted string. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
          &quot;header&quot;: &quot;A String&quot;, # The header of the Text Module. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
          &quot;id&quot;: &quot;A String&quot;, # The ID associated with a text module. This field is here to enable ease of management of text modules.
          &quot;localizedBody&quot;: { # Translated strings for the body. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;localizedHeader&quot;: { # Translated strings for the header. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
        },
      ],
      &quot;validTimeInterval&quot;: { # The time period this object will be considered valid or usable. When the time period is passed, the object will be considered expired, which will affect the rendering on user&#x27;s devices.
        &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;wideLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The wide logo of the pass. 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.
        },
      },
    },
  ],
}</pre>
</div>

<div class="method">
    <code class="details" id="patch">patch(resourceId, body=None, x__xgafv=None)</code>
  <pre>Updates the generic 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 needs to follow the format `issuerID.identifier` where `issuerID` is issued by Google and `identifier` is chosen by you. The unique identifier can only include alphanumeric characters, `.`, `_`, or `-`. (required)
  body: object, The request body.
    The object takes the form of:

{ # Generic Object Next ID: 121
  &quot;appLinkData&quot;: { # Information about the partner app link. The maximum number of these fields displayed is 10.
    &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. If pass does not have a barcode, we can allow the issuer to set Barcode.alternate_text and display just that.
    &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;cardTitle&quot;: { # Required. The header of the pass. This is usually the Business name such as &quot;XXX Gym&quot;, &quot;AAA Insurance&quot;. This field is required and appears in the header row at the very top of the pass.
    &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
      &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
      &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
    &quot;translatedValues&quot;: [ # Contains the translations for the string.
      {
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
    ],
  },
  &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 `issuerID.identifier` where `issuerID` is issued by Google and `identifier` is chosen by you.
  &quot;genericType&quot;: &quot;A String&quot;, # Specify which `GenericType` the card belongs to.
  &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;hasUsers&quot;: True or False, # Indicates if the object has users. This field is set by the platform.
  &quot;header&quot;: { # Required. The title of the pass, such as &quot;50% off coupon&quot; or &quot;Library card&quot; or &quot;Voucher&quot;. This field is required and appears in the title row of the pass detail view.
    &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
      &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
      &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
    &quot;translatedValues&quot;: [ # Contains the translations for the string.
      {
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
    ],
  },
  &quot;heroImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Banner image displayed on the front of the card if present. The image will be displayed 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 and if logo is not set, a color would be chosen by Google.
  &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 needs to follow the format `issuerID.identifier` where `issuerID` is issued by Google and `identifier` is chosen by you. The unique identifier can only include alphanumeric characters, `.`, `_`, or `-`.
  &quot;imageModulesData&quot;: [ # Image module data. Only one of the image from class and one from object level will be rendered when both set.
    {
      &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;linksModuleData&quot;: { # Links module data. If `linksModuleData` is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from class and 10 from object.
    &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;logo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The logo image of the pass. This image is displayed in the card detail view in upper left, and also on the list/thumbnail view. If the logo is not present, the first letter of `cardTitle` would be shown as logo.
    &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;notifications&quot;: { # Indicates if the object needs to have notification enabled. We support only one of ExpiryNotification/UpcomingNotification. `expiryNotification` takes precedence over `upcomingNotification`. In other words if `expiryNotification` is set, we ignore the `upcomingNotification` field. # The notification settings that are enabled for this object.
    &quot;expiryNotification&quot;: { # Indicates that the issuer would like Google Wallet to send expiry notifications 2 days prior to the card expiration. # A notification would be triggered at a specific time before the card expires.
      &quot;enableNotification&quot;: True or False, # Indicates if the object needs to have expiry notification enabled.
    },
    &quot;upcomingNotification&quot;: { # Indicates that the issuer would like Google Wallet to send an upcoming card validity notification 1 day before card becomes valid/usable. # A notification would be triggered at a specific time before the card becomes usable.
      &quot;enableNotification&quot;: True or False, # Indicates if the object needs to have upcoming notification enabled.
    },
  },
  &quot;passConstraints&quot;: { # Container for any constraints that may be placed on passes. # Pass constraints for the object. Includes limiting NFC and screenshot behaviors.
    &quot;nfcConstraint&quot;: [ # The NFC constraints for the pass.
      &quot;A String&quot;,
    ],
    &quot;screenshotEligibility&quot;: &quot;A String&quot;, # The screenshot eligibility for the pass.
  },
  &quot;rotatingBarcode&quot;: { # The rotating barcode settings/details.
    &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;, # 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. If this is not provided, the object would be considered `ACTIVE`.
  &quot;subheader&quot;: { # The title label of the pass, such as location where this pass can be used. Appears right above the title in the title row in the pass detail view.
    &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
      &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
      &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
    &quot;translatedValues&quot;: [ # Contains the translations for the string.
      {
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
    ],
  },
  &quot;textModulesData&quot;: [ # Text module data. If `textModulesData` is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from class and 10 from object.
    { # Data for Text module. All fields are optional. Header will be displayed if available, different types of bodies will be concatenated if they are defined.
      &quot;body&quot;: &quot;A String&quot;, # The body of the Text Module, which is defined as an uninterrupted string. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
      &quot;header&quot;: &quot;A String&quot;, # The header of the Text Module. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with a text module. This field is here to enable ease of management of text modules.
      &quot;localizedBody&quot;: { # Translated strings for the body. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;localizedHeader&quot;: { # Translated strings for the header. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
    },
  ],
  &quot;validTimeInterval&quot;: { # The time period this object will be considered valid or usable. When the time period is passed, the object will be considered expired, which will affect the rendering on user&#x27;s devices.
    &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;wideLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The wide logo of the pass. 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.
    },
  },
}

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

Returns:
  An object of the form:

    { # Generic Object Next ID: 121
  &quot;appLinkData&quot;: { # Information about the partner app link. The maximum number of these fields displayed is 10.
    &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. If pass does not have a barcode, we can allow the issuer to set Barcode.alternate_text and display just that.
    &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;cardTitle&quot;: { # Required. The header of the pass. This is usually the Business name such as &quot;XXX Gym&quot;, &quot;AAA Insurance&quot;. This field is required and appears in the header row at the very top of the pass.
    &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
      &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
      &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
    &quot;translatedValues&quot;: [ # Contains the translations for the string.
      {
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
    ],
  },
  &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 `issuerID.identifier` where `issuerID` is issued by Google and `identifier` is chosen by you.
  &quot;genericType&quot;: &quot;A String&quot;, # Specify which `GenericType` the card belongs to.
  &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;hasUsers&quot;: True or False, # Indicates if the object has users. This field is set by the platform.
  &quot;header&quot;: { # Required. The title of the pass, such as &quot;50% off coupon&quot; or &quot;Library card&quot; or &quot;Voucher&quot;. This field is required and appears in the title row of the pass detail view.
    &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
      &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
      &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
    &quot;translatedValues&quot;: [ # Contains the translations for the string.
      {
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
    ],
  },
  &quot;heroImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Banner image displayed on the front of the card if present. The image will be displayed 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 and if logo is not set, a color would be chosen by Google.
  &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 needs to follow the format `issuerID.identifier` where `issuerID` is issued by Google and `identifier` is chosen by you. The unique identifier can only include alphanumeric characters, `.`, `_`, or `-`.
  &quot;imageModulesData&quot;: [ # Image module data. Only one of the image from class and one from object level will be rendered when both set.
    {
      &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;linksModuleData&quot;: { # Links module data. If `linksModuleData` is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from class and 10 from object.
    &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;logo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The logo image of the pass. This image is displayed in the card detail view in upper left, and also on the list/thumbnail view. If the logo is not present, the first letter of `cardTitle` would be shown as logo.
    &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;notifications&quot;: { # Indicates if the object needs to have notification enabled. We support only one of ExpiryNotification/UpcomingNotification. `expiryNotification` takes precedence over `upcomingNotification`. In other words if `expiryNotification` is set, we ignore the `upcomingNotification` field. # The notification settings that are enabled for this object.
    &quot;expiryNotification&quot;: { # Indicates that the issuer would like Google Wallet to send expiry notifications 2 days prior to the card expiration. # A notification would be triggered at a specific time before the card expires.
      &quot;enableNotification&quot;: True or False, # Indicates if the object needs to have expiry notification enabled.
    },
    &quot;upcomingNotification&quot;: { # Indicates that the issuer would like Google Wallet to send an upcoming card validity notification 1 day before card becomes valid/usable. # A notification would be triggered at a specific time before the card becomes usable.
      &quot;enableNotification&quot;: True or False, # Indicates if the object needs to have upcoming notification enabled.
    },
  },
  &quot;passConstraints&quot;: { # Container for any constraints that may be placed on passes. # Pass constraints for the object. Includes limiting NFC and screenshot behaviors.
    &quot;nfcConstraint&quot;: [ # The NFC constraints for the pass.
      &quot;A String&quot;,
    ],
    &quot;screenshotEligibility&quot;: &quot;A String&quot;, # The screenshot eligibility for the pass.
  },
  &quot;rotatingBarcode&quot;: { # The rotating barcode settings/details.
    &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;, # 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. If this is not provided, the object would be considered `ACTIVE`.
  &quot;subheader&quot;: { # The title label of the pass, such as location where this pass can be used. Appears right above the title in the title row in the pass detail view.
    &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
      &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
      &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
    &quot;translatedValues&quot;: [ # Contains the translations for the string.
      {
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
    ],
  },
  &quot;textModulesData&quot;: [ # Text module data. If `textModulesData` is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from class and 10 from object.
    { # Data for Text module. All fields are optional. Header will be displayed if available, different types of bodies will be concatenated if they are defined.
      &quot;body&quot;: &quot;A String&quot;, # The body of the Text Module, which is defined as an uninterrupted string. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
      &quot;header&quot;: &quot;A String&quot;, # The header of the Text Module. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with a text module. This field is here to enable ease of management of text modules.
      &quot;localizedBody&quot;: { # Translated strings for the body. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;localizedHeader&quot;: { # Translated strings for the header. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
    },
  ],
  &quot;validTimeInterval&quot;: { # The time period this object will be considered valid or usable. When the time period is passed, the object will be considered expired, which will affect the rendering on user&#x27;s devices.
    &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;wideLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The wide logo of the pass. 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.
    },
  },
}</pre>
</div>

<div class="method">
    <code class="details" id="update">update(resourceId, body=None, x__xgafv=None)</code>
  <pre>Updates the generic 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 needs to follow the format `issuerID.identifier` where `issuerID` is issued by Google and `identifier` is chosen by you. The unique identifier can only include alphanumeric characters, `.`, `_`, or `-`. (required)
  body: object, The request body.
    The object takes the form of:

{ # Generic Object Next ID: 121
  &quot;appLinkData&quot;: { # Information about the partner app link. The maximum number of these fields displayed is 10.
    &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. If pass does not have a barcode, we can allow the issuer to set Barcode.alternate_text and display just that.
    &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;cardTitle&quot;: { # Required. The header of the pass. This is usually the Business name such as &quot;XXX Gym&quot;, &quot;AAA Insurance&quot;. This field is required and appears in the header row at the very top of the pass.
    &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
      &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
      &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
    &quot;translatedValues&quot;: [ # Contains the translations for the string.
      {
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
    ],
  },
  &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 `issuerID.identifier` where `issuerID` is issued by Google and `identifier` is chosen by you.
  &quot;genericType&quot;: &quot;A String&quot;, # Specify which `GenericType` the card belongs to.
  &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;hasUsers&quot;: True or False, # Indicates if the object has users. This field is set by the platform.
  &quot;header&quot;: { # Required. The title of the pass, such as &quot;50% off coupon&quot; or &quot;Library card&quot; or &quot;Voucher&quot;. This field is required and appears in the title row of the pass detail view.
    &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
      &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
      &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
    &quot;translatedValues&quot;: [ # Contains the translations for the string.
      {
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
    ],
  },
  &quot;heroImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Banner image displayed on the front of the card if present. The image will be displayed 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 and if logo is not set, a color would be chosen by Google.
  &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 needs to follow the format `issuerID.identifier` where `issuerID` is issued by Google and `identifier` is chosen by you. The unique identifier can only include alphanumeric characters, `.`, `_`, or `-`.
  &quot;imageModulesData&quot;: [ # Image module data. Only one of the image from class and one from object level will be rendered when both set.
    {
      &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;linksModuleData&quot;: { # Links module data. If `linksModuleData` is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from class and 10 from object.
    &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;logo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The logo image of the pass. This image is displayed in the card detail view in upper left, and also on the list/thumbnail view. If the logo is not present, the first letter of `cardTitle` would be shown as logo.
    &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;notifications&quot;: { # Indicates if the object needs to have notification enabled. We support only one of ExpiryNotification/UpcomingNotification. `expiryNotification` takes precedence over `upcomingNotification`. In other words if `expiryNotification` is set, we ignore the `upcomingNotification` field. # The notification settings that are enabled for this object.
    &quot;expiryNotification&quot;: { # Indicates that the issuer would like Google Wallet to send expiry notifications 2 days prior to the card expiration. # A notification would be triggered at a specific time before the card expires.
      &quot;enableNotification&quot;: True or False, # Indicates if the object needs to have expiry notification enabled.
    },
    &quot;upcomingNotification&quot;: { # Indicates that the issuer would like Google Wallet to send an upcoming card validity notification 1 day before card becomes valid/usable. # A notification would be triggered at a specific time before the card becomes usable.
      &quot;enableNotification&quot;: True or False, # Indicates if the object needs to have upcoming notification enabled.
    },
  },
  &quot;passConstraints&quot;: { # Container for any constraints that may be placed on passes. # Pass constraints for the object. Includes limiting NFC and screenshot behaviors.
    &quot;nfcConstraint&quot;: [ # The NFC constraints for the pass.
      &quot;A String&quot;,
    ],
    &quot;screenshotEligibility&quot;: &quot;A String&quot;, # The screenshot eligibility for the pass.
  },
  &quot;rotatingBarcode&quot;: { # The rotating barcode settings/details.
    &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;, # 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. If this is not provided, the object would be considered `ACTIVE`.
  &quot;subheader&quot;: { # The title label of the pass, such as location where this pass can be used. Appears right above the title in the title row in the pass detail view.
    &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
      &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
      &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
    &quot;translatedValues&quot;: [ # Contains the translations for the string.
      {
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
    ],
  },
  &quot;textModulesData&quot;: [ # Text module data. If `textModulesData` is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from class and 10 from object.
    { # Data for Text module. All fields are optional. Header will be displayed if available, different types of bodies will be concatenated if they are defined.
      &quot;body&quot;: &quot;A String&quot;, # The body of the Text Module, which is defined as an uninterrupted string. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
      &quot;header&quot;: &quot;A String&quot;, # The header of the Text Module. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with a text module. This field is here to enable ease of management of text modules.
      &quot;localizedBody&quot;: { # Translated strings for the body. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;localizedHeader&quot;: { # Translated strings for the header. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
    },
  ],
  &quot;validTimeInterval&quot;: { # The time period this object will be considered valid or usable. When the time period is passed, the object will be considered expired, which will affect the rendering on user&#x27;s devices.
    &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;wideLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The wide logo of the pass. 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.
    },
  },
}

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

Returns:
  An object of the form:

    { # Generic Object Next ID: 121
  &quot;appLinkData&quot;: { # Information about the partner app link. The maximum number of these fields displayed is 10.
    &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. If pass does not have a barcode, we can allow the issuer to set Barcode.alternate_text and display just that.
    &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;cardTitle&quot;: { # Required. The header of the pass. This is usually the Business name such as &quot;XXX Gym&quot;, &quot;AAA Insurance&quot;. This field is required and appears in the header row at the very top of the pass.
    &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
      &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
      &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
    &quot;translatedValues&quot;: [ # Contains the translations for the string.
      {
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
    ],
  },
  &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 `issuerID.identifier` where `issuerID` is issued by Google and `identifier` is chosen by you.
  &quot;genericType&quot;: &quot;A String&quot;, # Specify which `GenericType` the card belongs to.
  &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;hasUsers&quot;: True or False, # Indicates if the object has users. This field is set by the platform.
  &quot;header&quot;: { # Required. The title of the pass, such as &quot;50% off coupon&quot; or &quot;Library card&quot; or &quot;Voucher&quot;. This field is required and appears in the title row of the pass detail view.
    &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
      &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
      &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
    &quot;translatedValues&quot;: [ # Contains the translations for the string.
      {
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
    ],
  },
  &quot;heroImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Banner image displayed on the front of the card if present. The image will be displayed 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 and if logo is not set, a color would be chosen by Google.
  &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 needs to follow the format `issuerID.identifier` where `issuerID` is issued by Google and `identifier` is chosen by you. The unique identifier can only include alphanumeric characters, `.`, `_`, or `-`.
  &quot;imageModulesData&quot;: [ # Image module data. Only one of the image from class and one from object level will be rendered when both set.
    {
      &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;linksModuleData&quot;: { # Links module data. If `linksModuleData` is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from class and 10 from object.
    &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;logo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The logo image of the pass. This image is displayed in the card detail view in upper left, and also on the list/thumbnail view. If the logo is not present, the first letter of `cardTitle` would be shown as logo.
    &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;notifications&quot;: { # Indicates if the object needs to have notification enabled. We support only one of ExpiryNotification/UpcomingNotification. `expiryNotification` takes precedence over `upcomingNotification`. In other words if `expiryNotification` is set, we ignore the `upcomingNotification` field. # The notification settings that are enabled for this object.
    &quot;expiryNotification&quot;: { # Indicates that the issuer would like Google Wallet to send expiry notifications 2 days prior to the card expiration. # A notification would be triggered at a specific time before the card expires.
      &quot;enableNotification&quot;: True or False, # Indicates if the object needs to have expiry notification enabled.
    },
    &quot;upcomingNotification&quot;: { # Indicates that the issuer would like Google Wallet to send an upcoming card validity notification 1 day before card becomes valid/usable. # A notification would be triggered at a specific time before the card becomes usable.
      &quot;enableNotification&quot;: True or False, # Indicates if the object needs to have upcoming notification enabled.
    },
  },
  &quot;passConstraints&quot;: { # Container for any constraints that may be placed on passes. # Pass constraints for the object. Includes limiting NFC and screenshot behaviors.
    &quot;nfcConstraint&quot;: [ # The NFC constraints for the pass.
      &quot;A String&quot;,
    ],
    &quot;screenshotEligibility&quot;: &quot;A String&quot;, # The screenshot eligibility for the pass.
  },
  &quot;rotatingBarcode&quot;: { # The rotating barcode settings/details.
    &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;, # 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. If this is not provided, the object would be considered `ACTIVE`.
  &quot;subheader&quot;: { # The title label of the pass, such as location where this pass can be used. Appears right above the title in the title row in the pass detail view.
    &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
      &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
      &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
    &quot;translatedValues&quot;: [ # Contains the translations for the string.
      {
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
    ],
  },
  &quot;textModulesData&quot;: [ # Text module data. If `textModulesData` is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from class and 10 from object.
    { # Data for Text module. All fields are optional. Header will be displayed if available, different types of bodies will be concatenated if they are defined.
      &quot;body&quot;: &quot;A String&quot;, # The body of the Text Module, which is defined as an uninterrupted string. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
      &quot;header&quot;: &quot;A String&quot;, # The header of the Text Module. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with a text module. This field is here to enable ease of management of text modules.
      &quot;localizedBody&quot;: { # Translated strings for the body. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;localizedHeader&quot;: { # Translated strings for the header. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
    },
  ],
  &quot;validTimeInterval&quot;: { # The time period this object will be considered valid or usable. When the time period is passed, the object will be considered expired, which will affect the rendering on user&#x27;s devices.
    &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;wideLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The wide logo of the pass. 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.
    },
  },
}</pre>
</div>

</body></html>