import {
  AccessScopeType,
  AddonIssueCode,
  AddonStatus,
  AMITypes,
  ArgoCdRole,
  AuthenticationMode,
  CapabilityDeletePropagationPolicy,
  CapabilityIssueCode,
  CapabilityStatus,
  CapabilityType,
  CapacityTypes,
  Category,
  ClusterIssueCode,
  ClusterStatus,
  ClusterVersionStatus,
  ConfigStatus,
  ConnectorConfigProvider,
  EksAnywhereSubscriptionLicenseType,
  EksAnywhereSubscriptionStatus,
  EksAnywhereSubscriptionTermUnit,
  ErrorCode,
  FargateProfileIssueCode,
  FargateProfileStatus,
  InsightsRefreshStatus,
  InsightStatusValue,
  IpFamily,
  LogType,
  NodegroupIssueCode,
  NodegroupStatus,
  NodegroupUpdateStrategies,
  ProvisionedControlPlaneTier,
  RepairAction,
  ResolveConflicts,
  SsoIdentityType,
  SupportType,
  TaintEffect,
  UpdateParamType,
  UpdateStatus,
  UpdateType,
  VersionStatus,
  WarmPoolState,
} from "./enums";
export interface AccessConfigResponse {
  bootstrapClusterCreatorAdminPermissions?: boolean | undefined;
  authenticationMode?: AuthenticationMode | undefined;
}
export interface AccessEntry {
  clusterName?: string | undefined;
  principalArn?: string | undefined;
  kubernetesGroups?: string[] | undefined;
  accessEntryArn?: string | undefined;
  createdAt?: Date | undefined;
  modifiedAt?: Date | undefined;
  tags?: Record<string, string> | undefined;
  username?: string | undefined;
  type?: string | undefined;
}
export interface AccessPolicy {
  name?: string | undefined;
  arn?: string | undefined;
}
export interface AccessScope {
  type?: AccessScopeType | undefined;
  namespaces?: string[] | undefined;
}
export interface AddonIssue {
  code?: AddonIssueCode | undefined;
  message?: string | undefined;
  resourceIds?: string[] | undefined;
}
export interface AddonHealth {
  issues?: AddonIssue[] | undefined;
}
export interface MarketplaceInformation {
  productId?: string | undefined;
  productUrl?: string | undefined;
}
export interface AddonNamespaceConfigResponse {
  namespace?: string | undefined;
}
export interface Addon {
  addonName?: string | undefined;
  clusterName?: string | undefined;
  status?: AddonStatus | undefined;
  addonVersion?: string | undefined;
  health?: AddonHealth | undefined;
  addonArn?: string | undefined;
  createdAt?: Date | undefined;
  modifiedAt?: Date | undefined;
  serviceAccountRoleArn?: string | undefined;
  tags?: Record<string, string> | undefined;
  publisher?: string | undefined;
  owner?: string | undefined;
  marketplaceInformation?: MarketplaceInformation | undefined;
  configurationValues?: string | undefined;
  podIdentityAssociations?: string[] | undefined;
  namespaceConfig?: AddonNamespaceConfigResponse | undefined;
}
export interface AddonCompatibilityDetail {
  name?: string | undefined;
  compatibleVersions?: string[] | undefined;
}
export interface Compatibility {
  clusterVersion?: string | undefined;
  platformVersions?: string[] | undefined;
  defaultVersion?: boolean | undefined;
}
export interface AddonVersionInfo {
  addonVersion?: string | undefined;
  architecture?: string[] | undefined;
  computeTypes?: string[] | undefined;
  compatibilities?: Compatibility[] | undefined;
  requiresConfiguration?: boolean | undefined;
  requiresIamPermissions?: boolean | undefined;
}
export interface AddonInfo {
  addonName?: string | undefined;
  type?: string | undefined;
  addonVersions?: AddonVersionInfo[] | undefined;
  publisher?: string | undefined;
  owner?: string | undefined;
  marketplaceInformation?: MarketplaceInformation | undefined;
  defaultNamespace?: string | undefined;
}
export interface AddonNamespaceConfigRequest {
  namespace?: string | undefined;
}
export interface AddonPodIdentityAssociations {
  serviceAccount: string | undefined;
  roleArn: string | undefined;
}
export interface AddonPodIdentityConfiguration {
  serviceAccount?: string | undefined;
  recommendedManagedPolicies?: string[] | undefined;
}
export interface ArgoCdAwsIdcConfigRequest {
  idcInstanceArn: string | undefined;
  idcRegion?: string | undefined;
}
export interface ArgoCdAwsIdcConfigResponse {
  idcInstanceArn?: string | undefined;
  idcRegion?: string | undefined;
  idcManagedApplicationArn?: string | undefined;
}
export interface ArgoCdNetworkAccessConfigRequest {
  vpceIds?: string[] | undefined;
}
export interface SsoIdentity {
  id: string | undefined;
  type: SsoIdentityType | undefined;
}
export interface ArgoCdRoleMapping {
  role: ArgoCdRole | undefined;
  identities: SsoIdentity[] | undefined;
}
export interface ArgoCdConfigRequest {
  namespace?: string | undefined;
  awsIdc: ArgoCdAwsIdcConfigRequest | undefined;
  rbacRoleMappings?: ArgoCdRoleMapping[] | undefined;
  networkAccess?: ArgoCdNetworkAccessConfigRequest | undefined;
}
export interface ArgoCdNetworkAccessConfigResponse {
  vpceIds?: string[] | undefined;
}
export interface ArgoCdConfigResponse {
  namespace?: string | undefined;
  awsIdc?: ArgoCdAwsIdcConfigResponse | undefined;
  rbacRoleMappings?: ArgoCdRoleMapping[] | undefined;
  networkAccess?: ArgoCdNetworkAccessConfigResponse | undefined;
  serverUrl?: string | undefined;
}
export interface AssociateAccessPolicyRequest {
  clusterName: string | undefined;
  principalArn: string | undefined;
  policyArn: string | undefined;
  accessScope: AccessScope | undefined;
}
export interface AssociatedAccessPolicy {
  policyArn?: string | undefined;
  accessScope?: AccessScope | undefined;
  associatedAt?: Date | undefined;
  modifiedAt?: Date | undefined;
}
export interface AssociateAccessPolicyResponse {
  clusterName?: string | undefined;
  principalArn?: string | undefined;
  associatedAccessPolicy?: AssociatedAccessPolicy | undefined;
}
export interface Provider {
  keyArn?: string | undefined;
}
export interface EncryptionConfig {
  resources?: string[] | undefined;
  provider?: Provider | undefined;
}
export interface AssociateEncryptionConfigRequest {
  clusterName: string | undefined;
  encryptionConfig: EncryptionConfig[] | undefined;
  clientRequestToken?: string | undefined;
}
export interface ErrorDetail {
  errorCode?: ErrorCode | undefined;
  errorMessage?: string | undefined;
  resourceIds?: string[] | undefined;
}
export interface UpdateParam {
  type?: UpdateParamType | undefined;
  value?: string | undefined;
}
export interface Update {
  id?: string | undefined;
  status?: UpdateStatus | undefined;
  type?: UpdateType | undefined;
  params?: UpdateParam[] | undefined;
  createdAt?: Date | undefined;
  errors?: ErrorDetail[] | undefined;
}
export interface AssociateEncryptionConfigResponse {
  update?: Update | undefined;
}
export interface OidcIdentityProviderConfigRequest {
  identityProviderConfigName: string | undefined;
  issuerUrl: string | undefined;
  clientId: string | undefined;
  usernameClaim?: string | undefined;
  usernamePrefix?: string | undefined;
  groupsClaim?: string | undefined;
  groupsPrefix?: string | undefined;
  requiredClaims?: Record<string, string> | undefined;
}
export interface AssociateIdentityProviderConfigRequest {
  clusterName: string | undefined;
  oidc: OidcIdentityProviderConfigRequest | undefined;
  tags?: Record<string, string> | undefined;
  clientRequestToken?: string | undefined;
}
export interface AssociateIdentityProviderConfigResponse {
  update?: Update | undefined;
  tags?: Record<string, string> | undefined;
}
export interface AutoScalingGroup {
  name?: string | undefined;
}
export interface CreateAccessEntryRequest {
  clusterName: string | undefined;
  principalArn: string | undefined;
  kubernetesGroups?: string[] | undefined;
  tags?: Record<string, string> | undefined;
  clientRequestToken?: string | undefined;
  username?: string | undefined;
  type?: string | undefined;
}
export interface CreateAccessEntryResponse {
  accessEntry?: AccessEntry | undefined;
}
export interface CreateAddonRequest {
  clusterName: string | undefined;
  addonName: string | undefined;
  addonVersion?: string | undefined;
  serviceAccountRoleArn?: string | undefined;
  resolveConflicts?: ResolveConflicts | undefined;
  clientRequestToken?: string | undefined;
  tags?: Record<string, string> | undefined;
  configurationValues?: string | undefined;
  podIdentityAssociations?: AddonPodIdentityAssociations[] | undefined;
  namespaceConfig?: AddonNamespaceConfigRequest | undefined;
}
export interface CreateAddonResponse {
  addon?: Addon | undefined;
}
export interface CapabilityConfigurationRequest {
  argoCd?: ArgoCdConfigRequest | undefined;
}
export interface CreateCapabilityRequest {
  capabilityName: string | undefined;
  clusterName: string | undefined;
  clientRequestToken?: string | undefined;
  type: CapabilityType | undefined;
  roleArn: string | undefined;
  configuration?: CapabilityConfigurationRequest | undefined;
  tags?: Record<string, string> | undefined;
  deletePropagationPolicy: CapabilityDeletePropagationPolicy | undefined;
}
export interface CapabilityConfigurationResponse {
  argoCd?: ArgoCdConfigResponse | undefined;
}
export interface CapabilityIssue {
  code?: CapabilityIssueCode | undefined;
  message?: string | undefined;
}
export interface CapabilityHealth {
  issues?: CapabilityIssue[] | undefined;
}
export interface Capability {
  capabilityName?: string | undefined;
  arn?: string | undefined;
  clusterName?: string | undefined;
  type?: CapabilityType | undefined;
  roleArn?: string | undefined;
  status?: CapabilityStatus | undefined;
  version?: string | undefined;
  configuration?: CapabilityConfigurationResponse | undefined;
  tags?: Record<string, string> | undefined;
  health?: CapabilityHealth | undefined;
  createdAt?: Date | undefined;
  modifiedAt?: Date | undefined;
  deletePropagationPolicy?: CapabilityDeletePropagationPolicy | undefined;
}
export interface CreateCapabilityResponse {
  capability?: Capability | undefined;
}
export interface CreateAccessConfigRequest {
  bootstrapClusterCreatorAdminPermissions?: boolean | undefined;
  authenticationMode?: AuthenticationMode | undefined;
}
export interface ComputeConfigRequest {
  enabled?: boolean | undefined;
  nodePools?: string[] | undefined;
  nodeRoleArn?: string | undefined;
}
export interface ControlPlaneScalingConfig {
  tier?: ProvisionedControlPlaneTier | undefined;
}
export interface ElasticLoadBalancing {
  enabled?: boolean | undefined;
}
export interface KubernetesNetworkConfigRequest {
  serviceIpv4Cidr?: string | undefined;
  ipFamily?: IpFamily | undefined;
  elasticLoadBalancing?: ElasticLoadBalancing | undefined;
}
export interface LogSetup {
  types?: LogType[] | undefined;
  enabled?: boolean | undefined;
}
export interface Logging {
  clusterLogging?: LogSetup[] | undefined;
}
export interface ControlPlanePlacementRequest {
  groupName?: string | undefined;
}
export interface OutpostConfigRequest {
  outpostArns: string[] | undefined;
  controlPlaneInstanceType: string | undefined;
  controlPlanePlacement?: ControlPlanePlacementRequest | undefined;
}
export interface RemoteNodeNetwork {
  cidrs?: string[] | undefined;
}
export interface RemotePodNetwork {
  cidrs?: string[] | undefined;
}
export interface RemoteNetworkConfigRequest {
  remoteNodeNetworks?: RemoteNodeNetwork[] | undefined;
  remotePodNetworks?: RemotePodNetwork[] | undefined;
}
export interface VpcConfigRequest {
  subnetIds?: string[] | undefined;
  securityGroupIds?: string[] | undefined;
  endpointPublicAccess?: boolean | undefined;
  endpointPrivateAccess?: boolean | undefined;
  publicAccessCidrs?: string[] | undefined;
}
export interface BlockStorage {
  enabled?: boolean | undefined;
}
export interface StorageConfigRequest {
  blockStorage?: BlockStorage | undefined;
}
export interface UpgradePolicyRequest {
  supportType?: SupportType | undefined;
}
export interface ZonalShiftConfigRequest {
  enabled?: boolean | undefined;
}
export interface CreateClusterRequest {
  name: string | undefined;
  version?: string | undefined;
  roleArn: string | undefined;
  resourcesVpcConfig: VpcConfigRequest | undefined;
  kubernetesNetworkConfig?: KubernetesNetworkConfigRequest | undefined;
  logging?: Logging | undefined;
  clientRequestToken?: string | undefined;
  tags?: Record<string, string> | undefined;
  encryptionConfig?: EncryptionConfig[] | undefined;
  outpostConfig?: OutpostConfigRequest | undefined;
  accessConfig?: CreateAccessConfigRequest | undefined;
  bootstrapSelfManagedAddons?: boolean | undefined;
  upgradePolicy?: UpgradePolicyRequest | undefined;
  zonalShiftConfig?: ZonalShiftConfigRequest | undefined;
  remoteNetworkConfig?: RemoteNetworkConfigRequest | undefined;
  computeConfig?: ComputeConfigRequest | undefined;
  storageConfig?: StorageConfigRequest | undefined;
  deletionProtection?: boolean | undefined;
  controlPlaneScalingConfig?: ControlPlaneScalingConfig | undefined;
}
export interface Certificate {
  data?: string | undefined;
}
export interface ComputeConfigResponse {
  enabled?: boolean | undefined;
  nodePools?: string[] | undefined;
  nodeRoleArn?: string | undefined;
}
export interface ConnectorConfigResponse {
  activationId?: string | undefined;
  activationCode?: string | undefined;
  activationExpiry?: Date | undefined;
  provider?: string | undefined;
  roleArn?: string | undefined;
}
export interface ClusterIssue {
  code?: ClusterIssueCode | undefined;
  message?: string | undefined;
  resourceIds?: string[] | undefined;
}
export interface ClusterHealth {
  issues?: ClusterIssue[] | undefined;
}
export interface OIDC {
  issuer?: string | undefined;
}
export interface Identity {
  oidc?: OIDC | undefined;
}
export interface KubernetesNetworkConfigResponse {
  serviceIpv4Cidr?: string | undefined;
  serviceIpv6Cidr?: string | undefined;
  ipFamily?: IpFamily | undefined;
  elasticLoadBalancing?: ElasticLoadBalancing | undefined;
}
export interface ControlPlanePlacementResponse {
  groupName?: string | undefined;
}
export interface OutpostConfigResponse {
  outpostArns: string[] | undefined;
  controlPlaneInstanceType: string | undefined;
  controlPlanePlacement?: ControlPlanePlacementResponse | undefined;
}
export interface RemoteNetworkConfigResponse {
  remoteNodeNetworks?: RemoteNodeNetwork[] | undefined;
  remotePodNetworks?: RemotePodNetwork[] | undefined;
}
export interface VpcConfigResponse {
  subnetIds?: string[] | undefined;
  securityGroupIds?: string[] | undefined;
  clusterSecurityGroupId?: string | undefined;
  vpcId?: string | undefined;
  endpointPublicAccess?: boolean | undefined;
  endpointPrivateAccess?: boolean | undefined;
  publicAccessCidrs?: string[] | undefined;
}
export interface StorageConfigResponse {
  blockStorage?: BlockStorage | undefined;
}
export interface UpgradePolicyResponse {
  supportType?: SupportType | undefined;
}
export interface ZonalShiftConfigResponse {
  enabled?: boolean | undefined;
}
export interface Cluster {
  name?: string | undefined;
  arn?: string | undefined;
  createdAt?: Date | undefined;
  version?: string | undefined;
  endpoint?: string | undefined;
  roleArn?: string | undefined;
  resourcesVpcConfig?: VpcConfigResponse | undefined;
  kubernetesNetworkConfig?: KubernetesNetworkConfigResponse | undefined;
  logging?: Logging | undefined;
  identity?: Identity | undefined;
  status?: ClusterStatus | undefined;
  certificateAuthority?: Certificate | undefined;
  clientRequestToken?: string | undefined;
  platformVersion?: string | undefined;
  tags?: Record<string, string> | undefined;
  encryptionConfig?: EncryptionConfig[] | undefined;
  connectorConfig?: ConnectorConfigResponse | undefined;
  id?: string | undefined;
  health?: ClusterHealth | undefined;
  outpostConfig?: OutpostConfigResponse | undefined;
  accessConfig?: AccessConfigResponse | undefined;
  upgradePolicy?: UpgradePolicyResponse | undefined;
  zonalShiftConfig?: ZonalShiftConfigResponse | undefined;
  remoteNetworkConfig?: RemoteNetworkConfigResponse | undefined;
  computeConfig?: ComputeConfigResponse | undefined;
  storageConfig?: StorageConfigResponse | undefined;
  deletionProtection?: boolean | undefined;
  controlPlaneScalingConfig?: ControlPlaneScalingConfig | undefined;
}
export interface CreateClusterResponse {
  cluster?: Cluster | undefined;
}
export interface EksAnywhereSubscriptionTerm {
  duration?: number | undefined;
  unit?: EksAnywhereSubscriptionTermUnit | undefined;
}
export interface CreateEksAnywhereSubscriptionRequest {
  name: string | undefined;
  term: EksAnywhereSubscriptionTerm | undefined;
  licenseQuantity?: number | undefined;
  licenseType?: EksAnywhereSubscriptionLicenseType | undefined;
  autoRenew?: boolean | undefined;
  clientRequestToken?: string | undefined;
  tags?: Record<string, string> | undefined;
}
export interface License {
  id?: string | undefined;
  token?: string | undefined;
}
export interface EksAnywhereSubscription {
  id?: string | undefined;
  arn?: string | undefined;
  createdAt?: Date | undefined;
  effectiveDate?: Date | undefined;
  expirationDate?: Date | undefined;
  licenseQuantity?: number | undefined;
  licenseType?: EksAnywhereSubscriptionLicenseType | undefined;
  term?: EksAnywhereSubscriptionTerm | undefined;
  status?: string | undefined;
  autoRenew?: boolean | undefined;
  licenseArns?: string[] | undefined;
  licenses?: License[] | undefined;
  tags?: Record<string, string> | undefined;
}
export interface CreateEksAnywhereSubscriptionResponse {
  subscription?: EksAnywhereSubscription | undefined;
}
export interface FargateProfileSelector {
  namespace?: string | undefined;
  labels?: Record<string, string> | undefined;
}
export interface CreateFargateProfileRequest {
  fargateProfileName: string | undefined;
  clusterName: string | undefined;
  podExecutionRoleArn: string | undefined;
  subnets?: string[] | undefined;
  selectors?: FargateProfileSelector[] | undefined;
  clientRequestToken?: string | undefined;
  tags?: Record<string, string> | undefined;
}
export interface FargateProfileIssue {
  code?: FargateProfileIssueCode | undefined;
  message?: string | undefined;
  resourceIds?: string[] | undefined;
}
export interface FargateProfileHealth {
  issues?: FargateProfileIssue[] | undefined;
}
export interface FargateProfile {
  fargateProfileName?: string | undefined;
  fargateProfileArn?: string | undefined;
  clusterName?: string | undefined;
  createdAt?: Date | undefined;
  podExecutionRoleArn?: string | undefined;
  subnets?: string[] | undefined;
  selectors?: FargateProfileSelector[] | undefined;
  status?: FargateProfileStatus | undefined;
  tags?: Record<string, string> | undefined;
  health?: FargateProfileHealth | undefined;
}
export interface CreateFargateProfileResponse {
  fargateProfile?: FargateProfile | undefined;
}
export interface LaunchTemplateSpecification {
  name?: string | undefined;
  version?: string | undefined;
  id?: string | undefined;
}
export interface NodeRepairConfigOverrides {
  nodeMonitoringCondition?: string | undefined;
  nodeUnhealthyReason?: string | undefined;
  minRepairWaitTimeMins?: number | undefined;
  repairAction?: RepairAction | undefined;
}
export interface NodeRepairConfig {
  enabled?: boolean | undefined;
  maxUnhealthyNodeThresholdCount?: number | undefined;
  maxUnhealthyNodeThresholdPercentage?: number | undefined;
  maxParallelNodesRepairedCount?: number | undefined;
  maxParallelNodesRepairedPercentage?: number | undefined;
  nodeRepairConfigOverrides?: NodeRepairConfigOverrides[] | undefined;
}
export interface RemoteAccessConfig {
  ec2SshKey?: string | undefined;
  sourceSecurityGroups?: string[] | undefined;
}
export interface NodegroupScalingConfig {
  minSize?: number | undefined;
  maxSize?: number | undefined;
  desiredSize?: number | undefined;
}
export interface Taint {
  key?: string | undefined;
  value?: string | undefined;
  effect?: TaintEffect | undefined;
}
export interface NodegroupUpdateConfig {
  maxUnavailable?: number | undefined;
  maxUnavailablePercentage?: number | undefined;
  updateStrategy?: NodegroupUpdateStrategies | undefined;
}
export interface WarmPoolConfig {
  enabled?: boolean | undefined;
  minSize?: number | undefined;
  maxGroupPreparedCapacity?: number | undefined;
  poolState?: WarmPoolState | undefined;
  reuseOnScaleIn?: boolean | undefined;
}
export interface CreateNodegroupRequest {
  clusterName: string | undefined;
  nodegroupName: string | undefined;
  scalingConfig?: NodegroupScalingConfig | undefined;
  diskSize?: number | undefined;
  subnets: string[] | undefined;
  instanceTypes?: string[] | undefined;
  amiType?: AMITypes | undefined;
  remoteAccess?: RemoteAccessConfig | undefined;
  nodeRole: string | undefined;
  labels?: Record<string, string> | undefined;
  taints?: Taint[] | undefined;
  tags?: Record<string, string> | undefined;
  clientRequestToken?: string | undefined;
  launchTemplate?: LaunchTemplateSpecification | undefined;
  updateConfig?: NodegroupUpdateConfig | undefined;
  nodeRepairConfig?: NodeRepairConfig | undefined;
  capacityType?: CapacityTypes | undefined;
  version?: string | undefined;
  releaseVersion?: string | undefined;
  warmPoolConfig?: WarmPoolConfig | undefined;
}
export interface Issue {
  code?: NodegroupIssueCode | undefined;
  message?: string | undefined;
  resourceIds?: string[] | undefined;
}
export interface NodegroupHealth {
  issues?: Issue[] | undefined;
}
export interface NodegroupResources {
  autoScalingGroups?: AutoScalingGroup[] | undefined;
  remoteAccessSecurityGroup?: string | undefined;
}
export interface Nodegroup {
  nodegroupName?: string | undefined;
  nodegroupArn?: string | undefined;
  clusterName?: string | undefined;
  version?: string | undefined;
  releaseVersion?: string | undefined;
  createdAt?: Date | undefined;
  modifiedAt?: Date | undefined;
  status?: NodegroupStatus | undefined;
  capacityType?: CapacityTypes | undefined;
  scalingConfig?: NodegroupScalingConfig | undefined;
  instanceTypes?: string[] | undefined;
  subnets?: string[] | undefined;
  remoteAccess?: RemoteAccessConfig | undefined;
  amiType?: AMITypes | undefined;
  nodeRole?: string | undefined;
  labels?: Record<string, string> | undefined;
  taints?: Taint[] | undefined;
  resources?: NodegroupResources | undefined;
  diskSize?: number | undefined;
  health?: NodegroupHealth | undefined;
  updateConfig?: NodegroupUpdateConfig | undefined;
  nodeRepairConfig?: NodeRepairConfig | undefined;
  launchTemplate?: LaunchTemplateSpecification | undefined;
  tags?: Record<string, string> | undefined;
  warmPoolConfig?: WarmPoolConfig | undefined;
}
export interface CreateNodegroupResponse {
  nodegroup?: Nodegroup | undefined;
}
export interface CreatePodIdentityAssociationRequest {
  clusterName: string | undefined;
  namespace: string | undefined;
  serviceAccount: string | undefined;
  roleArn: string | undefined;
  clientRequestToken?: string | undefined;
  tags?: Record<string, string> | undefined;
  disableSessionTags?: boolean | undefined;
  targetRoleArn?: string | undefined;
  policy?: string | undefined;
}
export interface PodIdentityAssociation {
  clusterName?: string | undefined;
  namespace?: string | undefined;
  serviceAccount?: string | undefined;
  roleArn?: string | undefined;
  associationArn?: string | undefined;
  associationId?: string | undefined;
  tags?: Record<string, string> | undefined;
  createdAt?: Date | undefined;
  modifiedAt?: Date | undefined;
  ownerArn?: string | undefined;
  disableSessionTags?: boolean | undefined;
  targetRoleArn?: string | undefined;
  externalId?: string | undefined;
  policy?: string | undefined;
}
export interface CreatePodIdentityAssociationResponse {
  association?: PodIdentityAssociation | undefined;
}
export interface DeleteAccessEntryRequest {
  clusterName: string | undefined;
  principalArn: string | undefined;
}
export interface DeleteAccessEntryResponse {}
export interface DeleteAddonRequest {
  clusterName: string | undefined;
  addonName: string | undefined;
  preserve?: boolean | undefined;
}
export interface DeleteAddonResponse {
  addon?: Addon | undefined;
}
export interface DeleteCapabilityRequest {
  clusterName: string | undefined;
  capabilityName: string | undefined;
}
export interface DeleteCapabilityResponse {
  capability?: Capability | undefined;
}
export interface DeleteClusterRequest {
  name: string | undefined;
}
export interface DeleteClusterResponse {
  cluster?: Cluster | undefined;
}
export interface DeleteEksAnywhereSubscriptionRequest {
  id: string | undefined;
}
export interface DeleteEksAnywhereSubscriptionResponse {
  subscription?: EksAnywhereSubscription | undefined;
}
export interface DeleteFargateProfileRequest {
  clusterName: string | undefined;
  fargateProfileName: string | undefined;
}
export interface DeleteFargateProfileResponse {
  fargateProfile?: FargateProfile | undefined;
}
export interface DeleteNodegroupRequest {
  clusterName: string | undefined;
  nodegroupName: string | undefined;
}
export interface DeleteNodegroupResponse {
  nodegroup?: Nodegroup | undefined;
}
export interface DeletePodIdentityAssociationRequest {
  clusterName: string | undefined;
  associationId: string | undefined;
}
export interface DeletePodIdentityAssociationResponse {
  association?: PodIdentityAssociation | undefined;
}
export interface DeregisterClusterRequest {
  name: string | undefined;
}
export interface DeregisterClusterResponse {
  cluster?: Cluster | undefined;
}
export interface DescribeAccessEntryRequest {
  clusterName: string | undefined;
  principalArn: string | undefined;
}
export interface DescribeAccessEntryResponse {
  accessEntry?: AccessEntry | undefined;
}
export interface DescribeAddonRequest {
  clusterName: string | undefined;
  addonName: string | undefined;
}
export interface DescribeAddonResponse {
  addon?: Addon | undefined;
}
export interface DescribeAddonConfigurationRequest {
  addonName: string | undefined;
  addonVersion: string | undefined;
}
export interface DescribeAddonConfigurationResponse {
  addonName?: string | undefined;
  addonVersion?: string | undefined;
  configurationSchema?: string | undefined;
  podIdentityConfiguration?: AddonPodIdentityConfiguration[] | undefined;
}
export interface DescribeAddonVersionsRequest {
  kubernetesVersion?: string | undefined;
  maxResults?: number | undefined;
  nextToken?: string | undefined;
  addonName?: string | undefined;
  types?: string[] | undefined;
  publishers?: string[] | undefined;
  owners?: string[] | undefined;
}
export interface DescribeAddonVersionsResponse {
  addons?: AddonInfo[] | undefined;
  nextToken?: string | undefined;
}
export interface DescribeCapabilityRequest {
  clusterName: string | undefined;
  capabilityName: string | undefined;
}
export interface DescribeCapabilityResponse {
  capability?: Capability | undefined;
}
export interface DescribeClusterRequest {
  name: string | undefined;
}
export interface DescribeClusterResponse {
  cluster?: Cluster | undefined;
}
export interface DescribeClusterVersionsRequest {
  clusterType?: string | undefined;
  maxResults?: number | undefined;
  nextToken?: string | undefined;
  defaultOnly?: boolean | undefined;
  includeAll?: boolean | undefined;
  clusterVersions?: string[] | undefined;
  status?: ClusterVersionStatus | undefined;
  versionStatus?: VersionStatus | undefined;
}
export interface ClusterVersionInformation {
  clusterVersion?: string | undefined;
  clusterType?: string | undefined;
  defaultPlatformVersion?: string | undefined;
  defaultVersion?: boolean | undefined;
  releaseDate?: Date | undefined;
  endOfStandardSupportDate?: Date | undefined;
  endOfExtendedSupportDate?: Date | undefined;
  status?: ClusterVersionStatus | undefined;
  versionStatus?: VersionStatus | undefined;
  kubernetesPatchVersion?: string | undefined;
}
export interface DescribeClusterVersionsResponse {
  nextToken?: string | undefined;
  clusterVersions?: ClusterVersionInformation[] | undefined;
}
export interface DescribeEksAnywhereSubscriptionRequest {
  id: string | undefined;
}
export interface DescribeEksAnywhereSubscriptionResponse {
  subscription?: EksAnywhereSubscription | undefined;
}
export interface DescribeFargateProfileRequest {
  clusterName: string | undefined;
  fargateProfileName: string | undefined;
}
export interface DescribeFargateProfileResponse {
  fargateProfile?: FargateProfile | undefined;
}
export interface IdentityProviderConfig {
  type: string | undefined;
  name: string | undefined;
}
export interface DescribeIdentityProviderConfigRequest {
  clusterName: string | undefined;
  identityProviderConfig: IdentityProviderConfig | undefined;
}
export interface OidcIdentityProviderConfig {
  identityProviderConfigName?: string | undefined;
  identityProviderConfigArn?: string | undefined;
  clusterName?: string | undefined;
  issuerUrl?: string | undefined;
  clientId?: string | undefined;
  usernameClaim?: string | undefined;
  usernamePrefix?: string | undefined;
  groupsClaim?: string | undefined;
  groupsPrefix?: string | undefined;
  requiredClaims?: Record<string, string> | undefined;
  tags?: Record<string, string> | undefined;
  status?: ConfigStatus | undefined;
}
export interface IdentityProviderConfigResponse {
  oidc?: OidcIdentityProviderConfig | undefined;
}
export interface DescribeIdentityProviderConfigResponse {
  identityProviderConfig?: IdentityProviderConfigResponse | undefined;
}
export interface DescribeInsightRequest {
  clusterName: string | undefined;
  id: string | undefined;
}
export interface ClientStat {
  userAgent?: string | undefined;
  numberOfRequestsLast30Days?: number | undefined;
  lastRequestTime?: Date | undefined;
}
export interface DeprecationDetail {
  usage?: string | undefined;
  replacedWith?: string | undefined;
  stopServingVersion?: string | undefined;
  startServingReplacementVersion?: string | undefined;
  clientStats?: ClientStat[] | undefined;
}
export interface InsightCategorySpecificSummary {
  deprecationDetails?: DeprecationDetail[] | undefined;
  addonCompatibilityDetails?: AddonCompatibilityDetail[] | undefined;
}
export interface InsightStatus {
  status?: InsightStatusValue | undefined;
  reason?: string | undefined;
}
export interface InsightResourceDetail {
  insightStatus?: InsightStatus | undefined;
  kubernetesResourceUri?: string | undefined;
  arn?: string | undefined;
}
export interface Insight {
  id?: string | undefined;
  name?: string | undefined;
  category?: Category | undefined;
  kubernetesVersion?: string | undefined;
  lastRefreshTime?: Date | undefined;
  lastTransitionTime?: Date | undefined;
  description?: string | undefined;
  insightStatus?: InsightStatus | undefined;
  recommendation?: string | undefined;
  additionalInfo?: Record<string, string> | undefined;
  resources?: InsightResourceDetail[] | undefined;
  categorySpecificSummary?: InsightCategorySpecificSummary | undefined;
}
export interface DescribeInsightResponse {
  insight?: Insight | undefined;
}
export interface DescribeInsightsRefreshRequest {
  clusterName: string | undefined;
}
export interface DescribeInsightsRefreshResponse {
  message?: string | undefined;
  status?: InsightsRefreshStatus | undefined;
  startedAt?: Date | undefined;
  endedAt?: Date | undefined;
}
export interface DescribeNodegroupRequest {
  clusterName: string | undefined;
  nodegroupName: string | undefined;
}
export interface DescribeNodegroupResponse {
  nodegroup?: Nodegroup | undefined;
}
export interface DescribePodIdentityAssociationRequest {
  clusterName: string | undefined;
  associationId: string | undefined;
}
export interface DescribePodIdentityAssociationResponse {
  association?: PodIdentityAssociation | undefined;
}
export interface DescribeUpdateRequest {
  name: string | undefined;
  updateId: string | undefined;
  nodegroupName?: string | undefined;
  addonName?: string | undefined;
  capabilityName?: string | undefined;
}
export interface DescribeUpdateResponse {
  update?: Update | undefined;
}
export interface DisassociateAccessPolicyRequest {
  clusterName: string | undefined;
  principalArn: string | undefined;
  policyArn: string | undefined;
}
export interface DisassociateAccessPolicyResponse {}
export interface DisassociateIdentityProviderConfigRequest {
  clusterName: string | undefined;
  identityProviderConfig: IdentityProviderConfig | undefined;
  clientRequestToken?: string | undefined;
}
export interface DisassociateIdentityProviderConfigResponse {
  update?: Update | undefined;
}
export interface ListAccessEntriesRequest {
  clusterName: string | undefined;
  associatedPolicyArn?: string | undefined;
  maxResults?: number | undefined;
  nextToken?: string | undefined;
}
export interface ListAccessEntriesResponse {
  accessEntries?: string[] | undefined;
  nextToken?: string | undefined;
}
export interface ListAccessPoliciesRequest {
  maxResults?: number | undefined;
  nextToken?: string | undefined;
}
export interface ListAccessPoliciesResponse {
  accessPolicies?: AccessPolicy[] | undefined;
  nextToken?: string | undefined;
}
export interface ListAddonsRequest {
  clusterName: string | undefined;
  maxResults?: number | undefined;
  nextToken?: string | undefined;
}
export interface ListAddonsResponse {
  addons?: string[] | undefined;
  nextToken?: string | undefined;
}
export interface ListAssociatedAccessPoliciesRequest {
  clusterName: string | undefined;
  principalArn: string | undefined;
  maxResults?: number | undefined;
  nextToken?: string | undefined;
}
export interface ListAssociatedAccessPoliciesResponse {
  clusterName?: string | undefined;
  principalArn?: string | undefined;
  nextToken?: string | undefined;
  associatedAccessPolicies?: AssociatedAccessPolicy[] | undefined;
}
export interface ListCapabilitiesRequest {
  clusterName: string | undefined;
  nextToken?: string | undefined;
  maxResults?: number | undefined;
}
export interface CapabilitySummary {
  capabilityName?: string | undefined;
  arn?: string | undefined;
  type?: CapabilityType | undefined;
  status?: CapabilityStatus | undefined;
  version?: string | undefined;
  createdAt?: Date | undefined;
  modifiedAt?: Date | undefined;
}
export interface ListCapabilitiesResponse {
  capabilities?: CapabilitySummary[] | undefined;
  nextToken?: string | undefined;
}
export interface ListClustersRequest {
  maxResults?: number | undefined;
  nextToken?: string | undefined;
  include?: string[] | undefined;
}
export interface ListClustersResponse {
  clusters?: string[] | undefined;
  nextToken?: string | undefined;
}
export interface ListEksAnywhereSubscriptionsRequest {
  maxResults?: number | undefined;
  nextToken?: string | undefined;
  includeStatus?: EksAnywhereSubscriptionStatus[] | undefined;
}
export interface ListEksAnywhereSubscriptionsResponse {
  subscriptions?: EksAnywhereSubscription[] | undefined;
  nextToken?: string | undefined;
}
export interface ListFargateProfilesRequest {
  clusterName: string | undefined;
  maxResults?: number | undefined;
  nextToken?: string | undefined;
}
export interface ListFargateProfilesResponse {
  fargateProfileNames?: string[] | undefined;
  nextToken?: string | undefined;
}
export interface ListIdentityProviderConfigsRequest {
  clusterName: string | undefined;
  maxResults?: number | undefined;
  nextToken?: string | undefined;
}
export interface ListIdentityProviderConfigsResponse {
  identityProviderConfigs?: IdentityProviderConfig[] | undefined;
  nextToken?: string | undefined;
}
export interface InsightsFilter {
  categories?: Category[] | undefined;
  kubernetesVersions?: string[] | undefined;
  statuses?: InsightStatusValue[] | undefined;
}
export interface ListInsightsRequest {
  clusterName: string | undefined;
  filter?: InsightsFilter | undefined;
  maxResults?: number | undefined;
  nextToken?: string | undefined;
}
export interface InsightSummary {
  id?: string | undefined;
  name?: string | undefined;
  category?: Category | undefined;
  kubernetesVersion?: string | undefined;
  lastRefreshTime?: Date | undefined;
  lastTransitionTime?: Date | undefined;
  description?: string | undefined;
  insightStatus?: InsightStatus | undefined;
}
export interface ListInsightsResponse {
  insights?: InsightSummary[] | undefined;
  nextToken?: string | undefined;
}
export interface ListNodegroupsRequest {
  clusterName: string | undefined;
  maxResults?: number | undefined;
  nextToken?: string | undefined;
}
export interface ListNodegroupsResponse {
  nodegroups?: string[] | undefined;
  nextToken?: string | undefined;
}
export interface ListPodIdentityAssociationsRequest {
  clusterName: string | undefined;
  namespace?: string | undefined;
  serviceAccount?: string | undefined;
  maxResults?: number | undefined;
  nextToken?: string | undefined;
}
export interface PodIdentityAssociationSummary {
  clusterName?: string | undefined;
  namespace?: string | undefined;
  serviceAccount?: string | undefined;
  associationArn?: string | undefined;
  associationId?: string | undefined;
  ownerArn?: string | undefined;
}
export interface ListPodIdentityAssociationsResponse {
  associations?: PodIdentityAssociationSummary[] | undefined;
  nextToken?: string | undefined;
}
export interface ListTagsForResourceRequest {
  resourceArn: string | undefined;
}
export interface ListTagsForResourceResponse {
  tags?: Record<string, string> | undefined;
}
export interface ListUpdatesRequest {
  name: string | undefined;
  nodegroupName?: string | undefined;
  addonName?: string | undefined;
  capabilityName?: string | undefined;
  nextToken?: string | undefined;
  maxResults?: number | undefined;
}
export interface ListUpdatesResponse {
  updateIds?: string[] | undefined;
  nextToken?: string | undefined;
}
export interface ConnectorConfigRequest {
  roleArn: string | undefined;
  provider: ConnectorConfigProvider | undefined;
}
export interface RegisterClusterRequest {
  name: string | undefined;
  connectorConfig: ConnectorConfigRequest | undefined;
  clientRequestToken?: string | undefined;
  tags?: Record<string, string> | undefined;
}
export interface RegisterClusterResponse {
  cluster?: Cluster | undefined;
}
export interface StartInsightsRefreshRequest {
  clusterName: string | undefined;
}
export interface StartInsightsRefreshResponse {
  message?: string | undefined;
  status?: InsightsRefreshStatus | undefined;
}
export interface TagResourceRequest {
  resourceArn: string | undefined;
  tags: Record<string, string> | undefined;
}
export interface TagResourceResponse {}
export interface UntagResourceRequest {
  resourceArn: string | undefined;
  tagKeys: string[] | undefined;
}
export interface UntagResourceResponse {}
export interface UpdateAccessEntryRequest {
  clusterName: string | undefined;
  principalArn: string | undefined;
  kubernetesGroups?: string[] | undefined;
  clientRequestToken?: string | undefined;
  username?: string | undefined;
}
export interface UpdateAccessEntryResponse {
  accessEntry?: AccessEntry | undefined;
}
export interface UpdateAddonRequest {
  clusterName: string | undefined;
  addonName: string | undefined;
  addonVersion?: string | undefined;
  serviceAccountRoleArn?: string | undefined;
  resolveConflicts?: ResolveConflicts | undefined;
  clientRequestToken?: string | undefined;
  configurationValues?: string | undefined;
  podIdentityAssociations?: AddonPodIdentityAssociations[] | undefined;
}
export interface UpdateAddonResponse {
  update?: Update | undefined;
}
export interface UpdateRoleMappings {
  addOrUpdateRoleMappings?: ArgoCdRoleMapping[] | undefined;
  removeRoleMappings?: ArgoCdRoleMapping[] | undefined;
}
export interface UpdateArgoCdConfig {
  rbacRoleMappings?: UpdateRoleMappings | undefined;
  networkAccess?: ArgoCdNetworkAccessConfigRequest | undefined;
}
export interface UpdateCapabilityConfiguration {
  argoCd?: UpdateArgoCdConfig | undefined;
}
export interface UpdateCapabilityRequest {
  clusterName: string | undefined;
  capabilityName: string | undefined;
  roleArn?: string | undefined;
  configuration?: UpdateCapabilityConfiguration | undefined;
  clientRequestToken?: string | undefined;
  deletePropagationPolicy?: CapabilityDeletePropagationPolicy | undefined;
}
export interface UpdateCapabilityResponse {
  update?: Update | undefined;
}
export interface UpdateAccessConfigRequest {
  authenticationMode?: AuthenticationMode | undefined;
}
export interface UpdateClusterConfigRequest {
  name: string | undefined;
  resourcesVpcConfig?: VpcConfigRequest | undefined;
  logging?: Logging | undefined;
  clientRequestToken?: string | undefined;
  accessConfig?: UpdateAccessConfigRequest | undefined;
  upgradePolicy?: UpgradePolicyRequest | undefined;
  zonalShiftConfig?: ZonalShiftConfigRequest | undefined;
  computeConfig?: ComputeConfigRequest | undefined;
  kubernetesNetworkConfig?: KubernetesNetworkConfigRequest | undefined;
  storageConfig?: StorageConfigRequest | undefined;
  remoteNetworkConfig?: RemoteNetworkConfigRequest | undefined;
  deletionProtection?: boolean | undefined;
  controlPlaneScalingConfig?: ControlPlaneScalingConfig | undefined;
}
export interface UpdateClusterConfigResponse {
  update?: Update | undefined;
}
export interface UpdateClusterVersionRequest {
  name: string | undefined;
  version: string | undefined;
  clientRequestToken?: string | undefined;
  force?: boolean | undefined;
}
export interface UpdateClusterVersionResponse {
  update?: Update | undefined;
}
export interface UpdateEksAnywhereSubscriptionRequest {
  id: string | undefined;
  autoRenew: boolean | undefined;
  clientRequestToken?: string | undefined;
}
export interface UpdateEksAnywhereSubscriptionResponse {
  subscription?: EksAnywhereSubscription | undefined;
}
export interface UpdateLabelsPayload {
  addOrUpdateLabels?: Record<string, string> | undefined;
  removeLabels?: string[] | undefined;
}
export interface UpdateTaintsPayload {
  addOrUpdateTaints?: Taint[] | undefined;
  removeTaints?: Taint[] | undefined;
}
export interface UpdateNodegroupConfigRequest {
  clusterName: string | undefined;
  nodegroupName: string | undefined;
  labels?: UpdateLabelsPayload | undefined;
  taints?: UpdateTaintsPayload | undefined;
  scalingConfig?: NodegroupScalingConfig | undefined;
  updateConfig?: NodegroupUpdateConfig | undefined;
  nodeRepairConfig?: NodeRepairConfig | undefined;
  warmPoolConfig?: WarmPoolConfig | undefined;
  clientRequestToken?: string | undefined;
}
export interface UpdateNodegroupConfigResponse {
  update?: Update | undefined;
}
export interface UpdateNodegroupVersionRequest {
  clusterName: string | undefined;
  nodegroupName: string | undefined;
  version?: string | undefined;
  releaseVersion?: string | undefined;
  launchTemplate?: LaunchTemplateSpecification | undefined;
  force?: boolean | undefined;
  clientRequestToken?: string | undefined;
}
export interface UpdateNodegroupVersionResponse {
  update?: Update | undefined;
}
export interface UpdatePodIdentityAssociationRequest {
  clusterName: string | undefined;
  associationId: string | undefined;
  roleArn?: string | undefined;
  clientRequestToken?: string | undefined;
  disableSessionTags?: boolean | undefined;
  targetRoleArn?: string | undefined;
  policy?: string | undefined;
}
export interface UpdatePodIdentityAssociationResponse {
  association?: PodIdentityAssociation | undefined;
}
