<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="blogger_v3.html">Blogger API</a> . <a href="blogger_v3.posts.html">posts</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#delete">delete(blogId, postId)</a></code></p>
<p class="firstline">Delete a post by id.</p>
<p class="toc_element">
  <code><a href="#get">get(blogId, postId, maxComments=None)</a></code></p>
<p class="firstline">Get a post by id.</p>
<p class="toc_element">
  <code><a href="#getByPath">getByPath(blogId, path, maxComments=None)</a></code></p>
<p class="firstline">Retrieve a Post by Path.</p>
<p class="toc_element">
  <code><a href="#insert">insert(blogId, body)</a></code></p>
<p class="firstline">Add a post.</p>
<p class="toc_element">
  <code><a href="#list">list(blogId, startDate=None, endDate=None, pageToken=None, labels=None, maxResults=None, fetchBodies=None)</a></code></p>
<p class="firstline">Retrieves a list of posts, possibly filtered.</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="#patch">patch(blogId, postId, body)</a></code></p>
<p class="firstline">Update a post. This method supports patch semantics.</p>
<p class="toc_element">
  <code><a href="#search">search(blogId, q)</a></code></p>
<p class="firstline">Search for a post.</p>
<p class="toc_element">
  <code><a href="#update">update(blogId, postId, body)</a></code></p>
<p class="firstline">Update a post.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="delete">delete(blogId, postId)</code>
  <pre>Delete a post by id.

Args:
  blogId: string, The Id of the Blog. (required)
  postId: string, The ID of the Post. (required)
</pre>
</div>

<div class="method">
    <code class="details" id="get">get(blogId, postId, maxComments=None)</code>
  <pre>Get a post by id.

Args:
  blogId: string, ID of the blog to fetch the post from. (required)
  postId: string, The ID of the post (required)
  maxComments: integer, Maximum number of comments to pull back on a post.

Returns:
  An object of the form:

    {
    "content": "A String", # The content of the Post. May contain HTML markup.
    "kind": "blogger#post", # The kind of this entity. Always blogger#post
    "author": { # The author of this Post.
      "url": "A String", # The URL of the Post creator's Profile page.
      "image": { # The Post author's avatar.
        "url": "A String", # The Post author's avatar URL.
      },
      "displayName": "A String", # The display name.
      "id": "A String", # The identifier of the Post creator.
    },
    "replies": { # The container of comments on this Post.
      "totalItems": "A String", # The count of comments on this post.
      "items": [ # The List of Comments for this Post.
        {
          "content": "A String", # The actual content of the comment. May include HTML markup.
          "kind": "blogger#comment", # The kind of this entry. Always blogger#comment
          "inReplyTo": { # Data about the comment this is in reply to.
            "id": "A String", # The identified of the parent of this comment.
          },
          "author": { # The author of this Comment.
            "url": "A String", # The URL of the Comment creator's Profile page.
            "image": { # The comment creator's avatar.
              "url": "A String", # The comment creator's avatar URL.
            },
            "displayName": "A String", # The display name.
            "id": "A String", # The identifier of the Comment creator.
          },
          "updated": "A String", # RFC 3339 date-time when this comment was last updated.
          "blog": { # Data about the blog containing this comment.
            "id": "A String", # The identifier of the blog containing this comment.
          },
          "published": "A String", # RFC 3339 date-time when this comment was published.
          "post": { # Data about the post containing this comment.
            "id": "A String", # The identifier of the post containing this comment.
          },
          "id": "A String", # The identifier for this resource.
          "selfLink": "A String", # The API REST URL to fetch this resource from.
        },
      ],
      "selfLink": "A String", # The URL of the comments on this post.
    },
    "labels": [ # The list of labels this Post was tagged with.
      "A String",
    ],
    "customMetaData": "A String", # The JSON meta-data for the Post.
    "updated": "A String", # RFC 3339 date-time when this Post was last updated.
    "blog": { # Data about the blog containing this Post.
      "id": "A String", # The identifier of the Blog that contains this Post.
    },
    "url": "A String", # The URL where this Post is displayed.
    "location": { # The location for geotagged posts.
      "lat": 3.14, # Location's latitude.
      "lng": 3.14, # Location's longitude.
      "span": "A String", # Location's viewport span. Can be used when rendering a map preview.
      "name": "A String", # Location name.
    },
    "published": "A String", # RFC 3339 date-time when this Post was published.
    "title": "A String", # The title of the Post.
    "id": "A String", # The identifier of this Post.
    "selfLink": "A String", # The API REST URL to fetch this resource from.
  }</pre>
