<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="youtube_v3.html">YouTube Data API</a> . <a href="youtube_v3.liveChatBans.html">liveChatBans</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#delete">delete(id)</a></code></p>
<p class="firstline">Removes a chat ban.</p>
<p class="toc_element">
  <code><a href="#insert">insert(part, body)</a></code></p>
<p class="firstline">Adds a new ban to the chat.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="delete">delete(id)</code>
  <pre>Removes a chat ban.

Args:
  id: string, The id parameter identifies the chat ban to remove. The value uniquely identifies both the ban and the chat. (required)
</pre>
</div>

<div class="method">
    <code class="details" id="insert">insert(part, body)</code>
  <pre>Adds a new ban to the chat.

Args:
  part: string, The part parameter serves two purposes in this operation. It identifies the properties that the write operation will set as well as the properties that the API response returns. Set the parameter value to snippet. (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # A liveChatBan resource represents a ban for a YouTube live chat.
    "snippet": { # The snippet object contains basic details about the ban.
      "banDurationSeconds": "A String", # The duration of a ban, only filled if the ban has type TEMPORARY.
      "liveChatId": "A String", # The chat this ban is pertinent to.
      "bannedUserDetails": {
        "channelId": "A String", # The YouTube channel ID.
        "displayName": "A String", # The channel's display name.
        "profileImageUrl": "A String", # The channels's avatar URL.
        "channelUrl": "A String", # The channel's URL.
      },
      "type": "A String", # The type of ban.
    },
    "kind": "youtube#liveChatBan", # Identifies what kind of resource this is. Value: the fixed string "youtube#liveChatBan".
    "etag": "A String", # Etag of this resource.
    "id": "A String", # The ID that YouTube assigns to uniquely identify the ban.
  }


Returns:
  An object of the form:

    { # A liveChatBan resource represents a ban for a YouTube live chat.
      "snippet": { # The snippet object contains basic details about the ban.
        "banDurationSeconds": "A String", # The duration of a ban, only filled if the ban has type TEMPORARY.
        "liveChatId": "A String", # The chat this ban is pertinent to.
        "bannedUserDetails": {
          "channelId": "A String", # The YouTube channel ID.
          "displayName": "A String", # The channel's display name.
          "profileImageUrl": "A String", # The channels's avatar URL.
          "channelUrl": "A String", # The channel's URL.
        },
        "type": "A String", # The type of ban.
      },
      "kind": "youtube#liveChatBan", # Identifies what kind of resource this is. Value: the fixed string "youtube#liveChatBan".
      "etag": "A String", # Etag of this resource.
      "id": "A String", # The ID that YouTube assigns to uniquely identify the ban.
    }</pre>
</div>

</body></html>