<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="drive_v3.html">Drive API</a> . <a href="drive_v3.comments.html">comments</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="#create">create(fileId, body=None)</a></code></p>
<p class="firstline">Creates a new comment on a file.</p>
<p class="toc_element">
  <code><a href="#delete">delete(fileId, commentId)</a></code></p>
<p class="firstline">Deletes a comment.</p>
<p class="toc_element">
  <code><a href="#get">get(fileId, commentId, includeDeleted=None)</a></code></p>
<p class="firstline">Gets a comment by ID.</p>
<p class="toc_element">
  <code><a href="#list">list(fileId, includeDeleted=None, pageSize=None, pageToken=None, startModifiedTime=None)</a></code></p>
<p class="firstline">Lists a file's comments.</p>
<p class="toc_element">
  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<p class="toc_element">
  <code><a href="#update">update(fileId, commentId, body=None)</a></code></p>
<p class="firstline">Updates a comment with patch semantics.</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="create">create(fileId, body=None)</code>
  <pre>Creates a new comment on a file.

Args:
  fileId: string, The ID of the file. (required)
  body: object, The request body.
    The object takes the form of:

{ # A comment on a file.
    &quot;anchor&quot;: &quot;A String&quot;, # A region of the document represented as a JSON string. See anchor documentation for details on how to define and interpret anchor properties.
    &quot;author&quot;: { # Information about a Drive user. # The author of the comment. The author&#x27;s email address and permission ID will not be populated.
      &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
      &quot;emailAddress&quot;: &quot;A String&quot;, # The email address of the user. This may not be present in certain contexts if the user has not made their email address visible to the requester.
      &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
      &quot;me&quot;: True or False, # Whether this user is the requesting user.
      &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
      &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
    },
    &quot;content&quot;: &quot;A String&quot;, # The plain text content of the comment. This field is used for setting the content, while htmlContent should be displayed.
    &quot;createdTime&quot;: &quot;A String&quot;, # The time at which the comment was created (RFC 3339 date-time).
    &quot;deleted&quot;: True or False, # Whether the comment has been deleted. A deleted comment has no content.
    &quot;htmlContent&quot;: &quot;A String&quot;, # The content of the comment with HTML formatting.
    &quot;id&quot;: &quot;A String&quot;, # The ID of the comment.
    &quot;kind&quot;: &quot;drive#comment&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#comment&quot;.
    &quot;modifiedTime&quot;: &quot;A String&quot;, # The last time the comment or any of its replies was modified (RFC 3339 date-time).
    &quot;quotedFileContent&quot;: { # The file content to which the comment refers, typically within the anchor region. For a text file, for example, this would be the text at the location of the comment.
      &quot;mimeType&quot;: &quot;A String&quot;, # The MIME type of the quoted content.
      &quot;value&quot;: &quot;A String&quot;, # The quoted content itself. This is interpreted as plain text if set through the API.
    },
    &quot;replies&quot;: [ # The full list of replies to the comment in chronological order.
      { # A reply to a comment on a file.
        &quot;action&quot;: &quot;A String&quot;, # The action the reply performed to the parent comment. Valid values are:
            # - resolve
            # - reopen
        &quot;author&quot;: { # Information about a Drive user. # The author of the reply. The author&#x27;s email address and permission ID will not be populated.
          &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
          &quot;emailAddress&quot;: &quot;A String&quot;, # The email address of the user. This may not be present in certain contexts if the user has not made their email address visible to the requester.
          &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
          &quot;me&quot;: True or False, # Whether this user is the requesting user.
          &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
          &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
        },
        &quot;content&quot;: &quot;A String&quot;, # The plain text content of the reply. This field is used for setting the content, while htmlContent should be displayed. This is required on creates if no action is specified.
        &quot;createdTime&quot;: &quot;A String&quot;, # The time at which the reply was created (RFC 3339 date-time).
        &quot;deleted&quot;: True or False, # Whether the reply has been deleted. A deleted reply has no content.
        &quot;htmlContent&quot;: &quot;A String&quot;, # The content of the reply with HTML formatting.
        &quot;id&quot;: &quot;A String&quot;, # The ID of the reply.
        &quot;kind&quot;: &quot;drive#reply&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#reply&quot;.
        &quot;modifiedTime&quot;: &quot;A String&quot;, # The last time the reply was modified (RFC 3339 date-time).
      },
    ],
    &quot;resolved&quot;: True or False, # Whether the comment has been resolved by one of its replies.
  }