</div>

<div class="method">
    <code class="details" id="getByPath">getByPath(blogId, path, maxComments=None)</code>
  <pre>Retrieve a Post by Path.

Args:
  blogId: string, ID of the blog to fetch the post from. (required)
  path: string, Path of the Post to retrieve. (required)
  maxComments: integer, Maximum number of comments to pull back on a post.

Returns:
  An object of the form:

    {
    "content": "A String", # The content of the Post. May contain HTML markup.
    "kind": "blogger#post", # The kind of this entity. Always blogger#post
    "author": { # The author of this Post.
      "url": "A String", # The URL of the Post creator's Profile page.
      "image": { # The Post author's avatar.
        "url": "A String", # The Post author's avatar URL.
      },
      "displayName": "A String", # The display name.
      "id": "A String", # The identifier of the Post creator.
    },
    "replies": { # The container of comments on this Post.
      "totalItems": "A String", # The count of comments on this post.
      "items": [ # The List of Comments for this Post.
        {
          "content": "A String", # The actual content of the comment. May include HTML markup.
          "kind": "blogger#comment", # The kind of this entry. Always blogger#comment
          "inReplyTo": { # Data about the comment this is in reply to.
            "id": "A String", # The identified of the parent of this comment.
          },
          "author": { # The author of this Comment.
            "url": "A String", # The URL of the Comment creator's Profile page.
            "image": { # The comment creator's avatar.
              "url": "A String", # The comment creator's avatar URL.
            },
            "displayName": "A String", # The display name.
            "id": "A String", # The identifier of the Comment creator.
          },
          "updated": "A String", # RFC 3339 date-time when this comment was last updated.
          "blog": { # Data about the blog containing this comment.
            "id": "A String", # The identifier of the blog containing this comment.
          },
          "published": "A String", # RFC 3339 date-time when this comment was published.
          "post": { # Data about the post containing this comment.
            "id": "A String", # The identifier of the post containing this comment.
          },
          "id": "A String", # The identifier for this resource.
          "selfLink": "A String", # The API REST URL to fetch this resource from.
        },
      ],
      "selfLink": "A String", # The URL of the comments on this post.
    },
    "labels": [ # The list of labels this Post was tagged with.
      "A String",
    ],
    "customMetaData": "A String", # The JSON meta-data for the Post.
    "updated": "A String", # RFC 3339 date-time when this Post was last updated.
    "blog": { # Data about the blog containing this Post.
      "id": "A String", # The identifier of the Blog that contains this Post.
    },
    "url": "A String", # The URL where this Post is displayed.
    "location": { # The location for geotagged posts.
      "lat": 3.14, # Location's latitude.
      "lng": 3.14, # Location's longitude.
      "span": "A String", # Location's viewport span. Can be used when rendering a map preview.
      "name": "A String", # Location name.
    },
    "published": "A String", # RFC 3339 date-time when this Post was published.
    "title": "A String", # The title of the Post.
    "id": "A String", # The identifier of this Post.
    "selfLink": "A String", # The API REST URL to fetch this resource from.
  }</pre>
</div>

<div class="method">
    <code class="details" id="insert">insert(blogId, body)</code>
  <pre>Add a post.

Args:
  blogId: string, ID of the blog to fetch the post from. (required)
  body: object, The request body. (required)
    The object takes the form of:

