Current section

Files

Jump to
google_api_iam lib google_api iam v1 api projects.ex
Raw

lib/google_api/iam/v1/api/projects.ex

# 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.IAM.V1.Api.Projects do
@moduledoc """
API calls for all endpoints tagged `Projects`.
"""
alias GoogleApi.IAM.V1.Connection
import GoogleApi.IAM.V1.RequestBuilder
@doc """
Creates a new Role.
## Parameters
- connection (GoogleApi.IAM.V1.Connection): Connection to server
- projects_id (String): Part of `parent`. The resource name of the parent resource in one of the following formats: `organizations/{ORGANIZATION_ID}` `projects/{PROJECT_ID}`
- opts (KeywordList): [optional] Optional parameters
- :access_token (String): OAuth access token.
- :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.
- :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.
- :pp (Boolean): Pretty-print response.
- :bearer_token (String): OAuth bearer token.
- :oauth_token (String): OAuth 2.0 token for the current user.
- :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.
- :callback (String): JSONP
- :__/xgafv (String): V1 error format.
- :alt (String): Data format for response.
- :body (CreateRoleRequest):
## Returns
{:ok, %GoogleApi.IAM.V1.Model.Role{}} on success
{:error, info} on failure
"""
@spec iam_projects_roles_create(Tesla.Env.client, String.t, keyword()) :: {:ok, GoogleApi.IAM.V1.Model.Role.t} | {:error, Tesla.Env.t}
def iam_projects_roles_create(connection, projects_id, opts \\ []) do
optional_params = %{
:"access_token" => :query,
:"key" => :query,
:"quotaUser" => :query,
:"pp" => :query,
:"bearer_token" => :query,
:"oauth_token" => :query,
:"upload_protocol" => :query,
:"prettyPrint" => :query,
:"uploadType" => :query,
:"fields" => :query,
:"callback" => :query,
:"$.xgafv" => :query,
:"alt" => :query,
:"body" => :body
}
%{}
|> method(:post)
|> url("/v1/projects/#{projects_id}/roles")
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> decode(%GoogleApi.IAM.V1.Model.Role{})
end
@doc """
Soft deletes a role. The role is suspended and cannot be used to create new IAM Policy Bindings. The Role will not be included in `ListRoles()` unless `show_deleted` is set in the `ListRolesRequest`. The Role contains the deleted boolean set. Existing Bindings remains, but are inactive. The Role can be undeleted within 7 days. After 7 days the Role is deleted and all Bindings associated with the role are removed.
## Parameters
- connection (GoogleApi.IAM.V1.Connection): Connection to server
- projects_id (String): Part of `name`. The resource name of the role in one of the following formats: `organizations/{ORGANIZATION_ID}/roles/{ROLE_NAME}` `projects/{PROJECT_ID}/roles/{ROLE_NAME}`
- roles_id (String): Part of `name`. See documentation of `projectsId`.
- opts (KeywordList): [optional] Optional parameters
- :access_token (String): OAuth access token.
- :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.
- :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.
- :pp (Boolean): Pretty-print response.
- :bearer_token (String): OAuth bearer token.
- :oauth_token (String): OAuth 2.0 token for the current user.
- :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.
- :callback (String): JSONP
- :__/xgafv (String): V1 error format.
- :alt (String): Data format for response.
- :etag (String): Used to perform a consistent read-modify-write.
## Returns
{:ok, %GoogleApi.IAM.V1.Model.Role{}} on success
{:error, info} on failure
"""
@spec iam_projects_roles_delete(Tesla.Env.client, String.t, String.t, keyword()) :: {:ok, GoogleApi.IAM.V1.Model.Role.t} | {:error, Tesla.Env.t}
def iam_projects_roles_delete(connection, projects_id, roles_id, opts \\ []) do
optional_params = %{
:"access_token" => :query,
:"key" => :query,
:"quotaUser" => :query,
:"pp" => :query,
:"bearer_token" => :query,
:"oauth_token" => :query,
:"upload_protocol" => :query,
:"prettyPrint" => :query,
:"uploadType" => :query,
:"fields" => :query,
:"callback" => :query,
:"$.xgafv" => :query,
:"alt" => :query,
:"etag" => :query
}
%{}
|> method(:delete)
|> url("/v1/projects/#{projects_id}/roles/#{roles_id}")
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> decode(%GoogleApi.IAM.V1.Model.Role{})
end
@doc """
Gets a Role definition.
## Parameters
- connection (GoogleApi.IAM.V1.Connection): Connection to server
- projects_id (String): Part of `name`. The resource name of the role in one of the following formats: `roles/{ROLE_NAME}` `organizations/{ORGANIZATION_ID}/roles/{ROLE_NAME}` `projects/{PROJECT_ID}/roles/{ROLE_NAME}`
- roles_id (String): Part of `name`. See documentation of `projectsId`.
- opts (KeywordList): [optional] Optional parameters
- :access_token (String): OAuth access token.
- :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.
- :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.
- :pp (Boolean): Pretty-print response.
- :bearer_token (String): OAuth bearer token.
- :oauth_token (String): OAuth 2.0 token for the current user.
- :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.
- :callback (String): JSONP
- :__/xgafv (String): V1 error format.
- :alt (String): Data format for response.
## Returns
{:ok, %GoogleApi.IAM.V1.Model.Role{}} on success
{:error, info} on failure
"""
@spec iam_projects_roles_get(Tesla.Env.client, String.t, String.t, keyword()) :: {:ok, GoogleApi.IAM.V1.Model.Role.t} | {:error, Tesla.Env.t}
def iam_projects_roles_get(connection, projects_id, roles_id, opts \\ []) do
optional_params = %{
:"access_token" => :query,
:"key" => :query,
:"quotaUser" => :query,
:"pp" => :query,
:"bearer_token" => :query,
:"oauth_token" => :query,
:"upload_protocol" => :query,
:"prettyPrint" => :query,
:"uploadType" => :query,
:"fields" => :query,
:"callback" => :query,
:"$.xgafv" => :query,
:"alt" => :query
}
%{}
|> method(:get)
|> url("/v1/projects/#{projects_id}/roles/#{roles_id}")
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> decode(%GoogleApi.IAM.V1.Model.Role{})
end
@doc """
Lists the Roles defined on a resource.
## Parameters
- connection (GoogleApi.IAM.V1.Connection): Connection to server
- projects_id (String): Part of `parent`. The resource name of the parent resource in one of the following formats: `` (empty string) -- this refers to curated roles. `organizations/{ORGANIZATION_ID}` `projects/{PROJECT_ID}`
- opts (KeywordList): [optional] Optional parameters
- :access_token (String): OAuth access token.
- :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.
- :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.
- :pp (Boolean): Pretty-print response.
- :bearer_token (String): OAuth bearer token.
- :oauth_token (String): OAuth 2.0 token for the current user.
- :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.
- :callback (String): JSONP
- :__/xgafv (String): V1 error format.
- :alt (String): Data format for response.
- :show_deleted (Boolean): Include Roles that have been deleted.
- :page_token (String): Optional pagination token returned in an earlier ListRolesResponse.
- :page_size (Integer): Optional limit on the number of roles to include in the response.
- :view (String): Optional view for the returned Role objects.
## Returns
{:ok, %GoogleApi.IAM.V1.Model.ListRolesResponse{}} on success
{:error, info} on failure
"""
@spec iam_projects_roles_list(Tesla.Env.client, String.t, keyword()) :: {:ok, GoogleApi.IAM.V1.Model.ListRolesResponse.t} | {:error, Tesla.Env.t}
def iam_projects_roles_list(connection, projects_id, opts \\ []) do
optional_params = %{
:"access_token" => :query,
:"key" => :query,
:"quotaUser" => :query,
:"pp" => :query,
:"bearer_token" => :query,
:"oauth_token" => :query,
:"upload_protocol" => :query,
:"prettyPrint" => :query,
:"uploadType" => :query,
:"fields" => :query,
:"callback" => :query,
:"$.xgafv" => :query,
:"alt" => :query,
:"showDeleted" => :query,
:"pageToken" => :query,
:"pageSize" => :query,
:"view" => :query
}
%{}
|> method(:get)
|> url("/v1/projects/#{projects_id}/roles")
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> decode(%GoogleApi.IAM.V1.Model.ListRolesResponse{})
end
@doc """
Updates a Role definition.
## Parameters
- connection (GoogleApi.IAM.V1.Connection): Connection to server
- projects_id (String): Part of `name`. The resource name of the role in one of the following formats: `roles/{ROLE_NAME}` `organizations/{ORGANIZATION_ID}/roles/{ROLE_NAME}` `projects/{PROJECT_ID}/roles/{ROLE_NAME}`
- roles_id (String): Part of `name`. See documentation of `projectsId`.
- opts (KeywordList): [optional] Optional parameters
- :access_token (String): OAuth access token.
- :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.
- :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.
- :pp (Boolean): Pretty-print response.
- :bearer_token (String): OAuth bearer token.
- :oauth_token (String): OAuth 2.0 token for the current user.
- :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.
- :callback (String): JSONP
- :__/xgafv (String): V1 error format.
- :alt (String): Data format for response.
- :update_mask (String): A mask describing which fields in the Role have changed.
- :body (Role):
## Returns
{:ok, %GoogleApi.IAM.V1.Model.Role{}} on success
{:error, info} on failure
"""
@spec iam_projects_roles_patch(Tesla.Env.client, String.t, String.t, keyword()) :: {:ok, GoogleApi.IAM.V1.Model.Role.t} | {:error, Tesla.Env.t}
def iam_projects_roles_patch(connection, projects_id, roles_id, opts \\ []) do
optional_params = %{
:"access_token" => :query,
:"key" => :query,
:"quotaUser" => :query,
:"pp" => :query,
:"bearer_token" => :query,
:"oauth_token" => :query,
:"upload_protocol" => :query,
:"prettyPrint" => :query,
:"uploadType" => :query,
:"fields" => :query,
:"callback" => :query,
:"$.xgafv" => :query,
:"alt" => :query,
:"updateMask" => :query,
:"body" => :body
}
%{}
|> method(:patch)
|> url("/v1/projects/#{projects_id}/roles/#{roles_id}")
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> decode(%GoogleApi.IAM.V1.Model.Role{})
end
@doc """
Undelete a Role, bringing it back in its previous state.
## Parameters
- connection (GoogleApi.IAM.V1.Connection): Connection to server
- projects_id (String): Part of `name`. The resource name of the role in one of the following formats: `organizations/{ORGANIZATION_ID}/roles/{ROLE_NAME}` `projects/{PROJECT_ID}/roles/{ROLE_NAME}`
- roles_id (String): Part of `name`. See documentation of `projectsId`.
- opts (KeywordList): [optional] Optional parameters
- :access_token (String): OAuth access token.
- :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.
- :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.
- :pp (Boolean): Pretty-print response.
- :bearer_token (String): OAuth bearer token.
- :oauth_token (String): OAuth 2.0 token for the current user.
- :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.
- :callback (String): JSONP
- :__/xgafv (String): V1 error format.
- :alt (String): Data format for response.
- :body (UndeleteRoleRequest):
## Returns
{:ok, %GoogleApi.IAM.V1.Model.Role{}} on success
{:error, info} on failure
"""
@spec iam_projects_roles_undelete(Tesla.Env.client, String.t, String.t, keyword()) :: {:ok, GoogleApi.IAM.V1.Model.Role.t} | {:error, Tesla.Env.t}
def iam_projects_roles_undelete(connection, projects_id, roles_id, opts \\ []) do
optional_params = %{
:"access_token" => :query,
:"key" => :query,
:"quotaUser" => :query,
:"pp" => :query,
:"bearer_token" => :query,
:"oauth_token" => :query,
:"upload_protocol" => :query,
:"prettyPrint" => :query,
:"uploadType" => :query,
:"fields" => :query,
:"callback" => :query,
:"$.xgafv" => :query,
:"alt" => :query,
:"body" => :body
}
%{}
|> method(:post)
|> url("/v1/projects/#{projects_id}/roles/#{roles_id}:undelete")
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> decode(%GoogleApi.IAM.V1.Model.Role{})
end
@doc """
Creates a ServiceAccount and returns it.
## Parameters
- connection (GoogleApi.IAM.V1.Connection): Connection to server
- projects_id (String): Part of `name`. Required. The resource name of the project associated with the service accounts, such as `projects/my-project-123`.
- opts (KeywordList): [optional] Optional parameters
- :access_token (String): OAuth access token.
- :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.
- :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.
- :pp (Boolean): Pretty-print response.
- :bearer_token (String): OAuth bearer token.
- :oauth_token (String): OAuth 2.0 token for the current user.
- :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.
- :callback (String): JSONP
- :__/xgafv (String): V1 error format.
- :alt (String): Data format for response.
- :body (CreateServiceAccountRequest):
## Returns
{:ok, %GoogleApi.IAM.V1.Model.ServiceAccount{}} on success
{:error, info} on failure
"""
@spec iam_projects_service_accounts_create(Tesla.Env.client, String.t, keyword()) :: {:ok, GoogleApi.IAM.V1.Model.ServiceAccount.t} | {:error, Tesla.Env.t}
def iam_projects_service_accounts_create(connection, projects_id, opts \\ []) do
optional_params = %{
:"access_token" => :query,
:"key" => :query,
:"quotaUser" => :query,
:"pp" => :query,
:"bearer_token" => :query,
:"oauth_token" => :query,
:"upload_protocol" => :query,
:"prettyPrint" => :query,
:"uploadType" => :query,
:"fields" => :query,
:"callback" => :query,
:"$.xgafv" => :query,
:"alt" => :query,
:"body" => :body
}
%{}
|> method(:post)
|> url("/v1/projects/#{projects_id}/serviceAccounts")
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> decode(%GoogleApi.IAM.V1.Model.ServiceAccount{})
end
@doc """
Deletes a ServiceAccount.
## Parameters
- connection (GoogleApi.IAM.V1.Connection): Connection to server
- projects_id (String): Part of `name`. The resource name of the service account in the following format: `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`. Using `-` as a wildcard for the project will infer the project from the account. The `account` value can be the `email` address or the `unique_id` of the service account.
- service_accounts_id (String): Part of `name`. See documentation of `projectsId`.
- opts (KeywordList): [optional] Optional parameters
- :access_token (String): OAuth access token.
- :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.
- :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.
- :pp (Boolean): Pretty-print response.
- :bearer_token (String): OAuth bearer token.
- :oauth_token (String): OAuth 2.0 token for the current user.
- :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.
- :callback (String): JSONP
- :__/xgafv (String): V1 error format.
- :alt (String): Data format for response.
## Returns
{:ok, %GoogleApi.IAM.V1.Model.Empty{}} on success
{:error, info} on failure
"""
@spec iam_projects_service_accounts_delete(Tesla.Env.client, String.t, String.t, keyword()) :: {:ok, GoogleApi.IAM.V1.Model.Empty.t} | {:error, Tesla.Env.t}
def iam_projects_service_accounts_delete(connection, projects_id, service_accounts_id, opts \\ []) do
optional_params = %{
:"access_token" => :query,
:"key" => :query,
:"quotaUser" => :query,
:"pp" => :query,
:"bearer_token" => :query,
:"oauth_token" => :query,
:"upload_protocol" => :query,
:"prettyPrint" => :query,
:"uploadType" => :query,
:"fields" => :query,
:"callback" => :query,
:"$.xgafv" => :query,
:"alt" => :query
}
%{}
|> method(:delete)
|> url("/v1/projects/#{projects_id}/serviceAccounts/#{service_accounts_id}")
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> decode(%GoogleApi.IAM.V1.Model.Empty{})
end
@doc """
Gets a ServiceAccount.
## Parameters
- connection (GoogleApi.IAM.V1.Connection): Connection to server
- projects_id (String): Part of `name`. The resource name of the service account in the following format: `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`. Using `-` as a wildcard for the project will infer the project from the account. The `account` value can be the `email` address or the `unique_id` of the service account.
- service_accounts_id (String): Part of `name`. See documentation of `projectsId`.
- opts (KeywordList): [optional] Optional parameters
- :access_token (String): OAuth access token.
- :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.
- :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.
- :pp (Boolean): Pretty-print response.
- :bearer_token (String): OAuth bearer token.
- :oauth_token (String): OAuth 2.0 token for the current user.
- :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.
- :callback (String): JSONP
- :__/xgafv (String): V1 error format.
- :alt (String): Data format for response.
## Returns
{:ok, %GoogleApi.IAM.V1.Model.ServiceAccount{}} on success
{:error, info} on failure
"""
@spec iam_projects_service_accounts_get(Tesla.Env.client, String.t, String.t, keyword()) :: {:ok, GoogleApi.IAM.V1.Model.ServiceAccount.t} | {:error, Tesla.Env.t}
def iam_projects_service_accounts_get(connection, projects_id, service_accounts_id, opts \\ []) do
optional_params = %{
:"access_token" => :query,
:"key" => :query,
:"quotaUser" => :query,
:"pp" => :query,
:"bearer_token" => :query,
:"oauth_token" => :query,
:"upload_protocol" => :query,
:"prettyPrint" => :query,
:"uploadType" => :query,
:"fields" => :query,
:"callback" => :query,
:"$.xgafv" => :query,
:"alt" => :query
}
%{}
|> method(:get)
|> url("/v1/projects/#{projects_id}/serviceAccounts/#{service_accounts_id}")
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> decode(%GoogleApi.IAM.V1.Model.ServiceAccount{})
end
@doc """
Returns the IAM access control policy for a ServiceAccount.
## Parameters
- connection (GoogleApi.IAM.V1.Connection): Connection to server
- projects_id (String): Part of `resource`. REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.
- service_accounts_id (String): Part of `resource`. See documentation of `projectsId`.
- opts (KeywordList): [optional] Optional parameters
- :access_token (String): OAuth access token.
- :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.
- :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.
- :pp (Boolean): Pretty-print response.
- :bearer_token (String): OAuth bearer token.
- :oauth_token (String): OAuth 2.0 token for the current user.
- :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.
- :callback (String): JSONP
- :__/xgafv (String): V1 error format.
- :alt (String): Data format for response.
## Returns
{:ok, %GoogleApi.IAM.V1.Model.Policy{}} on success
{:error, info} on failure
"""
@spec iam_projects_service_accounts_get_iam_policy(Tesla.Env.client, String.t, String.t, keyword()) :: {:ok, GoogleApi.IAM.V1.Model.Policy.t} | {:error, Tesla.Env.t}
def iam_projects_service_accounts_get_iam_policy(connection, projects_id, service_accounts_id, opts \\ []) do
optional_params = %{
:"access_token" => :query,
:"key" => :query,
:"quotaUser" => :query,
:"pp" => :query,
:"bearer_token" => :query,
:"oauth_token" => :query,
:"upload_protocol" => :query,
:"prettyPrint" => :query,
:"uploadType" => :query,
:"fields" => :query,
:"callback" => :query,
:"$.xgafv" => :query,
:"alt" => :query
}
%{}
|> method(:post)
|> url("/v1/projects/#{projects_id}/serviceAccounts/#{service_accounts_id}:getIamPolicy")
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> decode(%GoogleApi.IAM.V1.Model.Policy{})
end
@doc """
Creates a ServiceAccountKey and returns it.
## Parameters
- connection (GoogleApi.IAM.V1.Connection): Connection to server
- projects_id (String): Part of `name`. The resource name of the service account in the following format: `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`. Using `-` as a wildcard for the project will infer the project from the account. The `account` value can be the `email` address or the `unique_id` of the service account.
- service_accounts_id (String): Part of `name`. See documentation of `projectsId`.
- opts (KeywordList): [optional] Optional parameters
- :access_token (String): OAuth access token.
- :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.
- :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.
- :pp (Boolean): Pretty-print response.
- :bearer_token (String): OAuth bearer token.
- :oauth_token (String): OAuth 2.0 token for the current user.
- :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.
- :callback (String): JSONP
- :__/xgafv (String): V1 error format.
- :alt (String): Data format for response.
- :body (CreateServiceAccountKeyRequest):
## Returns
{:ok, %GoogleApi.IAM.V1.Model.ServiceAccountKey{}} on success
{:error, info} on failure
"""
@spec iam_projects_service_accounts_keys_create(Tesla.Env.client, String.t, String.t, keyword()) :: {:ok, GoogleApi.IAM.V1.Model.ServiceAccountKey.t} | {:error, Tesla.Env.t}
def iam_projects_service_accounts_keys_create(connection, projects_id, service_accounts_id, opts \\ []) do
optional_params = %{
:"access_token" => :query,
:"key" => :query,
:"quotaUser" => :query,
:"pp" => :query,
:"bearer_token" => :query,
:"oauth_token" => :query,
:"upload_protocol" => :query,
:"prettyPrint" => :query,
:"uploadType" => :query,
:"fields" => :query,
:"callback" => :query,
:"$.xgafv" => :query,
:"alt" => :query,
:"body" => :body
}
%{}
|> method(:post)
|> url("/v1/projects/#{projects_id}/serviceAccounts/#{service_accounts_id}/keys")
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> decode(%GoogleApi.IAM.V1.Model.ServiceAccountKey{})
end
@doc """
Deletes a ServiceAccountKey.
## Parameters
- connection (GoogleApi.IAM.V1.Connection): Connection to server
- projects_id (String): Part of `name`. The resource name of the service account key in the following format: `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}/keys/{key}`. Using `-` as a wildcard for the project will infer the project from the account. The `account` value can be the `email` address or the `unique_id` of the service account.
- service_accounts_id (String): Part of `name`. See documentation of `projectsId`.
- keys_id (String): Part of `name`. See documentation of `projectsId`.
- opts (KeywordList): [optional] Optional parameters
- :access_token (String): OAuth access token.
- :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.
- :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.
- :pp (Boolean): Pretty-print response.
- :bearer_token (String): OAuth bearer token.
- :oauth_token (String): OAuth 2.0 token for the current user.
- :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.
- :callback (String): JSONP
- :__/xgafv (String): V1 error format.
- :alt (String): Data format for response.
## Returns
{:ok, %GoogleApi.IAM.V1.Model.Empty{}} on success
{:error, info} on failure
"""
@spec iam_projects_service_accounts_keys_delete(Tesla.Env.client, String.t, String.t, String.t, keyword()) :: {:ok, GoogleApi.IAM.V1.Model.Empty.t} | {:error, Tesla.Env.t}
def iam_projects_service_accounts_keys_delete(connection, projects_id, service_accounts_id, keys_id, opts \\ []) do
optional_params = %{
:"access_token" => :query,
:"key" => :query,
:"quotaUser" => :query,
:"pp" => :query,
:"bearer_token" => :query,
:"oauth_token" => :query,
:"upload_protocol" => :query,
:"prettyPrint" => :query,
:"uploadType" => :query,
:"fields" => :query,
:"callback" => :query,
:"$.xgafv" => :query,
:"alt" => :query
}
%{}
|> method(:delete)
|> url("/v1/projects/#{projects_id}/serviceAccounts/#{service_accounts_id}/keys/#{keys_id}")
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> decode(%GoogleApi.IAM.V1.Model.Empty{})
end
@doc """
Gets the ServiceAccountKey by key id.
## Parameters
- connection (GoogleApi.IAM.V1.Connection): Connection to server
- projects_id (String): Part of `name`. The resource name of the service account key in the following format: `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}/keys/{key}`. Using `-` as a wildcard for the project will infer the project from the account. The `account` value can be the `email` address or the `unique_id` of the service account.
- service_accounts_id (String): Part of `name`. See documentation of `projectsId`.
- keys_id (String): Part of `name`. See documentation of `projectsId`.
- opts (KeywordList): [optional] Optional parameters
- :access_token (String): OAuth access token.
- :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.
- :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.
- :pp (Boolean): Pretty-print response.
- :bearer_token (String): OAuth bearer token.
- :oauth_token (String): OAuth 2.0 token for the current user.
- :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.
- :callback (String): JSONP
- :__/xgafv (String): V1 error format.
- :alt (String): Data format for response.
- :public_key_type (String): The output format of the public key requested. X509_PEM is the default output format.
## Returns
{:ok, %GoogleApi.IAM.V1.Model.ServiceAccountKey{}} on success
{:error, info} on failure
"""
@spec iam_projects_service_accounts_keys_get(Tesla.Env.client, String.t, String.t, String.t, keyword()) :: {:ok, GoogleApi.IAM.V1.Model.ServiceAccountKey.t} | {:error, Tesla.Env.t}
def iam_projects_service_accounts_keys_get(connection, projects_id, service_accounts_id, keys_id, opts \\ []) do
optional_params = %{
:"access_token" => :query,
:"key" => :query,
:"quotaUser" => :query,
:"pp" => :query,
:"bearer_token" => :query,
:"oauth_token" => :query,
:"upload_protocol" => :query,
:"prettyPrint" => :query,
:"uploadType" => :query,
:"fields" => :query,
:"callback" => :query,
:"$.xgafv" => :query,
:"alt" => :query,
:"publicKeyType" => :query
}
%{}
|> method(:get)
|> url("/v1/projects/#{projects_id}/serviceAccounts/#{service_accounts_id}/keys/#{keys_id}")
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> decode(%GoogleApi.IAM.V1.Model.ServiceAccountKey{})
end
@doc """
Lists ServiceAccountKeys.
## Parameters
- connection (GoogleApi.IAM.V1.Connection): Connection to server
- projects_id (String): Part of `name`. The resource name of the service account in the following format: `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`. Using `-` as a wildcard for the project, will infer the project from the account. The `account` value can be the `email` address or the `unique_id` of the service account.
- service_accounts_id (String): Part of `name`. See documentation of `projectsId`.
- opts (KeywordList): [optional] Optional parameters
- :access_token (String): OAuth access token.
- :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.
- :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.
- :pp (Boolean): Pretty-print response.
- :bearer_token (String): OAuth bearer token.
- :oauth_token (String): OAuth 2.0 token for the current user.
- :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.
- :callback (String): JSONP
- :__/xgafv (String): V1 error format.
- :alt (String): Data format for response.
- :key_types (List[String]): Filters the types of keys the user wants to include in the list response. Duplicate key types are not allowed. If no key type is provided, all keys are returned.
## Returns
{:ok, %GoogleApi.IAM.V1.Model.ListServiceAccountKeysResponse{}} on success
{:error, info} on failure
"""
@spec iam_projects_service_accounts_keys_list(Tesla.Env.client, String.t, String.t, keyword()) :: {:ok, GoogleApi.IAM.V1.Model.ListServiceAccountKeysResponse.t} | {:error, Tesla.Env.t}
def iam_projects_service_accounts_keys_list(connection, projects_id, service_accounts_id, opts \\ []) do
optional_params = %{
:"access_token" => :query,
:"key" => :query,
:"quotaUser" => :query,
:"pp" => :query,
:"bearer_token" => :query,
:"oauth_token" => :query,
:"upload_protocol" => :query,
:"prettyPrint" => :query,
:"uploadType" => :query,
:"fields" => :query,
:"callback" => :query,
:"$.xgafv" => :query,
:"alt" => :query,
:"keyTypes" => :query
}
%{}
|> method(:get)
|> url("/v1/projects/#{projects_id}/serviceAccounts/#{service_accounts_id}/keys")
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> decode(%GoogleApi.IAM.V1.Model.ListServiceAccountKeysResponse{})
end
@doc """
Lists ServiceAccounts for a project.
## Parameters
- connection (GoogleApi.IAM.V1.Connection): Connection to server
- projects_id (String): Part of `name`. Required. The resource name of the project associated with the service accounts, such as `projects/my-project-123`.
- opts (KeywordList): [optional] Optional parameters
- :access_token (String): OAuth access token.
- :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.
- :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.
- :pp (Boolean): Pretty-print response.
- :bearer_token (String): OAuth bearer token.
- :oauth_token (String): OAuth 2.0 token for the current user.
- :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.
- :callback (String): JSONP
- :__/xgafv (String): V1 error format.
- :alt (String): Data format for response.
- :page_token (String): Optional pagination token returned in an earlier ListServiceAccountsResponse.next_page_token.
- :page_size (Integer): Optional limit on the number of service accounts to include in the response. Further accounts can subsequently be obtained by including the ListServiceAccountsResponse.next_page_token in a subsequent request.
## Returns
{:ok, %GoogleApi.IAM.V1.Model.ListServiceAccountsResponse{}} on success
{:error, info} on failure
"""
@spec iam_projects_service_accounts_list(Tesla.Env.client, String.t, keyword()) :: {:ok, GoogleApi.IAM.V1.Model.ListServiceAccountsResponse.t} | {:error, Tesla.Env.t}
def iam_projects_service_accounts_list(connection, projects_id, opts \\ []) do
optional_params = %{
:"access_token" => :query,
:"key" => :query,
:"quotaUser" => :query,
:"pp" => :query,
:"bearer_token" => :query,
:"oauth_token" => :query,
:"upload_protocol" => :query,
:"prettyPrint" => :query,
:"uploadType" => :query,
:"fields" => :query,
:"callback" => :query,
:"$.xgafv" => :query,
:"alt" => :query,
:"pageToken" => :query,
:"pageSize" => :query
}
%{}
|> method(:get)
|> url("/v1/projects/#{projects_id}/serviceAccounts")
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> decode(%GoogleApi.IAM.V1.Model.ListServiceAccountsResponse{})
end
@doc """
Sets the IAM access control policy for a ServiceAccount.
## Parameters
- connection (GoogleApi.IAM.V1.Connection): Connection to server
- projects_id (String): Part of `resource`. REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.
- service_accounts_id (String): Part of `resource`. See documentation of `projectsId`.
- opts (KeywordList): [optional] Optional parameters
- :access_token (String): OAuth access token.
- :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.
- :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.
- :pp (Boolean): Pretty-print response.
- :bearer_token (String): OAuth bearer token.
- :oauth_token (String): OAuth 2.0 token for the current user.
- :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.
- :callback (String): JSONP
- :__/xgafv (String): V1 error format.
- :alt (String): Data format for response.
- :body (SetIamPolicyRequest):
## Returns
{:ok, %GoogleApi.IAM.V1.Model.Policy{}} on success
{:error, info} on failure
"""
@spec iam_projects_service_accounts_set_iam_policy(Tesla.Env.client, String.t, String.t, keyword()) :: {:ok, GoogleApi.IAM.V1.Model.Policy.t} | {:error, Tesla.Env.t}
def iam_projects_service_accounts_set_iam_policy(connection, projects_id, service_accounts_id, opts \\ []) do
optional_params = %{
:"access_token" => :query,
:"key" => :query,
:"quotaUser" => :query,
:"pp" => :query,
:"bearer_token" => :query,
:"oauth_token" => :query,
:"upload_protocol" => :query,
:"prettyPrint" => :query,
:"uploadType" => :query,
:"fields" => :query,
:"callback" => :query,
:"$.xgafv" => :query,
:"alt" => :query,
:"body" => :body
}
%{}
|> method(:post)
|> url("/v1/projects/#{projects_id}/serviceAccounts/#{service_accounts_id}:setIamPolicy")
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> decode(%GoogleApi.IAM.V1.Model.Policy{})
end
@doc """
Signs a blob using a service account's system-managed private key.
## Parameters
- connection (GoogleApi.IAM.V1.Connection): Connection to server
- projects_id (String): Part of `name`. The resource name of the service account in the following format: `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`. Using `-` as a wildcard for the project will infer the project from the account. The `account` value can be the `email` address or the `unique_id` of the service account.
- service_accounts_id (String): Part of `name`. See documentation of `projectsId`.
- opts (KeywordList): [optional] Optional parameters
- :access_token (String): OAuth access token.
- :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.
- :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.
- :pp (Boolean): Pretty-print response.
- :bearer_token (String): OAuth bearer token.
- :oauth_token (String): OAuth 2.0 token for the current user.
- :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.
- :callback (String): JSONP
- :__/xgafv (String): V1 error format.
- :alt (String): Data format for response.
- :body (SignBlobRequest):
## Returns
{:ok, %GoogleApi.IAM.V1.Model.SignBlobResponse{}} on success
{:error, info} on failure
"""
@spec iam_projects_service_accounts_sign_blob(Tesla.Env.client, String.t, String.t, keyword()) :: {:ok, GoogleApi.IAM.V1.Model.SignBlobResponse.t} | {:error, Tesla.Env.t}
def iam_projects_service_accounts_sign_blob(connection, projects_id, service_accounts_id, opts \\ []) do
optional_params = %{
:"access_token" => :query,
:"key" => :query,
:"quotaUser" => :query,
:"pp" => :query,
:"bearer_token" => :query,
:"oauth_token" => :query,
:"upload_protocol" => :query,
:"prettyPrint" => :query,
:"uploadType" => :query,
:"fields" => :query,
:"callback" => :query,
:"$.xgafv" => :query,
:"alt" => :query,
:"body" => :body
}
%{}
|> method(:post)
|> url("/v1/projects/#{projects_id}/serviceAccounts/#{service_accounts_id}:signBlob")
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> decode(%GoogleApi.IAM.V1.Model.SignBlobResponse{})
end
@doc """
Signs a JWT using a service account's system-managed private key. If no expiry time (`exp`) is provided in the `SignJwtRequest`, IAM sets an an expiry time of one hour by default. If you request an expiry time of more than one hour, the request will fail.
## Parameters
- connection (GoogleApi.IAM.V1.Connection): Connection to server
- projects_id (String): Part of `name`. The resource name of the service account in the following format: `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`. Using `-` as a wildcard for the project will infer the project from the account. The `account` value can be the `email` address or the `unique_id` of the service account.
- service_accounts_id (String): Part of `name`. See documentation of `projectsId`.
- opts (KeywordList): [optional] Optional parameters
- :access_token (String): OAuth access token.
- :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.
- :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.
- :pp (Boolean): Pretty-print response.
- :bearer_token (String): OAuth bearer token.
- :oauth_token (String): OAuth 2.0 token for the current user.
- :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.
- :callback (String): JSONP
- :__/xgafv (String): V1 error format.
- :alt (String): Data format for response.
- :body (SignJwtRequest):
## Returns
{:ok, %GoogleApi.IAM.V1.Model.SignJwtResponse{}} on success
{:error, info} on failure
"""
@spec iam_projects_service_accounts_sign_jwt(Tesla.Env.client, String.t, String.t, keyword()) :: {:ok, GoogleApi.IAM.V1.Model.SignJwtResponse.t} | {:error, Tesla.Env.t}
def iam_projects_service_accounts_sign_jwt(connection, projects_id, service_accounts_id, opts \\ []) do
optional_params = %{
:"access_token" => :query,
:"key" => :query,
:"quotaUser" => :query,
:"pp" => :query,
:"bearer_token" => :query,
:"oauth_token" => :query,
:"upload_protocol" => :query,
:"prettyPrint" => :query,
:"uploadType" => :query,
:"fields" => :query,
:"callback" => :query,
:"$.xgafv" => :query,
:"alt" => :query,
:"body" => :body
}
%{}
|> method(:post)
|> url("/v1/projects/#{projects_id}/serviceAccounts/#{service_accounts_id}:signJwt")
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> decode(%GoogleApi.IAM.V1.Model.SignJwtResponse{})
end
@doc """
Tests the specified permissions against the IAM access control policy for a ServiceAccount.
## Parameters
- connection (GoogleApi.IAM.V1.Connection): Connection to server
- projects_id (String): Part of `resource`. REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.
- service_accounts_id (String): Part of `resource`. See documentation of `projectsId`.
- opts (KeywordList): [optional] Optional parameters
- :access_token (String): OAuth access token.
- :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.
- :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.
- :pp (Boolean): Pretty-print response.
- :bearer_token (String): OAuth bearer token.
- :oauth_token (String): OAuth 2.0 token for the current user.
- :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.
- :callback (String): JSONP
- :__/xgafv (String): V1 error format.
- :alt (String): Data format for response.
- :body (TestIamPermissionsRequest):
## Returns
{:ok, %GoogleApi.IAM.V1.Model.TestIamPermissionsResponse{}} on success
{:error, info} on failure
"""
@spec iam_projects_service_accounts_test_iam_permissions(Tesla.Env.client, String.t, String.t, keyword()) :: {:ok, GoogleApi.IAM.V1.Model.TestIamPermissionsResponse.t} | {:error, Tesla.Env.t}
def iam_projects_service_accounts_test_iam_permissions(connection, projects_id, service_accounts_id, opts \\ []) do
optional_params = %{
:"access_token" => :query,
:"key" => :query,
:"quotaUser" => :query,
:"pp" => :query,
:"bearer_token" => :query,
:"oauth_token" => :query,
:"upload_protocol" => :query,
:"prettyPrint" => :query,
:"uploadType" => :query,
:"fields" => :query,
:"callback" => :query,
:"$.xgafv" => :query,
:"alt" => :query,
:"body" => :body
}
%{}
|> method(:post)
|> url("/v1/projects/#{projects_id}/serviceAccounts/#{service_accounts_id}:testIamPermissions")
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> decode(%GoogleApi.IAM.V1.Model.TestIamPermissionsResponse{})
end
@doc """
Updates a ServiceAccount. Currently, only the following fields are updatable: `display_name` . The `etag` is mandatory.
## Parameters
- connection (GoogleApi.IAM.V1.Connection): Connection to server
- projects_id (String): Part of `name`. The resource name of the service account in the following format: `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`. Requests using `-` as a wildcard for the project will infer the project from the `account` and the `account` value can be the `email` address or the `unique_id` of the service account. In responses the resource name will always be in the format `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`.
- service_accounts_id (String): Part of `name`. See documentation of `projectsId`.
- opts (KeywordList): [optional] Optional parameters
- :access_token (String): OAuth access token.
- :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.
- :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.
- :pp (Boolean): Pretty-print response.
- :bearer_token (String): OAuth bearer token.
- :oauth_token (String): OAuth 2.0 token for the current user.
- :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.
- :callback (String): JSONP
- :__/xgafv (String): V1 error format.
- :alt (String): Data format for response.
- :body (ServiceAccount):
## Returns
{:ok, %GoogleApi.IAM.V1.Model.ServiceAccount{}} on success
{:error, info} on failure
"""
@spec iam_projects_service_accounts_update(Tesla.Env.client, String.t, String.t, keyword()) :: {:ok, GoogleApi.IAM.V1.Model.ServiceAccount.t} | {:error, Tesla.Env.t}
def iam_projects_service_accounts_update(connection, projects_id, service_accounts_id, opts \\ []) do
optional_params = %{
:"access_token" => :query,
:"key" => :query,
:"quotaUser" => :query,
:"pp" => :query,
:"bearer_token" => :query,
:"oauth_token" => :query,
:"upload_protocol" => :query,
:"prettyPrint" => :query,
:"uploadType" => :query,
:"fields" => :query,
:"callback" => :query,
:"$.xgafv" => :query,
:"alt" => :query,
:"body" => :body
}
%{}
|> method(:put)
|> url("/v1/projects/#{projects_id}/serviceAccounts/#{service_accounts_id}")
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> decode(%GoogleApi.IAM.V1.Model.ServiceAccount{})
end
end