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 ¶
- Variables
- type GrantApiKey
- func (r *GrantApiKey) AccessToken(accesstoken string) *GrantApiKey
- func (r *GrantApiKey) ApiKey(apikey types.GrantApiKeyVariant) *GrantApiKey
- func (r GrantApiKey) Do(providedCtx context.Context) (*Response, error)
- func (r *GrantApiKey) ErrorTrace(errortrace bool) *GrantApiKey
- func (r *GrantApiKey) FilterPath(filterpaths ...string) *GrantApiKey
- func (r *GrantApiKey) GrantType(granttype apikeygranttype.ApiKeyGrantType) *GrantApiKey
- func (r *GrantApiKey) Header(key, value string) *GrantApiKey
- func (r *GrantApiKey) HttpRequest(ctx context.Context) (*http.Request, error)
- func (r *GrantApiKey) Human(human bool) *GrantApiKey
- func (r *GrantApiKey) Password(password string) *GrantApiKey
- func (r GrantApiKey) Perform(providedCtx context.Context) (*http.Response, error)
- func (r *GrantApiKey) Pretty(pretty bool) *GrantApiKey
- func (r *GrantApiKey) Raw(raw io.Reader) *GrantApiKey
- func (r *GrantApiKey) Request(req *Request) *GrantApiKey
- func (r *GrantApiKey) RunAs(username string) *GrantApiKey
- func (r *GrantApiKey) Username(username string) *GrantApiKey
- type NewGrantApiKey
- type Request
- type Response
Constants ¶
This section is empty.
Variables ¶
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 ¶
func New(tp elastictransport.Interface) *GrantApiKey
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 ¶
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 ¶
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