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
alias GoogleApi.Gax.{Request, Response}
@doc """
Creates a new Role.
## Parameters
- connection (GoogleApi.IAM.V1.Connection): Connection to server
- projects_id (String.t): 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
- :callback (String.t): JSONP
- :oauth_token (String.t): OAuth 2.0 token for the current user.
- :$.xgafv (String.t): V1 error format.
- :alt (String.t): Data format for response.
- :access_token (String.t): OAuth access token.
- :key (String.t): 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.
- :upload_protocol (String.t): Upload protocol for media (e.g. \"raw\", \"multipart\").
- :quotaUser (String.t): 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.
- :prettyPrint (boolean()): Returns response with indentations and line breaks.
- :fields (String.t): Selector specifying which fields to include in a partial response.
- :uploadType (String.t): Legacy upload protocol for media (e.g. \"media\", \"multipart\").
- :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 = %{
:callback => :query,
:oauth_token => :query,
:"$.xgafv" => :query,
:alt => :query,
:access_token => :query,
:key => :query,
:upload_protocol => :query,
:quotaUser => :query,
:prettyPrint => :query,
:fields => :query,
:uploadType => :query,
:body => :body
}
request =
Request.new()
|> Request.method(:post)
|> Request.url("/v1/projects/{projectsId}/roles", %{
"projectsId" => URI.encode_www_form(projects_id)
})
|> Request.add_optional_params(optional_params, opts)
connection
|> Connection.execute(request)
|> Response.decode(struct: %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.t): 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.t): Part of `name`. See documentation of `projectsId`.
- opts (KeywordList): [optional] Optional parameters
- :callback (String.t): JSONP
- :oauth_token (String.t): OAuth 2.0 token for the current user.
- :$.xgafv (String.t): V1 error format.
- :alt (String.t): Data format for response.
- :access_token (String.t): OAuth access token.
- :key (String.t): 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.
- :upload_protocol (String.t): Upload protocol for media (e.g. \"raw\", \"multipart\").
- :quotaUser (String.t): 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.
- :prettyPrint (boolean()): Returns response with indentations and line breaks.
- :fields (String.t): Selector specifying which fields to include in a partial response.
- :uploadType (String.t): Legacy upload protocol for media (e.g. \"media\", \"multipart\").
- :etag (binary()): 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 = %{
:callback => :query,
:oauth_token => :query,
:"$.xgafv" => :query,
:alt => :query,
:access_token => :query,
:key => :query,
:upload_protocol => :query,
:quotaUser => :query,
:prettyPrint => :query,
:fields => :query,
:uploadType => :query,
:etag => :query
}
request =
Request.new()
|> Request.method(:delete)
|> Request.url("/v1/projects/{projectsId}/roles/{rolesId}", %{
"projectsId" => URI.encode_www_form(projects_id),
"rolesId" => URI.encode_www_form(roles_id)
})
|> Request.add_optional_params(optional_params, opts)
connection
|> Connection.execute(request)
|> Response.decode(struct: %GoogleApi.IAM.V1.Model.Role{})
end
@doc """
Gets a Role definition.
## Parameters
- connection (GoogleApi.IAM.V1.Connection): Connection to server
- projects_id (String.t): 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.t): Part of `name`. See documentation of `projectsId`.
- opts (KeywordList): [optional] Optional parameters
- :callback (String.t): JSONP
- :oauth_token (String.t): OAuth 2.0 token for the current user.
- :$.xgafv (String.t): V1 error format.
- :alt (String.t): Data format for response.
- :access_token (String.t): OAuth access token.
- :key (String.t): 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.
- :upload_protocol (String.t): Upload protocol for media (e.g. \"raw\", \"multipart\").
- :quotaUser (String.t): 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.
- :prettyPrint (boolean()): Returns response with indentations and line breaks.
- :fields (String.t): Selector specifying which fields to include in a partial response.
- :uploadType (String.t): Legacy upload protocol for media (e.g. \"media\", \"multipart\").
## 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 = %{
:callback => :query,
:oauth_token => :query,
:"$.xgafv" => :query,
:alt => :query,
:access_token => :query,
:key => :query,
:upload_protocol => :query,
:quotaUser => :query,
:prettyPrint => :query,
:fields => :query,
:uploadType => :query
}
request =
Request.new()
|> Request.method(:get)
|> Request.url("/v1/projects/{projectsId}/roles/{rolesId}", %{
"projectsId" => URI.encode_www_form(projects_id),
"rolesId" => URI.encode_www_form(roles_id)
})
|> Request.add_optional_params(optional_params, opts)
connection
|> Connection.execute(request)
|> Response.decode(struct: %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.t): 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
- :callback (String.t): JSONP
- :oauth_token (String.t): OAuth 2.0 token for the current user.
- :$.xgafv (String.t): V1 error format.
- :alt (String.t): Data format for response.
- :access_token (String.t): OAuth access token.
- :key (String.t): 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.
- :upload_protocol (String.t): Upload protocol for media (e.g. \"raw\", \"multipart\").
- :quotaUser (String.t): 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.
- :prettyPrint (boolean()): Returns response with indentations and line breaks.
- :fields (String.t): Selector specifying which fields to include in a partial response.
- :uploadType (String.t): Legacy upload protocol for media (e.g. \"media\", \"multipart\").
- :pageSize (integer()): Optional limit on the number of roles to include in the response.
- :view (String.t): Optional view for the returned Role objects.
- :showDeleted (boolean()): Include Roles that have been deleted.
- :pageToken (String.t): Optional pagination token returned in an earlier ListRolesResponse.
## 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 = %{
:callback => :query,
:oauth_token => :query,
:"$.xgafv" => :query,
:alt => :query,
:access_token => :query,
:key => :query,
:upload_protocol => :query,
:quotaUser => :query,
:prettyPrint => :query,
:fields => :query,
:uploadType => :query,
:pageSize => :query,
:view => :query,
:showDeleted => :query,
:pageToken => :query
}
request =
Request.new()
|> Request.method(:get)
|> Request.url("/v1/projects/{projectsId}/roles", %{
"projectsId" => URI.encode_www_form(projects_id)
})
|> Request.add_optional_params(optional_params, opts)
connection
|> Connection.execute(request)
|> Response.decode(struct: %GoogleApi.IAM.V1.Model.ListRolesResponse{})
end
@doc """
Updates a Role definition.
## Parameters
- connection (GoogleApi.IAM.V1.Connection): Connection to server
- projects_id (String.t): 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.t): Part of `name`. See documentation of `projectsId`.
- opts (KeywordList): [optional] Optional parameters
- :callback (String.t): JSONP
- :oauth_token (String.t): OAuth 2.0 token for the current user.
- :$.xgafv (String.t): V1 error format.
- :alt (String.t): Data format for response.
- :access_token (String.t): OAuth access token.
- :key (String.t): 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.
- :upload_protocol (String.t): Upload protocol for media (e.g. \"raw\", \"multipart\").
- :quotaUser (String.t): 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.
- :prettyPrint (boolean()): Returns response with indentations and line breaks.
- :fields (String.t): Selector specifying which fields to include in a partial response.
- :uploadType (String.t): Legacy upload protocol for media (e.g. \"media\", \"multipart\").
- :updateMask (String.t): 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 = %{
:callback => :query,
:oauth_token => :query,
:"$.xgafv" => :query,
:alt => :query,
:access_token => :query,
:key => :query,
:upload_protocol => :query,
:quotaUser => :query,
:prettyPrint => :query,
:fields => :query,
:uploadType => :query,
:updateMask => :query,
:body => :body
}
request =
Request.new()
|> Request.method(:patch)
|> Request.url("/v1/projects/{projectsId}/roles/{rolesId}", %{
"projectsId" => URI.encode_www_form(projects_id),
"rolesId" => URI.encode_www_form(roles_id)
})
|> Request.add_optional_params(optional_params, opts)
connection
|> Connection.execute(request)
|> Response.decode(struct: %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.t): 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.t): Part of `name`. See documentation of `projectsId`.
- opts (KeywordList): [optional] Optional parameters
- :callback (String.t): JSONP
- :oauth_token (String.t): OAuth 2.0 token for the current user.
- :$.xgafv (String.t): V1 error format.
- :alt (String.t): Data format for response.
- :access_token (String.t): OAuth access token.
- :key (String.t): 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.
- :upload_protocol (String.t): Upload protocol for media (e.g. \"raw\", \"multipart\").
- :quotaUser (String.t): 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.
- :prettyPrint (boolean()): Returns response with indentations and line breaks.
- :fields (String.t): Selector specifying which fields to include in a partial response.
- :uploadType (String.t): Legacy upload protocol for media (e.g. \"media\", \"multipart\").
- :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 = %{
:callback => :query,
:oauth_token => :query,
:"$.xgafv" => :query,
:alt => :query,
:access_token => :query,
:key => :query,
:upload_protocol => :query,
:quotaUser => :query,
:prettyPrint => :query,
:fields => :query,
:uploadType => :query,
:body => :body
}
request =
Request.new()
|> Request.method(:post)
|> Request.url("/v1/projects/{projectsId}/roles/{rolesId}:undelete", %{
"projectsId" => URI.encode_www_form(projects_id),
"rolesId" => URI.encode_www_form(roles_id)
})
|> Request.add_optional_params(optional_params, opts)
connection
|> Connection.execute(request)
|> Response.decode(struct: %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.t): 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
- :callback (String.t): JSONP
- :oauth_token (String.t): OAuth 2.0 token for the current user.
- :$.xgafv (String.t): V1 error format.
- :alt (String.t): Data format for response.
- :access_token (String.t): OAuth access token.
- :key (String.t): 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.
- :upload_protocol (String.t): Upload protocol for media (e.g. \"raw\", \"multipart\").
- :quotaUser (String.t): 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.
- :prettyPrint (boolean()): Returns response with indentations and line breaks.
- :fields (String.t): Selector specifying which fields to include in a partial response.
- :uploadType (String.t): Legacy upload protocol for media (e.g. \"media\", \"multipart\").
- :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 = %{
:callback => :query,
:oauth_token => :query,
:"$.xgafv" => :query,
:alt => :query,
:access_token => :query,
:key => :query,
:upload_protocol => :query,
:quotaUser => :query,
:prettyPrint => :query,
:fields => :query,
:uploadType => :query,
:body => :body
}
request =
Request.new()
|> Request.method(:post)
|> Request.url("/v1/projects/{projectsId}/serviceAccounts", %{
"projectsId" => URI.encode_www_form(projects_id)
})
|> Request.add_optional_params(optional_params, opts)
connection
|> Connection.execute(request)
|> Response.decode(struct: %GoogleApi.IAM.V1.Model.ServiceAccount{})
end
@doc """
Deletes a ServiceAccount.
## Parameters
- connection (GoogleApi.IAM.V1.Connection): Connection to server
- projects_id (String.t): Part of `name`. The resource name of the service account in the following format: `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. Using `-` as a wildcard for the `PROJECT_ID` 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.t): Part of `name`. See documentation of `projectsId`.
- opts (KeywordList): [optional] Optional parameters
- :callback (String.t): JSONP
- :oauth_token (String.t): OAuth 2.0 token for the current user.
- :$.xgafv (String.t): V1 error format.
- :alt (String.t): Data format for response.
- :access_token (String.t): OAuth access token.
- :key (String.t): 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.
- :upload_protocol (String.t): Upload protocol for media (e.g. \"raw\", \"multipart\").
- :quotaUser (String.t): 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.
- :prettyPrint (boolean()): Returns response with indentations and line breaks.
- :fields (String.t): Selector specifying which fields to include in a partial response.
- :uploadType (String.t): Legacy upload protocol for media (e.g. \"media\", \"multipart\").
## 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 = %{
:callback => :query,
:oauth_token => :query,
:"$.xgafv" => :query,
:alt => :query,
:access_token => :query,
:key => :query,
:upload_protocol => :query,
:quotaUser => :query,
:prettyPrint => :query,
:fields => :query,
:uploadType => :query
}
request =
Request.new()
|> Request.method(:delete)
|> Request.url("/v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}", %{
"projectsId" => URI.encode_www_form(projects_id),
"serviceAccountsId" => URI.encode_www_form(service_accounts_id)
})
|> Request.add_optional_params(optional_params, opts)
connection
|> Connection.execute(request)
|> Response.decode(struct: %GoogleApi.IAM.V1.Model.Empty{})
end
@doc """
Gets a ServiceAccount.
## Parameters
- connection (GoogleApi.IAM.V1.Connection): Connection to server
- projects_id (String.t): Part of `name`. The resource name of the service account in the following format: `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. Using `-` as a wildcard for the `PROJECT_ID` 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.t): Part of `name`. See documentation of `projectsId`.
- opts (KeywordList): [optional] Optional parameters
- :callback (String.t): JSONP
- :oauth_token (String.t): OAuth 2.0 token for the current user.
- :$.xgafv (String.t): V1 error format.
- :alt (String.t): Data format for response.
- :access_token (String.t): OAuth access token.
- :key (String.t): 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.
- :upload_protocol (String.t): Upload protocol for media (e.g. \"raw\", \"multipart\").
- :quotaUser (String.t): 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.
- :prettyPrint (boolean()): Returns response with indentations and line breaks.
- :fields (String.t): Selector specifying which fields to include in a partial response.
- :uploadType (String.t): Legacy upload protocol for media (e.g. \"media\", \"multipart\").
## 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 = %{
:callback => :query,
:oauth_token => :query,
:"$.xgafv" => :query,
:alt => :query,
:access_token => :query,
:key => :query,
:upload_protocol => :query,
:quotaUser => :query,
:prettyPrint => :query,
:fields => :query,
:uploadType => :query
}
request =
Request.new()
|> Request.method(:get)
|> Request.url("/v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}", %{
"projectsId" => URI.encode_www_form(projects_id),
"serviceAccountsId" => URI.encode_www_form(service_accounts_id)
})
|> Request.add_optional_params(optional_params, opts)
connection
|> Connection.execute(request)
|> Response.decode(struct: %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.t): 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.t): Part of `resource`. See documentation of `projectsId`.
- opts (KeywordList): [optional] Optional parameters
- :callback (String.t): JSONP
- :oauth_token (String.t): OAuth 2.0 token for the current user.
- :$.xgafv (String.t): V1 error format.
- :alt (String.t): Data format for response.
- :access_token (String.t): OAuth access token.
- :key (String.t): 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.
- :upload_protocol (String.t): Upload protocol for media (e.g. \"raw\", \"multipart\").
- :quotaUser (String.t): 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.
- :prettyPrint (boolean()): Returns response with indentations and line breaks.
- :fields (String.t): Selector specifying which fields to include in a partial response.
- :uploadType (String.t): Legacy upload protocol for media (e.g. \"media\", \"multipart\").
## 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 = %{
:callback => :query,
:oauth_token => :query,
:"$.xgafv" => :query,
:alt => :query,
:access_token => :query,
:key => :query,
:upload_protocol => :query,
:quotaUser => :query,
:prettyPrint => :query,
:fields => :query,
:uploadType => :query
}
request =
Request.new()
|> Request.method(:post)
|> Request.url(
"/v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}:getIamPolicy",
%{
"projectsId" => URI.encode_www_form(projects_id),
"serviceAccountsId" => URI.encode_www_form(service_accounts_id)
}
)
|> Request.add_optional_params(optional_params, opts)
connection
|> Connection.execute(request)
|> Response.decode(struct: %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.t): Part of `name`. The resource name of the service account in the following format: `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. Using `-` as a wildcard for the `PROJECT_ID` 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.t): Part of `name`. See documentation of `projectsId`.
- opts (KeywordList): [optional] Optional parameters
- :callback (String.t): JSONP
- :oauth_token (String.t): OAuth 2.0 token for the current user.
- :$.xgafv (String.t): V1 error format.
- :alt (String.t): Data format for response.
- :access_token (String.t): OAuth access token.
- :key (String.t): 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.
- :upload_protocol (String.t): Upload protocol for media (e.g. \"raw\", \"multipart\").
- :quotaUser (String.t): 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.
- :prettyPrint (boolean()): Returns response with indentations and line breaks.
- :fields (String.t): Selector specifying which fields to include in a partial response.
- :uploadType (String.t): Legacy upload protocol for media (e.g. \"media\", \"multipart\").
- :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 = %{
:callback => :query,
:oauth_token => :query,
:"$.xgafv" => :query,
:alt => :query,
:access_token => :query,
:key => :query,
:upload_protocol => :query,
:quotaUser => :query,
:prettyPrint => :query,
:fields => :query,
:uploadType => :query,
:body => :body
}
request =
Request.new()
|> Request.method(:post)
|> Request.url("/v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}/keys", %{
"projectsId" => URI.encode_www_form(projects_id),
"serviceAccountsId" => URI.encode_www_form(service_accounts_id)
})
|> Request.add_optional_params(optional_params, opts)
connection
|> Connection.execute(request)
|> Response.decode(struct: %GoogleApi.IAM.V1.Model.ServiceAccountKey{})
end
@doc """
Deletes a ServiceAccountKey.
## Parameters
- connection (GoogleApi.IAM.V1.Connection): Connection to server
- projects_id (String.t): Part of `name`. The resource name of the service account key in the following format: `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{key}`. Using `-` as a wildcard for the `PROJECT_ID` 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.t): Part of `name`. See documentation of `projectsId`.
- keys_id (String.t): Part of `name`. See documentation of `projectsId`.
- opts (KeywordList): [optional] Optional parameters
- :callback (String.t): JSONP
- :oauth_token (String.t): OAuth 2.0 token for the current user.
- :$.xgafv (String.t): V1 error format.
- :alt (String.t): Data format for response.
- :access_token (String.t): OAuth access token.
- :key (String.t): 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.
- :upload_protocol (String.t): Upload protocol for media (e.g. \"raw\", \"multipart\").
- :quotaUser (String.t): 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.
- :prettyPrint (boolean()): Returns response with indentations and line breaks.
- :fields (String.t): Selector specifying which fields to include in a partial response.
- :uploadType (String.t): Legacy upload protocol for media (e.g. \"media\", \"multipart\").
## 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 = %{
:callback => :query,
:oauth_token => :query,
:"$.xgafv" => :query,
:alt => :query,
:access_token => :query,
:key => :query,
:upload_protocol => :query,
:quotaUser => :query,
:prettyPrint => :query,
:fields => :query,
:uploadType => :query
}
request =
Request.new()
|> Request.method(:delete)
|> Request.url(
"/v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}/keys/{keysId}",
%{
"projectsId" => URI.encode_www_form(projects_id),
"serviceAccountsId" => URI.encode_www_form(service_accounts_id),
"keysId" => URI.encode_www_form(keys_id)
}
)
|> Request.add_optional_params(optional_params, opts)
connection
|> Connection.execute(request)
|> Response.decode(struct: %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.t): Part of `name`. The resource name of the service account key in the following format: `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{key}`. Using `-` as a wildcard for the `PROJECT_ID` 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.t): Part of `name`. See documentation of `projectsId`.
- keys_id (String.t): Part of `name`. See documentation of `projectsId`.
- opts (KeywordList): [optional] Optional parameters
- :callback (String.t): JSONP
- :oauth_token (String.t): OAuth 2.0 token for the current user.
- :$.xgafv (String.t): V1 error format.
- :alt (String.t): Data format for response.
- :access_token (String.t): OAuth access token.
- :key (String.t): 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.
- :upload_protocol (String.t): Upload protocol for media (e.g. \"raw\", \"multipart\").
- :quotaUser (String.t): 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.
- :prettyPrint (boolean()): Returns response with indentations and line breaks.
- :fields (String.t): Selector specifying which fields to include in a partial response.
- :uploadType (String.t): Legacy upload protocol for media (e.g. \"media\", \"multipart\").
- :publicKeyType (String.t): 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 = %{
:callback => :query,
:oauth_token => :query,
:"$.xgafv" => :query,
:alt => :query,
:access_token => :query,
:key => :query,
:upload_protocol => :query,
:quotaUser => :query,
:prettyPrint => :query,
:fields => :query,
:uploadType => :query,
:publicKeyType => :query
}
request =
Request.new()
|> Request.method(:get)
|> Request.url(
"/v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}/keys/{keysId}",
%{
"projectsId" => URI.encode_www_form(projects_id),
"serviceAccountsId" => URI.encode_www_form(service_accounts_id),
"keysId" => URI.encode_www_form(keys_id)
}
)
|> Request.add_optional_params(optional_params, opts)
connection
|> Connection.execute(request)
|> Response.decode(struct: %GoogleApi.IAM.V1.Model.ServiceAccountKey{})
end
@doc """
Lists ServiceAccountKeys.
## Parameters
- connection (GoogleApi.IAM.V1.Connection): Connection to server
- projects_id (String.t): Part of `name`. The resource name of the service account in the following format: `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. Using `-` as a wildcard for the `PROJECT_ID`, 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.t): Part of `name`. See documentation of `projectsId`.
- opts (KeywordList): [optional] Optional parameters
- :callback (String.t): JSONP
- :oauth_token (String.t): OAuth 2.0 token for the current user.
- :$.xgafv (String.t): V1 error format.
- :alt (String.t): Data format for response.
- :access_token (String.t): OAuth access token.
- :key (String.t): 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.
- :upload_protocol (String.t): Upload protocol for media (e.g. \"raw\", \"multipart\").
- :quotaUser (String.t): 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.
- :prettyPrint (boolean()): Returns response with indentations and line breaks.
- :fields (String.t): Selector specifying which fields to include in a partial response.
- :uploadType (String.t): Legacy upload protocol for media (e.g. \"media\", \"multipart\").
- :keyTypes ([String.t]): 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 = %{
:callback => :query,
:oauth_token => :query,
:"$.xgafv" => :query,
:alt => :query,
:access_token => :query,
:key => :query,
:upload_protocol => :query,
:quotaUser => :query,
:prettyPrint => :query,
:fields => :query,
:uploadType => :query,
:keyTypes => :query
}
request =
Request.new()
|> Request.method(:get)
|> Request.url("/v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}/keys", %{
"projectsId" => URI.encode_www_form(projects_id),
"serviceAccountsId" => URI.encode_www_form(service_accounts_id)
})
|> Request.add_optional_params(optional_params, opts)
connection
|> Connection.execute(request)
|> Response.decode(struct: %GoogleApi.IAM.V1.Model.ListServiceAccountKeysResponse{})
end
@doc """
Lists ServiceAccounts for a project.
## Parameters
- connection (GoogleApi.IAM.V1.Connection): Connection to server
- projects_id (String.t): 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
- :callback (String.t): JSONP
- :oauth_token (String.t): OAuth 2.0 token for the current user.
- :$.xgafv (String.t): V1 error format.
- :alt (String.t): Data format for response.
- :access_token (String.t): OAuth access token.
- :key (String.t): 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.
- :upload_protocol (String.t): Upload protocol for media (e.g. \"raw\", \"multipart\").
- :quotaUser (String.t): 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.
- :prettyPrint (boolean()): Returns response with indentations and line breaks.
- :fields (String.t): Selector specifying which fields to include in a partial response.
- :uploadType (String.t): Legacy upload protocol for media (e.g. \"media\", \"multipart\").
- :pageSize (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.
- :pageToken (String.t): Optional pagination token returned in an earlier ListServiceAccountsResponse.next_page_token.
## 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 = %{
:callback => :query,
:oauth_token => :query,
:"$.xgafv" => :query,
:alt => :query,
:access_token => :query,
:key => :query,
:upload_protocol => :query,
:quotaUser => :query,
:prettyPrint => :query,
:fields => :query,
:uploadType => :query,
:pageSize => :query,
:pageToken => :query
}
request =
Request.new()
|> Request.method(:get)
|> Request.url("/v1/projects/{projectsId}/serviceAccounts", %{
"projectsId" => URI.encode_www_form(projects_id)
})
|> Request.add_optional_params(optional_params, opts)
connection
|> Connection.execute(request)
|> Response.decode(struct: %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.t): 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.t): Part of `resource`. See documentation of `projectsId`.
- opts (KeywordList): [optional] Optional parameters
- :callback (String.t): JSONP
- :oauth_token (String.t): OAuth 2.0 token for the current user.
- :$.xgafv (String.t): V1 error format.
- :alt (String.t): Data format for response.
- :access_token (String.t): OAuth access token.
- :key (String.t): 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.
- :upload_protocol (String.t): Upload protocol for media (e.g. \"raw\", \"multipart\").
- :quotaUser (String.t): 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.
- :prettyPrint (boolean()): Returns response with indentations and line breaks.
- :fields (String.t): Selector specifying which fields to include in a partial response.
- :uploadType (String.t): Legacy upload protocol for media (e.g. \"media\", \"multipart\").
- :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 = %{
:callback => :query,
:oauth_token => :query,
:"$.xgafv" => :query,
:alt => :query,
:access_token => :query,
:key => :query,
:upload_protocol => :query,
:quotaUser => :query,
:prettyPrint => :query,
:fields => :query,
:uploadType => :query,
:body => :body
}
request =
Request.new()
|> Request.method(:post)
|> Request.url(
"/v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}:setIamPolicy",
%{
"projectsId" => URI.encode_www_form(projects_id),
"serviceAccountsId" => URI.encode_www_form(service_accounts_id)
}
)
|> Request.add_optional_params(optional_params, opts)
connection
|> Connection.execute(request)
|> Response.decode(struct: %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.t): Part of `name`. The resource name of the service account in the following format: `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. Using `-` as a wildcard for the `PROJECT_ID` 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.t): Part of `name`. See documentation of `projectsId`.
- opts (KeywordList): [optional] Optional parameters
- :callback (String.t): JSONP
- :oauth_token (String.t): OAuth 2.0 token for the current user.
- :$.xgafv (String.t): V1 error format.
- :alt (String.t): Data format for response.
- :access_token (String.t): OAuth access token.
- :key (String.t): 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.
- :upload_protocol (String.t): Upload protocol for media (e.g. \"raw\", \"multipart\").
- :quotaUser (String.t): 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.
- :prettyPrint (boolean()): Returns response with indentations and line breaks.
- :fields (String.t): Selector specifying which fields to include in a partial response.
- :uploadType (String.t): Legacy upload protocol for media (e.g. \"media\", \"multipart\").
- :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 = %{
:callback => :query,
:oauth_token => :query,
:"$.xgafv" => :query,
:alt => :query,
:access_token => :query,
:key => :query,
:upload_protocol => :query,
:quotaUser => :query,
:prettyPrint => :query,
:fields => :query,
:uploadType => :query,
:body => :body
}
request =
Request.new()
|> Request.method(:post)
|> Request.url("/v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}:signBlob", %{
"projectsId" => URI.encode_www_form(projects_id),
"serviceAccountsId" => URI.encode_www_form(service_accounts_id)
})
|> Request.add_optional_params(optional_params, opts)
connection
|> Connection.execute(request)
|> Response.decode(struct: %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.t): Part of `name`. The resource name of the service account in the following format: `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. Using `-` as a wildcard for the `PROJECT_ID` 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.t): Part of `name`. See documentation of `projectsId`.
- opts (KeywordList): [optional] Optional parameters
- :callback (String.t): JSONP
- :oauth_token (String.t): OAuth 2.0 token for the current user.
- :$.xgafv (String.t): V1 error format.
- :alt (String.t): Data format for response.
- :access_token (String.t): OAuth access token.
- :key (String.t): 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.
- :upload_protocol (String.t): Upload protocol for media (e.g. \"raw\", \"multipart\").
- :quotaUser (String.t): 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.
- :prettyPrint (boolean()): Returns response with indentations and line breaks.
- :fields (String.t): Selector specifying which fields to include in a partial response.
- :uploadType (String.t): Legacy upload protocol for media (e.g. \"media\", \"multipart\").
- :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 = %{
:callback => :query,
:oauth_token => :query,
:"$.xgafv" => :query,
:alt => :query,
:access_token => :query,
:key => :query,
:upload_protocol => :query,
:quotaUser => :query,
:prettyPrint => :query,
:fields => :query,
:uploadType => :query,
:body => :body
}
request =
Request.new()
|> Request.method(:post)
|> Request.url("/v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}:signJwt", %{
"projectsId" => URI.encode_www_form(projects_id),
"serviceAccountsId" => URI.encode_www_form(service_accounts_id)
})
|> Request.add_optional_params(optional_params, opts)
connection
|> Connection.execute(request)
|> Response.decode(struct: %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.t): 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.t): Part of `resource`. See documentation of `projectsId`.
- opts (KeywordList): [optional] Optional parameters
- :callback (String.t): JSONP
- :oauth_token (String.t): OAuth 2.0 token for the current user.
- :$.xgafv (String.t): V1 error format.
- :alt (String.t): Data format for response.
- :access_token (String.t): OAuth access token.
- :key (String.t): 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.
- :upload_protocol (String.t): Upload protocol for media (e.g. \"raw\", \"multipart\").
- :quotaUser (String.t): 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.
- :prettyPrint (boolean()): Returns response with indentations and line breaks.
- :fields (String.t): Selector specifying which fields to include in a partial response.
- :uploadType (String.t): Legacy upload protocol for media (e.g. \"media\", \"multipart\").
- :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 = %{
:callback => :query,
:oauth_token => :query,
:"$.xgafv" => :query,
:alt => :query,
:access_token => :query,
:key => :query,
:upload_protocol => :query,
:quotaUser => :query,
:prettyPrint => :query,
:fields => :query,
:uploadType => :query,
:body => :body
}
request =
Request.new()
|> Request.method(:post)
|> Request.url(
"/v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}:testIamPermissions",
%{
"projectsId" => URI.encode_www_form(projects_id),
"serviceAccountsId" => URI.encode_www_form(service_accounts_id)
}
)
|> Request.add_optional_params(optional_params, opts)
connection
|> Connection.execute(request)
|> Response.decode(struct: %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.t): Part of `name`. The resource name of the service account in the following format: `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. Requests using `-` as a wildcard for the `PROJECT_ID` 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/{ACCOUNT}`.
- service_accounts_id (String.t): Part of `name`. See documentation of `projectsId`.
- opts (KeywordList): [optional] Optional parameters
- :callback (String.t): JSONP
- :oauth_token (String.t): OAuth 2.0 token for the current user.
- :$.xgafv (String.t): V1 error format.
- :alt (String.t): Data format for response.
- :access_token (String.t): OAuth access token.
- :key (String.t): 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.
- :upload_protocol (String.t): Upload protocol for media (e.g. \"raw\", \"multipart\").
- :quotaUser (String.t): 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.
- :prettyPrint (boolean()): Returns response with indentations and line breaks.
- :fields (String.t): Selector specifying which fields to include in a partial response.
- :uploadType (String.t): Legacy upload protocol for media (e.g. \"media\", \"multipart\").
- :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 = %{
:callback => :query,
:oauth_token => :query,
:"$.xgafv" => :query,
:alt => :query,
:access_token => :query,
:key => :query,
:upload_protocol => :query,
:quotaUser => :query,
:prettyPrint => :query,
:fields => :query,
:uploadType => :query,
:body => :body
}
request =
Request.new()
|> Request.method(:put)
|> Request.url("/v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}", %{
"projectsId" => URI.encode_www_form(projects_id),
"serviceAccountsId" => URI.encode_www_form(service_accounts_id)
})
|> Request.add_optional_params(optional_params, opts)
connection
|> Connection.execute(request)
|> Response.decode(struct: %GoogleApi.IAM.V1.Model.ServiceAccount{})
end
end