<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="alertcenter_v1beta1.html">Google Workspace Alert Center API</a> . <a href="alertcenter_v1beta1.alerts.html">alerts</a> . <a href="alertcenter_v1beta1.alerts.feedback.html">feedback</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(alertId, body=None, customerId=None, x__xgafv=None)</a></code></p>
<p class="firstline">Creates new feedback for an alert. Attempting to create a feedback for a non-existent alert returns `NOT_FOUND` error. Attempting to create a feedback for an alert that is marked for deletion returns `FAILED_PRECONDITION' error.</p>
<p class="toc_element">
  <code><a href="#list">list(alertId, customerId=None, filter=None, x__xgafv=None)</a></code></p>
<p class="firstline">Lists all the feedback for an alert. Attempting to list feedbacks for a non-existent alert returns `NOT_FOUND` error.</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(alertId, body=None, customerId=None, x__xgafv=None)</code>
  <pre>Creates new feedback for an alert. Attempting to create a feedback for a non-existent alert returns `NOT_FOUND` error. Attempting to create a feedback for an alert that is marked for deletion returns `FAILED_PRECONDITION&#x27; error.

Args:
  alertId: string, Required. The identifier of the alert this feedback belongs to. (required)
  body: object, The request body.
    The object takes the form of:

{ # A customer feedback about an alert.
  &quot;alertId&quot;: &quot;A String&quot;, # Output only. The alert identifier.
  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time this feedback was created.
  &quot;customerId&quot;: &quot;A String&quot;, # Output only. The unique identifier of the Google account of the customer.
  &quot;email&quot;: &quot;A String&quot;, # Output only. The email of the user that provided the feedback.
  &quot;feedbackId&quot;: &quot;A String&quot;, # Output only. The unique identifier for the feedback.
  &quot;type&quot;: &quot;A String&quot;, # Required. The type of the feedback.
}

  customerId: string, Optional. The unique identifier of the Google Workspace organization account of the customer the alert is associated with. Inferred from the caller identity if not provided.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A customer feedback about an alert.
  &quot;alertId&quot;: &quot;A String&quot;, # Output only. The alert identifier.
  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time this feedback was created.
  &quot;customerId&quot;: &quot;A String&quot;, # Output only. The unique identifier of the Google account of the customer.
  &quot;email&quot;: &quot;A String&quot;, # Output only. The email of the user that provided the feedback.
  &quot;feedbackId&quot;: &quot;A String&quot;, # Output only. The unique identifier for the feedback.
  &quot;type&quot;: &quot;A String&quot;, # Required. The type of the feedback.
}</pre>
</div>

<div class="method">
    <code class="details" id="list">list(alertId, customerId=None, filter=None, x__xgafv=None)</code>
  <pre>Lists all the feedback for an alert. Attempting to list feedbacks for a non-existent alert returns `NOT_FOUND` error.

Args:
  alertId: string, Required. The alert identifier. The &quot;-&quot; wildcard could be used to represent all alerts. (required)
  customerId: string, Optional. The unique identifier of the Google Workspace organization account of the customer the alert feedback are associated with. Inferred from the caller identity if not provided.
  filter: string, Optional. A query string for filtering alert feedback results. For more details, see [Query filters](/admin-sdk/alertcenter/guides/query-filters) and [Supported query filter fields](/admin-sdk/alertcenter/reference/filter-fields#alerts.feedback.list).
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response message for an alert feedback listing request.
  &quot;feedback&quot;: [ # The list of alert feedback. Feedback entries for each alert are ordered by creation time descending.
    { # A customer feedback about an alert.
      &quot;alertId&quot;: &quot;A String&quot;, # Output only. The alert identifier.
      &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time this feedback was created.
      &quot;customerId&quot;: &quot;A String&quot;, # Output only. The unique identifier of the Google account of the customer.
      &quot;email&quot;: &quot;A String&quot;, # Output only. The email of the user that provided the feedback.
      &quot;feedbackId&quot;: &quot;A String&quot;, # Output only. The unique identifier for the feedback.
      &quot;type&quot;: &quot;A String&quot;, # Required. The type of the feedback.
    },
  ],
}</pre>
</div>

</body></html>