UNPKG

@spotinst/spinnaker-deck

Version:

Spinnaker-Deck service, forked with support to Spotinst

189 lines (170 loc) 5.25 kB
import { ILoadBalancerSourceData } from '@spinnaker/core'; import { IListenerAction, NLBListenerProtocol } from './IAmazonLoadBalancer'; import { IListenerRule } from './IAmazonLoadBalancer'; export interface IAmazonContainerServerGroupSourceData { detachedInstances: string[]; isDisabled: boolean; name: string; region: string; } export interface IAmazonLoadBalancerServerGroupSourceData extends IAmazonContainerServerGroupSourceData { instances: IAmazonLoadBalancerInstanceSourceData[]; } export interface IAmazonTargetGroupServerGroupSourceData extends IAmazonContainerServerGroupSourceData { instances: IAmazonTargetGroupInstanceSourceData[]; } export interface IAmazonInstanceHealthSourceData { type: string; state: 'InService' | 'OutOfService' | 'Unknown'; reasonCode: 'ELB' | 'Instance' | 'N/A'; description: string; } export interface IAmazonTargetHealthSourceData { description: string; reason: string; state: 'initial' | 'healthy' | 'unhealthy' | 'unused' | 'draining'; } export interface IClassicListenerSourceData { instancePort: number; instanceProtocol: string; loadBalancerPort: number; protocol: string; } export interface IAmazonLoadBalancerSourceData extends ILoadBalancerSourceData { account: string; availabilityZones: string[]; cloudProvider: string; createdTime: number; dnsname: string; loadBalancerName: string; loadBalancerType?: string; name: string; region: string; scheme: 'internal' | 'internet-facing'; securityGroups: string[]; serverGroups: IAmazonLoadBalancerServerGroupSourceData[]; subnets: string[]; type: string; vpcId: string; // Some of the backend in clouddriver returns a vpcid (lowecase) only, // and was cached with some of that. Until caches roll off and we are // sure clouddriver is cleaed up, leave this dirtiness in here vpcid?: string; } export interface IAmazonLoadBalancerInstanceSourceData { id: string; zone: string; health: IAmazonInstanceHealthSourceData; } export interface IAmazonTargetGroupInstanceSourceData { id: string; zone: string; health: IAmazonTargetHealthSourceData; } export interface IAmazonTargetGroupSourceData { account: string; attributes: { 'deregistration_delay.timeout_seconds': number; 'stickiness.enabled': boolean; 'stickiness.lb_cookie.duration_seconds': number; 'stickiness.type': 'lb_cookie'; 'lambda.multi_value_headers.enabled': boolean; }; cloudProvider: string; healthCheckIntervalSeconds: number; healthCheckPath: string; healthCheckPort: string; healthCheckProtocol: string; healthCheckTimeoutSeconds: number; healthyThresholdCount: number; instances: string[]; loadBalancerNames: string[]; matcher: { httpCode: string; }; name: string; port: number; protocol: string; region: string; serverGroups: IAmazonTargetGroupServerGroupSourceData[]; targetGroupArn: string; targetGroupName: string; targetType: string; type: string; unhealthyThresholdCount: number; vpcId: string; } export interface IApplicationLoadBalancerCertificateSourceData { certificateArn: string; } export interface IApplicationLoadBalancerListenerSourceData { certificates?: IApplicationLoadBalancerCertificateSourceData[]; defaultActions: IListenerAction[]; listenerArn: string; loadBalancerName: string; port: number; protocol: 'HTTP' | 'HTTPS'; rules: IListenerRule[]; sslPolicy?: string; } export interface IApplicationLoadBalancerSourceData extends IAmazonLoadBalancerSourceData { ipAddressType: 'ipv4' | 'dualstack'; listeners: IApplicationLoadBalancerListenerSourceData[]; loadBalancerArn: string; loadBalancerType: 'application'; state: { code: 'active' | 'provisioning' | 'failed'; reason?: string; }; targetGroups: IAmazonTargetGroupSourceData[]; } export interface INetworkLoadBalancerListenerSourceData { certificates?: IApplicationLoadBalancerCertificateSourceData[]; defaultActions: Array<{ targetGroupName: string; type: 'forward'; }>; listenerArn: string; loadBalancerName: string; port: number; protocol: NLBListenerProtocol; rules: IListenerRule[]; sslPolicy?: string; } export interface INetworkLoadBalancerSourceData extends IAmazonLoadBalancerSourceData { ipAddressType: 'ipv4' | 'dualstack'; listeners: INetworkLoadBalancerListenerSourceData[]; loadBalancerArn: string; loadBalancerType: 'network'; state: { code: 'active' | 'provisioning' | 'failed'; reason?: string; }; targetGroups: IAmazonTargetGroupSourceData[]; } export interface IClassicLoadBalancerSourceData extends IAmazonLoadBalancerSourceData { healthCheck: { healthyThreshold: number; interval: number; target: string; timeout: number; unhealthyThreshold: number; }; instances: string[]; listenerDescriptions: Array<{ listener: IClassicListenerSourceData; policyNames: string[] }>; policies: { appCookieStickinessPolicies: Array<{ CookieName: string; PolicyName: string; }>; lbcookieStickinessPolicies: Array<{ CookieExpirationPeriod: string; PolicyName: string; }>; otherPolicies: any[]; }; sourceSecurityGroup: { groupName: string; ownerAlias: string; }; }