--- api_metadata: apiVersion: "authentication.k8s.io/v1" import: "k8s.io/api/authentication/v1" kind: "TokenRequest" content_type: "api_reference" description: "TokenRequest requests a token for a given service account." title: "TokenRequest" weight: 2 auto_generated: true --- `apiVersion: authentication.k8s.io/v1` `import "k8s.io/api/authentication/v1"` ## TokenRequest {#TokenRequest} TokenRequest requests a token for a given service account.
- **apiVersion**: authentication.k8s.io/v1 - **kind**: TokenRequest - **metadata** (}}">ObjectMeta) - **spec** (}}">TokenRequestSpec), required - **status** (}}">TokenRequestStatus) ## TokenRequestSpec {#TokenRequestSpec} TokenRequestSpec contains client provided parameters of a token request.
- **audiences** ([]string), required Audiences are the intendend audiences of the token. A recipient of a token must identitfy themself with an identifier in the list of audiences of the token, and otherwise should reject the token. A token issued for multiple audiences may be used to authenticate against any of the audiences listed but implies a high degree of trust between the target audiences. - **boundObjectRef** (BoundObjectReference) BoundObjectRef is a reference to an object that the token will be bound to. The token will only be valid for as long as the bound object exists. NOTE: The API server's TokenReview endpoint will validate the BoundObjectRef, but other audiences may not. Keep ExpirationSeconds small if you want prompt revocation. *BoundObjectReference is a reference to an object that a token is bound to.* - **boundObjectRef.apiVersion** (string) API version of the referent. - **boundObjectRef.kind** (string) Kind of the referent. Valid kinds are 'Pod' and 'Secret'. - **boundObjectRef.name** (string) Name of the referent. - **boundObjectRef.uid** (string) UID of the referent. - **expirationSeconds** (int64) ExpirationSeconds is the requested duration of validity of the request. The token issuer may return a token with a different validity duration so a client needs to check the 'expiration' field in a response. ## TokenRequestStatus {#TokenRequestStatus} TokenRequestStatus is the result of a token request.
- **expirationTimestamp** (Time), required ExpirationTimestamp is the time of expiration of the returned token. *Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.* - **token** (string), required Token is the opaque bearer token. ## Operations {#Operations}
### `create` create token of a ServiceAccount #### HTTP Request POST /api/v1/namespaces/{namespace}/serviceaccounts/{name}/token #### Parameters - **name** (*in path*): string, required name of the TokenRequest - **namespace** (*in path*): string, required }}">namespace - **body**: }}">TokenRequest, required - **dryRun** (*in query*): string }}">dryRun - **fieldManager** (*in query*): string }}">fieldManager - **pretty** (*in query*): string }}">pretty #### Response 200 (}}">TokenRequest): OK 201 (}}">TokenRequest): Created 202 (}}">TokenRequest): Accepted 401: Unauthorized