Returns:
  An object of the form:

    { # A comment on a file.
      &quot;anchor&quot;: &quot;A String&quot;, # A region of the document represented as a JSON string. See anchor documentation for details on how to define and interpret anchor properties.
      &quot;author&quot;: { # Information about a Drive user. # The author of the comment. The author&#x27;s email address and permission ID will not be populated.
        &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
        &quot;emailAddress&quot;: &quot;A String&quot;, # The email address of the user. This may not be present in certain contexts if the user has not made their email address visible to the requester.
        &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
        &quot;me&quot;: True or False, # Whether this user is the requesting user.
        &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
        &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
      },
      &quot;content&quot;: &quot;A String&quot;, # The plain text content of the comment. This field is used for setting the content, while htmlContent should be displayed.
      &quot;createdTime&quot;: &quot;A String&quot;, # The time at which the comment was created (RFC 3339 date-time).
      &quot;deleted&quot;: True or False, # Whether the comment has been deleted. A deleted comment has no content.
      &quot;htmlContent&quot;: &quot;A String&quot;, # The content of the comment with HTML formatting.
      &quot;id&quot;: &quot;A String&quot;, # The ID of the comment.
      &quot;kind&quot;: &quot;drive#comment&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#comment&quot;.
      &quot;modifiedTime&quot;: &quot;A String&quot;, # The last time the comment or any of its replies was modified (RFC 3339 date-time).
      &quot;quotedFileContent&quot;: { # The file content to which the comment refers, typically within the anchor region. For a text file, for example, this would be the text at the location of the comment.
        &quot;mimeType&quot;: &quot;A String&quot;, # The MIME type of the quoted content.
        &quot;value&quot;: &quot;A String&quot;, # The quoted content itself. This is interpreted as plain text if set through the API.
      },
      &quot;replies&quot;: [ # The full list of replies to the comment in chronological order.
        { # A reply to a comment on a file.
          &quot;action&quot;: &quot;A String&quot;, # The action the reply performed to the parent comment. Valid values are:
              # - resolve
              # - reopen
          &quot;author&quot;: { # Information about a Drive user. # The author of the reply. The author&#x27;s email address and permission ID will not be populated.
            &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
            &quot;emailAddress&quot;: &quot;A String&quot;, # The email address of the user. This may not be present in certain contexts if the user has not made their email address visible to the requester.
            &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
            &quot;me&quot;: True or False, # Whether this user is the requesting user.
            &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
            &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
          },
          &quot;content&quot;: &quot;A String&quot;, # The plain text content of the reply. This field is used for setting the content, while htmlContent should be displayed. This is required on creates if no action is specified.
          &quot;createdTime&quot;: &quot;A String&quot;, # The time at which the reply was created (RFC 3339 date-time).
          &quot;deleted&quot;: True or False, # Whether the reply has been deleted. A deleted reply has no content.
          &quot;htmlContent&quot;: &quot;A String&quot;, # The content of the reply with HTML formatting.
          &quot;id&quot;: &quot;A String&quot;, # The ID of the reply.
          &quot;kind&quot;: &quot;drive#reply&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#reply&quot;.
          &quot;modifiedTime&quot;: &quot;A String&quot;, # The last time the reply was modified (RFC 3339 date-time).
        },
      ],
      &quot;resolved&quot;: True or False, # Whether the comment has been resolved by one of its replies.
    }</pre>
