@spinnaker/amazon 0.8.14 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (319) hide show
  1. package/CHANGELOG.md +62 -0
  2. package/dist/aws.settings.d.ts +1 -1
  3. package/dist/certificates/AmazonCertificateReader.d.ts +1 -1
  4. package/dist/deploymentStrategy/AdditionalFields.d.ts +2 -2
  5. package/dist/deploymentStrategy/rollingPush.strategy.d.ts +1 -1
  6. package/dist/domain/IAmazonCertificate.d.ts +1 -1
  7. package/dist/domain/IAmazonFunction.d.ts +1 -1
  8. package/dist/domain/IAmazonFunctionSourceData.d.ts +2 -1
  9. package/dist/domain/IAmazonHealth.d.ts +1 -1
  10. package/dist/domain/IAmazonInstance.d.ts +2 -2
  11. package/dist/domain/IAmazonLaunchTemplate.d.ts +1 -1
  12. package/dist/domain/IAmazonLoadBalancer.d.ts +4 -4
  13. package/dist/domain/IAmazonLoadBalancerSourceData.d.ts +3 -3
  14. package/dist/domain/IAmazonScalingPolicy.d.ts +3 -1
  15. package/dist/domain/IAmazonServerGroup.d.ts +5 -5
  16. package/dist/domain/IScalingPolicy.d.ts +1 -1
  17. package/dist/domain/ITargetTrackingPolicy.d.ts +1 -1
  18. package/dist/function/CreateLambdaFunction.d.ts +3 -2
  19. package/dist/function/configure/ExecutionRole.d.ts +4 -4
  20. package/dist/function/configure/FunctionBasicInformation.d.ts +4 -4
  21. package/dist/function/configure/FunctionDebugAndErrorHandling.d.ts +4 -4
  22. package/dist/function/configure/FunctionEnvironmentVariables.d.ts +4 -4
  23. package/dist/function/configure/FunctionSettings.d.ts +4 -4
  24. package/dist/function/configure/FunctionTags.d.ts +4 -4
  25. package/dist/function/configure/Network.d.ts +3 -3
  26. package/dist/function/details/AmazonFunctionDetails.d.ts +1 -1
  27. package/dist/function/details/FunctionActions.d.ts +3 -3
  28. package/dist/function/function.transformer.d.ts +2 -2
  29. package/dist/index.js +1 -1
  30. package/dist/index.js.map +1 -1
  31. package/dist/instance/amazon.instance.write.service.d.ts +3 -2
  32. package/dist/instance/details/AmazonInstanceInformation.d.ts +2 -1
  33. package/dist/instance/details/InstanceDns.d.ts +1 -0
  34. package/dist/instance/details/InstanceInformation.d.ts +1 -0
  35. package/dist/instance/details/InstanceSecurityGroups.d.ts +2 -1
  36. package/dist/instance/details/InstanceStatus.d.ts +2 -1
  37. package/dist/instance/details/InstanceTags.d.ts +1 -0
  38. package/dist/instance/details/utils.d.ts +1 -1
  39. package/dist/keyPairs/KeyPairsReader.d.ts +1 -1
  40. package/dist/loadBalancer/AmazonLoadBalancerClusterContainer.d.ts +1 -1
  41. package/dist/loadBalancer/AmazonLoadBalancersTag.d.ts +2 -2
  42. package/dist/loadBalancer/TargetGroup.d.ts +1 -1
  43. package/dist/loadBalancer/TargetGroupDetails.d.ts +1 -1
  44. package/dist/loadBalancer/amazonLoadBalancerDataUtils.d.ts +2 -2
  45. package/dist/loadBalancer/configure/AmazonLoadBalancerChoiceModal.d.ts +2 -2
  46. package/dist/loadBalancer/configure/LoadBalancerTypes.d.ts +2 -2
  47. package/dist/loadBalancer/configure/application/ALBListeners.d.ts +4 -4
  48. package/dist/loadBalancer/configure/application/ConfigureOidcConfigModal.d.ts +1 -1
  49. package/dist/loadBalancer/configure/application/ConfigureRedirectConfigModal.d.ts +1 -1
  50. package/dist/loadBalancer/configure/application/CreateApplicationLoadBalancer.d.ts +3 -2
  51. package/dist/loadBalancer/configure/application/TargetGroups.d.ts +3 -3
  52. package/dist/loadBalancer/configure/classic/AdvancedSettings.d.ts +2 -2
  53. package/dist/loadBalancer/configure/classic/CreateClassicLoadBalancer.d.ts +3 -2
  54. package/dist/loadBalancer/configure/classic/HealthCheck.d.ts +2 -2
  55. package/dist/loadBalancer/configure/classic/Listeners.d.ts +3 -3
  56. package/dist/loadBalancer/configure/common/AmazonCertificateSelectField.d.ts +2 -2
  57. package/dist/loadBalancer/configure/common/LoadBalancerLocation.d.ts +3 -3
  58. package/dist/loadBalancer/configure/common/SecurityGroups.d.ts +3 -3
  59. package/dist/loadBalancer/configure/common/targetGroupValidators.d.ts +2 -2
  60. package/dist/loadBalancer/configure/network/CertificateSelectors.d.ts +2 -1
  61. package/dist/loadBalancer/configure/network/CreateNetworkLoadBalancer.d.ts +3 -2
  62. package/dist/loadBalancer/configure/network/NLBListeners.d.ts +4 -4
  63. package/dist/loadBalancer/configure/network/TargetGroups.d.ts +3 -3
  64. package/dist/loadBalancer/details/LoadBalancerActions.d.ts +3 -3
  65. package/dist/loadBalancer/details/loadBalancerDetails.controller.d.ts +4 -4
  66. package/dist/loadBalancer/details/targetGroupDetails.controller.d.ts +4 -4
  67. package/dist/loadBalancer/loadBalancer.transformer.d.ts +2 -2
  68. package/dist/pipeline/stages/deployCloudFormation/CloudFormationChangeSetInfo.d.ts +2 -1
  69. package/dist/pipeline/stages/deployCloudFormation/deployCloudFormationExecutionDetails.d.ts +1 -1
  70. package/dist/pipeline/stages/deployCloudFormation/deployCloudFormationStackConfig.controller.d.ts +3 -2
  71. package/dist/pipeline/stages/deployCloudFormation/evaluateCloudFormationChangeSetExecution.service.d.ts +3 -3
  72. package/dist/pipeline/stages/deployCloudFormation/evaluateCloudFormationChangeSetExecutionApproval.d.ts +2 -1
  73. package/dist/pipeline/stages/deployCloudFormation/evaluateCloudFormationChangeSetExecutionDetails.d.ts +1 -1
  74. package/dist/pipeline/stages/deployCloudFormation/evaluateCloudFormationChangeSetExecutionLabel.d.ts +2 -2
  75. package/dist/pipeline/stages/deployCloudFormation/evaluateCloudFormationChangeSetExecutionMarkerIcon.d.ts +1 -1
  76. package/dist/reactShims/aws.ngReact.d.ts +2 -2
  77. package/dist/reactShims/aws.react.injector.d.ts +5 -4
  78. package/dist/reactShims/index.d.ts +0 -1
  79. package/dist/securityGroup/configure/securityGroupDetailsCustom.d.ts +1 -1
  80. package/dist/securityGroup/securityGroup.reader.d.ts +1 -1
  81. package/dist/serverGroup/configure/AmazonImageSelectInput.d.ts +2 -2
  82. package/dist/serverGroup/configure/serverGroupConfiguration.service.d.ts +2 -2
  83. package/dist/serverGroup/configure/wizard/AmazonCloneServerGroupModal.d.ts +3 -2
  84. package/dist/serverGroup/configure/wizard/ServerGroupTemplateSelection.d.ts +1 -1
  85. package/dist/serverGroup/configure/wizard/capacity/CapacitySelector.d.ts +2 -2
  86. package/dist/serverGroup/configure/wizard/capacity/MinMaxDesired.d.ts +1 -1
  87. package/dist/serverGroup/configure/wizard/instanceType/CpuCreditsToggle.d.ts +2 -1
  88. package/dist/serverGroup/configure/wizard/pages/ServerGroupBasicSettings.d.ts +4 -4
  89. package/dist/serverGroup/configure/wizard/pages/ServerGroupCapacity.d.ts +3 -3
  90. package/dist/serverGroup/configure/wizard/pages/ServerGroupInstanceType.d.ts +3 -3
  91. package/dist/serverGroup/configure/wizard/pages/ServerGroupLoadBalancers.d.ts +3 -3
  92. package/dist/serverGroup/configure/wizard/pages/ServerGroupSecurityGroups.d.ts +3 -3
  93. package/dist/serverGroup/configure/wizard/pages/ServerGroupZones.d.ts +3 -3
  94. package/dist/serverGroup/configure/wizard/pages/advancedSettings/ServerGroupAdvancedSettings.d.ts +3 -3
  95. package/dist/serverGroup/configure/wizard/pages/advancedSettings/ServerGroupAdvancedSettingsCommon.d.ts +2 -2
  96. package/dist/serverGroup/configure/wizard/pages/advancedSettings/ServerGroupAdvancedSettingsInner.d.ts +4 -4
  97. package/dist/serverGroup/configure/wizard/securityGroups/SecurityGroupSelector.d.ts +2 -2
  98. package/dist/serverGroup/configure/wizard/securityGroups/ServerGroupSecurityGroupsRemoved.d.ts +1 -1
  99. package/dist/serverGroup/details/AmazonServerGroupActions.d.ts +3 -3
  100. package/dist/serverGroup/details/amazonServerGroupDetailsGetter.d.ts +2 -2
  101. package/dist/serverGroup/details/resize/AmazonResizeServerGroupModal.d.ts +3 -2
  102. package/dist/serverGroup/details/scalingPolicy/CreateScalingPolicyButton.d.ts +2 -2
  103. package/dist/serverGroup/details/scalingPolicy/ScalingPolicySummary.d.ts +7 -4
  104. package/dist/serverGroup/details/scalingPolicy/ScalingPolicyWriter.d.ts +2 -2
  105. package/dist/serverGroup/details/scalingPolicy/StepPolicySummary.d.ts +10 -0
  106. package/dist/serverGroup/details/scalingPolicy/chart/DateLineChart.d.ts +2 -1
  107. package/dist/serverGroup/details/scalingPolicy/chart/MetricAlarmChart.d.ts +4 -3
  108. package/dist/serverGroup/details/scalingPolicy/detailsSummary.component.d.ts +3 -3
  109. package/dist/serverGroup/details/scalingPolicy/index.d.ts +4 -0
  110. package/dist/serverGroup/details/scalingPolicy/popover/AlarmSummary.d.ts +8 -1
  111. package/dist/serverGroup/details/scalingPolicy/popover/StepPolicyPopoverContent.d.ts +7 -0
  112. package/dist/serverGroup/details/scalingPolicy/scalingPolicySummary.component.d.ts +1 -0
  113. package/dist/serverGroup/details/scalingPolicy/stepPolicySummary.component.d.ts +1 -0
  114. package/dist/serverGroup/details/scalingPolicy/targetTracking/TargetMetricFields.d.ts +4 -4
  115. package/dist/serverGroup/details/scalingPolicy/targetTracking/TargetTrackingAdditionalSettings.d.ts +2 -1
  116. package/dist/serverGroup/details/scalingPolicy/targetTracking/TargetTrackingChart.d.ts +2 -1
  117. package/dist/serverGroup/details/scalingPolicy/targetTracking/TargetTrackingSummary.d.ts +10 -0
  118. package/dist/serverGroup/details/scalingPolicy/targetTracking/UpsertTargetTrackingModal.d.ts +3 -2
  119. package/dist/serverGroup/details/scalingPolicy/upsert/PolicyTypeSelectionModal.d.ts +1 -0
  120. package/dist/serverGroup/details/scalingPolicy/upsert/ScalingPolicyAdditionalSettings.d.ts +2 -1
  121. package/dist/serverGroup/details/scalingPolicy/upsert/ScalingPolicyCommandBuilderService.d.ts +2 -2
  122. package/dist/serverGroup/details/scalingPolicy/upsert/UpsertScalingPolicyModal.d.ts +3 -2
  123. package/dist/serverGroup/details/scalingPolicy/upsert/alarm/AlarmConfigurer.d.ts +6 -1
  124. package/dist/serverGroup/details/scalingPolicy/upsert/alarm/DimensionsEditor.d.ts +4 -3
  125. package/dist/serverGroup/details/scalingPolicy/upsert/alarm/MetricSelector.d.ts +3 -2
  126. package/dist/serverGroup/details/scalingPolicy/upsert/index.d.ts +1 -0
  127. package/dist/serverGroup/details/scalingPolicy/upsert/simple/SimplePolicyAction.d.ts +1 -0
  128. package/dist/serverGroup/details/scalingPolicy/upsert/step/StepPolicyAction.d.ts +2 -1
  129. package/dist/serverGroup/details/scalingProcesses/AutoScalingProcessService.d.ts +1 -1
  130. package/dist/serverGroup/details/scheduledAction/ScheduledAction.d.ts +1 -1
  131. package/dist/serverGroup/details/sections/AdvancedSettingsDetailsSection.d.ts +1 -1
  132. package/dist/serverGroup/details/sections/AmazonCapacityDetailsSection.d.ts +1 -1
  133. package/dist/serverGroup/details/sections/AmazonInfoDetailsSection.d.ts +2 -2
  134. package/dist/serverGroup/details/sections/HealthDetailsSection.d.ts +1 -1
  135. package/dist/serverGroup/details/sections/IAmazonServerGroupDetailsSectionProps.d.ts +2 -2
  136. package/dist/serverGroup/details/sections/InstancesDistributionDetailsSection.d.ts +2 -1
  137. package/dist/serverGroup/details/sections/LaunchConfigDetailsSection.d.ts +1 -1
  138. package/dist/serverGroup/details/sections/LaunchTemplateDetailsSection.d.ts +2 -1
  139. package/dist/serverGroup/details/sections/LogsDetailsSection.d.ts +1 -1
  140. package/dist/serverGroup/details/sections/MultipleInstanceTypesSubSection.d.ts +2 -1
  141. package/dist/serverGroup/details/sections/PackageDetailsSection.d.ts +1 -1
  142. package/dist/serverGroup/details/sections/ScalingPoliciesDetailsSection.d.ts +2 -2
  143. package/dist/serverGroup/details/sections/ScalingProcessesDetailsSection.d.ts +2 -2
  144. package/dist/serverGroup/details/sections/ScheduledActionsDetailsSection.d.ts +1 -1
  145. package/dist/serverGroup/details/sections/SecurityGroupsDetailsSection.d.ts +2 -2
  146. package/dist/serverGroup/details/sections/TagsDetailsSection.d.ts +1 -1
  147. package/dist/serverGroup/serverGroup.transformer.d.ts +1 -1
  148. package/dist/subnet/SubnetSelectField.d.ts +1 -1
  149. package/dist/subnet/SubnetSelectInput.d.ts +2 -2
  150. package/dist/subnet/subnet.renderer.d.ts +1 -1
  151. package/dist/vpc/VpcReader.d.ts +1 -1
  152. package/dist/vpc/VpcTag.d.ts +1 -0
  153. package/package.json +6 -6
  154. package/src/aws.module.ts +11 -1
  155. package/src/aws.settings.ts +2 -1
  156. package/src/certificates/AmazonCertificateReader.ts +1 -1
  157. package/src/common/AwsModalFooter.tsx +2 -1
  158. package/src/common/footer.component.ts +2 -1
  159. package/src/deploymentStrategy/AdditionalFields.tsx +3 -2
  160. package/src/deploymentStrategy/rollingPush.strategy.ts +2 -1
  161. package/src/domain/IAmazonCertificate.ts +1 -1
  162. package/src/domain/IAmazonFunction.ts +1 -1
  163. package/src/domain/IAmazonFunctionSourceData.ts +2 -1
  164. package/src/domain/IAmazonHealth.ts +1 -1
  165. package/src/domain/IAmazonInstance.ts +2 -2
  166. package/src/domain/IAmazonLaunchTemplate.ts +1 -1
  167. package/src/domain/IAmazonLoadBalancer.ts +4 -4
  168. package/src/domain/IAmazonLoadBalancerSourceData.ts +3 -3
  169. package/src/domain/IAmazonScalingPolicy.ts +3 -1
  170. package/src/domain/IAmazonServerGroup.ts +5 -5
  171. package/src/domain/IScalingPolicy.ts +1 -1
  172. package/src/domain/ITargetTrackingPolicy.ts +1 -1
  173. package/src/function/CreateLambdaFunction.tsx +3 -11
  174. package/src/function/configure/ExecutionRole.tsx +5 -4
  175. package/src/function/configure/FunctionBasicInformation.tsx +6 -8
  176. package/src/function/configure/FunctionDebugAndErrorHandling.tsx +5 -11
  177. package/src/function/configure/FunctionEnvironmentVariables.tsx +5 -11
  178. package/src/function/configure/FunctionSettings.tsx +5 -4
  179. package/src/function/configure/FunctionTags.tsx +5 -4
  180. package/src/function/configure/Network.tsx +8 -6
  181. package/src/function/details/AmazonFunctionDetails.tsx +30 -10
  182. package/src/function/details/FunctionActions.spec.tsx +24 -1
  183. package/src/function/details/FunctionActions.tsx +30 -28
  184. package/src/function/function.transformer.ts +2 -2
  185. package/src/instance/amazon.instance.write.service.ts +3 -9
  186. package/src/instance/details/AmazonInstanceInformation.tsx +1 -1
  187. package/src/instance/details/InstanceSecurityGroups.tsx +1 -1
  188. package/src/instance/details/InstanceStatus.tsx +1 -1
  189. package/src/instance/details/instance.details.controller.js +2 -0
  190. package/src/instance/details/instanceDetails.html +1 -1
  191. package/src/instance/details/utils.ts +6 -1
  192. package/src/keyPairs/KeyPairsReader.ts +1 -1
  193. package/src/loadBalancer/AmazonLoadBalancerClusterContainer.tsx +3 -2
  194. package/src/loadBalancer/AmazonLoadBalancersTag.tsx +2 -3
  195. package/src/loadBalancer/TargetGroup.tsx +1 -1
  196. package/src/loadBalancer/TargetGroupDetails.tsx +2 -1
  197. package/src/loadBalancer/amazonLoadBalancerDataUtils.ts +3 -2
  198. package/src/loadBalancer/configure/AmazonLoadBalancerChoiceModal.tsx +4 -10
  199. package/src/loadBalancer/configure/LoadBalancerTypes.ts +2 -2
  200. package/src/loadBalancer/configure/application/ALBListeners.tsx +9 -14
  201. package/src/loadBalancer/configure/application/ConfigureOidcConfigModal.tsx +3 -2
  202. package/src/loadBalancer/configure/application/ConfigureRedirectConfigModal.tsx +1 -1
  203. package/src/loadBalancer/configure/application/CreateApplicationLoadBalancer.tsx +2 -2
  204. package/src/loadBalancer/configure/application/TargetGroups.tsx +3 -4
  205. package/src/loadBalancer/configure/classic/AdvancedSettings.tsx +2 -2
  206. package/src/loadBalancer/configure/classic/CreateClassicLoadBalancer.tsx +3 -3
  207. package/src/loadBalancer/configure/classic/HealthCheck.tsx +2 -2
  208. package/src/loadBalancer/configure/classic/Listeners.tsx +3 -3
  209. package/src/loadBalancer/configure/common/AmazonCertificateSelectField.tsx +5 -3
  210. package/src/loadBalancer/configure/common/LoadBalancerLocation.tsx +6 -9
  211. package/src/loadBalancer/configure/common/SecurityGroups.tsx +4 -11
  212. package/src/loadBalancer/configure/common/targetGroupValidators.ts +2 -2
  213. package/src/loadBalancer/configure/network/CertificateSelectors.tsx +3 -2
  214. package/src/loadBalancer/configure/network/CreateNetworkLoadBalancer.tsx +3 -3
  215. package/src/loadBalancer/configure/network/NLBListeners.tsx +5 -4
  216. package/src/loadBalancer/configure/network/TargetGroups.tsx +3 -4
  217. package/src/loadBalancer/details/LoadBalancerActions.tsx +48 -46
  218. package/src/loadBalancer/details/loadBalancerDetails.controller.ts +10 -7
  219. package/src/loadBalancer/details/targetGroupDetails.controller.ts +6 -4
  220. package/src/loadBalancer/loadBalancer.transformer.ts +3 -11
  221. package/src/loadBalancer/targetGroup.states.ts +3 -2
  222. package/src/pipeline/stages/deployCloudFormation/CloudFormationChangeSetInfo.tsx +2 -9
  223. package/src/pipeline/stages/deployCloudFormation/cloudFormationTemplateEntry.component.ts +2 -1
  224. package/src/pipeline/stages/deployCloudFormation/deployCloudFormationExecutionDetails.tsx +2 -6
  225. package/src/pipeline/stages/deployCloudFormation/deployCloudFormationStackConfig.controller.ts +3 -9
  226. package/src/pipeline/stages/deployCloudFormation/deployCloudFormationStackStage.ts +2 -1
  227. package/src/pipeline/stages/deployCloudFormation/evaluateCloudFormationChangeSetExecution.service.ts +4 -3
  228. package/src/pipeline/stages/deployCloudFormation/evaluateCloudFormationChangeSetExecutionApproval.tsx +2 -1
  229. package/src/pipeline/stages/deployCloudFormation/evaluateCloudFormationChangeSetExecutionDetails.tsx +1 -1
  230. package/src/pipeline/stages/deployCloudFormation/evaluateCloudFormationChangeSetExecutionLabel.tsx +2 -2
  231. package/src/pipeline/stages/deployCloudFormation/evaluateCloudFormationChangeSetExecutionMarkerIcon.tsx +1 -1
  232. package/src/reactShims/aws.ngReact.ts +2 -2
  233. package/src/reactShims/aws.react.injector.ts +5 -4
  234. package/src/reactShims/aws.react.module.ts +0 -2
  235. package/src/reactShims/index.ts +0 -1
  236. package/src/securityGroup/configure/ingressRuleGroupSelector.component.ts +4 -3
  237. package/src/securityGroup/configure/securityGroupDetailsCustom.tsx +1 -1
  238. package/src/securityGroup/details/securityGroupDetail.controller.js +3 -0
  239. package/src/securityGroup/details/securityGroupDetail.html +1 -1
  240. package/src/securityGroup/securityGroup.reader.ts +1 -1
  241. package/src/serverGroup/configure/AmazonImageSelectInput.tsx +5 -3
  242. package/src/serverGroup/configure/serverGroupCommandBuilder.service.js +1 -1
  243. package/src/serverGroup/configure/serverGroupConfiguration.service.ts +9 -7
  244. package/src/serverGroup/configure/wizard/AmazonCloneServerGroupModal.tsx +3 -13
  245. package/src/serverGroup/configure/wizard/ServerGroupTemplateSelection.tsx +2 -7
  246. package/src/serverGroup/configure/wizard/capacity/CapacitySelector.tsx +5 -3
  247. package/src/serverGroup/configure/wizard/capacity/MinMaxDesired.tsx +2 -1
  248. package/src/serverGroup/configure/wizard/instanceType/CpuCreditsToggle.tsx +1 -1
  249. package/src/serverGroup/configure/wizard/pages/ServerGroupBasicSettings.tsx +5 -6
  250. package/src/serverGroup/configure/wizard/pages/ServerGroupCapacity.tsx +4 -3
  251. package/src/serverGroup/configure/wizard/pages/ServerGroupInstanceType.tsx +4 -3
  252. package/src/serverGroup/configure/wizard/pages/ServerGroupLoadBalancers.tsx +5 -4
  253. package/src/serverGroup/configure/wizard/pages/ServerGroupSecurityGroups.tsx +3 -3
  254. package/src/serverGroup/configure/wizard/pages/ServerGroupZones.tsx +3 -3
  255. package/src/serverGroup/configure/wizard/pages/advancedSettings/ServerGroupAdvancedSettings.tsx +3 -3
  256. package/src/serverGroup/configure/wizard/pages/advancedSettings/ServerGroupAdvancedSettingsCommon.tsx +4 -3
  257. package/src/serverGroup/configure/wizard/pages/advancedSettings/ServerGroupAdvancedSettingsInner.tsx +5 -4
  258. package/src/serverGroup/configure/wizard/securityGroups/SecurityGroupSelector.tsx +4 -10
  259. package/src/serverGroup/configure/wizard/securityGroups/ServerGroupSecurityGroupsRemoved.tsx +1 -1
  260. package/src/serverGroup/details/AmazonServerGroupActions.tsx +56 -56
  261. package/src/serverGroup/details/amazonServerGroupDetailsGetter.ts +3 -2
  262. package/src/serverGroup/details/resize/AmazonResizeServerGroupModal.tsx +4 -6
  263. package/src/serverGroup/details/scalingPolicy/CreateScalingPolicyButton.tsx +7 -4
  264. package/src/serverGroup/details/scalingPolicy/ScalingPolicySummary.tsx +25 -4
  265. package/src/serverGroup/details/scalingPolicy/ScalingPolicyWriter.ts +3 -2
  266. package/src/serverGroup/details/scalingPolicy/StepPolicySummary.less +10 -0
  267. package/src/serverGroup/details/scalingPolicy/StepPolicySummary.tsx +122 -0
  268. package/src/serverGroup/details/scalingPolicy/alarmBasedSummary.template.html +2 -2
  269. package/src/serverGroup/details/scalingPolicy/chart/DateLineChart.tsx +7 -5
  270. package/src/serverGroup/details/scalingPolicy/chart/MetricAlarmChart.tsx +6 -11
  271. package/src/serverGroup/details/scalingPolicy/detailsSummary.component.ts +4 -3
  272. package/src/serverGroup/details/scalingPolicy/index.ts +4 -0
  273. package/src/serverGroup/details/scalingPolicy/popover/AlarmSummary.tsx +16 -7
  274. package/src/serverGroup/details/scalingPolicy/popover/StepPolicyPopoverContent.tsx +90 -0
  275. package/src/serverGroup/details/scalingPolicy/popover/scalingPolicyPopover.component.ts +2 -1
  276. package/src/serverGroup/details/scalingPolicy/scalingPolicy.module.ts +4 -2
  277. package/src/serverGroup/details/scalingPolicy/scalingPolicySummary.component.ts +10 -0
  278. package/src/serverGroup/details/scalingPolicy/stepPolicySummary.component.ts +10 -0
  279. package/src/serverGroup/details/scalingPolicy/targetTracking/TargetMetricFields.tsx +19 -26
  280. package/src/serverGroup/details/scalingPolicy/targetTracking/TargetTrackingAdditionalSettings.tsx +1 -1
  281. package/src/serverGroup/details/scalingPolicy/targetTracking/TargetTrackingChart.tsx +3 -3
  282. package/src/serverGroup/details/scalingPolicy/targetTracking/TargetTrackingSummary.less +11 -0
  283. package/src/serverGroup/details/scalingPolicy/targetTracking/TargetTrackingSummary.tsx +117 -0
  284. package/src/serverGroup/details/scalingPolicy/targetTracking/UpsertTargetTrackingModal.tsx +4 -3
  285. package/src/serverGroup/details/scalingPolicy/targetTracking/targetTrackingSummary.component.ts +12 -83
  286. package/src/serverGroup/details/scalingPolicy/upsert/ScalingPolicyAdditionalSettings.tsx +10 -12
  287. package/src/serverGroup/details/scalingPolicy/upsert/ScalingPolicyCommandBuilderService.ts +2 -2
  288. package/src/serverGroup/details/scalingPolicy/upsert/UpsertScalingPolicyModal.tsx +6 -4
  289. package/src/serverGroup/details/scalingPolicy/upsert/alarm/AlarmConfigurer.tsx +16 -18
  290. package/src/serverGroup/details/scalingPolicy/upsert/alarm/DimensionsEditor.tsx +14 -20
  291. package/src/serverGroup/details/scalingPolicy/upsert/alarm/MetricSelector.tsx +26 -50
  292. package/src/serverGroup/details/scalingPolicy/upsert/index.ts +1 -0
  293. package/src/serverGroup/details/scalingPolicy/upsert/simple/SimplePolicyAction.tsx +3 -5
  294. package/src/serverGroup/details/scalingPolicy/upsert/step/StepPolicyAction.tsx +8 -18
  295. package/src/serverGroup/details/scalingProcesses/AutoScalingProcessService.ts +1 -1
  296. package/src/serverGroup/details/scheduledAction/ScheduledAction.tsx +1 -1
  297. package/src/serverGroup/details/sections/AdvancedSettingsDetailsSection.tsx +7 -5
  298. package/src/serverGroup/details/sections/AmazonCapacityDetailsSection.tsx +8 -5
  299. package/src/serverGroup/details/sections/AmazonInfoDetailsSection.tsx +4 -12
  300. package/src/serverGroup/details/sections/HealthDetailsSection.tsx +1 -1
  301. package/src/serverGroup/details/sections/IAmazonServerGroupDetailsSectionProps.ts +2 -2
  302. package/src/serverGroup/details/sections/InstancesDistributionDetailsSection.tsx +1 -1
  303. package/src/serverGroup/details/sections/LaunchConfigDetailsSection.tsx +2 -2
  304. package/src/serverGroup/details/sections/LaunchTemplateDetailsSection.tsx +1 -1
  305. package/src/serverGroup/details/sections/LogsDetailsSection.tsx +1 -1
  306. package/src/serverGroup/details/sections/MultipleInstanceTypesSubSection.tsx +1 -1
  307. package/src/serverGroup/details/sections/PackageDetailsSection.tsx +1 -1
  308. package/src/serverGroup/details/sections/ScalingPoliciesDetailsSection.tsx +10 -7
  309. package/src/serverGroup/details/sections/ScalingProcessesDetailsSection.tsx +16 -6
  310. package/src/serverGroup/details/sections/ScheduledActionsDetailsSection.tsx +8 -6
  311. package/src/serverGroup/details/sections/SecurityGroupsDetailsSection.tsx +4 -10
  312. package/src/serverGroup/details/sections/TagsDetailsSection.tsx +1 -1
  313. package/src/serverGroup/serverGroup.transformer.ts +2 -2
  314. package/src/subnet/SubnetSelectField.tsx +2 -1
  315. package/src/subnet/SubnetSelectInput.tsx +4 -12
  316. package/src/subnet/subnet.renderer.ts +1 -1
  317. package/src/validation/ApplicationNameValidator.ts +2 -1
  318. package/src/vpc/VpcReader.ts +2 -1
  319. package/src/serverGroup/details/scalingPolicy/targetTracking/targetTrackingPopover.html +0 -5
