#lang scribble/manual
@(require planet/scribble (for-label racket))
@title{Blogger API v3}
@margin-note{This documentation has been automatically generated
                     using information supplied by the
                     Google API Discovery service.}
API for access to the data within Blogger.
@hyperlink["https://developers.google.com/blogger/docs/3.0/getting_started" "Google documentation."]
@table-of-contents{}
@defmodule[gapi/macro]
@racket[(require-gapi-doc "blogger.v3.js")]
@section{API Parameters}
The following optional keyword arguments may be passed to
@italic{all} functions for this web service:
@defproc[(_
[#:alt alt string? 'N/A]
[#:fields fields string? 'N/A]
[#:key key string? (api-key)]
[#:oauth_token oauth_token string? 'N/A]
[#:prettyPrint prettyPrint string? 'N/A]
[#:quotaUser quotaUser string? 'N/A]
[#:userIp userIp string? 'N/A]

) jsexpr?]{
@margin-note{This is not actually a function. This is just using
                     Scribble's defproc form to list the optional
                     keyword arguments that may be passed
                     to @italic{all} functions for this service.}
@racket[alt]: Data format for the response.

@racket[fields]: Selector specifying which fields to include in a partial response.

@racket[key]: API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.

@racket[oauth_token]: OAuth 2.0 token for the current user.

@racket[prettyPrint]: Returns response with indentations and line breaks.

@racket[quotaUser]: Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters. Overrides userIp if both are provided.

@racket[userIp]: IP address of the site where the request originates. Use this if you want to enforce per-user limits.


}
@section{Resources}

@subsection{pages}
@defproc[(blogger-pages-list
[#:blogId blogId string?]
[#:fetchBodies fetchBodies string? 'N/A]
[#:alt alt string? 'N/A]
[#:fields fields string? 'N/A]
[#:key key string? (api-key)]
[#:oauth_token oauth_token string? 'N/A]
[#:prettyPrint prettyPrint string? 'N/A]
[#:quotaUser quotaUser string? 'N/A]
[#:userIp userIp string? 'N/A]
) jsexpr?]{
Retrieves pages for a blog, possibly filtered.

@racket[blogId]: ID of the blog to fetch pages from.

@racket[fetchBodies]: Whether to retrieve the Page bodies.

}

@defproc[(blogger-pages-get
[#:blogId blogId string?]
[#:pageId pageId string?]
[#:alt alt string? 'N/A]
[#:fields fields string? 'N/A]
[#:key key string? (api-key)]
[#:oauth_token oauth_token string? 'N/A]
[#:prettyPrint prettyPrint string? 'N/A]
[#:quotaUser quotaUser string? 'N/A]
[#:userIp userIp string? 'N/A]
) jsexpr?]{
Gets one blog page by id.

@racket[blogId]: ID of the blog containing the page.

@racket[pageId]: The ID of the page to get.

}

@subsection{posts}
@defproc[(blogger-posts-list
[#:blogId blogId string?]
[#:maxResults maxResults string? 'N/A]
[#:pageToken pageToken string? 'N/A]
[#:labels labels string? 'N/A]
[#:endDate endDate string? 'N/A]
[#:fetchBodies fetchBodies string? 'N/A]
[#:startDate startDate string? 'N/A]
[#:alt alt string? 'N/A]
[#:fields fields string? 'N/A]
[#:key key string? (api-key)]
[#:oauth_token oauth_token string? 'N/A]
[#:prettyPrint prettyPrint string? 'N/A]
[#:quotaUser quotaUser string? 'N/A]
[#:userIp userIp string? 'N/A]
) jsexpr?]{
Retrieves a list of posts, possibly filtered.

@racket[blogId]: ID of the blog to fetch posts from.

@racket[maxResults]: Maximum number of posts to fetch.

@racket[pageToken]: Continuation token if the request is paged.

@racket[labels]: Comma-separated list of labels to search for.

@racket[endDate]: Latest post date to fetch, a date-time with RFC 3339 formatting.

@racket[fetchBodies]: Whether the body content of posts is included.

@racket[startDate]: Earliest post date to fetch, a date-time with RFC 3339 formatting.

}

@defproc[(blogger-posts-get
[#:blogId blogId string?]
[#:postId postId string?]
[#:maxComments maxComments string? 'N/A]
[#:alt alt string? 'N/A]
[#:fields fields string? 'N/A]
[#:key key string? (api-key)]
[#:oauth_token oauth_token string? 'N/A]
[#:prettyPrint prettyPrint string? 'N/A]
[#:quotaUser quotaUser string? 'N/A]
[#:userIp userIp string? 'N/A]
) jsexpr?]{
Get a post by id.

@racket[blogId]: ID of the blog to fetch the post from.

@racket[postId]: The ID of the post

@racket[maxComments]: Maximum number of comments to pull back on a post.

}

@defproc[(blogger-posts-insert
[#:blogId blogId string?]
[#:id id string? 'N/A]
[#:url url string? 'N/A]
[#:location location string? 'N/A]
[#:kind kind string? 'N/A]
[#:title title string? 'N/A]
[#:content content string? 'N/A]
[#:selfLink selfLink string? 'N/A]
[#:updated updated string? 'N/A]
[#:customMetaData customMetaData string? 'N/A]
[#:published published string? 'N/A]
[#:author author string? 'N/A]
[#:blog blog string? 'N/A]
[#:labels labels string? 'N/A]
[#:replies replies string? 'N/A]
[#:alt alt string? 'N/A]
[#:fields fields string? 'N/A]
[#:key key string? (api-key)]
[#:oauth_token oauth_token string? 'N/A]
[#:prettyPrint prettyPrint string? 'N/A]
[#:quotaUser quotaUser string? 'N/A]
[#:userIp userIp string? 'N/A]
) jsexpr?]{
Add a post.

@racket[blogId]: ID of the blog to fetch the post from.

@racket[id]: The identifier of this Post.

@racket[url]: The URL where this Post is displayed.

@racket[location]: The location for geotagged posts.

@racket[kind]: The kind of this entity. Always blogger#post

@racket[title]: The title of the Post.

@racket[content]: The content of the Post. May contain HTML markup.

@racket[selfLink]: The API REST URL to fetch this resource from.

@racket[updated]: RFC 3339 date-time when this Post was last updated.

@racket[customMetaData]: The JSON meta-data for the Post.

@racket[published]: RFC 3339 date-time when this Post was published.

@racket[author]: The author of this Post.

@racket[blog]: Data about the blog containing this Post.

@racket[labels]: The list of labels this Post was tagged with.

@racket[replies]: The container of comments on this Post.

}

@defproc[(blogger-posts-patch
[#:blogId blogId string?]
[#:postId postId string?]
[#:id id string? 'N/A]
[#:url url string? 'N/A]
[#:location location string? 'N/A]
[#:kind kind string? 'N/A]
[#:title title string? 'N/A]
[#:content content string? 'N/A]
[#:selfLink selfLink string? 'N/A]
[#:updated updated string? 'N/A]
[#:customMetaData customMetaData string? 'N/A]
[#:published published string? 'N/A]
[#:author author string? 'N/A]
[#:blog blog string? 'N/A]
[#:labels labels string? 'N/A]
[#:replies replies string? 'N/A]
[#:alt alt string? 'N/A]
[#:fields fields string? 'N/A]
[#:key key string? (api-key)]
[#:oauth_token oauth_token string? 'N/A]
[#:prettyPrint prettyPrint string? 'N/A]
[#:quotaUser quotaUser string? 'N/A]
[#:userIp userIp string? 'N/A]
) jsexpr?]{
Update a post. This method supports patch semantics.

@racket[blogId]: The ID of the Blog.

@racket[postId]: The ID of the Post.

@racket[id]: The identifier of this Post.

@racket[url]: The URL where this Post is displayed.

@racket[location]: The location for geotagged posts.

@racket[kind]: The kind of this entity. Always blogger#post

@racket[title]: The title of the Post.

@racket[content]: The content of the Post. May contain HTML markup.

@racket[selfLink]: The API REST URL to fetch this resource from.

@racket[updated]: RFC 3339 date-time when this Post was last updated.

@racket[customMetaData]: The JSON meta-data for the Post.

@racket[published]: RFC 3339 date-time when this Post was published.

@racket[author]: The author of this Post.

@racket[blog]: Data about the blog containing this Post.

@racket[labels]: The list of labels this Post was tagged with.

@racket[replies]: The container of comments on this Post.

}

@defproc[(blogger-posts-getByPath
[#:blogId blogId string?]
[#:path path string? 'N/A]
[#:maxComments maxComments string? 'N/A]
[#:alt alt string? 'N/A]
[#:fields fields string? 'N/A]
[#:key key string? (api-key)]
[#:oauth_token oauth_token string? 'N/A]
[#:prettyPrint prettyPrint string? 'N/A]
[#:quotaUser quotaUser string? 'N/A]
[#:userIp userIp string? 'N/A]
) jsexpr?]{
Retrieve a Post by Path.

@racket[blogId]: ID of the blog to fetch the post from.

@racket[path]: Path of the Post to retrieve.

@racket[maxComments]: Maximum number of comments to pull back on a post.

}

@defproc[(blogger-posts-search
[#:blogId blogId string?]
[#:q q string? 'N/A]
[#:alt alt string? 'N/A]
[#:fields fields string? 'N/A]
[#:key key string? (api-key)]
[#:oauth_token oauth_token string? 'N/A]
[#:prettyPrint prettyPrint string? 'N/A]
[#:quotaUser quotaUser string? 'N/A]
[#:userIp userIp string? 'N/A]
) jsexpr?]{
Search for a post.

@racket[blogId]: ID of the blog to fetch the post from.

@racket[q]: Query terms to search this blog for matching posts.

}

@defproc[(blogger-posts-update
[#:blogId blogId string?]
[#:postId postId string?]
[#:id id string? 'N/A]
[#:url url string? 'N/A]
[#:location location string? 'N/A]
[#:kind kind string? 'N/A]
[#:title title string? 'N/A]
[#:content content string? 'N/A]
[#:selfLink selfLink string? 'N/A]
[#:updated updated string? 'N/A]
[#:customMetaData customMetaData string? 'N/A]
[#:published published string? 'N/A]
[#:author author string? 'N/A]
[#:blog blog string? 'N/A]
[#:labels labels string? 'N/A]
[#:replies replies string? 'N/A]
[#:alt alt string? 'N/A]
[#:fields fields string? 'N/A]
[#:key key string? (api-key)]
[#:oauth_token oauth_token string? 'N/A]
[#:prettyPrint prettyPrint string? 'N/A]
[#:quotaUser quotaUser string? 'N/A]
[#:userIp userIp string? 'N/A]
) jsexpr?]{
Update a post.

@racket[blogId]: The ID of the Blog.

@racket[postId]: The ID of the Post.

@racket[id]: The identifier of this Post.

@racket[url]: The URL where this Post is displayed.

@racket[location]: The location for geotagged posts.

@racket[kind]: The kind of this entity. Always blogger#post

@racket[title]: The title of the Post.

@racket[content]: The content of the Post. May contain HTML markup.

@racket[selfLink]: The API REST URL to fetch this resource from.

@racket[updated]: RFC 3339 date-time when this Post was last updated.

@racket[customMetaData]: The JSON meta-data for the Post.

@racket[published]: RFC 3339 date-time when this Post was published.

@racket[author]: The author of this Post.

@racket[blog]: Data about the blog containing this Post.

@racket[labels]: The list of labels this Post was tagged with.

@racket[replies]: The container of comments on this Post.

}

@defproc[(blogger-posts-delete
[#:blogId blogId string?]
[#:postId postId string?]
[#:alt alt string? 'N/A]
[#:fields fields string? 'N/A]
[#:key key string? (api-key)]
[#:oauth_token oauth_token string? 'N/A]
[#:prettyPrint prettyPrint string? 'N/A]
[#:quotaUser quotaUser string? 'N/A]
[#:userIp userIp string? 'N/A]
) jsexpr?]{
Delete a post by id.

@racket[blogId]: The Id of the Blog.

@racket[postId]: The ID of the Post.

}

@subsection{blogs}
@defproc[(blogger-blogs-get
[#:blogId blogId string?]
[#:maxPosts maxPosts string? 'N/A]
[#:alt alt string? 'N/A]
[#:fields fields string? 'N/A]
[#:key key string? (api-key)]
[#:oauth_token oauth_token string? 'N/A]
[#:prettyPrint prettyPrint string? 'N/A]
[#:quotaUser quotaUser string? 'N/A]
[#:userIp userIp string? 'N/A]
) jsexpr?]{
Gets one blog by id.

@racket[blogId]: The ID of the blog to get.

@racket[maxPosts]: Maximum number of posts to pull back with the blog.

}

@defproc[(blogger-blogs-getByUrl
[#:url url string? 'N/A]
[#:alt alt string? 'N/A]
[#:fields fields string? 'N/A]
[#:key key string? (api-key)]
[#:oauth_token oauth_token string? 'N/A]
[#:prettyPrint prettyPrint string? 'N/A]
[#:quotaUser quotaUser string? 'N/A]
[#:userIp userIp string? 'N/A]
) jsexpr?]{
Retrieve a Blog by URL.

@racket[url]: The URL of the blog to retrieve.

}

@defproc[(blogger-blogs-listByUser
[#:userId userId string?]
[#:alt alt string? 'N/A]
[#:fields fields string? 'N/A]
[#:key key string? (api-key)]
[#:oauth_token oauth_token string? 'N/A]
[#:prettyPrint prettyPrint string? 'N/A]
[#:quotaUser quotaUser string? 'N/A]
[#:userIp userIp string? 'N/A]
) jsexpr?]{
Retrieves a list of blogs, possibly filtered.

@racket[userId]: ID of the user whose blogs are to be fetched. Either the word 'self' (sans quote marks) or the user's profile identifier.

}

@subsection{comments}
@defproc[(blogger-comments-list
[#:blogId blogId string?]
[#:postId postId string?]
[#:maxResults maxResults string? 'N/A]
[#:pageToken pageToken string? 'N/A]
[#:endDate endDate string? 'N/A]
[#:fetchBodies fetchBodies string? 'N/A]
[#:startDate startDate string? 'N/A]
[#:alt alt string? 'N/A]
[#:fields fields string? 'N/A]
[#:key key string? (api-key)]
[#:oauth_token oauth_token string? 'N/A]
[#:prettyPrint prettyPrint string? 'N/A]
[#:quotaUser quotaUser string? 'N/A]
[#:userIp userIp string? 'N/A]
) jsexpr?]{
Retrieves the comments for a blog, possibly filtered.

@racket[blogId]: ID of the blog to fetch comments from.

@racket[postId]: ID of the post to fetch posts from.

@racket[maxResults]: Maximum number of comments to include in the result.

@racket[pageToken]: Continuation token if request is paged.

@racket[endDate]: Latest date of comment to fetch, a date-time with RFC 3339 formatting.

@racket[fetchBodies]: Whether the body content of the comments is included.

@racket[startDate]: Earliest date of comment to fetch, a date-time with RFC 3339 formatting.

}

@defproc[(blogger-comments-get
[#:blogId blogId string?]
[#:commentId commentId string?]
[#:postId postId string?]
[#:alt alt string? 'N/A]
[#:fields fields string? 'N/A]
[#:key key string? (api-key)]
[#:oauth_token oauth_token string? 'N/A]
[#:prettyPrint prettyPrint string? 'N/A]
[#:quotaUser quotaUser string? 'N/A]
[#:userIp userIp string? 'N/A]
) jsexpr?]{
Gets one comment by id.

@racket[blogId]: ID of the blog to containing the comment.

@racket[commentId]: The ID of the comment to get.

@racket[postId]: ID of the post to fetch posts from.

}

@subsection{users}
@defproc[(blogger-users-get
[#:userId userId string?]
[#:alt alt string? 'N/A]
[#:fields fields string? 'N/A]
[#:key key string? (api-key)]
[#:oauth_token oauth_token string? 'N/A]
[#:prettyPrint prettyPrint string? 'N/A]
[#:quotaUser quotaUser string? 'N/A]
[#:userIp userIp string? 'N/A]
) jsexpr?]{
Gets one user by id.

@racket[userId]: The ID of the user to get.

}