</div>

<div class="method">
    <code class="details" id="delete">delete(fileId, commentId)</code>
  <pre>Deletes a comment.

Args:
  fileId: string, The ID of the file. (required)
  commentId: string, The ID of the comment. (required)
</pre>
</div>

<div class="method">
    <code class="details" id="get">get(fileId, commentId, includeDeleted=None)</code>
  <pre>Gets a comment by ID.

Args:
  fileId: string, The ID of the file. (required)
  commentId: string, The ID of the comment. (required)
  includeDeleted: boolean, Whether to return deleted comments. Deleted comments will not include their original content.

Returns:
  An object of the form:

    { # A comment on a file.
      &quot;anchor&quot;: &quot;A String&quot;, # A region of the document represented as a JSON string. See anchor documentation for details on how to define and interpret anchor properties.
      &quot;author&quot;: { # Information about a Drive user. # The author of the comment. The author&#x27;s email address and permission ID will not be populated.
        &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
        &quot;emailAddress&quot;: &quot;A String&quot;, # The email address of the user. This may not be present in certain contexts if the user has not made their email address visible to the requester.
        &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
        &quot;me&quot;: True or False, # Whether this user is the requesting user.
        &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
        &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
      },
      &quot;content&quot;: &quot;A String&quot;, # The plain text content of the comment. This field is used for setting the content, while htmlContent should be displayed.
      &quot;createdTime&quot;: &quot;A String&quot;, # The time at which the comment was created (RFC 3339 date-time).
      &quot;deleted&quot;: True or False, # Whether the comment has been deleted. A deleted comment has no content.
      &quot;htmlContent&quot;: &quot;A String&quot;, # The content of the comment with HTML formatting.
      &quot;id&quot;: &quot;A String&quot;, # The ID of the comment.
      &quot;kind&quot;: &quot;drive#comment&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#comment&quot;.
      &quot;modifiedTime&quot;: &quot;A String&quot;, # The last time the comment or any of its replies was modified (RFC 3339 date-time).
      &quot;quotedFileContent&quot;: { # The file content to which the comment refers, typically within the anchor region. For a text file, for example, this would be the text at the location of the comment.
        &quot;mimeType&quot;: &quot;A String&quot;, # The MIME type of the quoted content.
        &quot;value&quot;: &quot;A String&quot;, # The quoted content itself. This is interpreted as plain text if set through the API.
      },
      &quot;replies&quot;: [ # The full list of replies to the comment in chronological order.
        { # A reply to a comment on a file.
          &quot;action&quot;: &quot;A String&quot;, # The action the reply performed to the parent comment. Valid values are:
              # - resolve
              # - reopen
          &quot;author&quot;: { # Information about a Drive user. # The author of the reply. The author&#x27;s email address and permission ID will not be populated.
            &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
            &quot;emailAddress&quot;: &quot;A String&quot;, # The email address of the user. This may not be present in certain contexts if the user has not made their email address visible to the requester.
            &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
            &quot;me&quot;: True or False, # Whether this user is the requesting user.
            &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
            &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
          },
          &quot;content&quot;: &quot;A String&quot;, # The plain text content of the reply. This field is used for setting the content, while htmlContent should be displayed. This is required on creates if no action is specified.
          &quot;createdTime&quot;: &quot;A String&quot;, # The time at which the reply was created (RFC 3339 date-time).
          &quot;deleted&quot;: True or False, # Whether the reply has been deleted. A deleted reply has no content.
          &quot;htmlContent&quot;: &quot;A String&quot;, # The content of the reply with HTML formatting.
          &quot;id&quot;: &quot;A String&quot;, # The ID of the reply.
          &quot;kind&quot;: &quot;drive#reply&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#reply&quot;.
          &quot;modifiedTime&quot;: &quot;A String&quot;, # The last time the reply was modified (RFC 3339 date-time).
        },
      ],
      &quot;resolved&quot;: True or False, # Whether the comment has been resolved by one of its replies.
    }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(fileId, includeDeleted=None, pageSize=None, pageToken=None, startModifiedTime=None)</code>
  <pre>Lists a file&#x27;s comments.

