-
Notifications
You must be signed in to change notification settings - Fork 17
/
awsstepfunctionstasks_EcsFargateLaunchTarget.go
108 lines (95 loc) · 3.02 KB
/
awsstepfunctionstasks_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
105
106
107
package awsstepfunctionstasks
import (
_init_ "github.com/aws/aws-cdk-go/awscdk/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(),
// })
//
// See: https://docs.aws.amazon.com/AmazonECS/latest/userguide/launch_types.html#launch-type-fargate
//
// Experimental.
type EcsFargateLaunchTarget interface {
IEcsLaunchTarget
// Called when the Fargate launch type configured on RunTask.
// Experimental.
Bind(_task EcsRunTask, launchTargetOptions *LaunchTargetBindOptions) *EcsLaunchTargetConfig
}
// The jsii proxy struct for EcsFargateLaunchTarget
type jsiiProxy_EcsFargateLaunchTarget struct {
jsiiProxy_IEcsLaunchTarget
}
// Experimental.
func NewEcsFargateLaunchTarget(options *EcsFargateLaunchTargetOptions) EcsFargateLaunchTarget {
_init_.Initialize()
if err := validateNewEcsFargateLaunchTargetParameters(options); err != nil {
panic(err)
}
j := jsiiProxy_EcsFargateLaunchTarget{}
_jsii_.Create(
"monocdk.aws_stepfunctions_tasks.EcsFargateLaunchTarget",
[]interface{}{options},
&j,
)
return &j
}
// Experimental.
func NewEcsFargateLaunchTarget_Override(e EcsFargateLaunchTarget, options *EcsFargateLaunchTargetOptions) {
_init_.Initialize()
_jsii_.Create(
"monocdk.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
}