{
  "content": "A String", # The content of the Post. May contain HTML markup.
  "kind": "blogger#post", # The kind of this entity. Always blogger#post
  "author": { # The author of this Post.
    "url": "A String", # The URL of the Post creator's Profile page.
    "image": { # The Post author's avatar.
      "url": "A String", # The Post author's avatar URL.
    },
    "displayName": "A String", # The display name.
    "id": "A String", # The identifier of the Post creator.
  },
  "replies": { # The container of comments on this Post.
    "totalItems": "A String", # The count of comments on this post.
    "items": [ # The List of Comments for this Post.
      {
        "content": "A String", # The actual content of the comment. May include HTML markup.
        "kind": "blogger#comment", # The kind of this entry. Always blogger#comment
        "inReplyTo": { # Data about the comment this is in reply to.
          "id": "A String", # The identified of the parent of this comment.
        },
        "author": { # The author of this Comment.
          "url": "A String", # The URL of the Comment creator's Profile page.
          "image": { # The comment creator's avatar.
            "url": "A String", # The comment creator's avatar URL.
          },
          "displayName": "A String", # The display name.
          "id": "A String", # The identifier of the Comment creator.
        },
        "updated": "A String", # RFC 3339 date-time when this comment was last updated.
        "blog": { # Data about the blog containing this comment.
          "id": "A String", # The identifier of the blog containing this comment.
        },
        "published": "A String", # RFC 3339 date-time when this comment was published.
        "post": { # Data about the post containing this comment.
          "id": "A String", # The identifier of the post containing this comment.
        },
        "id": "A String", # The identifier for this resource.
        "selfLink": "A String", # The API REST URL to fetch this resource from.
      },
    ],
    "selfLink": "A String", # The URL of the comments on this post.
  },
  "labels": [ # The list of labels this Post was tagged with.
    "A String",
  ],
  "customMetaData": "A String", # The JSON meta-data for the Post.
  "updated": "A String", # RFC 3339 date-time when this Post was last updated.
  "blog": { # Data about the blog containing this Post.
    "id": "A String", # The identifier of the Blog that contains this Post.
  },
  "url": "A String", # The URL where this Post is displayed.
  "location": { # The location for geotagged posts.
    "lat": 3.14, # Location's latitude.
    "lng": 3.14, # Location's longitude.
    "span": "A String", # Location's viewport span. Can be used when rendering a map preview.
    "name": "A String", # Location name.
  },
  "published": "A String", # RFC 3339 date-time when this Post was published.
  "title": "A String", # The title of the Post.
  "id": "A String", # The identifier of this Post.
  "selfLink": "A String", # The API REST URL to fetch this resource from.
}


