<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="chat_v1.html">Hangouts Chat API</a> . <a href="chat_v1.spaces.html">spaces</a> . <a href="chat_v1.spaces.messages.html">messages</a> . <a href="chat_v1.spaces.messages.attachments.html">attachments</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
<p class="firstline">Gets the metadata of a message attachment. The attachment data is fetched</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="get">get(name, x__xgafv=None)</code>
  <pre>Gets the metadata of a message attachment. The attachment data is fetched
using the media API.

Args:
  name: string, Resource name of the attachment, in the form
&quot;spaces/*/messages/*/attachments/*&quot;. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # An attachment in Hangouts Chat.
    &quot;thumbnailUri&quot;: &quot;A String&quot;, # Output only. The thumbnail URL which should be used to preview the
        # attachment to a human user. Bots should not use this URL to download
        # attachment content.
    &quot;driveDataRef&quot;: { # A reference to the data of a drive attachment. # A reference to the drive attachment. This is used with the Drive API.
      &quot;driveFileId&quot;: &quot;A String&quot;, # The id for the drive file, for use with the Drive API.
    },
    &quot;downloadUri&quot;: &quot;A String&quot;, # Output only. The download URL which should be used to allow a human user to
        # download the attachment. Bots should not use this URL to download
        # attachment content.
    &quot;contentType&quot;: &quot;A String&quot;, # The content type (MIME type) of the file.
    &quot;name&quot;: &quot;A String&quot;, # Resource name of the attachment, in the form
        # &quot;spaces/*/messages/*/attachments/*&quot;.
    &quot;source&quot;: &quot;A String&quot;, # The source of the attachment.
    &quot;attachmentDataRef&quot;: { # A reference to the data of an attachment. # A reference to the attachment data. This is used with the media API to
        # download the attachment data.
      &quot;resourceName&quot;: &quot;A String&quot;, # The resource name of the attachment data. This is used with the media API
          # to download the attachment data.
    },
    &quot;contentName&quot;: &quot;A String&quot;, # The original file name for the content, not the full path.
  }</pre>
</div>

</body></html>