Returns details about an insight that you specify using its ID.
+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { EKSClient, DescribeInsightCommand } from "@aws-sdk/client-eks"; // ES Modules import + * // const { EKSClient, DescribeInsightCommand } = require("@aws-sdk/client-eks"); // CommonJS import + * const client = new EKSClient(config); + * const input = { // DescribeInsightRequest + * clusterName: "STRING_VALUE", // required + * id: "STRING_VALUE", // required + * }; + * const command = new DescribeInsightCommand(input); + * const response = await client.send(command); + * // { // DescribeInsightResponse + * // insight: { // Insight + * // id: "STRING_VALUE", + * // name: "STRING_VALUE", + * // category: "UPGRADE_READINESS", + * // kubernetesVersion: "STRING_VALUE", + * // lastRefreshTime: new Date("TIMESTAMP"), + * // lastTransitionTime: new Date("TIMESTAMP"), + * // description: "STRING_VALUE", + * // insightStatus: { // InsightStatus + * // status: "PASSING" || "WARNING" || "ERROR" || "UNKNOWN", + * // reason: "STRING_VALUE", + * // }, + * // recommendation: "STRING_VALUE", + * // additionalInfo: { // AdditionalInfoMap + * // "The specified parameter is invalid. Review the available parameters for the API + * request.
+ * + * @throws {@link InvalidRequestException} (client fault) + *The request is invalid given the state of the cluster. Check the state of the cluster + * and the associated operations.
+ * + * @throws {@link ResourceNotFoundException} (client fault) + *The specified resource could not be found. You can view your available clusters with
+ * ListClusters
. You can view your available managed node groups with
+ * ListNodegroups
. Amazon EKS clusters and node groups are Amazon Web Services Region specific.
These errors are usually caused by a server-side issue.
+ * + * @throws {@link EKSServiceException} + *Base exception class for all service exceptions from EKS service.
+ * + */ +export class DescribeInsightCommand extends $Command< + DescribeInsightCommandInput, + DescribeInsightCommandOutput, + EKSClientResolvedConfig +> { + public static getEndpointParameterInstructions(): EndpointParameterInstructions { + return { + UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" }, + Endpoint: { type: "builtInParams", name: "endpoint" }, + Region: { type: "builtInParams", name: "region" }, + UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" }, + }; + } + + /** + * @public + */ + constructor(readonly input: DescribeInsightCommandInput) { + super(); + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStackReturns a list of all insights checked for against the specified cluster. You can filter which insights are returned by category, associated Kubernetes version, and status.
+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { EKSClient, ListInsightsCommand } from "@aws-sdk/client-eks"; // ES Modules import + * // const { EKSClient, ListInsightsCommand } = require("@aws-sdk/client-eks"); // CommonJS import + * const client = new EKSClient(config); + * const input = { // ListInsightsRequest + * clusterName: "STRING_VALUE", // required + * filter: { // InsightsFilter + * categories: [ // CategoryList + * "UPGRADE_READINESS", + * ], + * kubernetesVersions: [ // StringList + * "STRING_VALUE", + * ], + * statuses: [ // InsightStatusValueList + * "PASSING" || "WARNING" || "ERROR" || "UNKNOWN", + * ], + * }, + * maxResults: Number("int"), + * nextToken: "STRING_VALUE", + * }; + * const command = new ListInsightsCommand(input); + * const response = await client.send(command); + * // { // ListInsightsResponse + * // insights: [ // InsightSummaries + * // { // InsightSummary + * // id: "STRING_VALUE", + * // name: "STRING_VALUE", + * // category: "UPGRADE_READINESS", + * // kubernetesVersion: "STRING_VALUE", + * // lastRefreshTime: new Date("TIMESTAMP"), + * // lastTransitionTime: new Date("TIMESTAMP"), + * // description: "STRING_VALUE", + * // insightStatus: { // InsightStatus + * // status: "PASSING" || "WARNING" || "ERROR" || "UNKNOWN", + * // reason: "STRING_VALUE", + * // }, + * // }, + * // ], + * // nextToken: "STRING_VALUE", + * // }; + * + * ``` + * + * @param ListInsightsCommandInput - {@link ListInsightsCommandInput} + * @returns {@link ListInsightsCommandOutput} + * @see {@link ListInsightsCommandInput} for command's `input` shape. + * @see {@link ListInsightsCommandOutput} for command's `response` shape. + * @see {@link EKSClientResolvedConfig | config} for EKSClient's `config` shape. + * + * @throws {@link InvalidParameterException} (client fault) + *The specified parameter is invalid. Review the available parameters for the API + * request.
+ * + * @throws {@link InvalidRequestException} (client fault) + *The request is invalid given the state of the cluster. Check the state of the cluster + * and the associated operations.
+ * + * @throws {@link ResourceNotFoundException} (client fault) + *The specified resource could not be found. You can view your available clusters with
+ * ListClusters
. You can view your available managed node groups with
+ * ListNodegroups
. Amazon EKS clusters and node groups are Amazon Web Services Region specific.
These errors are usually caused by a server-side issue.
+ * + * @throws {@link EKSServiceException} + *Base exception class for all service exceptions from EKS service.
+ * + */ +export class ListInsightsCommand extends $Command< + ListInsightsCommandInput, + ListInsightsCommandOutput, + EKSClientResolvedConfig +> { + public static getEndpointParameterInstructions(): EndpointParameterInstructions { + return { + UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" }, + Endpoint: { type: "builtInParams", name: "endpoint" }, + Region: { type: "builtInParams", name: "region" }, + UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" }, + }; + } + + /** + * @public + */ + constructor(readonly input: ListInsightsCommandInput) { + super(); + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStackThe ARN of the IAM principal for the AccessEntry
. You can specify one ARN for each access entry. You can't specify the
* same ARN in more than one access entry. This value can't be changed after access entry
* creation.
The valid principals differ depending on the type of the access entry in the type
field.
+ * The only valid ARN is IAM roles for the types of access entries for nodes:
+ *
. You can use every IAM principal type for
STANDARD
access entries.
+ * You can't use the STS session principal type with access entries because this is a temporary
+ * principal for each session and not a permanent identity that can be assigned permissions.
* IAM best practices recommend using IAM roles with * temporary credentials, rather than IAM users with long-term credentials. @@ -1413,7 +1418,9 @@ export interface CreateAccessEntryRequest { /** * @public - *
If the principalArn
is for an IAM role that's used for
+ *
The type of the new access entry. Valid values are Standard
,
+ * FARGATE_LINUX
, EC2_LINUX
, and EC2_WINDOWS
.
If the principalArn
is for an IAM role that's used for
* self-managed Amazon EC2 nodes, specify EC2_LINUX
or
* EC2_WINDOWS
. Amazon EKS grants the necessary permissions to the
* node for you. If the principalArn
is for any other purpose, specify
@@ -1756,8 +1763,8 @@ export interface Logging {
export interface ControlPlanePlacementRequest {
/**
* @public
- *
The name of the placement group for the Kubernetes control plane instances. This setting - * can't be changed after cluster creation.
+ *The name of the placement group for the Kubernetes control plane instances. This + * setting can't be changed after cluster creation.
*/ groupName?: string; } @@ -4493,6 +4500,259 @@ export interface DescribeIdentityProviderConfigResponse { identityProviderConfig?: IdentityProviderConfigResponse; } +/** + * @public + */ +export interface DescribeInsightRequest { + /** + * @public + *The name of the cluster to describe the insight for.
+ */ + clusterName: string | undefined; + + /** + * @public + *The identity of the insight to describe.
+ */ + id: string | undefined; +} + +/** + * @public + * @enum + */ +export const Category = { + UPGRADE_READINESS: "UPGRADE_READINESS", +} as const; + +/** + * @public + */ +export type Category = (typeof Category)[keyof typeof Category]; + +/** + * @public + *Details about clients using the deprecated resources.
+ */ +export interface ClientStat { + /** + * @public + *The user agent of the Kubernetes client using the deprecated resource.
+ */ + userAgent?: string; + + /** + * @public + *The number of requests from the Kubernetes client seen over the last 30 days.
+ */ + numberOfRequestsLast30Days?: number; + + /** + * @public + *The timestamp of the last request seen from the Kubernetes client.
+ */ + lastRequestTime?: Date; +} + +/** + * @public + *The summary information about deprecated resource usage for an insight check in the
+ * UPGRADE_READINESS
category.
The deprecated version of the resource.
+ */ + usage?: string; + + /** + * @public + *The newer version of the resource to migrate to if applicable.
+ */ + replacedWith?: string; + + /** + * @public + *The version of the software where the deprecated resource version will stop being served.
+ */ + stopServingVersion?: string; + + /** + * @public + *The version of the software where the newer resource version became available to migrate to if applicable.
+ */ + startServingReplacementVersion?: string; + + /** + * @public + *Details about Kubernetes clients using the deprecated resources.
+ */ + clientStats?: ClientStat[]; +} + +/** + * @public + *Summary information that relates to the category of the insight. Currently only
+ * returned with certain insights having category UPGRADE_READINESS
.
The summary information about deprecated resource usage for an insight check in the
+ * UPGRADE_READINESS
category.
The status of the insight.
+ */ +export interface InsightStatus { + /** + * @public + *The status of the resource.
+ */ + status?: InsightStatusValue; + + /** + * @public + *Explanation on the reasoning for the status of the resource.
+ */ + reason?: string; +} + +/** + * @public + *Returns information about the resource being evaluated.
+ */ +export interface InsightResourceDetail { + /** + * @public + *An object containing more detail on the status of the insight resource.
+ */ + insightStatus?: InsightStatus; + + /** + * @public + *The Kubernetes resource URI if applicable.
+ */ + kubernetesResourceUri?: string; + + /** + * @public + *The Amazon Resource Name (ARN) if applicable.
+ */ + arn?: string; +} + +/** + * @public + *A check that provides recommendations to remedy potential upgrade-impacting issues.
+ */ +export interface Insight { + /** + * @public + *The ID of the insight.
+ */ + id?: string; + + /** + * @public + *The name of the insight.
+ */ + name?: string; + + /** + * @public + *The category of the insight.
+ */ + category?: Category; + + /** + * @public + *The Kubernetes minor version associated with an insight if applicable.
+ */ + kubernetesVersion?: string; + + /** + * @public + *The time Amazon EKS last successfully completed a refresh of this insight check on the cluster.
+ */ + lastRefreshTime?: Date; + + /** + * @public + *The time the status of the insight last changed.
+ */ + lastTransitionTime?: Date; + + /** + * @public + *The description of the insight which includes alert criteria, remediation recommendation, and additional resources (contains Markdown).
+ */ + description?: string; + + /** + * @public + *An object containing more detail on the status of the insight resource.
+ */ + insightStatus?: InsightStatus; + + /** + * @public + *A summary of how to remediate the finding of this insight if applicable.
+ */ + recommendation?: string; + + /** + * @public + *Links to sources that provide additional context on the insight.
+ */ + additionalInfo?: RecordThe details about each resource listed in the insight check result.
+ */ + resources?: InsightResourceDetail[]; + + /** + * @public + *Summary information that relates to the category of the insight. Currently only
+ * returned with certain insights having category UPGRADE_READINESS
.
The full description of the insight.
+ */ + insight?: Insight; +} + /** * @public */ @@ -5153,8 +5413,152 @@ export interface ListIdentityProviderConfigsResponse { /** * @public *The nextToken
value to include in a future
- * ListIdentityProviderConfigsResponse
request. When the results of a
- * ListIdentityProviderConfigsResponse
request exceed
+ * ListIdentityProviderConfigsResponse
request. When the results of a
+ * ListIdentityProviderConfigsResponse
request exceed
+ * maxResults
, you can use this value to retrieve the next page of
+ * results. This value is null
when there are no more results to
+ * return.
This token should be treated as an opaque identifier that is used only to + * retrieve the next items in a list and not for other programmatic purposes.
+ *The criteria to use for the insights.
+ */ +export interface InsightsFilter { + /** + * @public + *The categories to use to filter insights.
+ */ + categories?: Category[]; + + /** + * @public + *The Kubernetes versions to use to filter the insights.
+ */ + kubernetesVersions?: string[]; + + /** + * @public + *The statuses to use to filter the insights.
+ */ + statuses?: InsightStatusValue[]; +} + +/** + * @public + */ +export interface ListInsightsRequest { + /** + * @public + *The name of the Amazon EKS cluster associated with the insights.
+ */ + clusterName: string | undefined; + + /** + * @public + *The criteria to filter your list of insights for your cluster. You can filter which insights are returned by category, associated Kubernetes version, and status.
+ */ + filter?: InsightsFilter; + + /** + * @public + *The maximum number of identity provider configurations returned by
+ * ListInsights
in paginated output. When you use this parameter,
+ * ListInsights
returns only maxResults
results in a single
+ * page along with a nextToken
response element. You can see the remaining
+ * results of the initial request by sending another ListInsights
request with
+ * the returned nextToken
value. This value can be between 1
+ * and 100. If you don't use this parameter, ListInsights
+ * returns up to 100 results and a nextToken
value, if
+ * applicable.
The nextToken
value returned from a previous paginated ListInsights
+ * request. When the results of a ListInsights
request exceed
+ * maxResults
, you can use this value to retrieve the next page of
+ * results. This value is null
when there are no more results to
+ * return.
The summarized description of the insight.
+ */ +export interface InsightSummary { + /** + * @public + *The ID of the insight.
+ */ + id?: string; + + /** + * @public + *The name of the insight.
+ */ + name?: string; + + /** + * @public + *The category of the insight.
+ */ + category?: Category; + + /** + * @public + *The Kubernetes minor version associated with an insight if applicable.
+ */ + kubernetesVersion?: string; + + /** + * @public + *The time Amazon EKS last successfully completed a refresh of this insight check on the cluster.
+ */ + lastRefreshTime?: Date; + + /** + * @public + *The time the status of the insight last changed.
+ */ + lastTransitionTime?: Date; + + /** + * @public + *The description of the insight which includes alert criteria, remediation recommendation, and additional resources (contains Markdown).
+ */ + description?: string; + + /** + * @public + *An object containing more detail on the status of the insight.
+ */ + insightStatus?: InsightStatus; +} + +/** + * @public + */ +export interface ListInsightsResponse { + /** + * @public + *The returned list of insights.
+ */ + insights?: InsightSummary[]; + + /** + * @public + *The nextToken
value to include in a future ListInsights
+ * request. When the results of a ListInsights
request exceed
* maxResults
, you can use this value to retrieve the next page of
* results. This value is null
when there are no more results to
* return.