Returns:
  An object of the form:

    {
    "content": "A String", # The content of the Post. May contain HTML markup.
    "kind": "blogger#post", # The kind of this entity. Always blogger#post
    "author": { # The author of this Post.
      "url": "A String", # The URL of the Post creator's Profile page.
      "image": { # The Post author's avatar.
        "url": "A String", # The Post author's avatar URL.
      },
      "displayName": "A String", # The display name.
      "id": "A String", # The identifier of the Post creator.
    },
    "replies": { # The container of comments on this Post.
      "totalItems": "A String", # The count of comments on this post.
      "items": [ # The List of Comments for this Post.
        {
          "content": "A String", # The actual content of the comment. May include HTML markup.
          "kind": "blogger#comment", # The kind of this entry. Always blogger#comment
          "inReplyTo": { # Data about the comment this is in reply to.
            "id": "A String", # The identified of the parent of this comment.
          },
          "author": { # The author of this Comment.
            "url": "A String", # The URL of the Comment creator's Profile page.
            "image": { # The comment creator's avatar.
              "url": "A String", # The comment creator's avatar URL.
            },
            "displayName": "A String", # The display name.
            "id": "A String", # The identifier of the Comment creator.
          },
          "updated": "A String", # RFC 3339 date-time when this comment was last updated.
          "blog": { # Data about the blog containing this comment.
            "id": "A String", # The identifier of the blog containing this comment.
          },
          "published": "A String", # RFC 3339 date-time when this comment was published.
          "post": { # Data about the post containing this comment.
            "id": "A String", # The identifier of the post containing this comment.
          },
          "id": "A String", # The identifier for this resource.
          "selfLink": "A String", # The API REST URL to fetch this resource from.
        },
      ],
      "selfLink": "A String", # The URL of the comments on this post.
    },
    "labels": [ # The list of labels this Post was tagged with.
      "A String",
    ],
    "customMetaData": "A String", # The JSON meta-data for the Post.
    "updated": "A String", # RFC 3339 date-time when this Post was last updated.
    "blog": { # Data about the blog containing this Post.
      "id": "A String", # The identifier of the Blog that contains this Post.
    },
    "url": "A String", # The URL where this Post is displayed.
    "location": { # The location for geotagged posts.
      "lat": 3.14, # Location's latitude.
      "lng": 3.14, # Location's longitude.
      "span": "A String", # Location's viewport span. Can be used when rendering a map preview.
      "name": "A String", # Location name.
    },
    "published": "A String", # RFC 3339 date-time when this Post was published.
    "title": "A String", # The title of the Post.
    "id": "A String", # The identifier of this Post.
    "selfLink": "A String", # The API REST URL to fetch this resource from.
  }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(blogId, startDate=None, endDate=None, pageToken=None, labels=None, maxResults=None, fetchBodies=None)</code>
  <pre>Retrieves a list of posts, possibly filtered.

Args:
  blogId: string, ID of the blog to fetch posts from. (required)
  startDate: string, Earliest post date to fetch, a date-time with RFC 3339 formatting.
  endDate: string, Latest post date to fetch, a date-time with RFC 3339 formatting.
  pageToken: string, Continuation token if the request is paged.
  labels: string, Comma-separated list of labels to search for.
  maxResults: integer, Maximum number of posts to fetch.
  fetchBodies: boolean, Whether the body content of posts is included.

Returns:
  An object of the form:

    {
    "nextPageToken": "A String", # Pagination token to fetch the next page, if one exists.
    "items": [ # The list of Posts for this Blog.
      {
        "content": "A String", # The content of the Post. May contain HTML markup.
        "kind": "blogger#post", # The kind of this entity. Always blogger#post
        "author": { # The author of this Post.
          "url": "A String", # The URL of the Post creator's Profile page.
          "image": { # The Post author's avatar.
            "url": "A String", # The Post author's avatar URL.
          },
          "displayName": "A String", # The display name.
          "id": "A String", # The identifier of the Post creator.
        },
        "replies": { # The container of comments on this Post.
          "totalItems": "A String", # The count of comments on this post.
          "items": [ # The List of Comments for this Post.
            {
              "content": "A String", # The actual content of the comment. May include HTML markup.
              "kind": "blogger#comment", # The kind of this entry. Always blogger#comment
              "inReplyTo": { # Data about the comment this is in reply to.
                "id": "A String", # The identified of the parent of this comment.
              },
              "author": { # The author of this Comment.
                "url": "A String", # The URL of the Comment creator's Profile page.
                "image": { # The comment creator's avatar.
                  "url": "A String", # The comment creator's avatar URL.
                },
                "displayName": "A String", # The display name.
                "id": "A String", # The identifier of the Comment creator.
              },
              "updated": "A String", # RFC 3339 date-time when this comment was last updated.
              "blog": { # Data about the blog containing this comment.
                "id": "A String", # The identifier of the blog containing this comment.
              },
              "published": "A String", # RFC 3339 date-time when this comment was published.
              "post": { # Data about the post containing this comment.
                "id": "A String", # The identifier of the post containing this comment.
              },
              "id": "A String", # The identifier for this resource.
              "selfLink": "A String", # The API REST URL to fetch this resource from.
            },
          ],
          "selfLink": "A String", # The URL of the comments on this post.
        },
        "labels": [ # The list of labels this Post was tagged with.
          "A String",
        ],
        "customMetaData": "A String", # The JSON meta-data for the Post.
        "updated": "A String", # RFC 3339 date-time when this Post was last updated.
        "blog": { # Data about the blog containing this Post.
          "id": "A String", # The identifier of the Blog that contains this Post.
        },
        "url": "A String", # The URL where this Post is displayed.
        "location": { # The location for geotagged posts.
          "lat": 3.14, # Location's latitude.
          "lng": 3.14, # Location's longitude.
          "span": "A String", # Location's viewport span. Can be used when rendering a map preview.
          "name": "A String", # Location name.
        },
        "published": "A String", # RFC 3339 date-time when this Post was published.
        "title": "A String", # The title of the Post.
        "id": "A String", # The identifier of this Post.
        "selfLink": "A String", # The API REST URL to fetch this resource from.
      },
    ],
    "kind": "blogger#postList", # The kind of this entity. Always blogger#postList
    "prevPageToken": "A String", # Pagination token to fetch the previous page, if one exists.
  }</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 'execute()' 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="patch">patch(blogId, postId, body)</code>
  <pre>Update a post. This method supports patch semantics.

