-
Notifications
You must be signed in to change notification settings - Fork 113
/
zz_taskdefinition_types.go
executable file
·361 lines (268 loc) · 17.4 KB
/
zz_taskdefinition_types.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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
/*
Copyright 2022 Upbound Inc.
*/
// Code generated by upjet. DO NOT EDIT.
package v1beta1
import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime/schema"
v1 "github.com/crossplane/crossplane-runtime/apis/common/v1"
)
type AuthorizationConfigObservation struct {
}
type AuthorizationConfigParameters struct {
// Access point ID to use. If an access point is specified, the root directory value will be relative to the directory set for the access point. If specified, transit encryption must be enabled in the EFSVolumeConfiguration.
// +kubebuilder:validation:Optional
AccessPointID *string `json:"accessPointId,omitempty" tf:"access_point_id,omitempty"`
// Whether or not to use the Amazon ECS task IAM role defined in a task definition when mounting the Amazon EFS file system. If enabled, transit encryption must be enabled in the EFSVolumeConfiguration. Valid values: ENABLED, DISABLED. If this parameter is omitted, the default value of DISABLED is used.
// +kubebuilder:validation:Optional
IAM *string `json:"iam,omitempty" tf:"iam,omitempty"`
}
type DockerVolumeConfigurationObservation struct {
}
type DockerVolumeConfigurationParameters struct {
// If this value is true, the Docker volume is created if it does not already exist. Note: This field is only used if the scope is shared.
// +kubebuilder:validation:Optional
Autoprovision *bool `json:"autoprovision,omitempty" tf:"autoprovision,omitempty"`
// Docker volume driver to use. The driver value must match the driver name provided by Docker because it is used for task placement.
// +kubebuilder:validation:Optional
Driver *string `json:"driver,omitempty" tf:"driver,omitempty"`
// Map of Docker driver specific options.
// +kubebuilder:validation:Optional
DriverOpts map[string]*string `json:"driverOpts,omitempty" tf:"driver_opts,omitempty"`
// Map of custom metadata to add to your Docker volume.
// +kubebuilder:validation:Optional
Labels map[string]*string `json:"labels,omitempty" tf:"labels,omitempty"`
// Scope for the Docker volume, which determines its lifecycle, either task or shared. Docker volumes that are scoped to a task are automatically provisioned when the task starts and destroyed when the task stops. Docker volumes that are scoped as shared persist after the task stops.
// +kubebuilder:validation:Optional
Scope *string `json:"scope,omitempty" tf:"scope,omitempty"`
}
type EFSVolumeConfigurationObservation struct {
}
type EFSVolumeConfigurationParameters struct {
// Configuration block for authorization for the Amazon EFS file system. Detailed below.
// +kubebuilder:validation:Optional
AuthorizationConfig []AuthorizationConfigParameters `json:"authorizationConfig,omitempty" tf:"authorization_config,omitempty"`
// ID of the EFS File System.
// +kubebuilder:validation:Required
FileSystemID *string `json:"fileSystemId" tf:"file_system_id,omitempty"`
// Directory within the Amazon EFS file system to mount as the root directory inside the host. If this parameter is omitted, the root of the Amazon EFS volume will be used. Specifying / will have the same effect as omitting this parameter. This argument is ignored when using authorization_config.
// +kubebuilder:validation:Optional
RootDirectory *string `json:"rootDirectory,omitempty" tf:"root_directory,omitempty"`
// Whether or not to enable encryption for Amazon EFS data in transit between the Amazon ECS host and the Amazon EFS server. Transit encryption must be enabled if Amazon EFS IAM authorization is used. Valid values: ENABLED, DISABLED. If this parameter is omitted, the default value of DISABLED is used.
// +kubebuilder:validation:Optional
TransitEncryption *string `json:"transitEncryption,omitempty" tf:"transit_encryption,omitempty"`
// Port to use for transit encryption. If you do not specify a transit encryption port, it will use the port selection strategy that the Amazon EFS mount helper uses.
// +kubebuilder:validation:Optional
TransitEncryptionPort *float64 `json:"transitEncryptionPort,omitempty" tf:"transit_encryption_port,omitempty"`
}
type EphemeralStorageObservation struct {
}
type EphemeralStorageParameters struct {
// The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is 21 GiB and the maximum supported value is 200 GiB.
// +kubebuilder:validation:Required
SizeInGib *float64 `json:"sizeInGib" tf:"size_in_gib,omitempty"`
}
type FSXWindowsFileServerVolumeConfigurationAuthorizationConfigObservation struct {
}
type FSXWindowsFileServerVolumeConfigurationAuthorizationConfigParameters struct {
// The authorization credential option to use. The authorization credential options can be provided using either the Amazon Resource Name (ARN) of an AWS Secrets Manager secret or AWS Systems Manager Parameter Store parameter. The ARNs refer to the stored credentials.
// +kubebuilder:validation:Required
CredentialsParameter *string `json:"credentialsParameter" tf:"credentials_parameter,omitempty"`
// A fully qualified domain name hosted by an AWS Directory Service Managed Microsoft AD (Active Directory) or self-hosted AD on Amazon EC2.
// +kubebuilder:validation:Required
Domain *string `json:"domain" tf:"domain,omitempty"`
}
type FSXWindowsFileServerVolumeConfigurationObservation struct {
}
type FSXWindowsFileServerVolumeConfigurationParameters struct {
// Configuration block for authorization for the Amazon FSx for Windows File Server file system detailed below.
// +kubebuilder:validation:Required
AuthorizationConfig []FSXWindowsFileServerVolumeConfigurationAuthorizationConfigParameters `json:"authorizationConfig" tf:"authorization_config,omitempty"`
// The Amazon FSx for Windows File Server file system ID to use.
// +kubebuilder:validation:Required
FileSystemID *string `json:"fileSystemId" tf:"file_system_id,omitempty"`
// The directory within the Amazon FSx for Windows File Server file system to mount as the root directory inside the host.
// +kubebuilder:validation:Required
RootDirectory *string `json:"rootDirectory" tf:"root_directory,omitempty"`
}
type InferenceAcceleratorObservation struct {
}
type InferenceAcceleratorParameters struct {
// Elastic Inference accelerator device name. The deviceName must also be referenced in a container definition as a ResourceRequirement.
// +kubebuilder:validation:Required
DeviceName *string `json:"deviceName" tf:"device_name,omitempty"`
// Elastic Inference accelerator type to use.
// +kubebuilder:validation:Required
DeviceType *string `json:"deviceType" tf:"device_type,omitempty"`
}
type ProxyConfigurationObservation struct {
}
type ProxyConfigurationParameters struct {
// Name of the container that will serve as the App Mesh proxy.
// +kubebuilder:validation:Required
ContainerName *string `json:"containerName" tf:"container_name,omitempty"`
// Set of network configuration parameters to provide the Container Network Interface (CNI) plugin, specified a key-value mapping.
// +kubebuilder:validation:Optional
Properties map[string]*string `json:"properties,omitempty" tf:"properties,omitempty"`
// Proxy type. The default value is APPMESH. The only supported value is APPMESH.
// +kubebuilder:validation:Optional
Type *string `json:"type,omitempty" tf:"type,omitempty"`
}
type RuntimePlatformObservation struct {
}
type RuntimePlatformParameters struct {
// Must be set to either X86_64 or ARM64; see cpu architecture
// +kubebuilder:validation:Optional
CPUArchitecture *string `json:"cpuArchitecture,omitempty" tf:"cpu_architecture,omitempty"`
// If the requires_compatibilities is FARGATE this field is required; must be set to a valid option from the operating system family in the runtime platform setting
// +kubebuilder:validation:Optional
OperatingSystemFamily *string `json:"operatingSystemFamily,omitempty" tf:"operating_system_family,omitempty"`
}
type TaskDefinitionObservation struct {
// Full ARN of the Task Definition (including both family and revision).
Arn *string `json:"arn,omitempty" tf:"arn,omitempty"`
ID *string `json:"id,omitempty" tf:"id,omitempty"`
// Revision of the task in a particular family.
Revision *float64 `json:"revision,omitempty" tf:"revision,omitempty"`
// Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.
TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"`
}
type TaskDefinitionParameters struct {
// Number of cpu units used by the task. If the requires_compatibilities is FARGATE this field is required.
// +kubebuilder:validation:Optional
CPU *string `json:"cpu,omitempty" tf:"cpu,omitempty"`
// A list of valid container definitions provided as a single valid JSON document. Please note that you should only provide values that are part of the container definition document. For a detailed description of what parameters are available, see the Task Definition Parameters section from the official Developer Guide.
// +kubebuilder:validation:Required
ContainerDefinitions *string `json:"containerDefinitions" tf:"container_definitions,omitempty"`
// The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage.
// +kubebuilder:validation:Optional
EphemeralStorage []EphemeralStorageParameters `json:"ephemeralStorage,omitempty" tf:"ephemeral_storage,omitempty"`
// ARN of the task execution role that the Amazon ECS container agent and the Docker daemon can assume.
// +crossplane:generate:reference:type=github.com/upbound/provider-aws/apis/iam/v1beta1.Role
// +crossplane:generate:reference:extractor=github.com/upbound/provider-aws/config/common.ARNExtractor()
// +kubebuilder:validation:Optional
ExecutionRoleArn *string `json:"executionRoleArn,omitempty" tf:"execution_role_arn,omitempty"`
// Reference to a Role in iam to populate executionRoleArn.
// +kubebuilder:validation:Optional
ExecutionRoleArnRef *v1.Reference `json:"executionRoleArnRef,omitempty" tf:"-"`
// Selector for a Role in iam to populate executionRoleArn.
// +kubebuilder:validation:Optional
ExecutionRoleArnSelector *v1.Selector `json:"executionRoleArnSelector,omitempty" tf:"-"`
// A unique name for your task definition.
// +kubebuilder:validation:Required
Family *string `json:"family" tf:"family,omitempty"`
// Configuration block(s) with Inference Accelerators settings. Detailed below.
// +kubebuilder:validation:Optional
InferenceAccelerator []InferenceAcceleratorParameters `json:"inferenceAccelerator,omitempty" tf:"inference_accelerator,omitempty"`
// IPC resource namespace to be used for the containers in the task The valid values are host, task, and none.
// +kubebuilder:validation:Optional
IpcMode *string `json:"ipcMode,omitempty" tf:"ipc_mode,omitempty"`
// Amount (in MiB) of memory used by the task. If the requires_compatibilities is FARGATE this field is required.
// +kubebuilder:validation:Optional
Memory *string `json:"memory,omitempty" tf:"memory,omitempty"`
// Docker networking mode to use for the containers in the task. Valid values are none, bridge, awsvpc, and host.
// +kubebuilder:validation:Optional
NetworkMode *string `json:"networkMode,omitempty" tf:"network_mode,omitempty"`
// Process namespace to use for the containers in the task. The valid values are host and task.
// +kubebuilder:validation:Optional
PidMode *string `json:"pidMode,omitempty" tf:"pid_mode,omitempty"`
// Configuration block for rules that are taken into consideration during task placement. Maximum number of placement_constraints is 10. Detailed below.
// +kubebuilder:validation:Optional
PlacementConstraints []TaskDefinitionPlacementConstraintsParameters `json:"placementConstraints,omitempty" tf:"placement_constraints,omitempty"`
// Configuration block for the App Mesh proxy. Detailed below.
// +kubebuilder:validation:Optional
ProxyConfiguration []ProxyConfigurationParameters `json:"proxyConfiguration,omitempty" tf:"proxy_configuration,omitempty"`
// Region is the region you'd like your resource to be created in.
// +upjet:crd:field:TFTag=-
// +kubebuilder:validation:Required
Region *string `json:"region" tf:"-"`
// Set of launch types required by the task. The valid values are EC2 and FARGATE.
// +kubebuilder:validation:Optional
RequiresCompatibilities []*string `json:"requiresCompatibilities,omitempty" tf:"requires_compatibilities,omitempty"`
// Configuration block for runtime_platform that containers in your task may use.
// +kubebuilder:validation:Optional
RuntimePlatform []RuntimePlatformParameters `json:"runtimePlatform,omitempty" tf:"runtime_platform,omitempty"`
// +kubebuilder:validation:Optional
SkipDestroy *bool `json:"skipDestroy,omitempty" tf:"skip_destroy,omitempty"`
// Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
// +kubebuilder:validation:Optional
Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"`
// ARN of IAM role that allows your Amazon ECS container task to make calls to other AWS services.
// +kubebuilder:validation:Optional
TaskRoleArn *string `json:"taskRoleArn,omitempty" tf:"task_role_arn,omitempty"`
// Configuration block for volumes that containers in your task may use. Detailed below.
// +kubebuilder:validation:Optional
Volume []VolumeParameters `json:"volume,omitempty" tf:"volume,omitempty"`
}
type TaskDefinitionPlacementConstraintsObservation struct {
}
type TaskDefinitionPlacementConstraintsParameters struct {
// Cluster Query Language expression to apply to the constraint. For more information, see Cluster Query Language in the Amazon EC2 Container Service Developer Guide.
// +kubebuilder:validation:Optional
Expression *string `json:"expression,omitempty" tf:"expression,omitempty"`
// Type of constraint. Use memberOf to restrict selection to a group of valid candidates. Note that distinctInstance is not supported in task definitions.
// +kubebuilder:validation:Required
Type *string `json:"type" tf:"type,omitempty"`
}
type VolumeObservation struct {
}
type VolumeParameters struct {
// Configuration block to configure a docker volume. Detailed below.
// +kubebuilder:validation:Optional
DockerVolumeConfiguration []DockerVolumeConfigurationParameters `json:"dockerVolumeConfiguration,omitempty" tf:"docker_volume_configuration,omitempty"`
// Configuration block for an EFS volume. Detailed below.
// +kubebuilder:validation:Optional
EFSVolumeConfiguration []EFSVolumeConfigurationParameters `json:"efsVolumeConfiguration,omitempty" tf:"efs_volume_configuration,omitempty"`
// Configuration block for an FSX Windows File Server volume. Detailed below.
// +kubebuilder:validation:Optional
FSXWindowsFileServerVolumeConfiguration []FSXWindowsFileServerVolumeConfigurationParameters `json:"fsxWindowsFileServerVolumeConfiguration,omitempty" tf:"fsx_windows_file_server_volume_configuration,omitempty"`
// Path on the host container instance that is presented to the container. If not set, ECS will create a nonpersistent data volume that starts empty and is deleted after the task has finished.
// +kubebuilder:validation:Optional
HostPath *string `json:"hostPath,omitempty" tf:"host_path,omitempty"`
// Name of the volume. This name is referenced in the sourceVolume
// parameter of container definition in the mountPoints section.
// +kubebuilder:validation:Required
Name *string `json:"name" tf:"name,omitempty"`
}
// TaskDefinitionSpec defines the desired state of TaskDefinition
type TaskDefinitionSpec struct {
v1.ResourceSpec `json:",inline"`
ForProvider TaskDefinitionParameters `json:"forProvider"`
}
// TaskDefinitionStatus defines the observed state of TaskDefinition.
type TaskDefinitionStatus struct {
v1.ResourceStatus `json:",inline"`
AtProvider TaskDefinitionObservation `json:"atProvider,omitempty"`
}
// +kubebuilder:object:root=true
// TaskDefinition is the Schema for the TaskDefinitions API. Manages a revision of an ECS task definition.
// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status"
// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status"
// +kubebuilder:printcolumn:name="EXTERNAL-NAME",type="string",JSONPath=".metadata.annotations.crossplane\\.io/external-name"
// +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp"
// +kubebuilder:subresource:status
// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,aws}
type TaskDefinition struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec TaskDefinitionSpec `json:"spec"`
Status TaskDefinitionStatus `json:"status,omitempty"`
}
// +kubebuilder:object:root=true
// TaskDefinitionList contains a list of TaskDefinitions
type TaskDefinitionList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []TaskDefinition `json:"items"`
}
// Repository type metadata.
var (
TaskDefinition_Kind = "TaskDefinition"
TaskDefinition_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: TaskDefinition_Kind}.String()
TaskDefinition_KindAPIVersion = TaskDefinition_Kind + "." + CRDGroupVersion.String()
TaskDefinition_GroupVersionKind = CRDGroupVersion.WithKind(TaskDefinition_Kind)
)
func init() {
SchemeBuilder.Register(&TaskDefinition{}, &TaskDefinitionList{})
}