1// Code generated by smithy-go-codegen DO NOT EDIT.
2
3package types
4
5import (
6	smithydocument "github.com/aws/smithy-go/document"
7	"time"
8)
9
10// Contains details about an API destination.
11type ApiDestination struct {
12
13	// The ARN of the API destination.
14	ApiDestinationArn *string
15
16	// The state of the API destination.
17	ApiDestinationState ApiDestinationState
18
19	// The ARN of the connection specified for the API destination.
20	ConnectionArn *string
21
22	// A time stamp for the time that the API destination was created.
23	CreationTime *time.Time
24
25	// The method to use to connect to the HTTP endpoint.
26	HttpMethod ApiDestinationHttpMethod
27
28	// The URL to the endpoint for the API destination.
29	InvocationEndpoint *string
30
31	// The maximum number of invocations per second to send to the HTTP endpoint.
32	InvocationRateLimitPerSecond *int32
33
34	// A time stamp for the time that the API destination was last modified.
35	LastModifiedTime *time.Time
36
37	// The name of the API destination.
38	Name *string
39
40	noSmithyDocumentSerde
41}
42
43// An Archive object that contains details about an archive.
44type Archive struct {
45
46	// The name of the archive.
47	ArchiveName *string
48
49	// The time stamp for the time that the archive was created.
50	CreationTime *time.Time
51
52	// The number of events in the archive.
53	EventCount int64
54
55	// The ARN of the event bus associated with the archive. Only events from this
56	// event bus are sent to the archive.
57	EventSourceArn *string
58
59	// The number of days to retain events in the archive before they are deleted.
60	RetentionDays *int32
61
62	// The size of the archive, in bytes.
63	SizeBytes int64
64
65	// The current state of the archive.
66	State ArchiveState
67
68	// A description for the reason that the archive is in the current state.
69	StateReason *string
70
71	noSmithyDocumentSerde
72}
73
74// This structure specifies the VPC subnets and security groups for the task, and
75// whether a public IP address is to be used. This structure is relevant only for
76// ECS tasks that use the awsvpc network mode.
77type AwsVpcConfiguration struct {
78
79	// Specifies the subnets associated with the task. These subnets must all be in the
80	// same VPC. You can specify as many as 16 subnets.
81	//
82	// This member is required.
83	Subnets []string
84
85	// Specifies whether the task's elastic network interface receives a public IP
86	// address. You can specify ENABLED only when LaunchType in EcsParameters is set to
87	// FARGATE.
88	AssignPublicIp AssignPublicIp
89
90	// Specifies the security groups associated with the task. These security groups
91	// must all be in the same VPC. You can specify as many as five security groups. If
92	// you do not specify a security group, the default security group for the VPC is
93	// used.
94	SecurityGroups []string
95
96	noSmithyDocumentSerde
97}
98
99// The array properties for the submitted job, such as the size of the array. The
100// array size can be between 2 and 10,000. If you specify array properties for a
101// job, it becomes an array job. This parameter is used only if the target is an
102// Batch job.
103type BatchArrayProperties struct {
104
105	// The size of the array, if this is an array batch job. Valid values are integers
106	// between 2 and 10,000.
107	Size int32
108
109	noSmithyDocumentSerde
110}
111
112// The custom parameters to be used when the target is an Batch job.
113type BatchParameters struct {
114
115	// The ARN or name of the job definition to use if the event target is an Batch
116	// job. This job definition must already exist.
117	//
118	// This member is required.
119	JobDefinition *string
120
121	// The name to use for this execution of the job, if the target is an Batch job.
122	//
123	// This member is required.
124	JobName *string
125
126	// The array properties for the submitted job, such as the size of the array. The
127	// array size can be between 2 and 10,000. If you specify array properties for a
128	// job, it becomes an array job. This parameter is used only if the target is an
129	// Batch job.
130	ArrayProperties *BatchArrayProperties
131
132	// The retry strategy to use for failed jobs, if the target is an Batch job. The
133	// retry strategy is the number of times to retry the failed job execution. Valid
134	// values are 1–10. When you specify a retry strategy here, it overrides the retry
135	// strategy defined in the job definition.
136	RetryStrategy *BatchRetryStrategy
137
138	noSmithyDocumentSerde
139}
140
141// The retry strategy to use for failed jobs, if the target is an Batch job. If you
142// specify a retry strategy here, it overrides the retry strategy defined in the
143// job definition.
144type BatchRetryStrategy struct {
145
146	// The number of times to attempt to retry, if the job fails. Valid values are
147	// 1–10.
148	Attempts int32
149
150	noSmithyDocumentSerde
151}
152
153// The details of a capacity provider strategy. To learn more, see
154// CapacityProviderStrategyItem
155// (https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CapacityProviderStrategyItem.html)
156// in the Amazon ECS API Reference.
157type CapacityProviderStrategyItem struct {
158
159	// The short name of the capacity provider.
160	//
161	// This member is required.
162	CapacityProvider *string
163
164	// The base value designates how many tasks, at a minimum, to run on the specified
165	// capacity provider. Only one capacity provider in a capacity provider strategy
166	// can have a base defined. If no value is specified, the default value of 0 is
167	// used.
168	Base int32
169
170	// The weight value designates the relative percentage of the total number of tasks
171	// launched that should use the specified capacity provider. The weight value is
172	// taken into consideration after the base value, if defined, is satisfied.
173	Weight int32
174
175	noSmithyDocumentSerde
176}
177
178// A JSON string which you can use to limit the event bus permissions you are
179// granting to only accounts that fulfill the condition. Currently, the only
180// supported condition is membership in a certain Amazon Web Services organization.
181// The string must contain Type, Key, and Value fields. The Value field specifies
182// the ID of the Amazon Web Services organization. Following is an example value
183// for Condition: '{"Type" : "StringEquals", "Key": "aws:PrincipalOrgID", "Value":
184// "o-1234567890"}'
185type Condition struct {
186
187	// Specifies the key for the condition. Currently the only supported key is
188	// aws:PrincipalOrgID.
189	//
190	// This member is required.
191	Key *string
192
193	// Specifies the type of condition. Currently the only supported value is
194	// StringEquals.
195	//
196	// This member is required.
197	Type *string
198
199	// Specifies the value for the key. Currently, this must be the ID of the
200	// organization.
201	//
202	// This member is required.
203	Value *string
204
205	noSmithyDocumentSerde
206}
207
208// Contains information about a connection.
209type Connection struct {
210
211	// The authorization type specified for the connection.
212	AuthorizationType ConnectionAuthorizationType
213
214	// The ARN of the connection.
215	ConnectionArn *string
216
217	// The state of the connection.
218	ConnectionState ConnectionState
219
220	// A time stamp for the time that the connection was created.
221	CreationTime *time.Time
222
223	// A time stamp for the time that the connection was last authorized.
224	LastAuthorizedTime *time.Time
225
226	// A time stamp for the time that the connection was last modified.
227	LastModifiedTime *time.Time
228
229	// The name of the connection.
230	Name *string
231
232	// The reason that the connection is in the connection state.
233	StateReason *string
234
235	noSmithyDocumentSerde
236}
237
238// Contains the authorization parameters for the connection if API Key is specified
239// as the authorization type.
240type ConnectionApiKeyAuthResponseParameters struct {
241
242	// The name of the header to use for the APIKeyValue used for authorization.
243	ApiKeyName *string
244
245	noSmithyDocumentSerde
246}
247
248// Contains the authorization parameters to use for the connection.
249type ConnectionAuthResponseParameters struct {
250
251	// The API Key parameters to use for authorization.
252	ApiKeyAuthParameters *ConnectionApiKeyAuthResponseParameters
253
254	// The authorization parameters for Basic authorization.
255	BasicAuthParameters *ConnectionBasicAuthResponseParameters
256
257	// Additional parameters for the connection that are passed through with every
258	// invocation to the HTTP endpoint.
259	InvocationHttpParameters *ConnectionHttpParameters
260
261	// The OAuth parameters to use for authorization.
262	OAuthParameters *ConnectionOAuthResponseParameters
263
264	noSmithyDocumentSerde
265}
266
267// Contains the authorization parameters for the connection if Basic is specified
268// as the authorization type.
269type ConnectionBasicAuthResponseParameters struct {
270
271	// The user name to use for Basic authorization.
272	Username *string
273
274	noSmithyDocumentSerde
275}
276
277// Additional parameter included in the body. You can include up to 100 additional
278// body parameters per request. An event payload cannot exceed 64 KB.
279type ConnectionBodyParameter struct {
280
281	// Specified whether the value is secret.
282	IsValueSecret bool
283
284	// The key for the parameter.
285	Key *string
286
287	// The value associated with the key.
288	Value *string
289
290	noSmithyDocumentSerde
291}
292
293// Additional parameter included in the header. You can include up to 100
294// additional header parameters per request. An event payload cannot exceed 64 KB.
295type ConnectionHeaderParameter struct {
296
297	// Specified whether the value is a secret.
298	IsValueSecret bool
299
300	// The key for the parameter.
301	Key *string
302
303	// The value associated with the key.
304	Value *string
305
306	noSmithyDocumentSerde
307}
308
309// Contains additional parameters for the connection.
310type ConnectionHttpParameters struct {
311
312	// Contains additional body string parameters for the connection.
313	BodyParameters []ConnectionBodyParameter
314
315	// Contains additional header parameters for the connection.
316	HeaderParameters []ConnectionHeaderParameter
317
318	// Contains additional query string parameters for the connection.
319	QueryStringParameters []ConnectionQueryStringParameter
320
321	noSmithyDocumentSerde
322}
323
324// Contains the client response parameters for the connection when OAuth is
325// specified as the authorization type.
326type ConnectionOAuthClientResponseParameters struct {
327
328	// The client ID associated with the response to the connection request.
329	ClientID *string
330
331	noSmithyDocumentSerde
332}
333
334// Contains the response parameters when OAuth is specified as the authorization
335// type.
336type ConnectionOAuthResponseParameters struct {
337
338	// The URL to the HTTP endpoint that authorized the request.
339	AuthorizationEndpoint *string
340
341	// A ConnectionOAuthClientResponseParameters object that contains details about the
342	// client parameters returned when OAuth is specified as the authorization type.
343	ClientParameters *ConnectionOAuthClientResponseParameters
344
345	// The method used to connect to the HTTP endpoint.
346	HttpMethod ConnectionOAuthHttpMethod
347
348	// The additional HTTP parameters used for the OAuth authorization request.
349	OAuthHttpParameters *ConnectionHttpParameters
350
351	noSmithyDocumentSerde
352}
353
354// Additional query string parameter for the connection. You can include up to 100
355// additional query string parameters per request. Each additional parameter counts
356// towards the event payload size, which cannot exceed 64 KB.
357type ConnectionQueryStringParameter struct {
358
359	// Specifies whether the value is secret.
360	IsValueSecret bool
361
362	// The key for a query string parameter.
363	Key *string
364
365	// The value associated with the key for the query string parameter.
366	Value *string
367
368	noSmithyDocumentSerde
369}
370
371// Contains the API key authorization parameters for the connection.
372type CreateConnectionApiKeyAuthRequestParameters struct {
373
374	// The name of the API key to use for authorization.
375	//
376	// This member is required.
377	ApiKeyName *string
378
379	// The value for the API key to use for authorization.
380	//
381	// This member is required.
382	ApiKeyValue *string
383
384	noSmithyDocumentSerde
385}
386
387// Contains the authorization parameters for the connection.
388type CreateConnectionAuthRequestParameters struct {
389
390	// A CreateConnectionApiKeyAuthRequestParameters object that contains the API key
391	// authorization parameters to use for the connection.
392	ApiKeyAuthParameters *CreateConnectionApiKeyAuthRequestParameters
393
394	// A CreateConnectionBasicAuthRequestParameters object that contains the Basic
395	// authorization parameters to use for the connection.
396	BasicAuthParameters *CreateConnectionBasicAuthRequestParameters
397
398	// A ConnectionHttpParameters object that contains the API key authorization
399	// parameters to use for the connection. Note that if you include additional
400	// parameters for the target of a rule via HttpParameters, including query strings,
401	// the parameters added for the connection take precedence.
402	InvocationHttpParameters *ConnectionHttpParameters
403
404	// A CreateConnectionOAuthRequestParameters object that contains the OAuth
405	// authorization parameters to use for the connection.
406	OAuthParameters *CreateConnectionOAuthRequestParameters
407
408	noSmithyDocumentSerde
409}
410
411// Contains the Basic authorization parameters to use for the connection.
412type CreateConnectionBasicAuthRequestParameters struct {
413
414	// The password associated with the user name to use for Basic authorization.
415	//
416	// This member is required.
417	Password *string
418
419	// The user name to use for Basic authorization.
420	//
421	// This member is required.
422	Username *string
423
424	noSmithyDocumentSerde
425}
426
427// Contains the Basic authorization parameters to use for the connection.
428type CreateConnectionOAuthClientRequestParameters struct {
429
430	// The client ID to use for OAuth authorization for the connection.
431	//
432	// This member is required.
433	ClientID *string
434
435	// The client secret associated with the client ID to use for OAuth authorization
436	// for the connection.
437	//
438	// This member is required.
439	ClientSecret *string
440
441	noSmithyDocumentSerde
442}
443
444// Contains the OAuth authorization parameters to use for the connection.
445type CreateConnectionOAuthRequestParameters struct {
446
447	// The URL to the authorization endpoint when OAuth is specified as the
448	// authorization type.
449	//
450	// This member is required.
451	AuthorizationEndpoint *string
452
453	// A CreateConnectionOAuthClientRequestParameters object that contains the client
454	// parameters for OAuth authorization.
455	//
456	// This member is required.
457	ClientParameters *CreateConnectionOAuthClientRequestParameters
458
459	// The method to use for the authorization request.
460	//
461	// This member is required.
462	HttpMethod ConnectionOAuthHttpMethod
463
464	// A ConnectionHttpParameters object that contains details about the additional
465	// parameters to use for the connection.
466	OAuthHttpParameters *ConnectionHttpParameters
467
468	noSmithyDocumentSerde
469}
470
471// A DeadLetterConfig object that contains information about a dead-letter queue
472// configuration.
473type DeadLetterConfig struct {
474
475	// The ARN of the SQS queue specified as the target for the dead-letter queue.
476	Arn *string
477
478	noSmithyDocumentSerde
479}
480
481// The custom parameters to be used when the target is an Amazon ECS task.
482type EcsParameters struct {
483
484	// The ARN of the task definition to use if the event target is an Amazon ECS task.
485	//
486	// This member is required.
487	TaskDefinitionArn *string
488
489	// The capacity provider strategy to use for the task. If a
490	// capacityProviderStrategy is specified, the launchType parameter must be omitted.
491	// If no capacityProviderStrategy or launchType is specified, the
492	// defaultCapacityProviderStrategy for the cluster is used.
493	CapacityProviderStrategy []CapacityProviderStrategyItem
494
495	// Specifies whether to enable Amazon ECS managed tags for the task. For more
496	// information, see Tagging Your Amazon ECS Resources
497	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html)
498	// in the Amazon Elastic Container Service Developer Guide.
499	EnableECSManagedTags bool
500
501	// Whether or not to enable the execute command functionality for the containers in
502	// this task. If true, this enables execute command functionality on all containers
503	// in the task.
504	EnableExecuteCommand bool
505
506	// Specifies an ECS task group for the task. The maximum length is 255 characters.
507	Group *string
508
509	// Specifies the launch type on which your task is running. The launch type that
510	// you specify here must match one of the launch type (compatibilities) of the
511	// target task. The FARGATE value is supported only in the Regions where Fargate
512	// witt Amazon ECS is supported. For more information, see Fargate on Amazon ECS
513	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS-Fargate.html)
514	// in the Amazon Elastic Container Service Developer Guide.
515	LaunchType LaunchType
516
517	// Use this structure if the Amazon ECS task uses the awsvpc network mode. This
518	// structure specifies the VPC subnets and security groups associated with the
519	// task, and whether a public IP address is to be used. This structure is required
520	// if LaunchType is FARGATE because the awsvpc mode is required for Fargate tasks.
521	// If you specify NetworkConfiguration when the target ECS task does not use the
522	// awsvpc network mode, the task fails.
523	NetworkConfiguration *NetworkConfiguration
524
525	// An array of placement constraint objects to use for the task. You can specify up
526	// to 10 constraints per task (including constraints in the task definition and
527	// those specified at runtime).
528	PlacementConstraints []PlacementConstraint
529
530	// The placement strategy objects to use for the task. You can specify a maximum of
531	// five strategy rules per task.
532	PlacementStrategy []PlacementStrategy
533
534	// Specifies the platform version for the task. Specify only the numeric portion of
535	// the platform version, such as 1.1.0. This structure is used only if LaunchType
536	// is FARGATE. For more information about valid platform versions, see Fargate
537	// Platform Versions
538	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
539	// in the Amazon Elastic Container Service Developer Guide.
540	PlatformVersion *string
541
542	// Specifies whether to propagate the tags from the task definition to the task. If
543	// no value is specified, the tags are not propagated. Tags can only be propagated
544	// to the task during task creation. To add tags to a task after task creation, use
545	// the TagResource API action.
546	PropagateTags PropagateTags
547
548	// The reference ID to use for the task.
549	ReferenceId *string
550
551	// The metadata that you apply to the task to help you categorize and organize
552	// them. Each tag consists of a key and an optional value, both of which you
553	// define. To learn more, see RunTask
554	// (https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_RunTask.html#ECS-RunTask-request-tags)
555	// in the Amazon ECS API Reference.
556	Tags []Tag
557
558	// The number of tasks to create based on TaskDefinition. The default is 1.
559	TaskCount *int32
560
561	noSmithyDocumentSerde
562}
563
564// An event bus receives events from a source and routes them to rules associated
565// with that event bus. Your account's default event bus receives events from
566// Amazon Web Services services. A custom event bus can receive events from your
567// custom applications and services. A partner event bus receives events from an
568// event source created by an SaaS partner. These events come from the partners
569// services or applications.
570type EventBus struct {
571
572	// The ARN of the event bus.
573	Arn *string
574
575	// The name of the event bus.
576	Name *string
577
578	// The permissions policy of the event bus, describing which other Amazon Web
579	// Services accounts can write events to this event bus.
580	Policy *string
581
582	noSmithyDocumentSerde
583}
584
585// A partner event source is created by an SaaS partner. If a customer creates a
586// partner event bus that matches this event source, that Amazon Web Services
587// account can receive events from the partner's applications or services.
588type EventSource struct {
589
590	// The ARN of the event source.
591	Arn *string
592
593	// The name of the partner that created the event source.
594	CreatedBy *string
595
596	// The date and time the event source was created.
597	CreationTime *time.Time
598
599	// The date and time that the event source will expire, if the Amazon Web Services
600	// account doesn't create a matching event bus for it.
601	ExpirationTime *time.Time
602
603	// The name of the event source.
604	Name *string
605
606	// The state of the event source. If it is ACTIVE, you have already created a
607	// matching event bus for this event source, and that event bus is active. If it is
608	// PENDING, either you haven't yet created a matching event bus, or that event bus
609	// is deactivated. If it is DELETED, you have created a matching event bus, but the
610	// event source has since been deleted.
611	State EventSourceState
612
613	noSmithyDocumentSerde
614}
615
616// These are custom parameter to be used when the target is an API Gateway REST
617// APIs or EventBridge ApiDestinations. In the latter case, these are merged with
618// any InvocationParameters specified on the Connection, with any values from the
619// Connection taking precedence.
620type HttpParameters struct {
621
622	// The headers that need to be sent as part of request invoking the API Gateway
623	// REST API or EventBridge ApiDestination.
624	HeaderParameters map[string]string
625
626	// The path parameter values to be used to populate API Gateway REST API or
627	// EventBridge ApiDestination path wildcards ("*").
628	PathParameterValues []string
629
630	// The query string keys/values that need to be sent as part of request invoking
631	// the API Gateway REST API or EventBridge ApiDestination.
632	QueryStringParameters map[string]string
633
634	noSmithyDocumentSerde
635}
636
637// Contains the parameters needed for you to provide custom input to a target based
638// on one or more pieces of data extracted from the event.
639type InputTransformer struct {
640
641	// Input template where you specify placeholders that will be filled with the
642	// values of the keys from InputPathsMap to customize the data sent to the target.
643	// Enclose each InputPathsMaps value in brackets: <value> The InputTemplate must be
644	// valid JSON. If InputTemplate is a JSON object (surrounded by curly braces), the
645	// following restrictions apply:
646	//
647	// * The placeholder cannot be used as an object
648	// key.
649	//
650	// The following example shows the syntax for using InputPathsMap and
651	// InputTemplate.  "InputTransformer":
652	//     {
653	//
654	//     "InputPathsMap": {"instance":
655	// "$.detail.instance","status": "$.detail.status"},
656	//
657	//     "InputTemplate": " is in
658	// state "
659	//
660	// } To have the InputTemplate include quote marks within a JSON string,
661	// escape each quote marks with a slash, as in the following example:
662	// "InputTransformer":
663	//     {
664	//
665	//     "InputPathsMap": {"instance":
666	// "$.detail.instance","status": "$.detail.status"},
667	//
668	//     "InputTemplate": " is in
669	// state """
670	//
671	// } The InputTemplate can also be valid JSON with varibles in quotes or
672	// out, as in the following example:  "InputTransformer":
673	//     {
674	//
675	//
676	// "InputPathsMap": {"instance": "$.detail.instance","status":
677	// "$.detail.status"},
678	//
679	//     "InputTemplate": '{"myInstance": ,"myStatus": " is in
680	// state """}'
681	//
682	//     }
683	//
684	// This member is required.
685	InputTemplate *string
686
687	// Map of JSON paths to be extracted from the event. You can then insert these in
688	// the template in InputTemplate to produce the output you want to be sent to the
689	// target. InputPathsMap is an array key-value pairs, where each value is a valid
690	// JSON path. You can have as many as 100 key-value pairs. You must use JSON dot
691	// notation, not bracket notation. The keys cannot start with "Amazon Web
692	// Services."
693	InputPathsMap map[string]string
694
695	noSmithyDocumentSerde
696}
697
698// This object enables you to specify a JSON path to extract from the event and use
699// as the partition key for the Amazon Kinesis data stream, so that you can control
700// the shard to which the event goes. If you do not include this parameter, the
701// default is to use the eventId as the partition key.
702type KinesisParameters struct {
703
704	// The JSON path to be extracted from the event and used as the partition key. For
705	// more information, see Amazon Kinesis Streams Key Concepts
706	// (https://docs.aws.amazon.com/streams/latest/dev/key-concepts.html#partition-key)
707	// in the Amazon Kinesis Streams Developer Guide.
708	//
709	// This member is required.
710	PartitionKeyPath *string
711
712	noSmithyDocumentSerde
713}
714
715// This structure specifies the network configuration for an ECS task.
716type NetworkConfiguration struct {
717
718	// Use this structure to specify the VPC subnets and security groups for the task,
719	// and whether a public IP address is to be used. This structure is relevant only
720	// for ECS tasks that use the awsvpc network mode.
721	AwsvpcConfiguration *AwsVpcConfiguration
722
723	noSmithyDocumentSerde
724}
725
726// A partner event source is created by an SaaS partner. If a customer creates a
727// partner event bus that matches this event source, that Amazon Web Services
728// account can receive events from the partner's applications or services.
729type PartnerEventSource struct {
730
731	// The ARN of the partner event source.
732	Arn *string
733
734	// The name of the partner event source.
735	Name *string
736
737	noSmithyDocumentSerde
738}
739
740// The Amazon Web Services account that a partner event source has been offered to.
741type PartnerEventSourceAccount struct {
742
743	// The Amazon Web Services account ID that the partner event source was offered to.
744	Account *string
745
746	// The date and time the event source was created.
747	CreationTime *time.Time
748
749	// The date and time that the event source will expire, if the Amazon Web Services
750	// account doesn't create a matching event bus for it.
751	ExpirationTime *time.Time
752
753	// The state of the event source. If it is ACTIVE, you have already created a
754	// matching event bus for this event source, and that event bus is active. If it is
755	// PENDING, either you haven't yet created a matching event bus, or that event bus
756	// is deactivated. If it is DELETED, you have created a matching event bus, but the
757	// event source has since been deleted.
758	State EventSourceState
759
760	noSmithyDocumentSerde
761}
762
763// An object representing a constraint on task placement. To learn more, see Task
764// Placement Constraints
765// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html)
766// in the Amazon Elastic Container Service Developer Guide.
767type PlacementConstraint struct {
768
769	// A cluster query language expression to apply to the constraint. You cannot
770	// specify an expression if the constraint type is distinctInstance. To learn more,
771	// see Cluster Query Language
772	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html)
773	// in the Amazon Elastic Container Service Developer Guide.
774	Expression *string
775
776	// The type of constraint. Use distinctInstance to ensure that each task in a
777	// particular group is running on a different container instance. Use memberOf to
778	// restrict the selection to a group of valid candidates.
779	Type PlacementConstraintType
780
781	noSmithyDocumentSerde
782}
783
784// The task placement strategy for a task or service. To learn more, see Task
785// Placement Strategies
786// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-strategies.html)
787// in the Amazon Elastic Container Service Service Developer Guide.
788type PlacementStrategy struct {
789
790	// The field to apply the placement strategy against. For the spread placement
791	// strategy, valid values are instanceId (or host, which has the same effect), or
792	// any platform or custom attribute that is applied to a container instance, such
793	// as attribute:ecs.availability-zone. For the binpack placement strategy, valid
794	// values are cpu and memory. For the random placement strategy, this field is not
795	// used.
796	Field *string
797
798	// The type of placement strategy. The random placement strategy randomly places
799	// tasks on available candidates. The spread placement strategy spreads placement
800	// across available candidates evenly based on the field parameter. The binpack
801	// strategy places tasks on available candidates that have the least available
802	// amount of the resource that is specified with the field parameter. For example,
803	// if you binpack on memory, a task is placed on the instance with the least amount
804	// of remaining memory (but still enough to run the task).
805	Type PlacementStrategyType
806
807	noSmithyDocumentSerde
808}
809
810// Represents an event to be submitted.
811type PutEventsRequestEntry struct {
812
813	// A valid JSON string. There is no other schema imposed. The JSON string may
814	// contain fields and nested subobjects.
815	Detail *string
816
817	// Free-form string used to decide what fields to expect in the event detail.
818	DetailType *string
819
820	// The name or ARN of the event bus to receive the event. Only the rules that are
821	// associated with this event bus are used to match the event. If you omit this,
822	// the default event bus is used.
823	EventBusName *string
824
825	// Amazon Web Services resources, identified by Amazon Resource Name (ARN), which
826	// the event primarily concerns. Any number, including zero, may be present.
827	Resources []string
828
829	// The source of the event.
830	Source *string
831
832	// The time stamp of the event, per RFC3339
833	// (https://www.rfc-editor.org/rfc/rfc3339.txt). If no time stamp is provided, the
834	// time stamp of the PutEvents
835	// (https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutEvents.html)
836	// call is used.
837	Time *time.Time
838
839	// An X-Ray trade header, which is an http header (X-Amzn-Trace-Id) that contains
840	// the trace-id associated with the event. To learn more about X-Ray trace headers,
841	// see Tracing header
842	// (https://docs.aws.amazon.com/xray/latest/devguide/xray-concepts.html#xray-concepts-tracingheader)
843	// in the X-Ray Developer Guide.
844	TraceHeader *string
845
846	noSmithyDocumentSerde
847}
848
849// Represents an event that failed to be submitted.
850type PutEventsResultEntry struct {
851
852	// The error code that indicates why the event submission failed.
853	ErrorCode *string
854
855	// The error message that explains why the event submission failed.
856	ErrorMessage *string
857
858	// The ID of the event.
859	EventId *string
860
861	noSmithyDocumentSerde
862}
863
864// The details about an event generated by an SaaS partner.
865type PutPartnerEventsRequestEntry struct {
866
867	// A valid JSON string. There is no other schema imposed. The JSON string may
868	// contain fields and nested subobjects.
869	Detail *string
870
871	// A free-form string used to decide what fields to expect in the event detail.
872	DetailType *string
873
874	// Amazon Web Services resources, identified by Amazon Resource Name (ARN), which
875	// the event primarily concerns. Any number, including zero, may be present.
876	Resources []string
877
878	// The event source that is generating the entry.
879	Source *string
880
881	// The date and time of the event.
882	Time *time.Time
883
884	noSmithyDocumentSerde
885}
886
887// Represents an event that a partner tried to generate, but failed.
888type PutPartnerEventsResultEntry struct {
889
890	// The error code that indicates why the event submission failed.
891	ErrorCode *string
892
893	// The error message that explains why the event submission failed.
894	ErrorMessage *string
895
896	// The ID of the event.
897	EventId *string
898
899	noSmithyDocumentSerde
900}
901
902// Represents a target that failed to be added to a rule.
903type PutTargetsResultEntry struct {
904
905	// The error code that indicates why the target addition failed. If the value is
906	// ConcurrentModificationException, too many requests were made at the same time.
907	ErrorCode *string
908
909	// The error message that explains why the target addition failed.
910	ErrorMessage *string
911
912	// The ID of the target.
913	TargetId *string
914
915	noSmithyDocumentSerde
916}
917
918// These are custom parameters to be used when the target is a Amazon Redshift
919// cluster to invoke the Amazon Redshift Data API ExecuteStatement based on
920// EventBridge events.
921type RedshiftDataParameters struct {
922
923	// The name of the database. Required when authenticating using temporary
924	// credentials.
925	//
926	// This member is required.
927	Database *string
928
929	// The SQL statement text to run.
930	//
931	// This member is required.
932	Sql *string
933
934	// The database user name. Required when authenticating using temporary
935	// credentials.
936	DbUser *string
937
938	// The name or ARN of the secret that enables access to the database. Required when
939	// authenticating using Amazon Web Services Secrets Manager.
940	SecretManagerArn *string
941
942	// The name of the SQL statement. You can name the SQL statement when you create it
943	// to identify the query.
944	StatementName *string
945
946	// Indicates whether to send an event back to EventBridge after the SQL statement
947	// runs.
948	WithEvent bool
949
950	noSmithyDocumentSerde
951}
952
953// Represents a target that failed to be removed from a rule.
954type RemoveTargetsResultEntry struct {
955
956	// The error code that indicates why the target removal failed. If the value is
957	// ConcurrentModificationException, too many requests were made at the same time.
958	ErrorCode *string
959
960	// The error message that explains why the target removal failed.
961	ErrorMessage *string
962
963	// The ID of the target.
964	TargetId *string
965
966	noSmithyDocumentSerde
967}
968
969// A Replay object that contains details about a replay.
970type Replay struct {
971
972	// A time stamp for the time to start replaying events. Any event with a creation
973	// time prior to the EventEndTime specified is replayed.
974	EventEndTime *time.Time
975
976	// A time stamp for the time that the last event was replayed.
977	EventLastReplayedTime *time.Time
978
979	// The ARN of the archive to replay event from.
980	EventSourceArn *string
981
982	// A time stamp for the time to start replaying events. This is determined by the
983	// time in the event as described in Time
984	// (https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutEventsRequestEntry.html#eventbridge-Type-PutEventsRequestEntry-Time).
985	EventStartTime *time.Time
986
987	// A time stamp for the time that the replay completed.
988	ReplayEndTime *time.Time
989
990	// The name of the replay.
991	ReplayName *string
992
993	// A time stamp for the time that the replay started.
994	ReplayStartTime *time.Time
995
996	// The current state of the replay.
997	State ReplayState
998
999	// A description of why the replay is in the current state.
1000	StateReason *string
1001
1002	noSmithyDocumentSerde
1003}
1004
1005// A ReplayDestination object that contains details about a replay.
1006type ReplayDestination struct {
1007
1008	// The ARN of the event bus to replay event to. You can replay events only to the
1009	// event bus specified to create the archive.
1010	//
1011	// This member is required.
1012	Arn *string
1013
1014	// A list of ARNs for rules to replay events to.
1015	FilterArns []string
1016
1017	noSmithyDocumentSerde
1018}
1019
1020// A RetryPolicy object that includes information about the retry policy settings.
1021type RetryPolicy struct {
1022
1023	// The maximum amount of time, in seconds, to continue to make retry attempts.
1024	MaximumEventAgeInSeconds *int32
1025
1026	// The maximum number of retry attempts to make before the request fails. Retry
1027	// attempts continue until either the maximum number of attempts is made or until
1028	// the duration of the MaximumEventAgeInSeconds is met.
1029	MaximumRetryAttempts *int32
1030
1031	noSmithyDocumentSerde
1032}
1033
1034// Contains information about a rule in Amazon EventBridge.
1035type Rule struct {
1036
1037	// The Amazon Resource Name (ARN) of the rule.
1038	Arn *string
1039
1040	// The description of the rule.
1041	Description *string
1042
1043	// The name or ARN of the event bus associated with the rule. If you omit this, the
1044	// default event bus is used.
1045	EventBusName *string
1046
1047	// The event pattern of the rule. For more information, see Events and Event
1048	// Patterns
1049	// (https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html)
1050	// in the Amazon EventBridge User Guide.
1051	EventPattern *string
1052
1053	// If the rule was created on behalf of your account by an Amazon Web Services
1054	// service, this field displays the principal name of the service that created the
1055	// rule.
1056	ManagedBy *string
1057
1058	// The name of the rule.
1059	Name *string
1060
1061	// The Amazon Resource Name (ARN) of the role that is used for target invocation.
1062	// If you're setting an event bus in another account as the target and that account
1063	// granted permission to your account through an organization instead of directly
1064	// by the account ID, you must specify a RoleArn with proper permissions in the
1065	// Target structure, instead of here in this parameter.
1066	RoleArn *string
1067
1068	// The scheduling expression. For example, "cron(0 20 * * ? *)", "rate(5 minutes)".
1069	// For more information, see Creating an Amazon EventBridge rule that runs on a
1070	// schedule
1071	// (https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule-schedule.html).
1072	ScheduleExpression *string
1073
1074	// The state of the rule.
1075	State RuleState
1076
1077	noSmithyDocumentSerde
1078}
1079
1080// This parameter contains the criteria (either InstanceIds or a tag) used to
1081// specify which EC2 instances are to be sent the command.
1082type RunCommandParameters struct {
1083
1084	// Currently, we support including only one RunCommandTarget block, which specifies
1085	// either an array of InstanceIds or a tag.
1086	//
1087	// This member is required.
1088	RunCommandTargets []RunCommandTarget
1089
1090	noSmithyDocumentSerde
1091}
1092
1093// Information about the EC2 instances that are to be sent the command, specified
1094// as key-value pairs. Each RunCommandTarget block can include only one key, but
1095// this key may specify multiple values.
1096type RunCommandTarget struct {
1097
1098	// Can be either tag: tag-key or InstanceIds.
1099	//
1100	// This member is required.
1101	Key *string
1102
1103	// If Key is tag: tag-key, Values is a list of tag values. If Key is InstanceIds,
1104	// Values is a list of Amazon EC2 instance IDs.
1105	//
1106	// This member is required.
1107	Values []string
1108
1109	noSmithyDocumentSerde
1110}
1111
1112// Name/Value pair of a parameter to start execution of a SageMaker Model Building
1113// Pipeline.
1114type SageMakerPipelineParameter struct {
1115
1116	// Name of parameter to start execution of a SageMaker Model Building Pipeline.
1117	//
1118	// This member is required.
1119	Name *string
1120
1121	// Value of parameter to start execution of a SageMaker Model Building Pipeline.
1122	//
1123	// This member is required.
1124	Value *string
1125
1126	noSmithyDocumentSerde
1127}
1128
1129// These are custom parameters to use when the target is a SageMaker Model Building
1130// Pipeline that starts based on EventBridge events.
1131type SageMakerPipelineParameters struct {
1132
1133	// List of Parameter names and values for SageMaker Model Building Pipeline
1134	// execution.
1135	PipelineParameterList []SageMakerPipelineParameter
1136
1137	noSmithyDocumentSerde
1138}
1139
1140// This structure includes the custom parameter to be used when the target is an
1141// SQS FIFO queue.
1142type SqsParameters struct {
1143
1144	// The FIFO message group ID to use as the target.
1145	MessageGroupId *string
1146
1147	noSmithyDocumentSerde
1148}
1149
1150// A key-value pair associated with an Amazon Web Services resource. In
1151// EventBridge, rules and event buses support tagging.
1152type Tag struct {
1153
1154	// A string you can use to assign a value. The combination of tag keys and values
1155	// can help you organize and categorize your resources.
1156	//
1157	// This member is required.
1158	Key *string
1159
1160	// The value for the specified tag key.
1161	//
1162	// This member is required.
1163	Value *string
1164
1165	noSmithyDocumentSerde
1166}
1167
1168// Targets are the resources to be invoked when a rule is triggered. For a complete
1169// list of services and resources that can be set as a target, see PutTargets
1170// (https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutTargets.html).
1171// If you are setting the event bus of another account as the target, and that
1172// account granted permission to your account through an organization instead of
1173// directly by the account ID, then you must specify a RoleArn with proper
1174// permissions in the Target structure. For more information, see Sending and
1175// Receiving Events Between Amazon Web Services Accounts
1176// (https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-cross-account-event-delivery.html)
1177// in the Amazon EventBridge User Guide.
1178type Target struct {
1179
1180	// The Amazon Resource Name (ARN) of the target.
1181	//
1182	// This member is required.
1183	Arn *string
1184
1185	// The ID of the target. We recommend using a memorable and unique string.
1186	//
1187	// This member is required.
1188	Id *string
1189
1190	// If the event target is an Batch job, this contains the job definition, job name,
1191	// and other parameters. For more information, see Jobs
1192	// (https://docs.aws.amazon.com/batch/latest/userguide/jobs.html) in the Batch User
1193	// Guide.
1194	BatchParameters *BatchParameters
1195
1196	// The DeadLetterConfig that defines the target queue to send dead-letter queue
1197	// events to.
1198	DeadLetterConfig *DeadLetterConfig
1199
1200	// Contains the Amazon ECS task definition and task count to be used, if the event
1201	// target is an Amazon ECS task. For more information about Amazon ECS tasks, see
1202	// Task Definitions
1203	// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html)
1204	// in the Amazon EC2 Container Service Developer Guide.
1205	EcsParameters *EcsParameters
1206
1207	// Contains the HTTP parameters to use when the target is a API Gateway REST
1208	// endpoint or EventBridge ApiDestination. If you specify an API Gateway REST API
1209	// or EventBridge ApiDestination as a target, you can use this parameter to specify
1210	// headers, path parameters, and query string keys/values as part of your target
1211	// invoking request. If you're using ApiDestinations, the corresponding Connection
1212	// can also have these values configured. In case of any conflicting keys, values
1213	// from the Connection take precedence.
1214	HttpParameters *HttpParameters
1215
1216	// Valid JSON text passed to the target. In this case, nothing from the event
1217	// itself is passed to the target. For more information, see The JavaScript Object
1218	// Notation (JSON) Data Interchange Format
1219	// (http://www.rfc-editor.org/rfc/rfc7159.txt).
1220	Input *string
1221
1222	// The value of the JSONPath that is used for extracting part of the matched event
1223	// when passing it to the target. You must use JSON dot notation, not bracket
1224	// notation. For more information about JSON paths, see JSONPath
1225	// (http://goessner.net/articles/JsonPath/).
1226	InputPath *string
1227
1228	// Settings to enable you to provide custom input to a target based on certain
1229	// event data. You can extract one or more key-value pairs from the event and then
1230	// use that data to send customized input to the target.
1231	InputTransformer *InputTransformer
1232
1233	// The custom parameter you can use to control the shard assignment, when the
1234	// target is a Kinesis data stream. If you do not include this parameter, the
1235	// default is to use the eventId as the partition key.
1236	KinesisParameters *KinesisParameters
1237
1238	// Contains the Amazon Redshift Data API parameters to use when the target is a
1239	// Amazon Redshift cluster. If you specify a Amazon Redshift Cluster as a Target,
1240	// you can use this to specify parameters to invoke the Amazon Redshift Data API
1241	// ExecuteStatement based on EventBridge events.
1242	RedshiftDataParameters *RedshiftDataParameters
1243
1244	// The RetryPolicy object that contains the retry policy configuration to use for
1245	// the dead-letter queue.
1246	RetryPolicy *RetryPolicy
1247
1248	// The Amazon Resource Name (ARN) of the IAM role to be used for this target when
1249	// the rule is triggered. If one rule triggers multiple targets, you can use a
1250	// different IAM role for each target.
1251	RoleArn *string
1252
1253	// Parameters used when you are using the rule to invoke Amazon EC2 Run Command.
1254	RunCommandParameters *RunCommandParameters
1255
1256	// Contains the SageMaker Model Building Pipeline parameters to start execution of
1257	// a SageMaker Model Building Pipeline. If you specify a SageMaker Model Building
1258	// Pipeline as a target, you can use this to specify parameters to start a pipeline
1259	// execution based on EventBridge events.
1260	SageMakerPipelineParameters *SageMakerPipelineParameters
1261
1262	// Contains the message group ID to use when the target is a FIFO queue. If you
1263	// specify an SQS FIFO queue as a target, the queue must have content-based
1264	// deduplication enabled.
1265	SqsParameters *SqsParameters
1266
1267	noSmithyDocumentSerde
1268}
1269
1270// Contains the API key authorization parameters to use to update the connection.
1271type UpdateConnectionApiKeyAuthRequestParameters struct {
1272
1273	// The name of the API key to use for authorization.
1274	ApiKeyName *string
1275
1276	// The value associated with teh API key to use for authorization.
1277	ApiKeyValue *string
1278
1279	noSmithyDocumentSerde
1280}
1281
1282// Contains the additional parameters to use for the connection.
1283type UpdateConnectionAuthRequestParameters struct {
1284
1285	// A UpdateConnectionApiKeyAuthRequestParameters object that contains the
1286	// authorization parameters for API key authorization.
1287	ApiKeyAuthParameters *UpdateConnectionApiKeyAuthRequestParameters
1288
1289	// A UpdateConnectionBasicAuthRequestParameters object that contains the
1290	// authorization parameters for Basic authorization.
1291	BasicAuthParameters *UpdateConnectionBasicAuthRequestParameters
1292
1293	// A ConnectionHttpParameters object that contains the additional parameters to use
1294	// for the connection.
1295	InvocationHttpParameters *ConnectionHttpParameters
1296
1297	// A UpdateConnectionOAuthRequestParameters object that contains the authorization
1298	// parameters for OAuth authorization.
1299	OAuthParameters *UpdateConnectionOAuthRequestParameters
1300
1301	noSmithyDocumentSerde
1302}
1303
1304// Contains the Basic authorization parameters for the connection.
1305type UpdateConnectionBasicAuthRequestParameters struct {
1306
1307	// The password associated with the user name to use for Basic authorization.
1308	Password *string
1309
1310	// The user name to use for Basic authorization.
1311	Username *string
1312
1313	noSmithyDocumentSerde
1314}
1315
1316// Contains the OAuth authorization parameters to use for the connection.
1317type UpdateConnectionOAuthClientRequestParameters struct {
1318
1319	// The client ID to use for OAuth authorization.
1320	ClientID *string
1321
1322	// The client secret assciated with the client ID to use for OAuth authorization.
1323	ClientSecret *string
1324
1325	noSmithyDocumentSerde
1326}
1327
1328// Contains the OAuth request parameters to use for the connection.
1329type UpdateConnectionOAuthRequestParameters struct {
1330
1331	// The URL to the authorization endpoint when OAuth is specified as the
1332	// authorization type.
1333	AuthorizationEndpoint *string
1334
1335	// A UpdateConnectionOAuthClientRequestParameters object that contains the client
1336	// parameters to use for the connection when OAuth is specified as the
1337	// authorization type.
1338	ClientParameters *UpdateConnectionOAuthClientRequestParameters
1339
1340	// The method used to connect to the HTTP endpoint.
1341	HttpMethod ConnectionOAuthHttpMethod
1342
1343	// The additional HTTP parameters used for the OAuth authorization request.
1344	OAuthHttpParameters *ConnectionHttpParameters
1345
1346	noSmithyDocumentSerde
1347}
1348
1349type noSmithyDocumentSerde = smithydocument.NoSerde
1350