Args:
  fileId: string, The ID of the file. (required)
  includeDeleted: boolean, Whether to include deleted comments. Deleted comments will not include their original content.
  pageSize: integer, The maximum number of comments to return per page.
  pageToken: string, The token for continuing a previous list request on the next page. This should be set to the value of &#x27;nextPageToken&#x27; from the previous response.
  startModifiedTime: string, The minimum value of &#x27;modifiedTime&#x27; for the result comments (RFC 3339 date-time).

Returns:
  An object of the form:

    { # A list of comments on a file.
    &quot;comments&quot;: [ # The list of comments. If nextPageToken is populated, then this list may be incomplete and an additional page of results should be fetched.
      { # A comment on a file.
          &quot;anchor&quot;: &quot;A String&quot;, # A region of the document represented as a JSON string. See anchor documentation for details on how to define and interpret anchor properties.
          &quot;author&quot;: { # Information about a Drive user. # The author of the comment. The author&#x27;s email address and permission ID will not be populated.
            &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
            &quot;emailAddress&quot;: &quot;A String&quot;, # The email address of the user. This may not be present in certain contexts if the user has not made their email address visible to the requester.
            &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
            &quot;me&quot;: True or False, # Whether this user is the requesting user.
            &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
            &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
          },
          &quot;content&quot;: &quot;A String&quot;, # The plain text content of the comment. This field is used for setting the content, while htmlContent should be displayed.
          &quot;createdTime&quot;: &quot;A String&quot;, # The time at which the comment was created (RFC 3339 date-time).
          &quot;deleted&quot;: True or False, # Whether the comment has been deleted. A deleted comment has no content.
          &quot;htmlContent&quot;: &quot;A String&quot;, # The content of the comment with HTML formatting.
          &quot;id&quot;: &quot;A String&quot;, # The ID of the comment.
          &quot;kind&quot;: &quot;drive#comment&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#comment&quot;.
          &quot;modifiedTime&quot;: &quot;A String&quot;, # The last time the comment or any of its replies was modified (RFC 3339 date-time).
          &quot;quotedFileContent&quot;: { # The file content to which the comment refers, typically within the anchor region. For a text file, for example, this would be the text at the location of the comment.
            &quot;mimeType&quot;: &quot;A String&quot;, # The MIME type of the quoted content.
            &quot;value&quot;: &quot;A String&quot;, # The quoted content itself. This is interpreted as plain text if set through the API.
          },
          &quot;replies&quot;: [ # The full list of replies to the comment in chronological order.
            { # A reply to a comment on a file.
              &quot;action&quot;: &quot;A String&quot;, # The action the reply performed to the parent comment. Valid values are:
                  # - resolve
                  # - reopen
              &quot;author&quot;: { # Information about a Drive user. # The author of the reply. The author&#x27;s email address and permission ID will not be populated.
                &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
                &quot;emailAddress&quot;: &quot;A String&quot;, # The email address of the user. This may not be present in certain contexts if the user has not made their email address visible to the requester.
                &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
                &quot;me&quot;: True or False, # Whether this user is the requesting user.
                &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
                &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
              },
              &quot;content&quot;: &quot;A String&quot;, # The plain text content of the reply. This field is used for setting the content, while htmlContent should be displayed. This is required on creates if no action is specified.
              &quot;createdTime&quot;: &quot;A String&quot;, # The time at which the reply was created (RFC 3339 date-time).
              &quot;deleted&quot;: True or False, # Whether the reply has been deleted. A deleted reply has no content.
              &quot;htmlContent&quot;: &quot;A String&quot;, # The content of the reply with HTML formatting.
              &quot;id&quot;: &quot;A String&quot;, # The ID of the reply.
              &quot;kind&quot;: &quot;drive#reply&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#reply&quot;.
              &quot;modifiedTime&quot;: &quot;A String&quot;, # The last time the reply was modified (RFC 3339 date-time).
            },
          ],
          &quot;resolved&quot;: True or False, # Whether the comment has been resolved by one of its replies.
        },
    ],
    &quot;kind&quot;: &quot;drive#commentList&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#commentList&quot;.
    &quot;nextPageToken&quot;: &quot;A String&quot;, # The page token for the next page of comments. This will be absent if the end of the comments list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results.
  }</pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
  <pre>Retrieves the next page of results.