Args:
  blogId: string, The ID of the Blog. (required)
  postId: string, The ID of the Post. (required)
  body: object, The request body. (required)
    The object takes the form of:

{
  "content": "A String", # The content of the Post. May contain HTML markup.
  "kind": "blogger#post", # The kind of this entity. Always blogger#post
  "author": { # The author of this Post.
    "url": "A String", # The URL of the Post creator's Profile page.
    "image": { # The Post author's avatar.
      "url": "A String", # The Post author's avatar URL.
    },
    "displayName": "A String", # The display name.
    "id": "A String", # The identifier of the Post creator.
  },
  "replies": { # The container of comments on this Post.
    "totalItems": "A String", # The count of comments on this post.
    "items": [ # The List of Comments for this Post.
      {
        "content": "A String", # The actual content of the comment. May include HTML markup.
        "kind": "blogger#comment", # The kind of this entry. Always blogger#comment
        "inReplyTo": { # Data about the comment this is in reply to.
          "id": "A String", # The identified of the parent of this comment.
        },
        "author": { # The author of this Comment.
          "url": "A String", # The URL of the Comment creator's Profile page.
          "image": { # The comment creator's avatar.
            "url": "A String", # The comment creator's avatar URL.
          },
          "displayName": "A String", # The display name.
          "id": "A String", # The identifier of the Comment creator.
        },
        "updated": "A String", # RFC 3339 date-time when this comment was last updated.
        "blog": { # Data about the blog containing this comment.
          "id": "A String", # The identifier of the blog containing this comment.
        },
        "published": "A String", # RFC 3339 date-time when this comment was published.
        "post": { # Data about the post containing this comment.
          "id": "A String", # The identifier of the post containing this comment.
        },
        "id": "A String", # The identifier for this resource.
        "selfLink": "A String", # The API REST URL to fetch this resource from.
      },
    ],
    "selfLink": "A String", # The URL of the comments on this post.
  },
  "labels": [ # The list of labels this Post was tagged with.
    "A String",
  ],
  "customMetaData": "A String", # The JSON meta-data for the Post.
  "updated": "A String", # RFC 3339 date-time when this Post was last updated.
  "blog": { # Data about the blog containing this Post.
    "id": "A String", # The identifier of the Blog that contains this Post.
  },
  "url": "A String", # The URL where this Post is displayed.
  "location": { # The location for geotagged posts.
    "lat": 3.14, # Location's latitude.
    "lng": 3.14, # Location's longitude.
    "span": "A String", # Location's viewport span. Can be used when rendering a map preview.
    "name": "A String", # Location name.
  },
  "published": "A String", # RFC 3339 date-time when this Post was published.
  "title": "A String", # The title of the Post.
  "id": "A String", # The identifier of this Post.
  "selfLink": "A String", # The API REST URL to fetch this resource from.
}


