grantapikey

package
v8.16.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 14, 2024 License: Apache-2.0 Imports: 13 Imported by: 4

Documentation

Overview

Grant an API key.

Create an API key on behalf of another user. This API is similar to the create API keys API, however it creates the API key for a user that is different than the user that runs the API. The caller must have authentication credentials (either an access token, or a username and password) for the user on whose behalf the API key will be created. It is not possible to use this API to create an API key without that user’s credentials. The user, for whom the authentication credentials is provided, can optionally "run as" (impersonate) another user. In this case, the API key will be created on behalf of the impersonated user.

This API is intended be used by applications that need to create and manage API keys for end users, but cannot guarantee that those users have permission to create API keys on their own behalf.

A successful grant API key API call returns a JSON structure that contains the API key, its unique id, and its name. If applicable, it also returns expiration information for the API key in milliseconds.

By default, API keys never expire. You can specify expiration information when you create the API keys.

Index

Constants

This section is empty.

Variables

View Source
var ErrBuildPath = errors.New("cannot build path, check for missing path parameters")

ErrBuildPath is returned in case of missing parameters within the build of the request.

Functions

This section is empty.

Types

type GrantApiKey

type GrantApiKey struct {
	// contains filtered or unexported fields
}

func New

Grant an API key.

Create an API key on behalf of another user. This API is similar to the create API keys API, however it creates the API key for a user that is different than the user that runs the API. The caller must have authentication credentials (either an access token, or a username and password) for the user on whose behalf the API key will be created. It is not possible to use this API to create an API key without that user’s credentials. The user, for whom the authentication credentials is provided, can optionally "run as" (impersonate) another user. In this case, the API key will be created on behalf of the impersonated user.

This API is intended be used by applications that need to create and manage API keys for end users, but cannot guarantee that those users have permission to create API keys on their own behalf.

A successful grant API key API call returns a JSON structure that contains the API key, its unique id, and its name. If applicable, it also returns expiration information for the API key in milliseconds.

By default, API keys never expire. You can specify expiration information when you create the API keys.

https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-grant-api-key.html

func (*GrantApiKey) AccessToken added in v8.9.0

func (r *GrantApiKey) AccessToken(accesstoken string) *GrantApiKey

AccessToken The user’s access token. If you specify the `access_token` grant type, this parameter is required. It is not valid with other grant types. API name: access_token

func (*GrantApiKey) ApiKey added in v8.9.0

func (r *GrantApiKey) ApiKey(apikey *types.GrantApiKey) *GrantApiKey

ApiKey Defines the API key. API name: api_key

func (GrantApiKey) Do

func (r GrantApiKey) Do(providedCtx context.Context) (*Response, error)

Do runs the request through the transport, handle the response and returns a grantapikey.Response

func (*GrantApiKey) ErrorTrace added in v8.14.0

func (r *GrantApiKey) ErrorTrace(errortrace bool) *GrantApiKey

ErrorTrace When set to `true` Elasticsearch will include the full stack trace of errors when they occur. API name: error_trace

func (*GrantApiKey) FilterPath added in v8.14.0

func (r *GrantApiKey) FilterPath(filterpaths ...string) *GrantApiKey

FilterPath Comma-separated list of filters in dot notation which reduce the response returned by Elasticsearch. API name: filter_path

func (*GrantApiKey) GrantType added in v8.9.0

func (r *GrantApiKey) GrantType(granttype apikeygranttype.ApiKeyGrantType) *GrantApiKey

GrantType The type of grant. Supported grant types are: `access_token`, `password`. API name: grant_type

func (*GrantApiKey) Header

func (r *GrantApiKey) Header(key, value string) *GrantApiKey

Header set a key, value pair in the GrantApiKey headers map.

func (*GrantApiKey) HttpRequest

func (r *GrantApiKey) HttpRequest(ctx context.Context) (*http.Request, error)

HttpRequest returns the http.Request object built from the given parameters.

func (*GrantApiKey) Human added in v8.14.0

func (r *GrantApiKey) Human(human bool) *GrantApiKey

Human When set to `true` will return statistics in a format suitable for humans. For example `"exists_time": "1h"` for humans and `"eixsts_time_in_millis": 3600000` for computers. When disabled the human readable values will be omitted. This makes sense for responses being consumed only by machines. API name: human