Args:
  previous_request: The request for the previous page. (required)
  previous_response: The response from the request for the previous page. (required)

Returns:
  A request object that you can call &#x27;execute()&#x27; on to request the next
  page. Returns None if there are no more items in the collection.
    </pre>
</div>

<div class="method">
    <code class="details" id="update">update(fileId, commentId, body=None)</code>
  <pre>Updates a comment with patch semantics.

Args:
  fileId: string, The ID of the file. (required)
  commentId: string, The ID of the comment. (required)
  body: object, The request body.
    The object takes the form of:

{ # A comment on a file.
    &quot;anchor&quot;: &quot;A String&quot;, # A region of the document represented as a JSON string. See anchor documentation for details on how to define and interpret anchor properties.
    &quot;author&quot;: { # Information about a Drive user. # The author of the comment. The author&#x27;s email address and permission ID will not be populated.
      &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
      &quot;emailAddress&quot;: &quot;A String&quot;, # The email address of the user. This may not be present in certain contexts if the user has not made their email address visible to the requester.
      &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
      &quot;me&quot;: True or False, # Whether this user is the requesting user.
      &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
      &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
    },
    &quot;content&quot;: &quot;A String&quot;, # The plain text content of the comment. This field is used for setting the content, while htmlContent should be displayed.
    &quot;createdTime&quot;: &quot;A String&quot;, # The time at which the comment was created (RFC 3339 date-time).
    &quot;deleted&quot;: True or False, # Whether the comment has been deleted. A deleted comment has no content.
    &quot;htmlContent&quot;: &quot;A String&quot;, # The content of the comment with HTML formatting.
    &quot;id&quot;: &quot;A String&quot;, # The ID of the comment.
    &quot;kind&quot;: &quot;drive#comment&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#comment&quot;.
    &quot;modifiedTime&quot;: &quot;A String&quot;, # The last time the comment or any of its replies was modified (RFC 3339 date-time).
    &quot;quotedFileContent&quot;: { # The file content to which the comment refers, typically within the anchor region. For a text file, for example, this would be the text at the location of the comment.
      &quot;mimeType&quot;: &quot;A String&quot;, # The MIME type of the quoted content.
      &quot;value&quot;: &quot;A String&quot;, # The quoted content itself. This is interpreted as plain text if set through the API.
    },
    &quot;replies&quot;: [ # The full list of replies to the comment in chronological order.
      { # A reply to a comment on a file.
        &quot;action&quot;: &quot;A String&quot;, # The action the reply performed to the parent comment. Valid values are:
            # - resolve
            # - reopen
        &quot;author&quot;: { # Information about a Drive user. # The author of the reply. The author&#x27;s email address and permission ID will not be populated.
          &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
          &quot;emailAddress&quot;: &quot;A String&quot;, # The email address of the user. This may not be present in certain contexts if the user has not made their email address visible to the requester.
          &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
          &quot;me&quot;: True or False, # Whether this user is the requesting user.
          &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
          &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
        },
        &quot;content&quot;: &quot;A String&quot;, # The plain text content of the reply. This field is used for setting the content, while htmlContent should be displayed. This is required on creates if no action is specified.
        &quot;createdTime&quot;: &quot;A String&quot;, # The time at which the reply was created (RFC 3339 date-time).
        &quot;deleted&quot;: True or False, # Whether the reply has been deleted. A deleted reply has no content.
        &quot;htmlContent&quot;: &quot;A String&quot;, # The content of the reply with HTML formatting.
        &quot;id&quot;: &quot;A String&quot;, # The ID of the reply.
        &quot;kind&quot;: &quot;drive#reply&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#reply&quot;.
        &quot;modifiedTime&quot;: &quot;A String&quot;, # The last time the reply was modified (RFC 3339 date-time).
      },
    ],
    &quot;resolved&quot;: True or False, # Whether the comment has been resolved by one of its replies.
  }


