import type { IProviderSettings } from '@spinnaker/core' ; import { SETTINGS } from '@spinnaker/core' ; export interface IClassicLaunchAllowlist { region : string ; credentials : string ; } export interface IAWSProviderSettings extends IProviderSettings { adHocInfraWritesEnabled ? : boolean ; bakeWarning ? : string ; classicLaunchLockout ? : number ; classicLaunchAllowlist ? : IClassicLaunchAllowlist [ ] ; createLoadBalancerWarnings ? : { application ? : string ; classic ? : string ; network ? : string ; } ; crossAccountIngressExclusions ? : { [ credentials ] : string | string [ ] ; } ; securityGroupExclusions ? : string [ ] ; defaults : { account ? : string ; iamRole ? : string ; region ? : string ; subnetType ? : string ; vpc ? : string ; } ; defaultSecurityGroups ? : string [ ] ; disableSpotPricing ? : boolean ; dockerBakeryDeprecated ? : boolean ; dockerBakeWarning ? : string ; instanceTypes ? : { exclude ? : { categories ? : string [ ] ; families ? : string [ ] ; } ; } ; loadBalancers ? : { certificateTypes ? : string [ ] ; disableManualOidcDialog ? : boolean ; inferInternalFlagFromSubnet : boolean ; } ; metrics ? : { customNamespaces ? : string [ ] ; } ; minRootVolumeSize ? : number ; serverGroups ? : { enableLaunchTemplates ? : boolean ; enableIPv6 ? : boolean ; setIPv6InTest ? : boolean ; enableIMDSv2 ? : boolean ; defaultIMDSv2AppAgeLimit ? : number ; accountDenyListIMDSv2 ? : string [ ] ; enableCpuCredits ? : boolean ; recommendedSubnets ? : string [ ] ; subnetWarning ? : string ; } ; useAmiBlockDeviceMappings ? : boolean ; } export const AWSProviderSettings = ( SETTINGS . providers . aws as IAWSProviderSettings ) || { defaults : { } , } ; if ( AWSProviderSettings ) { AWSProviderSettings . adHocInfraWritesEnabled = AWSProviderSettings . adHocInfraWritesEnabled ?? true ; AWSProviderSettings . resetToOriginal = SETTINGS . resetProvider ( 'aws' ) ; }