Returns:
  An object of the form:

    {
    "content": "A String", # The content of the Post. May contain HTML markup.
    "kind": "blogger#post", # The kind of this entity. Always blogger#post
    "author": { # The author of this Post.
      "url": "A String", # The URL of the Post creator's Profile page.
      "image": { # The Post author's avatar.
        "url": "A String", # The Post author's avatar URL.
      },
      "displayName": "A String", # The display name.
      "id": "A String", # The identifier of the Post creator.
    },
    "replies": { # The container of comments on this Post.
      "totalItems": "A String", # The count of comments on this post.
      "items": [ # The List of Comments for this Post.
        {
          "content": "A String", # The actual content of the comment. May include HTML markup.
          "kind": "blogger#comment", # The kind of this entry. Always blogger#comment
          "inReplyTo": { # Data about the comment this is in reply to.
            "id": "A String", # The identified of the parent of this comment.
          },
          "author": { # The author of this Comment.
            "url": "A String", # The URL of the Comment creator's Profile page.
            "image": { # The comment creator's avatar.
              "url": "A String", # The comment creator's avatar URL.
            },
            "displayName": "A String", # The display name.
            "id": "A String", # The identifier of the Comment creator.
          },
          "updated": "A String", # RFC 3339 date-time when this comment was last updated.
          "blog": { # Data about the blog containing this comment.
            "id": "A String", # The identifier of the blog containing this comment.
          },
          "published": "A String", # RFC 3339 date-time when this comment was published.
          "post": { # Data about the post containing this comment.
            "id": "A String", # The identifier of the post containing this comment.
          },
          "id": "A String", # The identifier for this resource.
          "selfLink": "A String", # The API REST URL to fetch this resource from.
        },
      ],
      "selfLink": "A String", # The URL of the comments on this post.
    },
    "labels": [ # The list of labels this Post was tagged with.
      "A String",
    ],
    "customMetaData": "A String", # The JSON meta-data for the Post.
    "updated": "A String", # RFC 3339 date-time when this Post was last updated.
    "blog": { # Data about the blog containing this Post.
      "id": "A String", # The identifier of the Blog that contains this Post.
    },
    "url": "A String", # The URL where this Post is displayed.
    "location": { # The location for geotagged posts.
      "lat": 3.14, # Location's latitude.
      "lng": 3.14, # Location's longitude.
      "span": "A String", # Location's viewport span. Can be used when rendering a map preview.
      "name": "A String", # Location name.
    },
    "published": "A String", # RFC 3339 date-time when this Post was published.
    "title": "A String", # The title of the Post.
    "id": "A String", # The identifier of this Post.
    "selfLink": "A String", # The API REST URL to fetch this resource from.
  }</pre>
</div>

<div class="method">
    <code class="details" id="search">search(blogId, q)</code>
  <pre>Search for a post.

Args:
  blogId: string, ID of the blog to fetch the post from. (required)
  q: string, Query terms to search this blog for matching posts. (required)