Returns:
  An object of the form:

    { # A comment on a file.
      &quot;anchor&quot;: &quot;A String&quot;, # A region of the document represented as a JSON string. See anchor documentation for details on how to define and interpret anchor properties.
      &quot;author&quot;: { # Information about a Drive user. # The author of the comment. The author&#x27;s email address and permission ID will not be populated.
        &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
        &quot;emailAddress&quot;: &quot;A String&quot;, # The email address of the user. This may not be present in certain contexts if the user has not made their email address visible to the requester.
        &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
        &quot;me&quot;: True or False, # Whether this user is the requesting user.
        &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
        &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
      },
      &quot;content&quot;: &quot;A String&quot;, # The plain text content of the comment. This field is used for setting the content, while htmlContent should be displayed.
      &quot;createdTime&quot;: &quot;A String&quot;, # The time at which the comment was created (RFC 3339 date-time).
      &quot;deleted&quot;: True or False, # Whether the comment has been deleted. A deleted comment has no content.
      &quot;htmlContent&quot;: &quot;A String&quot;, # The content of the comment with HTML formatting.
      &quot;id&quot;: &quot;A String&quot;, # The ID of the comment.
      &quot;kind&quot;: &quot;drive#comment&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#comment&quot;.
      &quot;modifiedTime&quot;: &quot;A String&quot;, # The last time the comment or any of its replies was modified (RFC 3339 date-time).
      &quot;quotedFileContent&quot;: { # The file content to which the comment refers, typically within the anchor region. For a text file, for example, this would be the text at the location of the comment.
        &quot;mimeType&quot;: &quot;A String&quot;, # The MIME type of the quoted content.
        &quot;value&quot;: &quot;A String&quot;, # The quoted content itself. This is interpreted as plain text if set through the API.
      },
      &quot;replies&quot;: [ # The full list of replies to the comment in chronological order.
        { # A reply to a comment on a file.
          &quot;action&quot;: &quot;A String&quot;, # The action the reply performed to the parent comment. Valid values are:
              # - resolve
              # - reopen
          &quot;author&quot;: { # Information about a Drive user. # The author of the reply. The author&#x27;s email address and permission ID will not be populated.
            &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
            &quot;emailAddress&quot;: &quot;A String&quot;, # The email address of the user. This may not be present in certain contexts if the user has not made their email address visible to the requester.
            &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
            &quot;me&quot;: True or False, # Whether this user is the requesting user.
            &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
            &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
          },
          &quot;content&quot;: &quot;A String&quot;, # The plain text content of the reply. This field is used for setting the content, while htmlContent should be displayed. This is required on creates if no action is specified.
          &quot;createdTime&quot;: &quot;A String&quot;, # The time at which the reply was created (RFC 3339 date-time).
          &quot;deleted&quot;: True or False, # Whether the reply has been deleted. A deleted reply has no content.
          &quot;htmlContent&quot;: &quot;A String&quot;, # The content of the reply with HTML formatting.
          &quot;id&quot;: &quot;A String&quot;, # The ID of the reply.
          &quot;kind&quot;: &quot;drive#reply&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#reply&quot;.
          &quot;modifiedTime&quot;: &quot;A String&quot;, # The last time the reply was modified (RFC 3339 date-time).
        },
      ],
      &quot;resolved&quot;: True or False, # Whether the comment has been resolved by one of its replies.
    }</pre>
</div>

</body></html>