-
Notifications
You must be signed in to change notification settings - Fork 17
/
EcsFargateLaunchTarget.go
105 lines (92 loc) · 3.03 KB
/
EcsFargateLaunchTarget.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
package awsstepfunctionstasks
import (
_init_ "github.com/aws/aws-cdk-go/awscdk/v2/jsii"
_jsii_ "github.com/aws/jsii-runtime-go/runtime"
)
// Configuration for running an ECS task on Fargate.
//
// Example:
// vpc := ec2.Vpc_FromLookup(this, jsii.String("Vpc"), &VpcLookupOptions{
// IsDefault: jsii.Boolean(true),
// })
//
// cluster := ecs.NewCluster(this, jsii.String("FargateCluster"), &ClusterProps{
// Vpc: Vpc,
// })
//
// taskDefinition := ecs.NewTaskDefinition(this, jsii.String("TD"), &TaskDefinitionProps{
// MemoryMiB: jsii.String("512"),
// Cpu: jsii.String("256"),
// Compatibility: ecs.Compatibility_FARGATE,
// })
//
// containerDefinition := taskDefinition.AddContainer(jsii.String("TheContainer"), &ContainerDefinitionOptions{
// Image: ecs.ContainerImage_FromRegistry(jsii.String("foo/bar")),
// MemoryLimitMiB: jsii.Number(256),
// })
//
// runTask := tasks.NewEcsRunTask(this, jsii.String("RunFargate"), &EcsRunTaskProps{
// IntegrationPattern: sfn.IntegrationPattern_RUN_JOB,
// Cluster: Cluster,
// TaskDefinition: TaskDefinition,
// AssignPublicIp: jsii.Boolean(true),
// ContainerOverrides: []containerOverride{
// &containerOverride{
// ContainerDefinition: *ContainerDefinition,
// Environment: []taskEnvironmentVariable{
// &taskEnvironmentVariable{
// Name: jsii.String("SOME_KEY"),
// Value: sfn.JsonPath_StringAt(jsii.String("$.SomeKey")),
// },
// },
// },
// },
// LaunchTarget: tasks.NewEcsFargateLaunchTarget(),
// PropagatedTagSource: ecs.PropagatedTagSource_TASK_DEFINITION,
// })
//
// See: https://docs.aws.amazon.com/AmazonECS/latest/userguide/launch_types.html#launch-type-fargate
//
type EcsFargateLaunchTarget interface {
IEcsLaunchTarget
// Called when the Fargate launch type configured on RunTask.
Bind(_task EcsRunTask, launchTargetOptions *LaunchTargetBindOptions) *EcsLaunchTargetConfig
}
// The jsii proxy struct for EcsFargateLaunchTarget
type jsiiProxy_EcsFargateLaunchTarget struct {
jsiiProxy_IEcsLaunchTarget
}
func NewEcsFargateLaunchTarget(options *EcsFargateLaunchTargetOptions) EcsFargateLaunchTarget {
_init_.Initialize()
if err := validateNewEcsFargateLaunchTargetParameters(options); err != nil {
panic(err)
}
j := jsiiProxy_EcsFargateLaunchTarget{}
_jsii_.Create(
"aws-cdk-lib.aws_stepfunctions_tasks.EcsFargateLaunchTarget",
[]interface{}{options},
&j,
)
return &j
}
func NewEcsFargateLaunchTarget_Override(e EcsFargateLaunchTarget, options *EcsFargateLaunchTargetOptions) {
_init_.Initialize()
_jsii_.Create(
"aws-cdk-lib.aws_stepfunctions_tasks.EcsFargateLaunchTarget",
[]interface{}{options},
e,
)
}
func (e *jsiiProxy_EcsFargateLaunchTarget) Bind(_task EcsRunTask, launchTargetOptions *LaunchTargetBindOptions) *EcsLaunchTargetConfig {
if err := e.validateBindParameters(_task, launchTargetOptions); err != nil {
panic(err)
}
var returns *EcsLaunchTargetConfig
_jsii_.Invoke(
e,
"bind",
[]interface{}{_task, launchTargetOptions},
&returns,
)
return returns
}