Returns:
  An object of the form:

    {
    "nextPageToken": "A String", # Pagination token to fetch the next page, if one exists.
    "items": [ # The list of Posts for this Blog.
      {
        "content": "A String", # The content of the Post. May contain HTML markup.
        "kind": "blogger#post", # The kind of this entity. Always blogger#post
        "author": { # The author of this Post.
          "url": "A String", # The URL of the Post creator's Profile page.
          "image": { # The Post author's avatar.
            "url": "A String", # The Post author's avatar URL.
          },
          "displayName": "A String", # The display name.
          "id": "A String", # The identifier of the Post creator.
        },
        "replies": { # The container of comments on this Post.
          "totalItems": "A String", # The count of comments on this post.
          "items": [ # The List of Comments for this Post.
            {
              "content": "A String", # The actual content of the comment. May include HTML markup.
              "kind": "blogger#comment", # The kind of this entry. Always blogger#comment
              "inReplyTo": { # Data about the comment this is in reply to.
                "id": "A String", # The identified of the parent of this comment.
              },
              "author": { # The author of this Comment.
                "url": "A String", # The URL of the Comment creator's Profile page.
                "image": { # The comment creator's avatar.
                  "url": "A String", # The comment creator's avatar URL.
                },
                "displayName": "A String", # The display name.
                "id": "A String", # The identifier of the Comment creator.
              },
              "updated": "A String", # RFC 3339 date-time when this comment was last updated.
              "blog": { # Data about the blog containing this comment.
                "id": "A String", # The identifier of the blog containing this comment.
              },
              "published": "A String", # RFC 3339 date-time when this comment was published.
              "post": { # Data about the post containing this comment.
                "id": "A String", # The identifier of the post containing this comment.
              },
              "id": "A String", # The identifier for this resource.
              "selfLink": "A String", # The API REST URL to fetch this resource from.
            },
          ],
          "selfLink": "A String", # The URL of the comments on this post.
        },
        "labels": [ # The list of labels this Post was tagged with.
          "A String",
        ],
        "customMetaData": "A String", # The JSON meta-data for the Post.
        "updated": "A String", # RFC 3339 date-time when this Post was last updated.
        "blog": { # Data about the blog containing this Post.
          "id": "A String", # The identifier of the Blog that contains this Post.
        },
        "url": "A String", # The URL where this Post is displayed.
        "location": { # The location for geotagged posts.
          "lat": 3.14, # Location's latitude.
          "lng": 3.14, # Location's longitude.
          "span": "A String", # Location's viewport span. Can be used when rendering a map preview.
          "name": "A String", # Location name.
        },
        "published": "A String", # RFC 3339 date-time when this Post was published.
        "title": "A String", # The title of the Post.
        "id": "A String", # The identifier of this Post.
        "selfLink": "A String", # The API REST URL to fetch this resource from.
      },
    ],
    "kind": "blogger#postList", # The kind of this entity. Always blogger#postList
    "prevPageToken": "A String", # Pagination token to fetch the previous page, if one exists.
  }</pre>
</div>

<div class="method">
    <code class="details" id="update">update(blogId, postId, body)</code>
  <pre>Update a post.

Args:
  blogId: string, The ID of the Blog. (required)
  postId: string, The ID of the Post. (required)
  body: object, The request body. (required)
    The object takes the form of:

{
  "content": "A String", # The content of the Post. May contain HTML markup.
  "kind": "blogger#post", # The kind of this entity. Always blogger#post
  "author": { # The author of this Post.
    "url": "A String", # The URL of the Post creator's Profile page.
    "image": { # The Post author's avatar.
      "url": "A String", # The Post author's avatar URL.
    },
    "displayName": "A String", # The display name.
    "id": "A String", # The identifier of the Post creator.
  },
  "replies": { # The container of comments on this Post.
    "totalItems": "A String", # The count of comments on this post.
    "items": [ # The List of Comments for this Post.
      {
        "content": "A String", # The actual content of the comment. May include HTML markup.
        "kind": "blogger#comment", # The kind of this entry. Always blogger#comment
        "inReplyTo": { # Data about the comment this is in reply to.
          "id": "A String", # The identified of the parent of this comment.
        },
        "author": { # The author of this Comment.
          "url": "A String", # The URL of the Comment creator's Profile page.
          "image": { # The comment creator's avatar.
            "url": "A String", # The comment creator's avatar URL.
          },
          "displayName": "A String", # The display name.
          "id": "A String", # The identifier of the Comment creator.
        },
        "updated": "A String", # RFC 3339 date-time when this comment was last updated.
        "blog": { # Data about the blog containing this comment.
          "id": "A String", # The identifier of the blog containing this comment.
        },
        "published": "A String", # RFC 3339 date-time when this comment was published.
        "post": { # Data about the post containing this comment.
          "id": "A String", # The identifier of the post containing this comment.
        },
        "id": "A String", # The identifier for this resource.
        "selfLink": "A String", # The API REST URL to fetch this resource from.
      },
    ],
    "selfLink": "A String", # The URL of the comments on this post.
  },
  "labels": [ # The list of labels this Post was tagged with.
    "A String",
  ],
  "customMetaData": "A String", # The JSON meta-data for the Post.
  "updated": "A String", # RFC 3339 date-time when this Post was last updated.
  "blog": { # Data about the blog containing this Post.
    "id": "A String", # The identifier of the Blog that contains this Post.
  },
  "url": "A String", # The URL where this Post is displayed.
  "location": { # The location for geotagged posts.
    "lat": 3.14, # Location's latitude.
    "lng": 3.14, # Location's longitude.
    "span": "A String", # Location's viewport span. Can be used when rendering a map preview.
    "name": "A String", # Location name.
  },
  "published": "A String", # RFC 3339 date-time when this Post was published.
  "title": "A String", # The title of the Post.
  "id": "A String", # The identifier of this Post.
  "selfLink": "A String", # The API REST URL to fetch this resource from.
}


