# Copyright 2017 Google Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # NOTE: This class is auto generated by the swagger code generator program. # https://github.com/swagger-api/swagger-codegen.git # Do not edit the class manually. defmodule GoogleApi.People.V1.Api.ContactGroups do @moduledoc """ API calls for all endpoints tagged `ContactGroups`. """ alias GoogleApi.People.V1.Connection import GoogleApi.People.V1.RequestBuilder @doc """ Get a list of contact groups owned by the authenticated user by specifying a list of contact group resource names. ## Parameters - connection (GoogleApi.People.V1.Connection): Connection to server - opts (KeywordList): [optional] Optional parameters - :pp (Boolean): Pretty-print response. - :oauth_token (String): OAuth 2.0 token for the current user. - :bearer_token (String): OAuth bearer token. - :upload_protocol (String): Upload protocol for media (e.g. \"raw\", \"multipart\"). - :pretty_print (Boolean): Returns response with indentations and line breaks. - :upload_type (String): Legacy upload protocol for media (e.g. \"media\", \"multipart\"). - :fields (String): Selector specifying which fields to include in a partial response. - :__/xgafv (String): V1 error format. - :callback (String): JSONP - :alt (String): Data format for response. - :key (String): 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. - :access_token (String): OAuth access token. - :quota_user (String): 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. - :resource_names (List[String]): The resource names of the contact groups to get. - :max_members (Integer): Specifies the maximum number of members to return for each group. ## Returns {:ok, %GoogleApi.People.V1.Model.BatchGetContactGroupsResponse{}} on success {:error, info} on failure """ @spec people_contact_groups_batch_get(Tesla.Env.client, keyword()) :: {:ok, GoogleApi.People.V1.Model.BatchGetContactGroupsResponse.t} | {:error, Tesla.Env.t} def people_contact_groups_batch_get(connection, opts \\ []) do optional_params = %{ :"pp" => :query, :"oauth_token" => :query, :"bearer_token" => :query, :"upload_protocol" => :query, :"prettyPrint" => :query, :"uploadType" => :query, :"fields" => :query, :"$.xgafv" => :query, :"callback" => :query, :"alt" => :query, :"key" => :query, :"access_token" => :query, :"quotaUser" => :query, :"resourceNames" => :query, :"maxMembers" => :query } %{} |> method(:get) |> url("/v1/contactGroups:batchGet") |> add_optional_params(optional_params, opts) |> Enum.into([]) |> (&Connection.request(connection, &1)).() |> decode(%GoogleApi.People.V1.Model.BatchGetContactGroupsResponse{}) end @doc """ Create a new contact group owned by the authenticated user. ## Parameters - connection (GoogleApi.People.V1.Connection): Connection to server - opts (KeywordList): [optional] Optional parameters - :pp (Boolean): Pretty-print response. - :oauth_token (String): OAuth 2.0 token for the current user. - :bearer_token (String): OAuth bearer token. - :upload_protocol (String): Upload protocol for media (e.g. \"raw\", \"multipart\"). - :pretty_print (Boolean): Returns response with indentations and line breaks. - :upload_type (String): Legacy upload protocol for media (e.g. \"media\", \"multipart\"). - :fields (String): Selector specifying which fields to include in a partial response. - :__/xgafv (String): V1 error format. - :callback (String): JSONP - :alt (String): Data format for response. - :key (String): 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. - :access_token (String): OAuth access token. - :quota_user (String): 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. - :body (CreateContactGroupRequest): ## Returns {:ok, %GoogleApi.People.V1.Model.ContactGroup{}} on success {:error, info} on failure """ @spec people_contact_groups_create(Tesla.Env.client, keyword()) :: {:ok, GoogleApi.People.V1.Model.ContactGroup.t} | {:error, Tesla.Env.t} def people_contact_groups_create(connection, opts \\ []) do optional_params = %{ :"pp" => :query, :"oauth_token" => :query, :"bearer_token" => :query, :"upload_protocol" => :query, :"prettyPrint" => :query, :"uploadType" => :query, :"fields" => :query, :"$.xgafv" => :query, :"callback" => :query, :"alt" => :query, :"key" => :query, :"access_token" => :query, :"quotaUser" => :query, :"body" => :body } %{} |> method(:post) |> url("/v1/contactGroups") |> add_optional_params(optional_params, opts) |> Enum.into([]) |> (&Connection.request(connection, &1)).() |> decode(%GoogleApi.People.V1.Model.ContactGroup{}) end @doc """ Delete an existing contact group owned by the authenticated user by specifying a contact group resource name. ## Parameters - connection (GoogleApi.People.V1.Connection): Connection to server - contact_groups_id (String): Part of `resourceName`. The resource name of the contact group to delete. - opts (KeywordList): [optional] Optional parameters - :pp (Boolean): Pretty-print response. - :oauth_token (String): OAuth 2.0 token for the current user. - :bearer_token (String): OAuth bearer token. - :upload_protocol (String): Upload protocol for media (e.g. \"raw\", \"multipart\"). - :pretty_print (Boolean): Returns response with indentations and line breaks. - :upload_type (String): Legacy upload protocol for media (e.g. \"media\", \"multipart\"). - :fields (String): Selector specifying which fields to include in a partial response. - :__/xgafv (String): V1 error format. - :callback (String): JSONP - :alt (String): Data format for response. - :key (String): 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. - :access_token (String): OAuth access token. - :quota_user (String): 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. - :delete_contacts (Boolean): Set to true to also delete the contacts in the specified group. ## Returns {:ok, %GoogleApi.People.V1.Model.Empty{}} on success {:error, info} on failure """ @spec people_contact_groups_delete(Tesla.Env.client, String.t, keyword()) :: {:ok, GoogleApi.People.V1.Model.Empty.t} | {:error, Tesla.Env.t} def people_contact_groups_delete(connection, contact_groups_id, opts \\ []) do optional_params = %{ :"pp" => :query, :"oauth_token" => :query, :"bearer_token" => :query, :"upload_protocol" => :query, :"prettyPrint" => :query, :"uploadType" => :query, :"fields" => :query, :"$.xgafv" => :query, :"callback" => :query, :"alt" => :query, :"key" => :query, :"access_token" => :query, :"quotaUser" => :query, :"deleteContacts" => :query } %{} |> method(:delete) |> url("/v1/contactGroups/#{contact_groups_id}") |> add_optional_params(optional_params, opts) |> Enum.into([]) |> (&Connection.request(connection, &1)).() |> decode(%GoogleApi.People.V1.Model.Empty{}) end @doc """ Get a specific contact group owned by the authenticated user by specifying a contact group resource name. ## Parameters - connection (GoogleApi.People.V1.Connection): Connection to server - contact_groups_id (String): Part of `resourceName`. The resource name of the contact group to get. - opts (KeywordList): [optional] Optional parameters - :pp (Boolean): Pretty-print response. - :oauth_token (String): OAuth 2.0 token for the current user. - :bearer_token (String): OAuth bearer token. - :upload_protocol (String): Upload protocol for media (e.g. \"raw\", \"multipart\"). - :pretty_print (Boolean): Returns response with indentations and line breaks. - :upload_type (String): Legacy upload protocol for media (e.g. \"media\", \"multipart\"). - :fields (String): Selector specifying which fields to include in a partial response. - :__/xgafv (String): V1 error format. - :callback (String): JSONP - :alt (String): Data format for response. - :key (String): 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. - :access_token (String): OAuth access token. - :quota_user (String): 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. - :max_members (Integer): Specifies the maximum number of members to return. ## Returns {:ok, %GoogleApi.People.V1.Model.ContactGroup{}} on success {:error, info} on failure """ @spec people_contact_groups_get(Tesla.Env.client, String.t, keyword()) :: {:ok, GoogleApi.People.V1.Model.ContactGroup.t} | {:error, Tesla.Env.t} def people_contact_groups_get(connection, contact_groups_id, opts \\ []) do optional_params = %{ :"pp" => :query, :"oauth_token" => :query, :"bearer_token" => :query, :"upload_protocol" => :query, :"prettyPrint" => :query, :"uploadType" => :query, :"fields" => :query, :"$.xgafv" => :query, :"callback" => :query, :"alt" => :query, :"key" => :query, :"access_token" => :query, :"quotaUser" => :query, :"maxMembers" => :query } %{} |> method(:get) |> url("/v1/contactGroups/#{contact_groups_id}") |> add_optional_params(optional_params, opts) |> Enum.into([]) |> (&Connection.request(connection, &1)).() |> decode(%GoogleApi.People.V1.Model.ContactGroup{}) end @doc """ List all contact groups owned by the authenticated user. Members of the contact groups are not populated. ## Parameters - connection (GoogleApi.People.V1.Connection): Connection to server - opts (KeywordList): [optional] Optional parameters - :pp (Boolean): Pretty-print response. - :oauth_token (String): OAuth 2.0 token for the current user. - :bearer_token (String): OAuth bearer token. - :upload_protocol (String): Upload protocol for media (e.g. \"raw\", \"multipart\"). - :pretty_print (Boolean): Returns response with indentations and line breaks. - :upload_type (String): Legacy upload protocol for media (e.g. \"media\", \"multipart\"). - :fields (String): Selector specifying which fields to include in a partial response. - :__/xgafv (String): V1 error format. - :callback (String): JSONP - :alt (String): Data format for response. - :key (String): 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. - :access_token (String): OAuth access token. - :quota_user (String): 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. - :sync_token (String): A sync token, returned by a previous call to `contactgroups.list`. Only resources changed since the sync token was created will be returned. - :page_token (String): The next_page_token value returned from a previous call to [ListContactGroups](/people/api/rest/v1/contactgroups/list). Requests the next page of resources. - :page_size (Integer): The maximum number of resources to return. ## Returns {:ok, %GoogleApi.People.V1.Model.ListContactGroupsResponse{}} on success {:error, info} on failure """ @spec people_contact_groups_list(Tesla.Env.client, keyword()) :: {:ok, GoogleApi.People.V1.Model.ListContactGroupsResponse.t} | {:error, Tesla.Env.t} def people_contact_groups_list(connection, opts \\ []) do optional_params = %{ :"pp" => :query, :"oauth_token" => :query, :"bearer_token" => :query, :"upload_protocol" => :query, :"prettyPrint" => :query, :"uploadType" => :query, :"fields" => :query, :"$.xgafv" => :query, :"callback" => :query, :"alt" => :query, :"key" => :query, :"access_token" => :query, :"quotaUser" => :query, :"syncToken" => :query, :"pageToken" => :query, :"pageSize" => :query } %{} |> method(:get) |> url("/v1/contactGroups") |> add_optional_params(optional_params, opts) |> Enum.into([]) |> (&Connection.request(connection, &1)).() |> decode(%GoogleApi.People.V1.Model.ListContactGroupsResponse{}) end @doc """ Modify the members of a contact group owned by the authenticated user. ## Parameters - connection (GoogleApi.People.V1.Connection): Connection to server - contact_groups_id (String): Part of `resourceName`. The resource name of the contact group to modify. - opts (KeywordList): [optional] Optional parameters - :pp (Boolean): Pretty-print response. - :oauth_token (String): OAuth 2.0 token for the current user. - :bearer_token (String): OAuth bearer token. - :upload_protocol (String): Upload protocol for media (e.g. \"raw\", \"multipart\"). - :pretty_print (Boolean): Returns response with indentations and line breaks. - :upload_type (String): Legacy upload protocol for media (e.g. \"media\", \"multipart\"). - :fields (String): Selector specifying which fields to include in a partial response. - :__/xgafv (String): V1 error format. - :callback (String): JSONP - :alt (String): Data format for response. - :key (String): 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. - :access_token (String): OAuth access token. - :quota_user (String): 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. - :body (ModifyContactGroupMembersRequest): ## Returns {:ok, %GoogleApi.People.V1.Model.ModifyContactGroupMembersResponse{}} on success {:error, info} on failure """ @spec people_contact_groups_members_modify(Tesla.Env.client, String.t, keyword()) :: {:ok, GoogleApi.People.V1.Model.ModifyContactGroupMembersResponse.t} | {:error, Tesla.Env.t} def people_contact_groups_members_modify(connection, contact_groups_id, opts \\ []) do optional_params = %{ :"pp" => :query, :"oauth_token" => :query, :"bearer_token" => :query, :"upload_protocol" => :query, :"prettyPrint" => :query, :"uploadType" => :query, :"fields" => :query, :"$.xgafv" => :query, :"callback" => :query, :"alt" => :query, :"key" => :query, :"access_token" => :query, :"quotaUser" => :query, :"body" => :body } %{} |> method(:post) |> url("/v1/contactGroups/#{contact_groups_id}/members:modify") |> add_optional_params(optional_params, opts) |> Enum.into([]) |> (&Connection.request(connection, &1)).() |> decode(%GoogleApi.People.V1.Model.ModifyContactGroupMembersResponse{}) end @doc """ Update the name of an existing contact group owned by the authenticated user. ## Parameters - connection (GoogleApi.People.V1.Connection): Connection to server - contact_groups_id (String): Part of `contactGroup.resourceName`. The resource name for the contact group, assigned by the server. An ASCII string, in the form of `contactGroups/`<var>contact_group_id</var>. - opts (KeywordList): [optional] Optional parameters - :pp (Boolean): Pretty-print response. - :oauth_token (String): OAuth 2.0 token for the current user. - :bearer_token (String): OAuth bearer token. - :upload_protocol (String): Upload protocol for media (e.g. \"raw\", \"multipart\"). - :pretty_print (Boolean): Returns response with indentations and line breaks. - :upload_type (String): Legacy upload protocol for media (e.g. \"media\", \"multipart\"). - :fields (String): Selector specifying which fields to include in a partial response. - :__/xgafv (String): V1 error format. - :callback (String): JSONP - :alt (String): Data format for response. - :key (String): 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. - :access_token (String): OAuth access token. - :quota_user (String): 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. - :body (UpdateContactGroupRequest): ## Returns {:ok, %GoogleApi.People.V1.Model.ContactGroup{}} on success {:error, info} on failure """ @spec people_contact_groups_update(Tesla.Env.client, String.t, keyword()) :: {:ok, GoogleApi.People.V1.Model.ContactGroup.t} | {:error, Tesla.Env.t} def people_contact_groups_update(connection, contact_groups_id, opts \\ []) do optional_params = %{ :"pp" => :query, :"oauth_token" => :query, :"bearer_token" => :query, :"upload_protocol" => :query, :"prettyPrint" => :query, :"uploadType" => :query, :"fields" => :query, :"$.xgafv" => :query, :"callback" => :query, :"alt" => :query, :"key" => :query, :"access_token" => :query, :"quotaUser" => :query, :"body" => :body } %{} |> method(:put) |> url("/v1/contactGroups/#{contact_groups_id}") |> add_optional_params(optional_params, opts) |> Enum.into([]) |> (&Connection.request(connection, &1)).() |> decode(%GoogleApi.People.V1.Model.ContactGroup{}) end end