@@ -1,11 +1,12 @@
1
- import { Field, FormikProps } from 'formik';
1
+ import type { FormikProps } from 'formik';
2
+ import { Field } from 'formik';
2
3
  import React from 'react';
3
4
 
4
- import { IServerGroupCommand, IWizardPageComponent } from '@spinnaker/core';
5
+ import type { IServerGroupCommand, IWizardPageComponent } from '@spinnaker/core';
5
6
 
6
7
  import { CapacitySelector } from '../capacity/CapacitySelector';
7
8
  import { MinMaxDesired } from '../capacity/MinMaxDesired';
8
- import { IAmazonServerGroupCommand } from '../../serverGroupConfiguration.service';
9
+ import type { IAmazonServerGroupCommand } from '../../serverGroupConfiguration.service';
9
10
 
10
11
  export interface IServerGroupCapacityProps {
11
12
  formik: FormikProps<IServerGroupCommand>;
@@ -1,11 +1,12 @@
1
- import { FormikErrors, FormikProps } from 'formik';
1
+ import type { FormikErrors, FormikProps } from 'formik';
2
2
  import React from 'react';
3
3
 
4
- import { IWizardPageComponent, NgReact } from '@spinnaker/core';
4
+ import type { IWizardPageComponent } from '@spinnaker/core';
5
+ import { NgReact } from '@spinnaker/core';
5
6
  import { AWSProviderSettings } from '../../../../aws.settings';
6
7
 
7
8
  import { CpuCreditsToggle } from '../instanceType/CpuCreditsToggle';
8
- import { IAmazonServerGroupCommand } from '../../serverGroupConfiguration.service';
9
+ import type { IAmazonServerGroupCommand } from '../../serverGroupConfiguration.service';
9
10
 
10
11
  export interface IServerGroupInstanceTypeProps {
11
12
  formik: FormikProps<IAmazonServerGroupCommand>;
@@ -1,10 +1,11 @@
1
- import { FormikProps } from 'formik';
1
+ import type { FormikProps } from 'formik';
2
2
  import React from 'react';
3
- import { Option } from 'react-select';
3
+ import type { Option } from 'react-select';
4
4
 
5
- import { HelpField, IWizardPageComponent, ReactInjector, TetheredSelect } from '@spinnaker/core';
5
+ import type { IWizardPageComponent } from '@spinnaker/core';
6
+ import { HelpField, ReactInjector, TetheredSelect } from '@spinnaker/core';
6
7
 
7
- import { IAmazonServerGroupCommand } from '../../serverGroupConfiguration.service';
8
+ import type { IAmazonServerGroupCommand } from '../../serverGroupConfiguration.service';
8
9
 
9
10
  export interface IServerGroupLoadBalancersProps {
10
11
  hideLoadBalancers?: boolean;
@@ -1,11 +1,11 @@
1
- import { FormikProps } from 'formik';
1
+ import type { FormikProps } from 'formik';
2
2
  import React from 'react';
3
3
 
4
- import { IWizardPageComponent } from '@spinnaker/core';
4
+ import type { IWizardPageComponent } from '@spinnaker/core';
5
5
 
6
6
  import { SecurityGroupSelector } from '../securityGroups/SecurityGroupSelector';
7
7
  import { ServerGroupSecurityGroupsRemoved } from '../securityGroups/ServerGroupSecurityGroupsRemoved';
8
- import { IAmazonServerGroupCommand } from '../../serverGroupConfiguration.service';
8
+ import type { IAmazonServerGroupCommand } from '../../serverGroupConfiguration.service';
9
9
 
10
10
  export interface IServerGroupSecurityGroupsProps {
11
11
  formik: FormikProps<IAmazonServerGroupCommand>;
@@ -1,10 +1,10 @@
1
- import { FormikProps } from 'formik';
1
+ import type { FormikProps } from 'formik';
2
2
  import React from 'react';
3
3
 
4
- import { IWizardPageComponent } from '@spinnaker/core';
4
+ import type { IWizardPageComponent } from '@spinnaker/core';
5
5
 
6
6
  import { AvailabilityZoneSelector } from '../../../AvailabilityZoneSelector';
7
- import { IAmazonServerGroupCommand } from '../../serverGroupConfiguration.service';
7
+ import type { IAmazonServerGroupCommand } from '../../serverGroupConfiguration.service';
8
8
 
9
9
  export interface IServerGroupZonesProps {
10
10
  formik: FormikProps<IAmazonServerGroupCommand>;
@@ -1,10 +1,10 @@
1
- import { FormikProps } from 'formik';
1
+ import type { FormikProps } from 'formik';
2
2
  import React from 'react';
3
3
 
4
- import { Application, IWizardPageComponent } from '@spinnaker/core';
4
+ import type { Application, IWizardPageComponent } from '@spinnaker/core';
5
5
 
6
6
  import { ServerGroupAdvancedSettingsInner } from './ServerGroupAdvancedSettingsInner';
7
- import { IAmazonServerGroupCommand } from '../../../serverGroupConfiguration.service';
7
+ import type { IAmazonServerGroupCommand } from '../../../serverGroupConfiguration.service';
8
8
 
9
9
  export interface IServerGroupAdvancedSettingsProps {
10
10
  app: Application;
@@ -1,12 +1,13 @@
1
1
  import { Field } from 'formik';
2
2
  import React from 'react';
3
- import Select, { Option } from 'react-select';
3
+ import type { Option } from 'react-select';
4
+ import Select from 'react-select';
4
5
 
5
6
  import { HelpField, MapEditor, PlatformHealthOverride } from '@spinnaker/core';
6
7
 
7
- import { IServerGroupAdvancedSettingsProps } from './ServerGroupAdvancedSettings';
8
+ import type { IServerGroupAdvancedSettingsProps } from './ServerGroupAdvancedSettings';
8
9
  import { AWSProviderSettings } from '../../../../../aws.settings';
9
- import { IAmazonServerGroupCommand } from '../../../serverGroupConfiguration.service';
10
+ import type { IAmazonServerGroupCommand } from '../../../serverGroupConfiguration.service';
10
11
 
11
12
  export class ServerGroupAdvancedSettingsCommon extends React.Component<IServerGroupAdvancedSettingsProps> {
12
13
  private duplicateKeys = false;
@@ -1,11 +1,12 @@
1
- import { FormikErrors } from 'formik';
1
+ import type { FormikErrors } from 'formik';
2
2
  import React from 'react';
3
3
 
4
- import { IWizardPageComponent, Overridable } from '@spinnaker/core';
4
+ import type { IWizardPageComponent } from '@spinnaker/core';
5
+ import { Overridable } from '@spinnaker/core';
5
6
 
6
- import { IServerGroupAdvancedSettingsProps } from './ServerGroupAdvancedSettings';
7
+ import type { IServerGroupAdvancedSettingsProps } from './ServerGroupAdvancedSettings';
7
8
  import { ServerGroupAdvancedSettingsCommon } from './ServerGroupAdvancedSettingsCommon';
8
- import { IAmazonServerGroupCommand } from '../../../serverGroupConfiguration.service';
9
+ import type { IAmazonServerGroupCommand } from '../../../serverGroupConfiguration.service';
9
10
 
10
11
  @Overridable('aws.serverGroup.advancedSettings')
11
12
  export class ServerGroupAdvancedSettingsInner
@@ -1,17 +1,11 @@
1
1
  import React from 'react';
2
- import { Option } from 'react-select';
2
+ import type { Option } from 'react-select';
3
3
  import VirtualizedSelect from 'react-virtualized-select';
4
4
 
5
- import {
6
- FirewallLabels,
7
- HelpField,
8
- InfrastructureCaches,
9
- ISecurityGroup,
10
- ReactInjector,
11
- timestamp,
12
- } from '@spinnaker/core';
5
+ import type { ISecurityGroup } from '@spinnaker/core';
6
+ import { FirewallLabels, HelpField, InfrastructureCaches, ReactInjector, timestamp } from '@spinnaker/core';
13
7
 
14
- import { IAmazonServerGroupCommand } from '../../serverGroupConfiguration.service';
8
+ import type { IAmazonServerGroupCommand } from '../../serverGroupConfiguration.service';
15
9
 
16
10
  export interface ISecurityGroupSelectorProps {
17
11
  command: IAmazonServerGroupCommand;
@@ -2,7 +2,7 @@ import React from 'react';
2
2
 
3
3
  import { FirewallLabels, noop } from '@spinnaker/core';
4
4
 
5
- import { IAmazonServerGroupCommand } from '../../serverGroupConfiguration.service';
5
+ import type { IAmazonServerGroupCommand } from '../../serverGroupConfiguration.service';
6
6
 
7
7
  export interface IServerGroupSecurityGroupsRemovedProps {
8
8
  command?: IAmazonServerGroupCommand;
@@ -2,13 +2,11 @@ import { filter, find, get, orderBy } from 'lodash';
2
2
  import React from 'react';
3
3
  import { Dropdown, MenuItem, Tooltip } from 'react-bootstrap';
4
4
 
5
+ import type { IOwnerOption, IServerGroupActionsProps, IServerGroupJob } from '@spinnaker/core';
5
6
  import {
6
7
  AddEntityTagLinks,
7
8
  ClusterTargetBuilder,
8
9
  ConfirmationModalService,
9
- IOwnerOption,
10
- IServerGroupActionsProps,
11
- IServerGroupJob,
12
10
  ManagedMenuItem,
13
11
  ModalInjector,
14
12
  Overridable,
@@ -17,14 +15,12 @@ import {
17
15
  SETTINGS,
18
16
  } from '@spinnaker/core';
19
17
 
20
- import { IAmazonServerGroupCommand } from '../configure';
18
+ import type { IAmazonServerGroupCommand } from '../configure';
21
19
  import { AmazonCloneServerGroupModal } from '../configure/wizard/AmazonCloneServerGroupModal';
22
- import { IAmazonServerGroup, IAmazonServerGroupView } from '../../domain';
20
+ import type { IAmazonServerGroup, IAmazonServerGroupView } from '../../domain';
23
21
  import { AwsReactInjector } from '../../reactShims';
24
- import {
25
- AmazonResizeServerGroupModal,
26
- IAmazonResizeServerGroupModalProps,
27
- } from './resize/AmazonResizeServerGroupModal';
22
+ import type { IAmazonResizeServerGroupModalProps } from './resize/AmazonResizeServerGroupModal';
23
+ import { AmazonResizeServerGroupModal } from './resize/AmazonResizeServerGroupModal';
28
24
 
29
25
  export interface IAmazonServerGroupActionsProps extends IServerGroupActionsProps {
30
26
  serverGroup: IAmazonServerGroupView;
@@ -289,54 +285,58 @@ export class AmazonServerGroupActions extends React.Component<IAmazonServerGroup
289
285
  const entityTagTargets: IOwnerOption[] = ClusterTargetBuilder.buildClusterTargets(serverGroup);
290
286
 
291
287
  return (
292
- <Dropdown className="dropdown" id="server-group-actions-dropdown">
293
- <Dropdown.Toggle className="btn btn-sm btn-primary dropdown-toggle">Server Group Actions</Dropdown.Toggle>
294
- <Dropdown.Menu className="dropdown-menu">
295
- {this.isRollbackEnabled() && (
296
- <ManagedMenuItem resource={serverGroup} application={app} onClick={this.rollbackServerGroup}>
297
- Rollback
298
- </ManagedMenuItem>
299
- )}
300
- {this.isRollbackEnabled() && <li role="presentation" className="divider" />}
301
- <AmazonServerGroupActionsResize application={app} serverGroup={serverGroup} />
302
- {!serverGroup.isDisabled && (
303
- <ManagedMenuItem resource={serverGroup} application={app} onClick={this.disableServerGroup}>
304
- Disable
305
- </ManagedMenuItem>
306
- )}
307
- {this.hasDisabledInstances() && !this.isEnableLocked() && (
308
- <ManagedMenuItem resource={serverGroup} application={app} onClick={this.enableServerGroup}>
309
- Enable
310
- </ManagedMenuItem>
311
- )}
312
- {this.isEnableLocked() && (
313
- <li className="disabled">
314
- <Tooltip value="Cannot enable this server group until resize operation completes" placement="left">
315
- <a>
316
- <span className="small glyphicon glyphicon-lock" /> Enable
288
+ <>
289
+ {SETTINGS.awsAdHocInfraWritesEnabled && (
290
+ <Dropdown className="dropdown" id="server-group-actions-dropdown">
291
+ <Dropdown.Toggle className="btn btn-sm btn-primary dropdown-toggle">Server Group Actions</Dropdown.Toggle>
292
+ <Dropdown.Menu className="dropdown-menu">
293
+ {this.isRollbackEnabled() && (
294
+ <ManagedMenuItem resource={serverGroup} application={app} onClick={this.rollbackServerGroup}>
295
+ Rollback
296
+ </ManagedMenuItem>
297
+ )}
298
+ {this.isRollbackEnabled() && <li role="presentation" className="divider" />}
299
+ <AmazonServerGroupActionsResize application={app} serverGroup={serverGroup} />
300
+ {!serverGroup.isDisabled && (
301
+ <ManagedMenuItem resource={serverGroup} application={app} onClick={this.disableServerGroup}>
302
+ Disable
303
+ </ManagedMenuItem>
304
+ )}
305
+ {this.hasDisabledInstances() && !this.isEnableLocked() && (
306
+ <ManagedMenuItem resource={serverGroup} application={app} onClick={this.enableServerGroup}>
307
+ Enable
308
+ </ManagedMenuItem>
309
+ )}
310
+ {this.isEnableLocked() && (
311
+ <li className="disabled">
312
+ <Tooltip value="Cannot enable this server group until resize operation completes" placement="left">
313
+ <a>
314
+ <span className="small glyphicon glyphicon-lock" /> Enable
315
+ </a>
316
+ </Tooltip>
317
+ </li>
318
+ )}
319
+ <ManagedMenuItem resource={serverGroup} application={app} onClick={this.destroyServerGroup}>
320
+ Destroy
321
+ </ManagedMenuItem>
322
+ <li>
323
+ <a className="clickable" onClick={this.cloneServerGroup}>
324
+ Clone
317
325
  </a>
318
- </Tooltip>
319
- </li>
320
- )}
321
- <ManagedMenuItem resource={serverGroup} application={app} onClick={this.destroyServerGroup}>
322
- Destroy
323
- </ManagedMenuItem>
324
- <li>
325
- <a className="clickable" onClick={this.cloneServerGroup}>
326
- Clone
327
- </a>
328
- </li>
329
- {showEntityTags && (
330
- <AddEntityTagLinks
331
- component={serverGroup}
332
- application={app}
333
- entityType="serverGroup"
334
- ownerOptions={entityTagTargets}
335
- onUpdate={() => app.serverGroups.refresh()}
336
- />
337
- )}
338
- </Dropdown.Menu>
339
- </Dropdown>
326
+ </li>
327
+ {showEntityTags && (
328
+ <AddEntityTagLinks
329
+ component={serverGroup}
330
+ application={app}
331
+ entityType="serverGroup"
332
+ ownerOptions={entityTagTargets}
333
+ onUpdate={() => app.serverGroups.refresh()}
334
+ />
335
+ )}
336
+ </Dropdown.Menu>
337
+ </Dropdown>
338
+ )}
339
+ </>
340
340
  );
341
341
  }
342
342
  }
@@ -1,8 +1,9 @@
1
1
  import { isEmpty } from 'lodash';
2
2
  import { Observable } from 'rxjs';
3
3
 
4
- import { AccountService, IServerGroupDetailsProps, ISubnet, ServerGroupReader, SubnetReader } from '@spinnaker/core';
5
- import { IAmazonLoadBalancer, IAmazonServerGroup, IAmazonServerGroupView } from '../../domain';
4
+ import type { IServerGroupDetailsProps, ISubnet } from '@spinnaker/core';
5
+ import { AccountService, ServerGroupReader, SubnetReader } from '@spinnaker/core';
6
+ import type { IAmazonLoadBalancer, IAmazonServerGroup, IAmazonServerGroupView } from '../../domain';
6
7
  import { AwsReactInjector } from '../../reactShims';
7
8
 
8
9
  import { AutoScalingProcessService } from './scalingProcesses/AutoScalingProcessService';
@@ -1,17 +1,15 @@
1
- import { Form, Formik, FormikErrors, FormikProps } from 'formik';
1
+ import type { Formik, FormikErrors, FormikProps } from 'formik';
2
+ import { Form } from 'formik';
2
3
  import { pickBy } from 'lodash';
3
4
  import React from 'react';
4
5
  import { Modal } from 'react-bootstrap';
5
6
 
7
+ import type { Application, ICapacity, IModalComponentProps, IServerGroupJob } from '@spinnaker/core';
6
8
  import {
7
- Application,
8
9
  CheckboxInput,
9
10
  confirmNotManaged,
10
11
  FormikFormField,
11
12
  HelpField,
12
- ICapacity,
13
- IModalComponentProps,
14
- IServerGroupJob,
15
13
  MinMaxDesiredChanges,
16
14
  ModalClose,
17
15
  noop,
@@ -26,7 +24,7 @@ import {
26
24
  ValidationMessage,
27
25
  } from '@spinnaker/core';
28
26
  import { AwsModalFooter } from '../../../common';
29
- import { IAmazonServerGroup } from '../../../domain';
27
+ import type { IAmazonServerGroup } from '../../../domain';
30
28
 
31
29
  export interface IAmazonResizeServerGroupModalProps extends IModalComponentProps {
32
30
  application: Application;
@@ -1,12 +1,15 @@
1
1
  import React from 'react';
2
2
 
3
- import { Application, ReactModal } from '@spinnaker/core';
4
- import { IAmazonServerGroupView } from '../../../domain';
3
+ import type { Application } from '@spinnaker/core';
4
+ import { ReactModal } from '@spinnaker/core';
5
+ import type { IAmazonServerGroupView } from '../../../domain';
5
6
  import { AwsReactInjector } from '../../../reactShims';
6
7
 
7
- import { IUpsertTargetTrackingModalProps, UpsertTargetTrackingModal } from './targetTracking/UpsertTargetTrackingModal';
8
+ import type { IUpsertTargetTrackingModalProps } from './targetTracking/UpsertTargetTrackingModal';
9
+ import { UpsertTargetTrackingModal } from './targetTracking/UpsertTargetTrackingModal';
8
10
  import { PolicyTypeSelectionModal } from './upsert/PolicyTypeSelectionModal';
9
- import { IUpsertScalingPolicyModalProps, UpsertScalingPolicyModal } from './upsert/UpsertScalingPolicyModal';
11
+ import type { IUpsertScalingPolicyModalProps } from './upsert/UpsertScalingPolicyModal';
12
+ import { UpsertScalingPolicyModal } from './upsert/UpsertScalingPolicyModal';
10
13
 
11
14
  export interface ICreateScalingPolicyButtonProps {
12
15
  application: Application;
@@ -1,8 +1,29 @@
1
- import { Application, IServerGroup } from '@spinnaker/core';
2
- import { IScalingPolicy } from '../../../domain';
1
+ import * as React from 'react';
2
+
3
+ import type { Application, IServerGroup } from '@spinnaker/core';
4
+
5
+ import { StepPolicySummary } from './StepPolicySummary';
6
+ import type { IScalingPolicyView, ITargetTrackingPolicy } from '../../../domain';
7
+ import { TargetTrackingSummary } from './targetTracking/TargetTrackingSummary';
8
+
9
+ import './scalingPolicySummary.component.less';
3
10
 
4
11
  export interface IScalingPolicySummaryProps {
5
- policy: IScalingPolicy;
6
- serverGroup: IServerGroup;
7
12
  application: Application;
13
+ policy: IScalingPolicyView;
14
+ serverGroup: IServerGroup;
8
15
  }
16
+
17
+ export const ScalingPolicySummary = ({ application, policy, serverGroup }: IScalingPolicySummaryProps) => {
18
+ if (policy.policyType === 'TargetTrackingScaling') {
19
+ return (
20
+ <TargetTrackingSummary
21
+ application={application}
22
+ policy={policy as ITargetTrackingPolicy}
23
+ serverGroup={serverGroup}
24
+ />
25
+ );
26
+ }
27
+
28
+ return <StepPolicySummary application={application} policy={policy} serverGroup={serverGroup} />;
29
+ };
@@ -1,5 +1,6 @@
1
- import { Application, IJob, IMetricAlarmDimension, IServerGroup, ITask, TaskExecutor } from '@spinnaker/core';
2
- import {
1
+ import type { Application, IJob, IMetricAlarmDimension, IServerGroup, ITask } from '@spinnaker/core';
2
+ import { TaskExecutor } from '@spinnaker/core';
3
+ import type {
3
4
  AlarmComparisonOperator,
4
5
  AlarmStatisticType,
5
6
  IScalingPolicy,
@@ -0,0 +1,10 @@
1
+ .StepPolicySummary {
2
+ .HoverablePopover {
3
+ text-decoration: none;
4
+ }
5
+
6
+ .actions {
7
+ margin: 0 0 15px 0;
8
+ border-bottom: 1px solid var(--color-alto);
9
+ }
10
+ }
@@ -0,0 +1,122 @@
1
+ import * as React from 'react';
2
+
3
+ import {
4
+ CloudProviderRegistry,
5
+ ConfirmationModalService,
6
+ HoverablePopover,
7
+ ReactModal,
8
+ robotToHuman,
9
+ TaskExecutor,
10
+ } from '@spinnaker/core';
11
+ import type { Application, IServerGroup } from '@spinnaker/core';
12
+
13
+ import type { IAmazonServerGroup, IScalingPolicyView } from '../../../domain';
14
+ import { AlarmSummary } from './popover/AlarmSummary';
15
+ import { StepPolicyPopoverContent } from './popover/StepPolicyPopoverContent';
16
+
17
+ import './StepPolicySummary.less';
18
+
19
+ export interface IStepPolicySummaryProps {
20
+ application: Application;
21
+ policy: IScalingPolicyView;
22
+ serverGroup: IServerGroup;
23
+ }
24
+
25
+ interface IDeletePolicyJob {
26
+ type: string;
27
+ cloudProvider: string;
28
+ credentials: string;
29
+ region: string;
30
+ policyName?: string;
31
+ scalingPolicyID?: string;
32
+ serverGroupName: string;
33
+ }
34
+
35
+ export const StepPolicySummary = ({ application, policy, serverGroup }: IStepPolicySummaryProps) => {
36
+ const provider = serverGroup.type || serverGroup.cloudProvider || 'aws';
37
+ const providerConfig = CloudProviderRegistry.getValue(provider, 'serverGroup');
38
+ const policyTitle = provider === 'aws' ? policy.policyName : policy.id;
39
+
40
+ const UpsertModalComponent = providerConfig.UpsertStepPolicyModal;
41
+
42
+ const editPolicy = () => {
43
+ const upsertProps = {
44
+ app: application,
45
+ policy,
46
+ serverGroup,
47
+ };
48
+
49
+ const modalProps = { dialogClassName: 'wizard-modal modal-lg' };
50
+ ReactModal.show<typeof UpsertModalComponent>(UpsertModalComponent, upsertProps, modalProps);
51
+ };
52
+ const deletePolicy = () => {
53
+ const taskMonitor = {
54
+ application,
55
+ title: `Deleting scaling policy ${policyTitle}`,
56
+ };
57
+
58
+ const jobToSubmit: IDeletePolicyJob = {
59
+ type: 'deleteScalingPolicy',
60
+ cloudProvider: provider,
61
+ credentials: serverGroup.account,
62
+ region: serverGroup.region,
63
+ scalingPolicyID: policy.id,
64
+ serverGroupName: serverGroup.name,
65
+ };
66
+
67
+ if (provider === 'aws') {
68
+ delete jobToSubmit.scalingPolicyID;
69
+ jobToSubmit.policyName = policy.policyName;
70
+ }
71
+
72
+ ConfirmationModalService.confirm({
73
+ header: `Really delete ${policyTitle}?`,
74
+ buttonText: 'Delete scaling policy',
75
+ account: serverGroup.account,
76
+ taskMonitorConfig: taskMonitor,
77
+ submitMethod: () =>
78
+ TaskExecutor.executeTask({
79
+ application,
80
+ description: `Delete scaling policy ${policyTitle}`,
81
+ job: [jobToSubmit],
82
+ }),
83
+ });
84
+ };
85
+
86
+ if (!policy.alarms?.length) {
87
+ return <div>No alarms configured for this policy - it's safe to delete.</div>;
88
+ }
89
+
90
+ return (
91
+ <div className="StepPolicySummary">
92
+ <div>
93
+ {policy.alarms.map((a) => (
94
+ <div key={`step-summary-${policy.policyName}`}>
95
+ <HoverablePopover
96
+ Component={() => (
97
+ <StepPolicyPopoverContent policy={policy} serverGroup={serverGroup as IAmazonServerGroup} />
98
+ )}
99
+ placement="left"
100
+ title={policy.policyName}
101
+ >
102
+ <div>
103
+ <div className="label label-default">{robotToHuman(policy.policyType).toUpperCase()}</div>
104
+ <AlarmSummary alarm={a} />
105
+ </div>
106
+ </HoverablePopover>
107
+ <div className="actions">
108
+ <button className="btn btn-xs btn-link" onClick={editPolicy}>
109
+ <span className="glyphicon glyphicon-cog"></span>
110
+ <span className="sr-only">Edit policy</span>
111
+ </button>
112
+ <button className="btn btn-xs btn-link" onClick={deletePolicy}>
113
+ <span className="glyphicon glyphicon-trash"></span>
114
+ <span className="sr-only">Delete policy</span>
115
+ </button>
116
+ </div>
117
+ </div>
118
+ ))}
119
+ </div>
120
+ </div>
121
+ );
122
+ };
@@ -1,5 +1,5 @@
1
- <alarm-based-summary
1
+ <step-policy-summary
2
2
  policy="$ctrl.policy"
3
3
  server-group="$ctrl.serverGroup"
4
4
  application="$ctrl.application"
5
- ></alarm-based-summary>
5
+ ></step-policy-summary>
@@ -1,20 +1,22 @@
1
- import {
1
+ import type {
2
2
  CartesianScaleOptions,
3
- Chart,
4
3
  ChartConfiguration,
5
4
  ChartDataset,
5
+ LinearScaleOptions,
6
+ TimeScaleOptions,
7
+ TooltipItem,
8
+ } from 'chart.js';
9
+ import {
10
+ Chart,
6
11
  Filler,
7
12
  Legend,
8
13
  LinearScale,
9
- LinearScaleOptions,
10
14
  LineController,
11
15
  LineElement,
12
16
  PointElement,
13
17
  TimeScale,
14
- TimeScaleOptions,
15
18
  Title,
16
19
  Tooltip,
17
- TooltipItem,
18
20
  } from 'chart.js';
19
21
  import 'chartjs-adapter-luxon';
20
22
  import * as React from 'react';
@@ -1,20 +1,15 @@
1
1
  import { module } from 'angular';
2
2
  import * as React from 'react';
3
3
  import { react2angular } from 'react2angular';
4
- import { Observable } from 'rxjs';
4
+ import type { Observable } from 'rxjs';
5
5
 
6
- import {
7
- CloudMetricsReader,
8
- ICloudMetricStatistics,
9
- Spinner,
10
- useData,
11
- useForceUpdate,
12
- useObservable,
13
- } from '@spinnaker/core';
6
+ import type { ICloudMetricStatistics } from '@spinnaker/core';
7
+ import { CloudMetricsReader, Spinner, useData, useForceUpdate, useObservable } from '@spinnaker/core';
14
8
  import { withErrorBoundary } from '@spinnaker/core';
15
9
 
16
- import { DateLineChart, IDateLine } from './DateLineChart';
17
- import { IAmazonServerGroup, IScalingPolicyAlarm } from '../../../../domain';
10
+ import type { IDateLine } from './DateLineChart';
11
+ import { DateLineChart } from './DateLineChart';
12
+ import type { IAmazonServerGroup, IScalingPolicyAlarm } from '../../../../domain';
18
13
 
19
14
  interface IMetricAlarmChartProps {
20
15
  serverGroup: IAmazonServerGroup;
@@ -1,9 +1,10 @@
1
- import { IComponentOptions, IController, module } from 'angular';
1
+ import type { IComponentOptions, IController } from 'angular';
2
+ import { module } from 'angular';
2
3
 
3
- import { Application, IServerGroup } from '@spinnaker/core';
4
+ import type { Application, IServerGroup } from '@spinnaker/core';
4
5
 
5
6
  import { ScalingPolicyTypeRegistry } from './ScalingPolicyTypeRegistry';
6
- import { IScalingPolicy } from '../../../domain';
7
+ import type { IScalingPolicy } from '../../../domain';
7
8
 
8
9
  export class ScalingPolicyDetailsSummaryController implements IController {
9
10
  public templateUrl: string;
@@ -3,7 +3,11 @@ export { MetricAlarmChart } from './chart/MetricAlarmChart';
3
3
  export * from './ScalingPolicyTypeRegistry';
4
4
  export * from './CreateScalingPolicyButton';
5
5
  export * from './ScalingPolicyWriter';
6
+ export * from './StepPolicySummary';
7
+ export * from './ScalingPolicySummary';
6
8
  export * from './targetTracking/TargetTrackingAdditionalSettings';
7
9
  export * from './targetTracking/TargetMetricFields';
8
10
  export * from './targetTracking/TargetTrackingChart';
11
+ export { UpsertTargetTrackingModal as AmazonUpsertTargetTrackingModal } from './targetTracking/UpsertTargetTrackingModal';
12
+ export * from './targetTracking/TargetTrackingSummary';
9
13
  export * from './upsert';