Returns:
  An object of the form:

    {
    "content": "A String", # The content of the Post. May contain HTML markup.
    "kind": "blogger#post", # The kind of this entity. Always blogger#post
    "author": { # The author of this Post.
      "url": "A String", # The URL of the Post creator's Profile page.
      "image": { # The Post author's avatar.
        "url": "A String", # The Post author's avatar URL.
      },
      "displayName": "A String", # The display name.
      "id": "A String", # The identifier of the Post creator.
    },
    "replies": { # The container of comments on this Post.
      "totalItems": "A String", # The count of comments on this post.
      "items": [ # The List of Comments for this Post.
        {
          "content": "A String", # The actual content of the comment. May include HTML markup.
          "kind": "blogger#comment", # The kind of this entry. Always blogger#comment
          "inReplyTo": { # Data about the comment this is in reply to.
            "id": "A String", # The identified of the parent of this comment.
          },
          "author": { # The author of this Comment.
            "url": "A String", # The URL of the Comment creator's Profile page.
            "image": { # The comment creator's avatar.
              "url": "A String", # The comment creator's avatar URL.
            },
            "displayName": "A String", # The display name.
            "id": "A String", # The identifier of the Comment creator.
          },
          "updated": "A String", # RFC 3339 date-time when this comment was last updated.
          "blog": { # Data about the blog containing this comment.
            "id": "A String", # The identifier of the blog containing this comment.
          },
          "published": "A String", # RFC 3339 date-time when this comment was published.
          "post": { # Data about the post containing this comment.
            "id": "A String", # The identifier of the post containing this comment.
          },
          "id": "A String", # The identifier for this resource.
          "selfLink": "A String", # The API REST URL to fetch this resource from.
        },
      ],
      "selfLink": "A String", # The URL of the comments on this post.
    },
    "labels": [ # The list of labels this Post was tagged with.
      "A String",
    ],
    "customMetaData": "A String", # The JSON meta-data for the Post.
    "updated": "A String", # RFC 3339 date-time when this Post was last updated.
    "blog": { # Data about the blog containing this Post.
      "id": "A String", # The identifier of the Blog that contains this Post.
    },
    "url": "A String", # The URL where this Post is displayed.
    "location": { # The location for geotagged posts.
      "lat": 3.14, # Location's latitude.
      "lng": 3.14, # Location's longitude.
      "span": "A String", # Location's viewport span. Can be used when rendering a map preview.
      "name": "A String", # Location name.
    },
    "published": "A String", # RFC 3339 date-time when this Post was published.
    "title": "A String", # The title of the Post.
    "id": "A String", # The identifier of this Post.
    "selfLink": "A String", # The API REST URL to fetch this resource from.
  }</pre>
</div>

</body></html>