grantapikey

package
v9.0.0 Latest Latest
Warning

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

Go to latest
Published: Apr 17, 2025 License: Apache-2.0 Imports: 13 Imported by: 0

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 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 supported user authentication credential types are:

* username and password * Elasticsearch access tokens * JWTs

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. The API keys are created by the Elasticsearch API key service, which is automatically enabled.

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 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 supported user authentication credential types are:

* username and password * Elasticsearch access tokens * JWTs

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. The API keys are created by the Elasticsearch API key service, which is automatically enabled.

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/docs/api/doc/elasticsearch/v9/operation/operation-security-grant-api-key

func (*GrantApiKey) AccessToken

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

func (*GrantApiKey) Username

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

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 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/52c473efb1fb5320a5bac12572d0b285882862fb/specification/security/grant_api_key/SecurityGrantApiKeyRequest.ts#L24-L92

func NewRequest

func NewRequest() *Request

NewRequest returns a Request

func (*Request) FromJSON

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

FromJSON allows to load an arbitrary json into the request structure

func (*Request) UnmarshalJSON

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

type Response

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/52c473efb1fb5320a5bac12572d0b285882862fb/specification/security/grant_api_key/SecurityGrantApiKeyResponse.ts#L23-L31

func NewResponse

func NewResponse() *Response

NewResponse returns a Response