func (*GrantApiKey) Password added in v8.9.0

func (r *GrantApiKey) Password(password string) *GrantApiKey

Password The user’s password. If you specify the `password` grant type, this parameter is required. It is not valid with other grant types. API name: password

func (GrantApiKey) Perform added in v8.7.0

func (r GrantApiKey) Perform(providedCtx context.Context) (*http.Response, error)

Perform runs the http.Request through the provided transport and returns an http.Response.

func (*GrantApiKey) Pretty added in v8.14.0

func (r *GrantApiKey) Pretty(pretty bool) *GrantApiKey

Pretty If set to `true` the returned JSON will be "pretty-formatted". Only use this option for debugging only. API name: pretty

func (*GrantApiKey) Raw

func (r *GrantApiKey) Raw(raw io.Reader) *GrantApiKey

Raw takes a json payload as input which is then passed to the http.Request If specified Raw takes precedence on Request method.

func (*GrantApiKey) Request

func (r *GrantApiKey) Request(req *Request) *GrantApiKey

Request allows to set the request property with the appropriate payload.

func (*GrantApiKey) RunAs added in v8.9.0

func (r *GrantApiKey) RunAs(username string) *GrantApiKey

RunAs The name of the user to be impersonated. API name: run_as

func (*GrantApiKey) Username added in v8.9.0

func (r *GrantApiKey) Username(username string) *GrantApiKey

Username The user name that identifies the user. If you specify the `password` grant type, this parameter is required. It is not valid with other grant types. API name: username

type NewGrantApiKey

type NewGrantApiKey func() *GrantApiKey

NewGrantApiKey type alias for index.

func NewGrantApiKeyFunc

func NewGrantApiKeyFunc(tp elastictransport.Interface) NewGrantApiKey

NewGrantApiKeyFunc returns a new instance of GrantApiKey with the provided transport. Used in the index of the library this allows to retrieve every apis in once place.

type Request

type Request struct {

	// AccessToken The user’s access token.
	// If you specify the `access_token` grant type, this parameter is required.
	// It is not valid with other grant types.
	AccessToken *string `json:"access_token,omitempty"`
	// ApiKey Defines the API key.
	ApiKey types.GrantApiKey `json:"api_key"`
	// GrantType The type of grant. Supported grant types are: `access_token`, `password`.
	GrantType apikeygranttype.ApiKeyGrantType `json:"grant_type"`
	// Password The user’s password. If you specify the `password` grant type, this parameter
	// is required.
	// It is not valid with other grant types.
	Password *string `json:"password,omitempty"`
	// RunAs The name of the user to be impersonated.
	RunAs *string `json:"run_as,omitempty"`
	// Username The user name that identifies the user.
	// If you specify the `password` grant type, this parameter is required.
	// It is not valid with other grant types.
	Username *string `json:"username,omitempty"`
}

Request holds the request body struct for the package grantapikey

https://github.com/elastic/elasticsearch-specification/blob/4fcf747dfafc951e1dcf3077327e3dcee9107db3/specification/security/grant_api_key/SecurityGrantApiKeyRequest.ts#L24-L77

func NewRequest added in v8.5.0

func NewRequest() *Request

NewRequest returns a Request

func (*Request) FromJSON added in v8.5.0

func (r *Request) FromJSON(data string) (*Request, error)

FromJSON allows to load an arbitrary json into the request structure

func (*Request) UnmarshalJSON added in v8.12.1

func (s *Request) UnmarshalJSON(data []byte) error

type Response added in v8.7.0

type Response struct {
	ApiKey     string `json:"api_key"`
	Encoded    string `json:"encoded"`
	Expiration *int64 `json:"expiration,omitempty"`
	Id         string `json:"id"`
	Name       string `json:"name"`
}

Response holds the response body struct for the package grantapikey

https://github.com/elastic/elasticsearch-specification/blob/4fcf747dfafc951e1dcf3077327e3dcee9107db3/specification/security/grant_api_key/SecurityGrantApiKeyResponse.ts#L23-L31

func NewResponse added in v8.7.0

func NewResponse() *Response

NewResponse returns a Response

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL