1// Code generated by smithy-go-codegen DO NOT EDIT.
2
3package types
4
5import (
6	"time"
7)
8
9// The criteria that determine when and how a job abort takes place.
10type AbortConfig struct {
11
12	// The list of criteria that determine when and how to abort the job.
13	//
14	// This member is required.
15	CriteriaList []AbortCriteria
16}
17
18// The criteria that determine when and how a job abort takes place.
19type AbortCriteria struct {
20
21	// The type of job action to take to initiate the job abort.
22	//
23	// This member is required.
24	Action AbortAction
25
26	// The type of job execution failures that can initiate a job abort.
27	//
28	// This member is required.
29	FailureType JobExecutionFailureType
30
31	// The minimum number of things which must receive job execution notifications
32	// before the job can be aborted.
33	//
34	// This member is required.
35	MinNumberOfExecutedThings *int32
36
37	// The minimum percentage of job execution failures that must occur to initiate the
38	// job abort. AWS IoT supports up to two digits after the decimal (for example,
39	// 10.9 and 10.99, but not 10.999).
40	//
41	// This member is required.
42	ThresholdPercentage *float64
43}
44
45// Describes the actions associated with a rule.
46type Action struct {
47
48	// Change the state of a CloudWatch alarm.
49	CloudwatchAlarm *CloudwatchAlarmAction
50
51	// Send data to CloudWatch Logs.
52	CloudwatchLogs *CloudwatchLogsAction
53
54	// Capture a CloudWatch metric.
55	CloudwatchMetric *CloudwatchMetricAction
56
57	// Write to a DynamoDB table.
58	DynamoDB *DynamoDBAction
59
60	// Write to a DynamoDB table. This is a new version of the DynamoDB action. It
61	// allows you to write each attribute in an MQTT message payload into a separate
62	// DynamoDB column.
63	DynamoDBv2 *DynamoDBv2Action
64
65	// Write data to an Amazon Elasticsearch Service domain.
66	Elasticsearch *ElasticsearchAction
67
68	// Write to an Amazon Kinesis Firehose stream.
69	Firehose *FirehoseAction
70
71	// Send data to an HTTPS endpoint.
72	Http *HttpAction
73
74	// Sends message data to an AWS IoT Analytics channel.
75	IotAnalytics *IotAnalyticsAction
76
77	// Sends an input to an AWS IoT Events detector.
78	IotEvents *IotEventsAction
79
80	// Sends data from the MQTT message that triggered the rule to AWS IoT SiteWise
81	// asset properties.
82	IotSiteWise *IotSiteWiseAction
83
84	// Send messages to an Amazon Managed Streaming for Apache Kafka (Amazon MSK) or
85	// self-managed Apache Kafka cluster.
86	Kafka *KafkaAction
87
88	// Write data to an Amazon Kinesis stream.
89	Kinesis *KinesisAction
90
91	// Invoke a Lambda function.
92	Lambda *LambdaAction
93
94	// Publish to another MQTT topic.
95	Republish *RepublishAction
96
97	// Write to an Amazon S3 bucket.
98	S3 *S3Action
99
100	// Send a message to a Salesforce IoT Cloud Input Stream.
101	Salesforce *SalesforceAction
102
103	// Publish to an Amazon SNS topic.
104	Sns *SnsAction
105
106	// Publish to an Amazon SQS queue.
107	Sqs *SqsAction
108
109	// Starts execution of a Step Functions state machine.
110	StepFunctions *StepFunctionsAction
111
112	// The Timestream rule action writes attributes (measures) from an MQTT message
113	// into an Amazon Timestream table. For more information, see the Timestream
114	// (https://docs.aws.amazon.com/iot/latest/developerguide/timestream-rule-action.html)
115	// topic rule action documentation.
116	Timestream *TimestreamAction
117}
118
119// Information about an active Device Defender security profile behavior violation.
120type ActiveViolation struct {
121
122	// The behavior that is being violated.
123	Behavior *Behavior
124
125	// The time the most recent violation occurred.
126	LastViolationTime *time.Time
127
128	// The value of the metric (the measurement) that caused the most recent violation.
129	LastViolationValue *MetricValue
130
131	// The security profile with the behavior is in violation.
132	SecurityProfileName *string
133
134	// The name of the thing responsible for the active violation.
135	ThingName *string
136
137	// The details of a violation event.
138	ViolationEventAdditionalInfo *ViolationEventAdditionalInfo
139
140	// The ID of the active violation.
141	ViolationId *string
142
143	// The time the violation started.
144	ViolationStartTime *time.Time
145}
146
147// Parameters used when defining a mitigation action that move a set of things to a
148// thing group.
149type AddThingsToThingGroupParams struct {
150
151	// The list of groups to which you want to add the things that triggered the
152	// mitigation action. You can add a thing to a maximum of 10 groups, but you can't
153	// add a thing to more than one group in the same hierarchy.
154	//
155	// This member is required.
156	ThingGroupNames []string
157
158	// Specifies if this mitigation action can move the things that triggered the
159	// mitigation action even if they are part of one or more dynamic thing groups.
160	OverrideDynamicGroups bool
161}
162
163// A structure containing the alert target ARN and the role ARN.
164type AlertTarget struct {
165
166	// The Amazon Resource Name (ARN) of the notification target to which alerts are
167	// sent.
168	//
169	// This member is required.
170	AlertTargetArn *string
171
172	// The ARN of the role that grants permission to send alerts to the notification
173	// target.
174	//
175	// This member is required.
176	RoleArn *string
177}
178
179// Contains information that allowed the authorization.
180type Allowed struct {
181
182	// A list of policies that allowed the authentication.
183	Policies []Policy
184}
185
186// An asset property timestamp entry containing the following information.
187type AssetPropertyTimestamp struct {
188
189	// A string that contains the time in seconds since epoch. Accepts substitution
190	// templates.
191	//
192	// This member is required.
193	TimeInSeconds *string
194
195	// Optional. A string that contains the nanosecond time offset. Accepts
196	// substitution templates.
197	OffsetInNanos *string
198}
199
200// An asset property value entry containing the following information.
201type AssetPropertyValue struct {
202
203	// The asset property value timestamp.
204	//
205	// This member is required.
206	Timestamp *AssetPropertyTimestamp
207
208	// The value of the asset property.
209	//
210	// This member is required.
211	Value AssetPropertyVariant
212
213	// Optional. A string that describes the quality of the value. Accepts substitution
214	// templates. Must be GOOD, BAD, or UNCERTAIN.
215	Quality *string
216}
217
218// Contains an asset property value (of a single type).
219//
220// The following types satisfy this interface:
221//  AssetPropertyVariantMemberStringValue
222//  AssetPropertyVariantMemberIntegerValue
223//  AssetPropertyVariantMemberDoubleValue
224//  AssetPropertyVariantMemberBooleanValue
225type AssetPropertyVariant interface {
226	isAssetPropertyVariant()
227}
228
229// Optional. The string value of the value entry. Accepts substitution templates.
230type AssetPropertyVariantMemberStringValue struct {
231	Value string
232}
233
234func (*AssetPropertyVariantMemberStringValue) isAssetPropertyVariant() {}
235
236// Optional. A string that contains the integer value of the value entry. Accepts
237// substitution templates.
238type AssetPropertyVariantMemberIntegerValue struct {
239	Value string
240}
241
242func (*AssetPropertyVariantMemberIntegerValue) isAssetPropertyVariant() {}
243
244// Optional. A string that contains the double value of the value entry. Accepts
245// substitution templates.
246type AssetPropertyVariantMemberDoubleValue struct {
247	Value string
248}
249
250func (*AssetPropertyVariantMemberDoubleValue) isAssetPropertyVariant() {}
251
252// Optional. A string that contains the boolean value (true or false) of the value
253// entry. Accepts substitution templates.
254type AssetPropertyVariantMemberBooleanValue struct {
255	Value string
256}
257
258func (*AssetPropertyVariantMemberBooleanValue) isAssetPropertyVariant() {}
259
260// The attribute payload.
261type AttributePayload struct {
262
263	// A JSON string containing up to three key-value pair in JSON format. For example:
264	// {\"attributes\":{\"string1\":\"string2\"}}
265	Attributes map[string]string
266
267	// Specifies whether the list of attributes provided in the AttributePayload is
268	// merged with the attributes stored in the registry, instead of overwriting them.
269	// To remove an attribute, call UpdateThing with an empty attribute value. The
270	// merge attribute is only valid when calling UpdateThing or UpdateThingGroup.
271	Merge bool
272}
273
274// Which audit checks are enabled and disabled for this account.
275type AuditCheckConfiguration struct {
276
277	// True if this audit check is enabled for this account.
278	Enabled bool
279}
280
281// Information about the audit check.
282type AuditCheckDetails struct {
283
284	// True if the check is complete and found all resources compliant.
285	CheckCompliant *bool
286
287	// The completion status of this check. One of "IN_PROGRESS",
288	// "WAITING_FOR_DATA_COLLECTION", "CANCELED", "COMPLETED_COMPLIANT",
289	// "COMPLETED_NON_COMPLIANT", or "FAILED".
290	CheckRunStatus AuditCheckRunStatus
291
292	// The code of any error encountered when this check is performed during this
293	// audit. One of "INSUFFICIENT_PERMISSIONS" or "AUDIT_CHECK_DISABLED".
294	ErrorCode *string
295
296	// The message associated with any error encountered when this check is performed
297	// during this audit.
298	Message *string
299
300	// The number of resources that were found noncompliant during the check.
301	NonCompliantResourcesCount *int64
302
303	// Describes how many of the non-compliant resources created during the evaluation
304	// of an audit check were marked as suppressed.
305	SuppressedNonCompliantResourcesCount *int64
306
307	// The number of resources on which the check was performed.
308	TotalResourcesCount *int64
309}
310
311// The findings (results) of the audit.
312type AuditFinding struct {
313
314	// The audit check that generated this result.
315	CheckName *string
316
317	// A unique identifier for this set of audit findings. This identifier is used to
318	// apply mitigation tasks to one or more sets of findings.
319	FindingId *string
320
321	// The time the result (finding) was discovered.
322	FindingTime *time.Time
323
324	// Indicates whether the audit finding was suppressed or not during reporting.
325	IsSuppressed *bool
326
327	// The resource that was found to be noncompliant with the audit check.
328	NonCompliantResource *NonCompliantResource
329
330	// The reason the resource was noncompliant.
331	ReasonForNonCompliance *string
332
333	// A code that indicates the reason that the resource was noncompliant.
334	ReasonForNonComplianceCode *string
335
336	// The list of related resources.
337	RelatedResources []RelatedResource
338
339	// The severity of the result (finding).
340	Severity AuditFindingSeverity
341
342	// The ID of the audit that generated this result (finding).
343	TaskId *string
344
345	// The time the audit started.
346	TaskStartTime *time.Time
347}
348
349// Returned by ListAuditMitigationActionsTask, this object contains information
350// that describes a mitigation action that has been started.
351type AuditMitigationActionExecutionMetadata struct {
352
353	// The unique identifier for the mitigation action being applied by the task.
354	ActionId *string
355
356	// The friendly name of the mitigation action being applied by the task.
357	ActionName *string
358
359	// The date and time when the task was completed or canceled. Blank if the task is
360	// still running.
361	EndTime *time.Time
362
363	// If an error occurred, the code that indicates which type of error occurred.
364	ErrorCode *string
365
366	// The unique identifier for the findings to which the task and associated
367	// mitigation action are applied.
368	FindingId *string
369
370	// If an error occurred, a message that describes the error.
371	Message *string
372
373	// The date and time when the task was started.
374	StartTime *time.Time
375
376	// The current status of the task being executed.
377	Status AuditMitigationActionsExecutionStatus
378
379	// The unique identifier for the task that applies the mitigation action.
380	TaskId *string
381}
382
383// Information about an audit mitigation actions task that is returned by
384// ListAuditMitigationActionsTasks.
385type AuditMitigationActionsTaskMetadata struct {
386
387	// The time at which the audit mitigation actions task was started.
388	StartTime *time.Time
389
390	// The unique identifier for the task.
391	TaskId *string
392
393	// The current state of the audit mitigation actions task.
394	TaskStatus AuditMitigationActionsTaskStatus
395}
396
397// Used in MitigationActionParams, this information identifies the target findings
398// to which the mitigation actions are applied. Only one entry appears.
399type AuditMitigationActionsTaskTarget struct {
400
401	// Specifies a filter in the form of an audit check and set of reason codes that
402	// identify the findings from the audit to which the audit mitigation actions task
403	// apply.
404	AuditCheckToReasonCodeFilter map[string][]string
405
406	// If the task will apply a mitigation action to findings from a specific audit,
407	// this value uniquely identifies the audit.
408	AuditTaskId *string
409
410	// If the task will apply a mitigation action to one or more listed findings, this
411	// value uniquely identifies those findings.
412	FindingIds []string
413}
414
415// Information about the targets to which audit notifications are sent.
416type AuditNotificationTarget struct {
417
418	// True if notifications to the target are enabled.
419	Enabled bool
420
421	// The ARN of the role that grants permission to send notifications to the target.
422	RoleArn *string
423
424	// The ARN of the target (SNS topic) to which audit notifications are sent.
425	TargetArn *string
426}
427
428// Filters out specific findings of a Device Defender audit.
429type AuditSuppression struct {
430
431	// An audit check name. Checks must be enabled for your account. (Use
432	// DescribeAccountAuditConfiguration to see the list of all checks, including those
433	// that are enabled or use UpdateAccountAuditConfiguration to select which checks
434	// are enabled.)
435	//
436	// This member is required.
437	CheckName *string
438
439	// Information that identifies the noncompliant resource.
440	//
441	// This member is required.
442	ResourceIdentifier *ResourceIdentifier
443
444	// The description of the audit suppression.
445	Description *string
446
447	// The expiration date (epoch timestamp in seconds) that you want the suppression
448	// to adhere to.
449	ExpirationDate *time.Time
450
451	// Indicates whether a suppression should exist indefinitely or not.
452	SuppressIndefinitely *bool
453}
454
455// The audits that were performed.
456type AuditTaskMetadata struct {
457
458	// The ID of this audit.
459	TaskId *string
460
461	// The status of this audit. One of "IN_PROGRESS", "COMPLETED", "FAILED", or
462	// "CANCELED".
463	TaskStatus AuditTaskStatus
464
465	// The type of this audit. One of "ON_DEMAND_AUDIT_TASK" or "SCHEDULED_AUDIT_TASK".
466	TaskType AuditTaskType
467}
468
469// A collection of authorization information.
470type AuthInfo struct {
471
472	// The resources for which the principal is being authorized to perform the
473	// specified action.
474	//
475	// This member is required.
476	Resources []string
477
478	// The type of action for which the principal is being authorized.
479	ActionType ActionType
480}
481
482// An object that specifies the authorization service for a domain.
483type AuthorizerConfig struct {
484
485	// A Boolean that specifies whether the domain configuration's authorization
486	// service can be overridden.
487	AllowAuthorizerOverride bool
488
489	// The name of the authorization service for a domain configuration.
490	DefaultAuthorizerName *string
491}
492
493// The authorizer description.
494type AuthorizerDescription struct {
495
496	// The authorizer ARN.
497	AuthorizerArn *string
498
499	// The authorizer's Lambda function ARN.
500	AuthorizerFunctionArn *string
501
502	// The authorizer name.
503	AuthorizerName *string
504
505	// The UNIX timestamp of when the authorizer was created.
506	CreationDate *time.Time
507
508	// The UNIX timestamp of when the authorizer was last updated.
509	LastModifiedDate *time.Time
510
511	// Specifies whether AWS IoT validates the token signature in an authorization
512	// request.
513	SigningDisabled *bool
514
515	// The status of the authorizer.
516	Status AuthorizerStatus
517
518	// The key used to extract the token from the HTTP headers.
519	TokenKeyName *string
520
521	// The public keys used to validate the token signature returned by your custom
522	// authentication service.
523	TokenSigningPublicKeys map[string]string
524}
525
526// The authorizer summary.
527type AuthorizerSummary struct {
528
529	// The authorizer ARN.
530	AuthorizerArn *string
531
532	// The authorizer name.
533	AuthorizerName *string
534}
535
536// The authorizer result.
537type AuthResult struct {
538
539	// The policies and statements that allowed the specified action.
540	Allowed *Allowed
541
542	// The final authorization decision of this scenario. Multiple statements are taken
543	// into account when determining the authorization decision. An explicit deny
544	// statement can override multiple allow statements.
545	AuthDecision AuthDecision
546
547	// Authorization information.
548	AuthInfo *AuthInfo
549
550	// The policies and statements that denied the specified action.
551	Denied *Denied
552
553	// Contains any missing context values found while evaluating policy.
554	MissingContextValues []string
555}
556
557// The criteria that determine when and how a job abort takes place.
558type AwsJobAbortConfig struct {
559
560	// The list of criteria that determine when and how to abort the job.
561	//
562	// This member is required.
563	AbortCriteriaList []AwsJobAbortCriteria
564}
565
566// The criteria that determine when and how a job abort takes place.
567type AwsJobAbortCriteria struct {
568
569	// The type of job action to take to initiate the job abort.
570	//
571	// This member is required.
572	Action AwsJobAbortCriteriaAbortAction
573
574	// The type of job execution failures that can initiate a job abort.
575	//
576	// This member is required.
577	FailureType AwsJobAbortCriteriaFailureType
578
579	// The minimum number of things which must receive job execution notifications
580	// before the job can be aborted.
581	//
582	// This member is required.
583	MinNumberOfExecutedThings *int32
584
585	// The minimum percentage of job execution failures that must occur to initiate the
586	// job abort. AWS IoT supports up to two digits after the decimal (for example,
587	// 10.9 and 10.99, but not 10.999).
588	//
589	// This member is required.
590	ThresholdPercentage *float64
591}
592
593// Configuration for the rollout of OTA updates.
594type AwsJobExecutionsRolloutConfig struct {
595
596	// The rate of increase for a job rollout. This parameter allows you to define an
597	// exponential rate increase for a job rollout.
598	ExponentialRate *AwsJobExponentialRolloutRate
599
600	// The maximum number of OTA update job executions started per minute.
601	MaximumPerMinute *int32
602}
603
604// The rate of increase for a job rollout. This parameter allows you to define an
605// exponential rate increase for a job rollout.
606type AwsJobExponentialRolloutRate struct {
607
608	// The minimum number of things that will be notified of a pending job, per minute,
609	// at the start of the job rollout. This is the initial rate of the rollout.
610	//
611	// This member is required.
612	BaseRatePerMinute *int32
613
614	// The rate of increase for a job rollout. The number of things notified is
615	// multiplied by this factor.
616	//
617	// This member is required.
618	IncrementFactor float64
619
620	// The criteria to initiate the increase in rate of rollout for a job. AWS IoT
621	// supports up to one digit after the decimal (for example, 1.5, but not 1.55).
622	//
623	// This member is required.
624	RateIncreaseCriteria *AwsJobRateIncreaseCriteria
625}
626
627// Configuration information for pre-signed URLs. Valid when protocols contains
628// HTTP.
629type AwsJobPresignedUrlConfig struct {
630
631	// How long (in seconds) pre-signed URLs are valid. Valid values are 60 - 3600, the
632	// default value is 1800 seconds. Pre-signed URLs are generated when a request for
633	// the job document is received.
634	ExpiresInSec *int64
635}
636
637// The criteria to initiate the increase in rate of rollout for a job.
638type AwsJobRateIncreaseCriteria struct {
639
640	// When this number of things have been notified, it will initiate an increase in
641	// the rollout rate.
642	NumberOfNotifiedThings *int32
643
644	// When this number of things have succeeded in their job execution, it will
645	// initiate an increase in the rollout rate.
646	NumberOfSucceededThings *int32
647}
648
649// Specifies the amount of time each device has to finish its execution of the job.
650// A timer is started when the job execution status is set to IN_PROGRESS. If the
651// job execution status is not set to another terminal state before the timer
652// expires, it will be automatically set to TIMED_OUT.
653type AwsJobTimeoutConfig struct {
654
655	// Specifies the amount of time, in minutes, this device has to finish execution of
656	// this job. The timeout interval can be anywhere between 1 minute and 7 days (1 to
657	// 10080 minutes). The in progress timer can't be updated and will apply to all job
658	// executions for the job. Whenever a job execution remains in the IN_PROGRESS
659	// status for longer than this interval, the job execution will fail and switch to
660	// the terminal TIMED_OUT status.
661	InProgressTimeoutInMinutes *int64
662}
663
664// A Device Defender security profile behavior.
665type Behavior struct {
666
667	// The name you've given to the behavior.
668	//
669	// This member is required.
670	Name *string
671
672	// The criteria that determine if a device is behaving normally in regard to the
673	// metric.
674	Criteria *BehaviorCriteria
675
676	// What is measured by the behavior.
677	Metric *string
678
679	// The dimension for a metric in your behavior. For example, using a TOPIC_FILTER
680	// dimension, you can narrow down the scope of the metric to only MQTT topics where
681	// the name matches the pattern specified in the dimension. This can't be used with
682	// custom metrics.
683	MetricDimension *MetricDimension
684
685	// Suppresses alerts.
686	SuppressAlerts *bool
687}
688
689// The criteria by which the behavior is determined to be normal.
690type BehaviorCriteria struct {
691
692	// The operator that relates the thing measured (metric) to the criteria
693	// (containing a value or statisticalThreshold). Valid operators include:
694	//
695	// *
696	// string-list: in-set and not-in-set
697	//
698	// * number-list: in-set and not-in-set
699	//
700	// *
701	// ip-address-list: in-cidr-set and not-in-cidr-set
702	//
703	// * number: less-than,
704	// less-than-equals, greater-than, and greater-than-equals
705	ComparisonOperator ComparisonOperator
706
707	// If a device is in violation of the behavior for the specified number of
708	// consecutive datapoints, an alarm occurs. If not specified, the default is 1.
709	ConsecutiveDatapointsToAlarm *int32
710
711	// If an alarm has occurred and the offending device is no longer in violation of
712	// the behavior for the specified number of consecutive datapoints, the alarm is
713	// cleared. If not specified, the default is 1.
714	ConsecutiveDatapointsToClear *int32
715
716	// Use this to specify the time duration over which the behavior is evaluated, for
717	// those criteria that have a time dimension (for example, NUM_MESSAGES_SENT). For
718	// a statisticalThreshhold metric comparison, measurements from all devices are
719	// accumulated over this time duration before being used to calculate percentiles,
720	// and later, measurements from an individual device are also accumulated over this
721	// time duration before being given a percentile rank. Cannot be used with
722	// list-based metric datatypes.
723	DurationSeconds *int32
724
725	// The configuration of an ML Detect
726	MlDetectionConfig *MachineLearningDetectionConfig
727
728	// A statistical ranking (percentile)that indicates a threshold value by which a
729	// behavior is determined to be in compliance or in violation of the behavior.
730	StatisticalThreshold *StatisticalThreshold
731
732	// The value to be compared with the metric.
733	Value *MetricValue
734}
735
736// The summary of an ML Detect behavior model.
737type BehaviorModelTrainingSummary struct {
738
739	// The name of the behavior.
740	BehaviorName *string
741
742	// The percentage of datapoints collected.
743	DatapointsCollectionPercentage *float64
744
745	// The date the model was last refreshed.
746	LastModelRefreshDate *time.Time
747
748	// The status of the behavior model.
749	ModelStatus ModelStatus
750
751	// The name of the security profile.
752	SecurityProfileName *string
753
754	// The date a training model started collecting data.
755	TrainingDataCollectionStartDate *time.Time
756}
757
758// Additional information about the billing group.
759type BillingGroupMetadata struct {
760
761	// The date the billing group was created.
762	CreationDate *time.Time
763}
764
765// The properties of a billing group.
766type BillingGroupProperties struct {
767
768	// The description of the billing group.
769	BillingGroupDescription *string
770}
771
772// A CA certificate.
773type CACertificate struct {
774
775	// The ARN of the CA certificate.
776	CertificateArn *string
777
778	// The ID of the CA certificate.
779	CertificateId *string
780
781	// The date the CA certificate was created.
782	CreationDate *time.Time
783
784	// The status of the CA certificate. The status value REGISTER_INACTIVE is
785	// deprecated and should not be used.
786	Status CACertificateStatus
787}
788
789// Describes a CA certificate.
790type CACertificateDescription struct {
791
792	// Whether the CA certificate configured for auto registration of device
793	// certificates. Valid values are "ENABLE" and "DISABLE"
794	AutoRegistrationStatus AutoRegistrationStatus
795
796	// The CA certificate ARN.
797	CertificateArn *string
798
799	// The CA certificate ID.
800	CertificateId *string
801
802	// The CA certificate data, in PEM format.
803	CertificatePem *string
804
805	// The date the CA certificate was created.
806	CreationDate *time.Time
807
808	// The customer version of the CA certificate.
809	CustomerVersion *int32
810
811	// The generation ID of the CA certificate.
812	GenerationId *string
813
814	// The date the CA certificate was last modified.
815	LastModifiedDate *time.Time
816
817	// The owner of the CA certificate.
818	OwnedBy *string
819
820	// The status of a CA certificate.
821	Status CACertificateStatus
822
823	// When the CA certificate is valid.
824	Validity *CertificateValidity
825}
826
827// Information about a certificate.
828type Certificate struct {
829
830	// The ARN of the certificate.
831	CertificateArn *string
832
833	// The ID of the certificate. (The last part of the certificate ARN contains the
834	// certificate ID.)
835	CertificateId *string
836
837	// The mode of the certificate.
838	CertificateMode CertificateMode
839
840	// The date and time the certificate was created.
841	CreationDate *time.Time
842
843	// The status of the certificate. The status value REGISTER_INACTIVE is deprecated
844	// and should not be used.
845	Status CertificateStatus
846}
847
848// Describes a certificate.
849type CertificateDescription struct {
850
851	// The certificate ID of the CA certificate used to sign this certificate.
852	CaCertificateId *string
853
854	// The ARN of the certificate.
855	CertificateArn *string
856
857	// The ID of the certificate.
858	CertificateId *string
859
860	// The mode of the certificate.
861	CertificateMode CertificateMode
862
863	// The certificate data, in PEM format.
864	CertificatePem *string
865
866	// The date and time the certificate was created.
867	CreationDate *time.Time
868
869	// The customer version of the certificate.
870	CustomerVersion *int32
871
872	// The generation ID of the certificate.
873	GenerationId *string
874
875	// The date and time the certificate was last modified.
876	LastModifiedDate *time.Time
877
878	// The ID of the AWS account that owns the certificate.
879	OwnedBy *string
880
881	// The ID of the AWS account of the previous owner of the certificate.
882	PreviousOwnedBy *string
883
884	// The status of the certificate.
885	Status CertificateStatus
886
887	// The transfer data.
888	TransferData *TransferData
889
890	// When the certificate is valid.
891	Validity *CertificateValidity
892}
893
894// When the certificate is valid.
895type CertificateValidity struct {
896
897	// The certificate is not valid after this date.
898	NotAfter *time.Time
899
900	// The certificate is not valid before this date.
901	NotBefore *time.Time
902}
903
904// Describes an action that updates a CloudWatch alarm.
905type CloudwatchAlarmAction struct {
906
907	// The CloudWatch alarm name.
908	//
909	// This member is required.
910	AlarmName *string
911
912	// The IAM role that allows access to the CloudWatch alarm.
913	//
914	// This member is required.
915	RoleArn *string
916
917	// The reason for the alarm change.
918	//
919	// This member is required.
920	StateReason *string
921
922	// The value of the alarm state. Acceptable values are: OK, ALARM,
923	// INSUFFICIENT_DATA.
924	//
925	// This member is required.
926	StateValue *string
927}
928
929// Describes an action that sends data to CloudWatch Logs.
930type CloudwatchLogsAction struct {
931
932	// The CloudWatch log group to which the action sends data.
933	//
934	// This member is required.
935	LogGroupName *string
936
937	// The IAM role that allows access to the CloudWatch log.
938	//
939	// This member is required.
940	RoleArn *string
941}
942
943// Describes an action that captures a CloudWatch metric.
944type CloudwatchMetricAction struct {
945
946	// The CloudWatch metric name.
947	//
948	// This member is required.
949	MetricName *string
950
951	// The CloudWatch metric namespace name.
952	//
953	// This member is required.
954	MetricNamespace *string
955
956	// The metric unit
957	// (https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#Unit)
958	// supported by CloudWatch.
959	//
960	// This member is required.
961	MetricUnit *string
962
963	// The CloudWatch metric value.
964	//
965	// This member is required.
966	MetricValue *string
967
968	// The IAM role that allows access to the CloudWatch metric.
969	//
970	// This member is required.
971	RoleArn *string
972
973	// An optional Unix timestamp
974	// (https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#about_timestamp).
975	MetricTimestamp *string
976}
977
978// Describes the method to use when code signing a file.
979type CodeSigning struct {
980
981	// The ID of the AWSSignerJob which was created to sign the file.
982	AwsSignerJobId *string
983
984	// A custom method for code signing a file.
985	CustomCodeSigning *CustomCodeSigning
986
987	// Describes the code-signing job.
988	StartSigningJobParameter *StartSigningJobParameter
989}
990
991// Describes the certificate chain being used when code signing a file.
992type CodeSigningCertificateChain struct {
993
994	// The name of the certificate.
995	CertificateName *string
996
997	// A base64 encoded binary representation of the code signing certificate chain.
998	InlineDocument *string
999}
1000
1001// Describes the signature for a file.
1002type CodeSigningSignature struct {
1003
1004	// A base64 encoded binary representation of the code signing signature.
1005	InlineDocument []byte
1006}
1007
1008// Configuration.
1009type Configuration struct {
1010
1011	// True to enable the configuration.
1012	Enabled bool
1013}
1014
1015// Describes a custom method used to code sign a file.
1016type CustomCodeSigning struct {
1017
1018	// The certificate chain.
1019	CertificateChain *CodeSigningCertificateChain
1020
1021	// The hash algorithm used to code sign the file.
1022	HashAlgorithm *string
1023
1024	// The signature for the file.
1025	Signature *CodeSigningSignature
1026
1027	// The signature algorithm used to code sign the file.
1028	SignatureAlgorithm *string
1029}
1030
1031// Contains information that denied the authorization.
1032type Denied struct {
1033
1034	// Information that explicitly denies the authorization.
1035	ExplicitDeny *ExplicitDeny
1036
1037	// Information that implicitly denies the authorization. When a policy doesn't
1038	// explicitly deny or allow an action on a resource it is considered an implicit
1039	// deny.
1040	ImplicitDeny *ImplicitDeny
1041}
1042
1043// Describes the location of the updated firmware.
1044type Destination struct {
1045
1046	// Describes the location in S3 of the updated firmware.
1047	S3Destination *S3Destination
1048}
1049
1050// Describes which mitigation actions should be executed.
1051type DetectMitigationActionExecution struct {
1052
1053	// The friendly name that uniquely identifies the mitigation action.
1054	ActionName *string
1055
1056	// The error code of a mitigation action.
1057	ErrorCode *string
1058
1059	// The date a mitigation action ended.
1060	ExecutionEndDate *time.Time
1061
1062	// The date a mitigation action was started.
1063	ExecutionStartDate *time.Time
1064
1065	// The message of a mitigation action.
1066	Message *string
1067
1068	// The status of a mitigation action.
1069	Status DetectMitigationActionExecutionStatus
1070
1071	// The unique identifier of the task.
1072	TaskId *string
1073
1074	// The name of the thing.
1075	ThingName *string
1076
1077	// The unique identifier of the violation.
1078	ViolationId *string
1079}
1080
1081// The statistics of a mitigation action task.
1082type DetectMitigationActionsTaskStatistics struct {
1083
1084	// The actions that were performed.
1085	ActionsExecuted *int64
1086
1087	// The actions that failed.
1088	ActionsFailed *int64
1089
1090	// The actions that were skipped.
1091	ActionsSkipped *int64
1092}
1093
1094// The summary of the mitigation action tasks.
1095type DetectMitigationActionsTaskSummary struct {
1096
1097	// The definition of the actions.
1098	ActionsDefinition []MitigationAction
1099
1100	// Includes only active violations.
1101	OnlyActiveViolationsIncluded bool
1102
1103	// Includes suppressed alerts.
1104	SuppressedAlertsIncluded bool
1105
1106	// Specifies the ML Detect findings to which the mitigation actions are applied.
1107	Target *DetectMitigationActionsTaskTarget
1108
1109	// The date the task ended.
1110	TaskEndTime *time.Time
1111
1112	// The unique identifier of the task.
1113	TaskId *string
1114
1115	// The date the task started.
1116	TaskStartTime *time.Time
1117
1118	// The statistics of a mitigation action task.
1119	TaskStatistics *DetectMitigationActionsTaskStatistics
1120
1121	// The status of the task.
1122	TaskStatus DetectMitigationActionsTaskStatus
1123
1124	// Specifies the time period of which violation events occurred between.
1125	ViolationEventOccurrenceRange *ViolationEventOccurrenceRange
1126}
1127
1128// The target of a mitigation action task.
1129type DetectMitigationActionsTaskTarget struct {
1130
1131	// The name of the behavior.
1132	BehaviorName *string
1133
1134	// The name of the security profile.
1135	SecurityProfileName *string
1136
1137	// The unique identifiers of the violations.
1138	ViolationIds []string
1139}
1140
1141// The summary of a domain configuration. A domain configuration specifies custom
1142// IoT-specific information about a domain. A domain configuration can be
1143// associated with an AWS-managed domain (for example,
1144// dbc123defghijk.iot.us-west-2.amazonaws.com), a customer managed domain, or a
1145// default endpoint.
1146//
1147// * Data
1148//
1149// * Jobs
1150//
1151// * CredentialProvider
1152//
1153// The domain
1154// configuration feature is in public preview and is subject to change.
1155type DomainConfigurationSummary struct {
1156
1157	// The ARN of the domain configuration.
1158	DomainConfigurationArn *string
1159
1160	// The name of the domain configuration. This value must be unique to a region.
1161	DomainConfigurationName *string
1162
1163	// The type of service delivered by the endpoint.
1164	ServiceType ServiceType
1165}
1166
1167// Describes an action to write to a DynamoDB table. The tableName, hashKeyField,
1168// and rangeKeyField values must match the values used when you created the table.
1169// The hashKeyValue and rangeKeyvalue fields use a substitution template syntax.
1170// These templates provide data at runtime. The syntax is as follows:
1171// ${sql-expression}. You can specify any valid expression in a WHERE or SELECT
1172// clause, including JSON properties, comparisons, calculations, and functions. For
1173// example, the following field uses the third level of the topic: "hashKeyValue":
1174// "${topic(3)}" The following field uses the timestamp: "rangeKeyValue":
1175// "${timestamp()}"
1176type DynamoDBAction struct {
1177
1178	// The hash key name.
1179	//
1180	// This member is required.
1181	HashKeyField *string
1182
1183	// The hash key value.
1184	//
1185	// This member is required.
1186	HashKeyValue *string
1187
1188	// The ARN of the IAM role that grants access to the DynamoDB table.
1189	//
1190	// This member is required.
1191	RoleArn *string
1192
1193	// The name of the DynamoDB table.
1194	//
1195	// This member is required.
1196	TableName *string
1197
1198	// The hash key type. Valid values are "STRING" or "NUMBER"
1199	HashKeyType DynamoKeyType
1200
1201	// The type of operation to be performed. This follows the substitution template,
1202	// so it can be ${operation}, but the substitution must result in one of the
1203	// following: INSERT, UPDATE, or DELETE.
1204	Operation *string
1205
1206	// The action payload. This name can be customized.
1207	PayloadField *string
1208
1209	// The range key name.
1210	RangeKeyField *string
1211
1212	// The range key type. Valid values are "STRING" or "NUMBER"
1213	RangeKeyType DynamoKeyType
1214
1215	// The range key value.
1216	RangeKeyValue *string
1217}
1218
1219// Describes an action to write to a DynamoDB table. This DynamoDB action writes
1220// each attribute in the message payload into it's own column in the DynamoDB
1221// table.
1222type DynamoDBv2Action struct {
1223
1224	// Specifies the DynamoDB table to which the message data will be written. For
1225	// example: { "dynamoDBv2": { "roleArn": "aws:iam:12341251:my-role" "putItem": {
1226	// "tableName": "my-table" } } } Each attribute in the message payload will be
1227	// written to a separate column in the DynamoDB database.
1228	//
1229	// This member is required.
1230	PutItem *PutItemInput
1231
1232	// The ARN of the IAM role that grants access to the DynamoDB table.
1233	//
1234	// This member is required.
1235	RoleArn *string
1236}
1237
1238// The policy that has the effect on the authorization results.
1239type EffectivePolicy struct {
1240
1241	// The policy ARN.
1242	PolicyArn *string
1243
1244	// The IAM policy document.
1245	PolicyDocument *string
1246
1247	// The policy name.
1248	PolicyName *string
1249}
1250
1251// Describes an action that writes data to an Amazon Elasticsearch Service domain.
1252type ElasticsearchAction struct {
1253
1254	// The endpoint of your Elasticsearch domain.
1255	//
1256	// This member is required.
1257	Endpoint *string
1258
1259	// The unique identifier for the document you are storing.
1260	//
1261	// This member is required.
1262	Id *string
1263
1264	// The Elasticsearch index where you want to store your data.
1265	//
1266	// This member is required.
1267	Index *string
1268
1269	// The IAM role ARN that has access to Elasticsearch.
1270	//
1271	// This member is required.
1272	RoleArn *string
1273
1274	// The type of document you are storing.
1275	//
1276	// This member is required.
1277	Type *string
1278}
1279
1280// Parameters used when defining a mitigation action that enable AWS IoT logging.
1281type EnableIoTLoggingParams struct {
1282
1283	// Specifies the type of information to be logged.
1284	//
1285	// This member is required.
1286	LogLevel LogLevel
1287
1288	// The Amazon Resource Name (ARN) of the IAM role used for logging.
1289	//
1290	// This member is required.
1291	RoleArnForLogging *string
1292}
1293
1294// Error information.
1295type ErrorInfo struct {
1296
1297	// The error code.
1298	Code *string
1299
1300	// The error message.
1301	Message *string
1302}
1303
1304// Information that explicitly denies authorization.
1305type ExplicitDeny struct {
1306
1307	// The policies that denied the authorization.
1308	Policies []Policy
1309}
1310
1311// Allows you to create an exponential rate of rollout for a job.
1312type ExponentialRolloutRate struct {
1313
1314	// The minimum number of things that will be notified of a pending job, per minute
1315	// at the start of job rollout. This parameter allows you to define the initial
1316	// rate of rollout.
1317	//
1318	// This member is required.
1319	BaseRatePerMinute *int32
1320
1321	// The exponential factor to increase the rate of rollout for a job. AWS IoT
1322	// supports up to one digit after the decimal (for example, 1.5, but not 1.55).
1323	//
1324	// This member is required.
1325	IncrementFactor float64
1326
1327	// The criteria to initiate the increase in rate of rollout for a job.
1328	//
1329	// This member is required.
1330	RateIncreaseCriteria *RateIncreaseCriteria
1331}
1332
1333// Describes the name and data type at a field.
1334type Field struct {
1335
1336	// The name of the field.
1337	Name *string
1338
1339	// The datatype of the field.
1340	Type FieldType
1341}
1342
1343// The location of the OTA update.
1344type FileLocation struct {
1345
1346	// The location of the updated firmware in S3.
1347	S3Location *S3Location
1348
1349	// The stream that contains the OTA update.
1350	Stream *Stream
1351}
1352
1353// Describes an action that writes data to an Amazon Kinesis Firehose stream.
1354type FirehoseAction struct {
1355
1356	// The delivery stream name.
1357	//
1358	// This member is required.
1359	DeliveryStreamName *string
1360
1361	// The IAM role that grants access to the Amazon Kinesis Firehose stream.
1362	//
1363	// This member is required.
1364	RoleArn *string
1365
1366	// Whether to deliver the Kinesis Data Firehose stream as a batch by using
1367	// PutRecordBatch
1368	// (https://docs.aws.amazon.com/firehose/latest/APIReference/API_PutRecordBatch.html).
1369	// The default value is false. When batchMode is true and the rule's SQL statement
1370	// evaluates to an Array, each Array element forms one record in the PutRecordBatch
1371	// (https://docs.aws.amazon.com/firehose/latest/APIReference/API_PutRecordBatch.html)
1372	// request. The resulting array can't have more than 500 records.
1373	BatchMode *bool
1374
1375	// A character separator that will be used to separate records written to the
1376	// Firehose stream. Valid values are: '\n' (newline), '\t' (tab), '\r\n' (Windows
1377	// newline), ',' (comma).
1378	Separator *string
1379}
1380
1381// The name and ARN of a group.
1382type GroupNameAndArn struct {
1383
1384	// The group ARN.
1385	GroupArn *string
1386
1387	// The group name.
1388	GroupName *string
1389}
1390
1391// Send data to an HTTPS endpoint.
1392type HttpAction struct {
1393
1394	// The endpoint URL. If substitution templates are used in the URL, you must also
1395	// specify a confirmationUrl. If this is a new destination, a new
1396	// TopicRuleDestination is created if possible.
1397	//
1398	// This member is required.
1399	Url *string
1400
1401	// The authentication method to use when sending data to an HTTPS endpoint.
1402	Auth *HttpAuthorization
1403
1404	// The URL to which AWS IoT sends a confirmation message. The value of the
1405	// confirmation URL must be a prefix of the endpoint URL. If you do not specify a
1406	// confirmation URL AWS IoT uses the endpoint URL as the confirmation URL. If you
1407	// use substitution templates in the confirmationUrl, you must create and enable
1408	// topic rule destinations that match each possible value of the substitution
1409	// template before traffic is allowed to your endpoint URL.
1410	ConfirmationUrl *string
1411
1412	// The HTTP headers to send with the message data.
1413	Headers []HttpActionHeader
1414}
1415
1416// The HTTP action header.
1417type HttpActionHeader struct {
1418
1419	// The HTTP header key.
1420	//
1421	// This member is required.
1422	Key *string
1423
1424	// The HTTP header value. Substitution templates are supported.
1425	//
1426	// This member is required.
1427	Value *string
1428}
1429
1430// The authorization method used to send messages.
1431type HttpAuthorization struct {
1432
1433	// Use Sig V4 authorization. For more information, see Signature Version 4 Signing
1434	// Process
1435	// (https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html).
1436	Sigv4 *SigV4Authorization
1437}
1438
1439// Specifies the HTTP context to use for the test authorizer request.
1440type HttpContext struct {
1441
1442	// The header keys and values in an HTTP authorization request.
1443	Headers map[string]string
1444
1445	// The query string keys and values in an HTTP authorization request.
1446	QueryString *string
1447}
1448
1449// HTTP URL destination configuration used by the topic rule's HTTP action.
1450type HttpUrlDestinationConfiguration struct {
1451
1452	// The URL AWS IoT uses to confirm ownership of or access to the topic rule
1453	// destination URL.
1454	//
1455	// This member is required.
1456	ConfirmationUrl *string
1457}
1458
1459// HTTP URL destination properties.
1460type HttpUrlDestinationProperties struct {
1461
1462	// The URL used to confirm the HTTP topic rule destination URL.
1463	ConfirmationUrl *string
1464}
1465
1466// Information about an HTTP URL destination.
1467type HttpUrlDestinationSummary struct {
1468
1469	// The URL used to confirm ownership of or access to the HTTP topic rule
1470	// destination URL.
1471	ConfirmationUrl *string
1472}
1473
1474// Information that implicitly denies authorization. When policy doesn't explicitly
1475// deny or allow an action on a resource it is considered an implicit deny.
1476type ImplicitDeny struct {
1477
1478	// Policies that don't contain a matching allow or deny statement for the specified
1479	// action on the specified resource.
1480	Policies []Policy
1481}
1482
1483// Sends message data to an AWS IoT Analytics channel.
1484type IotAnalyticsAction struct {
1485
1486	// Whether to process the action as a batch. The default value is false. When
1487	// batchMode is true and the rule SQL statement evaluates to an Array, each Array
1488	// element is delivered as a separate message when passed by BatchPutMessage
1489	// (https://docs.aws.amazon.com/iotanalytics/latest/APIReference/API_BatchPutMessage.html)
1490	// to the AWS IoT Analytics channel. The resulting array can't have more than 100
1491	// messages.
1492	BatchMode *bool
1493
1494	// (deprecated) The ARN of the IoT Analytics channel to which message data will be
1495	// sent.
1496	ChannelArn *string
1497
1498	// The name of the IoT Analytics channel to which message data will be sent.
1499	ChannelName *string
1500
1501	// The ARN of the role which has a policy that grants IoT Analytics permission to
1502	// send message data via IoT Analytics (iotanalytics:BatchPutMessage).
1503	RoleArn *string
1504}
1505
1506// Sends an input to an AWS IoT Events detector.
1507type IotEventsAction struct {
1508
1509	// The name of the AWS IoT Events input.
1510	//
1511	// This member is required.
1512	InputName *string
1513
1514	// The ARN of the role that grants AWS IoT permission to send an input to an AWS
1515	// IoT Events detector. ("Action":"iotevents:BatchPutMessage").
1516	//
1517	// This member is required.
1518	RoleArn *string
1519
1520	// Whether to process the event actions as a batch. The default value is false.
1521	// When batchMode is true, you can't specify a messageId. When batchMode is true
1522	// and the rule SQL statement evaluates to an Array, each Array element is treated
1523	// as a separate message when it's sent to AWS IoT Events by calling
1524	// BatchPutMessage
1525	// (https://docs.aws.amazon.com/iotevents/latest/apireference/API_iotevents-data_BatchPutMessage.html).
1526	// The resulting array can't have more than 10 messages.
1527	BatchMode *bool
1528
1529	// The ID of the message. The default messageId is a new UUID value. When batchMode
1530	// is true, you can't specify a messageId--a new UUID value will be assigned.
1531	// Assign a value to this property to ensure that only one input (message) with a
1532	// given messageId will be processed by an AWS IoT Events detector.
1533	MessageId *string
1534}
1535
1536// Describes an action to send data from an MQTT message that triggered the rule to
1537// AWS IoT SiteWise asset properties.
1538type IotSiteWiseAction struct {
1539
1540	// A list of asset property value entries.
1541	//
1542	// This member is required.
1543	PutAssetPropertyValueEntries []PutAssetPropertyValueEntry
1544
1545	// The ARN of the role that grants AWS IoT permission to send an asset property
1546	// value to AWS IoTSiteWise. ("Action": "iotsitewise:BatchPutAssetPropertyValue").
1547	// The trust policy can restrict access to specific asset hierarchy paths.
1548	//
1549	// This member is required.
1550	RoleArn *string
1551}
1552
1553// The Job object contains details about a job.
1554type Job struct {
1555
1556	// Configuration for criteria to abort the job.
1557	AbortConfig *AbortConfig
1558
1559	// If the job was updated, describes the reason for the update.
1560	Comment *string
1561
1562	// The time, in seconds since the epoch, when the job was completed.
1563	CompletedAt *time.Time
1564
1565	// The time, in seconds since the epoch, when the job was created.
1566	CreatedAt *time.Time
1567
1568	// A short text description of the job.
1569	Description *string
1570
1571	// Will be true if the job was canceled with the optional force parameter set to
1572	// true.
1573	ForceCanceled *bool
1574
1575	// An ARN identifying the job with format "arn:aws:iot:region:account:job/jobId".
1576	JobArn *string
1577
1578	// Allows you to create a staged rollout of a job.
1579	JobExecutionsRolloutConfig *JobExecutionsRolloutConfig
1580
1581	// The unique identifier you assigned to this job when it was created.
1582	JobId *string
1583
1584	// Details about the job process.
1585	JobProcessDetails *JobProcessDetails
1586
1587	// The time, in seconds since the epoch, when the job was last updated.
1588	LastUpdatedAt *time.Time
1589
1590	// The namespace used to indicate that a job is a customer-managed job. When you
1591	// specify a value for this parameter, AWS IoT Core sends jobs notifications to
1592	// MQTT topics that contain the value in the following format.
1593	// $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/ The
1594	// namespaceId feature is in public preview.
1595	NamespaceId *string
1596
1597	// Configuration for pre-signed S3 URLs.
1598	PresignedUrlConfig *PresignedUrlConfig
1599
1600	// If the job was updated, provides the reason code for the update.
1601	ReasonCode *string
1602
1603	// The status of the job, one of IN_PROGRESS, CANCELED, DELETION_IN_PROGRESS or
1604	// COMPLETED.
1605	Status JobStatus
1606
1607	// Specifies whether the job will continue to run (CONTINUOUS), or will be complete
1608	// after all those things specified as targets have completed the job (SNAPSHOT).
1609	// If continuous, the job may also be run on a thing when a change is detected in a
1610	// target. For example, a job will run on a device when the thing representing the
1611	// device is added to a target group, even after the job was completed by all
1612	// things originally in the group.
1613	TargetSelection TargetSelection
1614
1615	// A list of IoT things and thing groups to which the job should be sent.
1616	Targets []string
1617
1618	// Specifies the amount of time each device has to finish its execution of the job.
1619	// A timer is started when the job execution status is set to IN_PROGRESS. If the
1620	// job execution status is not set to another terminal state before the timer
1621	// expires, it will be automatically set to TIMED_OUT.
1622	TimeoutConfig *TimeoutConfig
1623}
1624
1625// The job execution object represents the execution of a job on a particular
1626// device.
1627type JobExecution struct {
1628
1629	// The estimated number of seconds that remain before the job execution status will
1630	// be changed to TIMED_OUT. The timeout interval can be anywhere between 1 minute
1631	// and 7 days (1 to 10080 minutes). The actual job execution timeout can occur up
1632	// to 60 seconds later than the estimated duration. This value will not be included
1633	// if the job execution has reached a terminal status.
1634	ApproximateSecondsBeforeTimedOut *int64
1635
1636	// A string (consisting of the digits "0" through "9") which identifies this
1637	// particular job execution on this particular device. It can be used in commands
1638	// which return or update job execution information.
1639	ExecutionNumber *int64
1640
1641	// Will be true if the job execution was canceled with the optional force parameter
1642	// set to true.
1643	ForceCanceled *bool
1644
1645	// The unique identifier you assigned to the job when it was created.
1646	JobId *string
1647
1648	// The time, in seconds since the epoch, when the job execution was last updated.
1649	LastUpdatedAt *time.Time
1650
1651	// The time, in seconds since the epoch, when the job execution was queued.
1652	QueuedAt *time.Time
1653
1654	// The time, in seconds since the epoch, when the job execution started.
1655	StartedAt *time.Time
1656
1657	// The status of the job execution (IN_PROGRESS, QUEUED, FAILED, SUCCEEDED,
1658	// TIMED_OUT, CANCELED, or REJECTED).
1659	Status JobExecutionStatus
1660
1661	// A collection of name/value pairs that describe the status of the job execution.
1662	StatusDetails *JobExecutionStatusDetails
1663
1664	// The ARN of the thing on which the job execution is running.
1665	ThingArn *string
1666
1667	// The version of the job execution. Job execution versions are incremented each
1668	// time they are updated by a device.
1669	VersionNumber int64
1670}
1671
1672// Allows you to create a staged rollout of a job.
1673type JobExecutionsRolloutConfig struct {
1674
1675	// The rate of increase for a job rollout. This parameter allows you to define an
1676	// exponential rate for a job rollout.
1677	ExponentialRate *ExponentialRolloutRate
1678
1679	// The maximum number of things that will be notified of a pending job, per minute.
1680	// This parameter allows you to create a staged rollout.
1681	MaximumPerMinute *int32
1682}
1683
1684// Details of the job execution status.
1685type JobExecutionStatusDetails struct {
1686
1687	// The job execution status.
1688	DetailsMap map[string]string
1689}
1690
1691// The job execution summary.
1692type JobExecutionSummary struct {
1693
1694	// A string (consisting of the digits "0" through "9") which identifies this
1695	// particular job execution on this particular device. It can be used later in
1696	// commands which return or update job execution information.
1697	ExecutionNumber *int64
1698
1699	// The time, in seconds since the epoch, when the job execution was last updated.
1700	LastUpdatedAt *time.Time
1701
1702	// The time, in seconds since the epoch, when the job execution was queued.
1703	QueuedAt *time.Time
1704
1705	// The time, in seconds since the epoch, when the job execution started.
1706	StartedAt *time.Time
1707
1708	// The status of the job execution.
1709	Status JobExecutionStatus
1710}
1711
1712// Contains a summary of information about job executions for a specific job.
1713type JobExecutionSummaryForJob struct {
1714
1715	// Contains a subset of information about a job execution.
1716	JobExecutionSummary *JobExecutionSummary
1717
1718	// The ARN of the thing on which the job execution is running.
1719	ThingArn *string
1720}
1721
1722// The job execution summary for a thing.
1723type JobExecutionSummaryForThing struct {
1724
1725	// Contains a subset of information about a job execution.
1726	JobExecutionSummary *JobExecutionSummary
1727
1728	// The unique identifier you assigned to this job when it was created.
1729	JobId *string
1730}
1731
1732// The job process details.
1733type JobProcessDetails struct {
1734
1735	// The number of things that cancelled the job.
1736	NumberOfCanceledThings *int32
1737
1738	// The number of things that failed executing the job.
1739	NumberOfFailedThings *int32
1740
1741	// The number of things currently executing the job.
1742	NumberOfInProgressThings *int32
1743
1744	// The number of things that are awaiting execution of the job.
1745	NumberOfQueuedThings *int32
1746
1747	// The number of things that rejected the job.
1748	NumberOfRejectedThings *int32
1749
1750	// The number of things that are no longer scheduled to execute the job because
1751	// they have been deleted or have been removed from the group that was a target of
1752	// the job.
1753	NumberOfRemovedThings *int32
1754
1755	// The number of things which successfully completed the job.
1756	NumberOfSucceededThings *int32
1757
1758	// The number of things whose job execution status is TIMED_OUT.
1759	NumberOfTimedOutThings *int32
1760
1761	// The target devices to which the job execution is being rolled out. This value
1762	// will be null after the job execution has finished rolling out to all the target
1763	// devices.
1764	ProcessingTargets []string
1765}
1766
1767// The job summary.
1768type JobSummary struct {
1769
1770	// The time, in seconds since the epoch, when the job completed.
1771	CompletedAt *time.Time
1772
1773	// The time, in seconds since the epoch, when the job was created.
1774	CreatedAt *time.Time
1775
1776	// The job ARN.
1777	JobArn *string
1778
1779	// The unique identifier you assigned to this job when it was created.
1780	JobId *string
1781
1782	// The time, in seconds since the epoch, when the job was last updated.
1783	LastUpdatedAt *time.Time
1784
1785	// The job summary status.
1786	Status JobStatus
1787
1788	// Specifies whether the job will continue to run (CONTINUOUS), or will be complete
1789	// after all those things specified as targets have completed the job (SNAPSHOT).
1790	// If continuous, the job may also be run on a thing when a change is detected in a
1791	// target. For example, a job will run on a thing when the thing is added to a
1792	// target group, even after the job was completed by all things originally in the
1793	// group.
1794	TargetSelection TargetSelection
1795
1796	// The ID of the thing group.
1797	ThingGroupId *string
1798}
1799
1800// Send messages to an Amazon Managed Streaming for Apache Kafka (Amazon MSK) or
1801// self-managed Apache Kafka cluster.
1802type KafkaAction struct {
1803
1804	// Properties of the Apache Kafka producer client.
1805	//
1806	// This member is required.
1807	ClientProperties map[string]string
1808
1809	// The ARN of Kafka action's VPC TopicRuleDestination.
1810	//
1811	// This member is required.
1812	DestinationArn *string
1813
1814	// The Kafka topic for messages to be sent to the Kafka broker.
1815	//
1816	// This member is required.
1817	Topic *string
1818
1819	// The Kafka message key.
1820	Key *string
1821
1822	// The Kafka message partition.
1823	Partition *string
1824}
1825
1826// Describes a key pair.
1827type KeyPair struct {
1828
1829	// The private key.
1830	PrivateKey *string
1831
1832	// The public key.
1833	PublicKey *string
1834}
1835
1836// Describes an action to write data to an Amazon Kinesis stream.
1837type KinesisAction struct {
1838
1839	// The ARN of the IAM role that grants access to the Amazon Kinesis stream.
1840	//
1841	// This member is required.
1842	RoleArn *string
1843
1844	// The name of the Amazon Kinesis stream.
1845	//
1846	// This member is required.
1847	StreamName *string
1848
1849	// The partition key.
1850	PartitionKey *string
1851}
1852
1853// Describes an action to invoke a Lambda function.
1854type LambdaAction struct {
1855
1856	// The ARN of the Lambda function.
1857	//
1858	// This member is required.
1859	FunctionArn *string
1860}
1861
1862// Describes the logging options payload.
1863type LoggingOptionsPayload struct {
1864
1865	// The ARN of the IAM role that grants access.
1866	//
1867	// This member is required.
1868	RoleArn *string
1869
1870	// The log level.
1871	LogLevel LogLevel
1872}
1873
1874// A log target.
1875type LogTarget struct {
1876
1877	// The target type.
1878	//
1879	// This member is required.
1880	TargetType LogTargetType
1881
1882	// The target name.
1883	TargetName *string
1884}
1885
1886// The target configuration.
1887type LogTargetConfiguration struct {
1888
1889	// The logging level.
1890	LogLevel LogLevel
1891
1892	// A log target
1893	LogTarget *LogTarget
1894}
1895
1896// The configuration of an ML Detect Security Profile.
1897type MachineLearningDetectionConfig struct {
1898
1899	// The sensitivity of anomalous behavior evaluation. Can be Low, Medium, or High.
1900	//
1901	// This member is required.
1902	ConfidenceLevel ConfidenceLevel
1903}
1904
1905// The dimension of a metric.
1906type MetricDimension struct {
1907
1908	// A unique identifier for the dimension.
1909	//
1910	// This member is required.
1911	DimensionName *string
1912
1913	// Defines how the dimensionValues of a dimension are interpreted. For example, for
1914	// dimension type TOPIC_FILTER, the IN operator, a message will be counted only if
1915	// its topic matches one of the topic filters. With NOT_IN operator, a message will
1916	// be counted only if it doesn't match any of the topic filters. The operator is
1917	// optional: if it's not provided (is null), it will be interpreted as IN.
1918	Operator DimensionValueOperator
1919}
1920
1921// The metric you want to retain. Dimensions are optional.
1922type MetricToRetain struct {
1923
1924	// What is measured by the behavior.
1925	//
1926	// This member is required.
1927	Metric *string
1928
1929	// The dimension of a metric. This can't be used with custom metrics.
1930	MetricDimension *MetricDimension
1931}
1932
1933// The value to be compared with the metric.
1934type MetricValue struct {
1935
1936	// If the comparisonOperator calls for a set of CIDRs, use this to specify that set
1937	// to be compared with the metric.
1938	Cidrs []string
1939
1940	// If the comparisonOperator calls for a numeric value, use this to specify that
1941	// numeric value to be compared with the metric.
1942	Count *int64
1943
1944	// The numeral value of a metric.
1945	Number *float64
1946
1947	// The numeral values of a metric.
1948	Numbers []float64
1949
1950	// If the comparisonOperator calls for a set of ports, use this to specify that set
1951	// to be compared with the metric.
1952	Ports []int32
1953
1954	// The string values of a metric.
1955	Strings []string
1956}
1957
1958// Describes which changes should be applied as part of a mitigation action.
1959type MitigationAction struct {
1960
1961	// The set of parameters for this mitigation action. The parameters vary, depending
1962	// on the kind of action you apply.
1963	ActionParams *MitigationActionParams
1964
1965	// A unique identifier for the mitigation action.
1966	Id *string
1967
1968	// A user-friendly name for the mitigation action.
1969	Name *string
1970
1971	// The IAM role ARN used to apply this mitigation action.
1972	RoleArn *string
1973}
1974
1975// Information that identifies a mitigation action. This information is returned by
1976// ListMitigationActions.
1977type MitigationActionIdentifier struct {
1978
1979	// The IAM role ARN used to apply this mitigation action.
1980	ActionArn *string
1981
1982	// The friendly name of the mitigation action.
1983	ActionName *string
1984
1985	// The date when this mitigation action was created.
1986	CreationDate *time.Time
1987}
1988
1989// The set of parameters for this mitigation action. You can specify only one type
1990// of parameter (in other words, you can apply only one action for each defined
1991// mitigation action).
1992type MitigationActionParams struct {
1993
1994	// Parameters to define a mitigation action that moves devices associated with a
1995	// certificate to one or more specified thing groups, typically for quarantine.
1996	AddThingsToThingGroupParams *AddThingsToThingGroupParams
1997
1998	// Parameters to define a mitigation action that enables AWS IoT logging at a
1999	// specified level of detail.
2000	EnableIoTLoggingParams *EnableIoTLoggingParams
2001
2002	// Parameters to define a mitigation action that publishes findings to Amazon
2003	// Simple Notification Service (Amazon SNS. You can implement your own custom
2004	// actions in response to the Amazon SNS messages.
2005	PublishFindingToSnsParams *PublishFindingToSnsParams
2006
2007	// Parameters to define a mitigation action that adds a blank policy to restrict
2008	// permissions.
2009	ReplaceDefaultPolicyVersionParams *ReplaceDefaultPolicyVersionParams
2010
2011	// Parameters to define a mitigation action that changes the state of the CA
2012	// certificate to inactive.
2013	UpdateCACertificateParams *UpdateCACertificateParams
2014
2015	// Parameters to define a mitigation action that changes the state of the device
2016	// certificate to inactive.
2017	UpdateDeviceCertificateParams *UpdateDeviceCertificateParams
2018}
2019
2020// Specifies the MQTT context to use for the test authorizer request
2021type MqttContext struct {
2022
2023	// The value of the clientId key in an MQTT authorization request.
2024	ClientId *string
2025
2026	// The value of the password key in an MQTT authorization request.
2027	Password []byte
2028
2029	// The value of the username key in an MQTT authorization request.
2030	Username *string
2031}
2032
2033// Information about the resource that was noncompliant with the audit check.
2034type NonCompliantResource struct {
2035
2036	// Other information about the noncompliant resource.
2037	AdditionalInfo map[string]string
2038
2039	// Information that identifies the noncompliant resource.
2040	ResourceIdentifier *ResourceIdentifier
2041
2042	// The type of the noncompliant resource.
2043	ResourceType ResourceType
2044}
2045
2046// Describes a file to be associated with an OTA update.
2047type OTAUpdateFile struct {
2048
2049	// A list of name/attribute pairs.
2050	Attributes map[string]string
2051
2052	// The code signing method of the file.
2053	CodeSigning *CodeSigning
2054
2055	// The location of the updated firmware.
2056	FileLocation *FileLocation
2057
2058	// The name of the file.
2059	FileName *string
2060
2061	// An integer value you can include in the job document to allow your devices to
2062	// identify the type of file received from the cloud.
2063	FileType *int32
2064
2065	// The file version.
2066	FileVersion *string
2067}
2068
2069// Information about an OTA update.
2070type OTAUpdateInfo struct {
2071
2072	// A collection of name/value pairs
2073	AdditionalParameters map[string]string
2074
2075	// The AWS IoT job ARN associated with the OTA update.
2076	AwsIotJobArn *string
2077
2078	// The AWS IoT job ID associated with the OTA update.
2079	AwsIotJobId *string
2080
2081	// Configuration for the rollout of OTA updates.
2082	AwsJobExecutionsRolloutConfig *AwsJobExecutionsRolloutConfig
2083
2084	// Configuration information for pre-signed URLs. Valid when protocols contains
2085	// HTTP.
2086	AwsJobPresignedUrlConfig *AwsJobPresignedUrlConfig
2087
2088	// The date when the OTA update was created.
2089	CreationDate *time.Time
2090
2091	// A description of the OTA update.
2092	Description *string
2093
2094	// Error information associated with the OTA update.
2095	ErrorInfo *ErrorInfo
2096
2097	// The date when the OTA update was last updated.
2098	LastModifiedDate *time.Time
2099
2100	// The OTA update ARN.
2101	OtaUpdateArn *string
2102
2103	// A list of files associated with the OTA update.
2104	OtaUpdateFiles []OTAUpdateFile
2105
2106	// The OTA update ID.
2107	OtaUpdateId *string
2108
2109	// The status of the OTA update.
2110	OtaUpdateStatus OTAUpdateStatus
2111
2112	// The protocol used to transfer the OTA update image. Valid values are [HTTP],
2113	// [MQTT], [HTTP, MQTT]. When both HTTP and MQTT are specified, the target device
2114	// can choose the protocol.
2115	Protocols []Protocol
2116
2117	// Specifies whether the OTA update will continue to run (CONTINUOUS), or will be
2118	// complete after all those things specified as targets have completed the OTA
2119	// update (SNAPSHOT). If continuous, the OTA update may also be run on a thing when
2120	// a change is detected in a target. For example, an OTA update will run on a thing
2121	// when the thing is added to a target group, even after the OTA update was
2122	// completed by all things originally in the group.
2123	TargetSelection TargetSelection
2124
2125	// The targets of the OTA update.
2126	Targets []string
2127}
2128
2129// An OTA update summary.
2130type OTAUpdateSummary struct {
2131
2132	// The date when the OTA update was created.
2133	CreationDate *time.Time
2134
2135	// The OTA update ARN.
2136	OtaUpdateArn *string
2137
2138	// The OTA update ID.
2139	OtaUpdateId *string
2140}
2141
2142// A certificate that has been transferred but not yet accepted.
2143type OutgoingCertificate struct {
2144
2145	// The certificate ARN.
2146	CertificateArn *string
2147
2148	// The certificate ID.
2149	CertificateId *string
2150
2151	// The certificate creation date.
2152	CreationDate *time.Time
2153
2154	// The date the transfer was initiated.
2155	TransferDate *time.Time
2156
2157	// The transfer message.
2158	TransferMessage *string
2159
2160	// The AWS account to which the transfer was made.
2161	TransferredTo *string
2162}
2163
2164// Describes the percentile and percentile value.
2165type PercentPair struct {
2166
2167	// The percentile.
2168	Percent float64
2169
2170	// The value of the percentile.
2171	Value float64
2172}
2173
2174// Describes an AWS IoT policy.
2175type Policy struct {
2176
2177	// The policy ARN.
2178	PolicyArn *string
2179
2180	// The policy name.
2181	PolicyName *string
2182}
2183
2184// Describes a policy version.
2185type PolicyVersion struct {
2186
2187	// The date and time the policy was created.
2188	CreateDate *time.Time
2189
2190	// Specifies whether the policy version is the default.
2191	IsDefaultVersion bool
2192
2193	// The policy version ID.
2194	VersionId *string
2195}
2196
2197// Information about the version of the policy associated with the resource.
2198type PolicyVersionIdentifier struct {
2199
2200	// The name of the policy.
2201	PolicyName *string
2202
2203	// The ID of the version of the policy associated with the resource.
2204	PolicyVersionId *string
2205}
2206
2207// Configuration for pre-signed S3 URLs.
2208type PresignedUrlConfig struct {
2209
2210	// How long (in seconds) pre-signed URLs are valid. Valid values are 60 - 3600, the
2211	// default value is 3600 seconds. Pre-signed URLs are generated when Jobs receives
2212	// an MQTT request for the job document.
2213	ExpiresInSec *int64
2214
2215	// The ARN of an IAM role that grants grants permission to download files from the
2216	// S3 bucket where the job data/updates are stored. The role must also grant
2217	// permission for IoT to download the files.
2218	RoleArn *string
2219}
2220
2221// Structure that contains payloadVersion and targetArn.
2222type ProvisioningHook struct {
2223
2224	// The ARN of the target function. Note: Only Lambda functions are currently
2225	// supported.
2226	//
2227	// This member is required.
2228	TargetArn *string
2229
2230	// The payload that was sent to the target function. Note: Only Lambda functions
2231	// are currently supported.
2232	PayloadVersion *string
2233}
2234
2235// A summary of information about a fleet provisioning template.
2236type ProvisioningTemplateSummary struct {
2237
2238	// The date when the fleet provisioning template summary was created.
2239	CreationDate *time.Time
2240
2241	// The description of the fleet provisioning template.
2242	Description *string
2243
2244	// True if the fleet provision template is enabled, otherwise false.
2245	Enabled bool
2246
2247	// The date when the fleet provisioning template summary was last modified.
2248	LastModifiedDate *time.Time
2249
2250	// The ARN of the fleet provisioning template.
2251	TemplateArn *string
2252
2253	// The name of the fleet provisioning template.
2254	TemplateName *string
2255}
2256
2257// A summary of information about a fleet provision template version.
2258type ProvisioningTemplateVersionSummary struct {
2259
2260	// The date when the fleet provisioning template version was created
2261	CreationDate *time.Time
2262
2263	// True if the fleet provisioning template version is the default version,
2264	// otherwise false.
2265	IsDefaultVersion bool
2266
2267	// The ID of the fleet privisioning template version.
2268	VersionId *int32
2269}
2270
2271// Parameters to define a mitigation action that publishes findings to Amazon SNS.
2272// You can implement your own custom actions in response to the Amazon SNS
2273// messages.
2274type PublishFindingToSnsParams struct {
2275
2276	// The ARN of the topic to which you want to publish the findings.
2277	//
2278	// This member is required.
2279	TopicArn *string
2280}
2281
2282// An asset property value entry containing the following information.
2283type PutAssetPropertyValueEntry struct {
2284
2285	// A list of property values to insert that each contain timestamp, quality, and
2286	// value (TQV) information.
2287	//
2288	// This member is required.
2289	PropertyValues []AssetPropertyValue
2290
2291	// The ID of the AWS IoT SiteWise asset. You must specify either a propertyAlias or
2292	// both an aliasId and a propertyId. Accepts substitution templates.
2293	AssetId *string
2294
2295	// Optional. A unique identifier for this entry that you can define to better track
2296	// which message caused an error in case of failure. Accepts substitution
2297	// templates. Defaults to a new UUID.
2298	EntryId *string
2299
2300	// The name of the property alias associated with your asset property. You must
2301	// specify either a propertyAlias or both an aliasId and a propertyId. Accepts
2302	// substitution templates.
2303	PropertyAlias *string
2304
2305	// The ID of the asset's property. You must specify either a propertyAlias or both
2306	// an aliasId and a propertyId. Accepts substitution templates.
2307	PropertyId *string
2308}
2309
2310// The input for the DynamoActionVS action that specifies the DynamoDB table to
2311// which the message data will be written.
2312type PutItemInput struct {
2313
2314	// The table where the message data will be written.
2315	//
2316	// This member is required.
2317	TableName *string
2318}
2319
2320// Allows you to define a criteria to initiate the increase in rate of rollout for
2321// a job.
2322type RateIncreaseCriteria struct {
2323
2324	// The threshold for number of notified things that will initiate the increase in
2325	// rate of rollout.
2326	NumberOfNotifiedThings *int32
2327
2328	// The threshold for number of succeeded things that will initiate the increase in
2329	// rate of rollout.
2330	NumberOfSucceededThings *int32
2331}
2332
2333// The registration configuration.
2334type RegistrationConfig struct {
2335
2336	// The ARN of the role.
2337	RoleArn *string
2338
2339	// The template body.
2340	TemplateBody *string
2341}
2342
2343// Information about a related resource.
2344type RelatedResource struct {
2345
2346	// Other information about the resource.
2347	AdditionalInfo map[string]string
2348
2349	// Information that identifies the resource.
2350	ResourceIdentifier *ResourceIdentifier
2351
2352	// The type of resource.
2353	ResourceType ResourceType
2354}
2355
2356// Parameters to define a mitigation action that adds a blank policy to restrict
2357// permissions.
2358type ReplaceDefaultPolicyVersionParams struct {
2359
2360	// The name of the template to be applied. The only supported value is
2361	// BLANK_POLICY.
2362	//
2363	// This member is required.
2364	TemplateName PolicyTemplateName
2365}
2366
2367// Describes an action to republish to another topic.
2368type RepublishAction struct {
2369
2370	// The ARN of the IAM role that grants access.
2371	//
2372	// This member is required.
2373	RoleArn *string
2374
2375	// The name of the MQTT topic.
2376	//
2377	// This member is required.
2378	Topic *string
2379
2380	// The Quality of Service (QoS) level to use when republishing messages. The
2381	// default value is 0.
2382	Qos *int32
2383}
2384
2385// Information that identifies the noncompliant resource.
2386type ResourceIdentifier struct {
2387
2388	// The account with which the resource is associated.
2389	Account *string
2390
2391	// The ID of the CA certificate used to authorize the certificate.
2392	CaCertificateId *string
2393
2394	// The client ID.
2395	ClientId *string
2396
2397	// The ID of the Amazon Cognito identity pool.
2398	CognitoIdentityPoolId *string
2399
2400	// The ID of the certificate attached to the resource.
2401	DeviceCertificateId *string
2402
2403	// The ARN of the IAM role that has overly permissive actions.
2404	IamRoleArn *string
2405
2406	// The version of the policy associated with the resource.
2407	PolicyVersionIdentifier *PolicyVersionIdentifier
2408
2409	// The ARN of the role alias that has overly permissive actions.
2410	RoleAliasArn *string
2411}
2412
2413// Role alias description.
2414type RoleAliasDescription struct {
2415
2416	// The UNIX timestamp of when the role alias was created.
2417	CreationDate *time.Time
2418
2419	// The number of seconds for which the credential is valid.
2420	CredentialDurationSeconds *int32
2421
2422	// The UNIX timestamp of when the role alias was last modified.
2423	LastModifiedDate *time.Time
2424
2425	// The role alias owner.
2426	Owner *string
2427
2428	// The role alias.
2429	RoleAlias *string
2430
2431	// The ARN of the role alias.
2432	RoleAliasArn *string
2433
2434	// The role ARN.
2435	RoleArn *string
2436}
2437
2438// Describes an action to write data to an Amazon S3 bucket.
2439type S3Action struct {
2440
2441	// The Amazon S3 bucket.
2442	//
2443	// This member is required.
2444	BucketName *string
2445
2446	// The object key. For more information, see Actions, resources, and condition keys
2447	// for Amazon S3
2448	// (https://docs.aws.amazon.com/AmazonS3/latest/dev/list_amazons3.html).
2449	//
2450	// This member is required.
2451	Key *string
2452
2453	// The ARN of the IAM role that grants access.
2454	//
2455	// This member is required.
2456	RoleArn *string
2457
2458	// The Amazon S3 canned ACL that controls access to the object identified by the
2459	// object key. For more information, see S3 canned ACLs
2460	// (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl).
2461	CannedAcl CannedAccessControlList
2462}
2463
2464// Describes the location of updated firmware in S3.
2465type S3Destination struct {
2466
2467	// The S3 bucket that contains the updated firmware.
2468	Bucket *string
2469
2470	// The S3 prefix.
2471	Prefix *string
2472}
2473
2474// The S3 location.
2475type S3Location struct {
2476
2477	// The S3 bucket.
2478	Bucket *string
2479
2480	// The S3 key.
2481	Key *string
2482
2483	// The S3 bucket version.
2484	Version *string
2485}
2486
2487// Describes an action to write a message to a Salesforce IoT Cloud Input Stream.
2488type SalesforceAction struct {
2489
2490	// The token used to authenticate access to the Salesforce IoT Cloud Input Stream.
2491	// The token is available from the Salesforce IoT Cloud platform after creation of
2492	// the Input Stream.
2493	//
2494	// This member is required.
2495	Token *string
2496
2497	// The URL exposed by the Salesforce IoT Cloud Input Stream. The URL is available
2498	// from the Salesforce IoT Cloud platform after creation of the Input Stream.
2499	//
2500	// This member is required.
2501	Url *string
2502}
2503
2504// Information about the scheduled audit.
2505type ScheduledAuditMetadata struct {
2506
2507	// The day of the month on which the scheduled audit is run (if the frequency is
2508	// "MONTHLY"). If days 29-31 are specified, and the month does not have that many
2509	// days, the audit takes place on the "LAST" day of the month.
2510	DayOfMonth *string
2511
2512	// The day of the week on which the scheduled audit is run (if the frequency is
2513	// "WEEKLY" or "BIWEEKLY").
2514	DayOfWeek DayOfWeek
2515
2516	// How often the scheduled audit occurs.
2517	Frequency AuditFrequency
2518
2519	// The ARN of the scheduled audit.
2520	ScheduledAuditArn *string
2521
2522	// The name of the scheduled audit.
2523	ScheduledAuditName *string
2524}
2525
2526// Identifying information for a Device Defender security profile.
2527type SecurityProfileIdentifier struct {
2528
2529	// The ARN of the security profile.
2530	//
2531	// This member is required.
2532	Arn *string
2533
2534	// The name you've given to the security profile.
2535	//
2536	// This member is required.
2537	Name *string
2538}
2539
2540// A target to which an alert is sent when a security profile behavior is violated.
2541type SecurityProfileTarget struct {
2542
2543	// The ARN of the security profile.
2544	//
2545	// This member is required.
2546	Arn *string
2547}
2548
2549// Information about a security profile and the target associated with it.
2550type SecurityProfileTargetMapping struct {
2551
2552	// Information that identifies the security profile.
2553	SecurityProfileIdentifier *SecurityProfileIdentifier
2554
2555	// Information about the target (thing group) associated with the security profile.
2556	Target *SecurityProfileTarget
2557}
2558
2559// An object that contains information about a server certificate.
2560type ServerCertificateSummary struct {
2561
2562	// The ARN of the server certificate.
2563	ServerCertificateArn *string
2564
2565	// The status of the server certificate.
2566	ServerCertificateStatus ServerCertificateStatus
2567
2568	// Details that explain the status of the server certificate.
2569	ServerCertificateStatusDetail *string
2570}
2571
2572// Describes the code-signing profile.
2573type SigningProfileParameter struct {
2574
2575	// Certificate ARN.
2576	CertificateArn *string
2577
2578	// The location of the code-signing certificate on your device.
2579	CertificatePathOnDevice *string
2580
2581	// The hardware platform of your device.
2582	Platform *string
2583}
2584
2585// For more information, see Signature Version 4 signing process
2586// (https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html).
2587type SigV4Authorization struct {
2588
2589	// The ARN of the signing role.
2590	//
2591	// This member is required.
2592	RoleArn *string
2593
2594	// The service name to use while signing with Sig V4.
2595	//
2596	// This member is required.
2597	ServiceName *string
2598
2599	// The signing region.
2600	//
2601	// This member is required.
2602	SigningRegion *string
2603}
2604
2605// Describes an action to publish to an Amazon SNS topic.
2606type SnsAction struct {
2607
2608	// The ARN of the IAM role that grants access.
2609	//
2610	// This member is required.
2611	RoleArn *string
2612
2613	// The ARN of the SNS topic.
2614	//
2615	// This member is required.
2616	TargetArn *string
2617
2618	// (Optional) The message format of the message to publish. Accepted values are
2619	// "JSON" and "RAW". The default value of the attribute is "RAW". SNS uses this
2620	// setting to determine if the payload should be parsed and relevant
2621	// platform-specific bits of the payload should be extracted. To read more about
2622	// SNS message formats, see
2623	// https://docs.aws.amazon.com/sns/latest/dg/json-formats.html
2624	// (https://docs.aws.amazon.com/sns/latest/dg/json-formats.html) refer to their
2625	// official documentation.
2626	MessageFormat MessageFormat
2627}
2628
2629// Describes an action to publish data to an Amazon SQS queue.
2630type SqsAction struct {
2631
2632	// The URL of the Amazon SQS queue.
2633	//
2634	// This member is required.
2635	QueueUrl *string
2636
2637	// The ARN of the IAM role that grants access.
2638	//
2639	// This member is required.
2640	RoleArn *string
2641
2642	// Specifies whether to use Base64 encoding.
2643	UseBase64 *bool
2644}
2645
2646// Information required to start a signing job.
2647type StartSigningJobParameter struct {
2648
2649	// The location to write the code-signed file.
2650	Destination *Destination
2651
2652	// The code-signing profile name.
2653	SigningProfileName *string
2654
2655	// Describes the code-signing profile.
2656	SigningProfileParameter *SigningProfileParameter
2657}
2658
2659// A statistical ranking (percentile) that indicates a threshold value by which a
2660// behavior is determined to be in compliance or in violation of the behavior.
2661type StatisticalThreshold struct {
2662
2663	// The percentile that resolves to a threshold value by which compliance with a
2664	// behavior is determined. Metrics are collected over the specified period
2665	// (durationSeconds) from all reporting devices in your account and statistical
2666	// ranks are calculated. Then, the measurements from a device are collected over
2667	// the same period. If the accumulated measurements from the device fall above or
2668	// below (comparisonOperator) the value associated with the percentile specified,
2669	// then the device is considered to be in compliance with the behavior, otherwise a
2670	// violation occurs.
2671	Statistic *string
2672}
2673
2674// A map of key-value pairs for all supported statistics. Currently, only count is
2675// supported.
2676type Statistics struct {
2677
2678	// The average of the aggregated field values.
2679	Average float64
2680
2681	// The count of things that match the query.
2682	Count int32
2683
2684	// The maximum aggregated field value.
2685	Maximum float64
2686
2687	// The minimum aggregated field value.
2688	Minimum float64
2689
2690	// The standard deviation of the aggregated field values.
2691	StdDeviation float64
2692
2693	// The sum of the aggregated field values.
2694	Sum float64
2695
2696	// The sum of the squares of the aggregated field values.
2697	SumOfSquares float64
2698
2699	// The variance of the aggregated field values.
2700	Variance float64
2701}
2702
2703// Starts execution of a Step Functions state machine.
2704type StepFunctionsAction struct {
2705
2706	// The ARN of the role that grants IoT permission to start execution of a state
2707	// machine ("Action":"states:StartExecution").
2708	//
2709	// This member is required.
2710	RoleArn *string
2711
2712	// The name of the Step Functions state machine whose execution will be started.
2713	//
2714	// This member is required.
2715	StateMachineName *string
2716
2717	// (Optional) A name will be given to the state machine execution consisting of
2718	// this prefix followed by a UUID. Step Functions automatically creates a unique
2719	// name for each state machine execution if one is not provided.
2720	ExecutionNamePrefix *string
2721}
2722
2723// Describes a group of files that can be streamed.
2724type Stream struct {
2725
2726	// The ID of a file associated with a stream.
2727	FileId *int32
2728
2729	// The stream ID.
2730	StreamId *string
2731}
2732
2733// Represents a file to stream.
2734type StreamFile struct {
2735
2736	// The file ID.
2737	FileId *int32
2738
2739	// The location of the file in S3.
2740	S3Location *S3Location
2741}
2742
2743// Information about a stream.
2744type StreamInfo struct {
2745
2746	// The date when the stream was created.
2747	CreatedAt *time.Time
2748
2749	// The description of the stream.
2750	Description *string
2751
2752	// The files to stream.
2753	Files []StreamFile
2754
2755	// The date when the stream was last updated.
2756	LastUpdatedAt *time.Time
2757
2758	// An IAM role AWS IoT assumes to access your S3 files.
2759	RoleArn *string
2760
2761	// The stream ARN.
2762	StreamArn *string
2763
2764	// The stream ID.
2765	StreamId *string
2766
2767	// The stream version.
2768	StreamVersion *int32
2769}
2770
2771// A summary of a stream.
2772type StreamSummary struct {
2773
2774	// A description of the stream.
2775	Description *string
2776
2777	// The stream ARN.
2778	StreamArn *string
2779
2780	// The stream ID.
2781	StreamId *string
2782
2783	// The stream version.
2784	StreamVersion *int32
2785}
2786
2787// A set of key/value pairs that are used to manage the resource.
2788type Tag struct {
2789
2790	// The tag's key.
2791	//
2792	// This member is required.
2793	Key *string
2794
2795	// The tag's value.
2796	Value *string
2797}
2798
2799// Statistics for the checks performed during the audit.
2800type TaskStatistics struct {
2801
2802	// The number of checks that did not run because the audit was canceled.
2803	CanceledChecks *int32
2804
2805	// The number of checks that found compliant resources.
2806	CompliantChecks *int32
2807
2808	// The number of checks.
2809	FailedChecks *int32
2810
2811	// The number of checks in progress.
2812	InProgressChecks *int32
2813
2814	// The number of checks that found noncompliant resources.
2815	NonCompliantChecks *int32
2816
2817	// The number of checks in this audit.
2818	TotalChecks *int32
2819
2820	// The number of checks waiting for data collection.
2821	WaitingForDataCollectionChecks *int32
2822}
2823
2824// Provides summary counts of how many tasks for findings are in a particular
2825// state. This information is included in the response from
2826// DescribeAuditMitigationActionsTask.
2827type TaskStatisticsForAuditCheck struct {
2828
2829	// The number of findings to which the mitigation action task was canceled when
2830	// applied.
2831	CanceledFindingsCount *int64
2832
2833	// The number of findings for which at least one of the actions failed when
2834	// applied.
2835	FailedFindingsCount *int64
2836
2837	// The number of findings skipped because of filter conditions provided in the
2838	// parameters to the command.
2839	SkippedFindingsCount *int64
2840
2841	// The number of findings for which all mitigation actions succeeded when applied.
2842	SucceededFindingsCount *int64
2843
2844	// The total number of findings to which a task is being applied.
2845	TotalFindingsCount *int64
2846}
2847
2848// The properties of the thing, including thing name, thing type name, and a list
2849// of thing attributes.
2850type ThingAttribute struct {
2851
2852	// A list of thing attributes which are name-value pairs.
2853	Attributes map[string]string
2854
2855	// The thing ARN.
2856	ThingArn *string
2857
2858	// The name of the thing.
2859	ThingName *string
2860
2861	// The name of the thing type, if the thing has been associated with a type.
2862	ThingTypeName *string
2863
2864	// The version of the thing record in the registry.
2865	Version int64
2866}
2867
2868// The connectivity status of the thing.
2869type ThingConnectivity struct {
2870
2871	// True if the thing is connected to the AWS IoT service; false if it is not
2872	// connected.
2873	Connected bool
2874
2875	// The epoch time (in milliseconds) when the thing last connected or disconnected.
2876	// If the thing has been disconnected for more than a few weeks, the time value
2877	// might be missing.
2878	Timestamp *int64
2879}
2880
2881// The thing search index document.
2882type ThingDocument struct {
2883
2884	// The attributes.
2885	Attributes map[string]string
2886
2887	// Indicates whether the thing is connected to the AWS IoT service.
2888	Connectivity *ThingConnectivity
2889
2890	// The shadow.
2891	Shadow *string
2892
2893	// Thing group names.
2894	ThingGroupNames []string
2895
2896	// The thing ID.
2897	ThingId *string
2898
2899	// The thing name.
2900	ThingName *string
2901
2902	// The thing type name.
2903	ThingTypeName *string
2904}
2905
2906// The thing group search index document.
2907type ThingGroupDocument struct {
2908
2909	// The thing group attributes.
2910	Attributes map[string]string
2911
2912	// Parent group names.
2913	ParentGroupNames []string
2914
2915	// The thing group description.
2916	ThingGroupDescription *string
2917
2918	// The thing group ID.
2919	ThingGroupId *string
2920
2921	// The thing group name.
2922	ThingGroupName *string
2923}
2924
2925// Thing group indexing configuration.
2926type ThingGroupIndexingConfiguration struct {
2927
2928	// Thing group indexing mode.
2929	//
2930	// This member is required.
2931	ThingGroupIndexingMode ThingGroupIndexingMode
2932
2933	// A list of thing group fields to index. This list cannot contain any managed
2934	// fields. Use the GetIndexingConfiguration API to get a list of managed fields.
2935	// Contains custom field names and their data type.
2936	CustomFields []Field
2937
2938	// Contains fields that are indexed and whose types are already known by the Fleet
2939	// Indexing service.
2940	ManagedFields []Field
2941}
2942
2943// Thing group metadata.
2944type ThingGroupMetadata struct {
2945
2946	// The UNIX timestamp of when the thing group was created.
2947	CreationDate *time.Time
2948
2949	// The parent thing group name.
2950	ParentGroupName *string
2951
2952	// The root parent thing group.
2953	RootToParentThingGroups []GroupNameAndArn
2954}
2955
2956// Thing group properties.
2957type ThingGroupProperties struct {
2958
2959	// The thing group attributes in JSON format.
2960	AttributePayload *AttributePayload
2961
2962	// The thing group description.
2963	ThingGroupDescription *string
2964}
2965
2966// The thing indexing configuration. For more information, see Managing Thing
2967// Indexing
2968// (https://docs.aws.amazon.com/iot/latest/developerguide/managing-index.html).
2969type ThingIndexingConfiguration struct {
2970
2971	// Thing indexing mode. Valid values are:
2972	//
2973	// * REGISTRY – Your thing index contains
2974	// registry data only.
2975	//
2976	// * REGISTRY_AND_SHADOW - Your thing index contains registry
2977	// and shadow data.
2978	//
2979	// * OFF - Thing indexing is disabled.
2980	//
2981	// This member is required.
2982	ThingIndexingMode ThingIndexingMode
2983
2984	// Contains custom field names and their data type.
2985	CustomFields []Field
2986
2987	// Contains fields that are indexed and whose types are already known by the Fleet
2988	// Indexing service.
2989	ManagedFields []Field
2990
2991	// Thing connectivity indexing mode. Valid values are:
2992	//
2993	// * STATUS – Your thing index
2994	// contains connectivity status. To enable thing connectivity indexing,
2995	// thingIndexMode must not be set to OFF.
2996	//
2997	// * OFF - Thing connectivity status
2998	// indexing is disabled.
2999	ThingConnectivityIndexingMode ThingConnectivityIndexingMode
3000}
3001
3002// The definition of the thing type, including thing type name and description.
3003type ThingTypeDefinition struct {
3004
3005	// The thing type ARN.
3006	ThingTypeArn *string
3007
3008	// The ThingTypeMetadata contains additional information about the thing type
3009	// including: creation date and time, a value indicating whether the thing type is
3010	// deprecated, and a date and time when it was deprecated.
3011	ThingTypeMetadata *ThingTypeMetadata
3012
3013	// The name of the thing type.
3014	ThingTypeName *string
3015
3016	// The ThingTypeProperties for the thing type.
3017	ThingTypeProperties *ThingTypeProperties
3018}
3019
3020// The ThingTypeMetadata contains additional information about the thing type
3021// including: creation date and time, a value indicating whether the thing type is
3022// deprecated, and a date and time when time was deprecated.
3023type ThingTypeMetadata struct {
3024
3025	// The date and time when the thing type was created.
3026	CreationDate *time.Time
3027
3028	// Whether the thing type is deprecated. If true, no new things could be associated
3029	// with this type.
3030	Deprecated bool
3031
3032	// The date and time when the thing type was deprecated.
3033	DeprecationDate *time.Time
3034}
3035
3036// The ThingTypeProperties contains information about the thing type including: a
3037// thing type description, and a list of searchable thing attribute names.
3038type ThingTypeProperties struct {
3039
3040	// A list of searchable thing attribute names.
3041	SearchableAttributes []string
3042
3043	// The description of the thing type.
3044	ThingTypeDescription *string
3045}
3046
3047// Specifies the amount of time each device has to finish its execution of the job.
3048// A timer is started when the job execution status is set to IN_PROGRESS. If the
3049// job execution status is not set to another terminal state before the timer
3050// expires, it will be automatically set to TIMED_OUT.
3051type TimeoutConfig struct {
3052
3053	// Specifies the amount of time, in minutes, this device has to finish execution of
3054	// this job. The timeout interval can be anywhere between 1 minute and 7 days (1 to
3055	// 10080 minutes). The in progress timer can't be updated and will apply to all job
3056	// executions for the job. Whenever a job execution remains in the IN_PROGRESS
3057	// status for longer than this interval, the job execution will fail and switch to
3058	// the terminal TIMED_OUT status.
3059	InProgressTimeoutInMinutes *int64
3060}
3061
3062// The Timestream rule action writes attributes (measures) from an MQTT message
3063// into an Amazon Timestream table. For more information, see the Timestream
3064// (https://docs.aws.amazon.com/iot/latest/developerguide/timestream-rule-action.html)
3065// topic rule action documentation.
3066type TimestreamAction struct {
3067
3068	// The name of an Amazon Timestream database.
3069	//
3070	// This member is required.
3071	DatabaseName *string
3072
3073	// Metadata attributes of the time series that are written in each measure record.
3074	//
3075	// This member is required.
3076	Dimensions []TimestreamDimension
3077
3078	// The ARN of the role that grants permission to write to the Amazon Timestream
3079	// database table.
3080	//
3081	// This member is required.
3082	RoleArn *string
3083
3084	// The name of the database table into which to write the measure records.
3085	//
3086	// This member is required.
3087	TableName *string
3088
3089	// Specifies an application-defined value to replace the default value assigned to
3090	// the Timestream record's timestamp in the time column. You can use this property
3091	// to specify the value and the precision of the Timestream record's timestamp. You
3092	// can specify a value from the message payload or a value computed by a
3093	// substitution template. If omitted, the topic rule action assigns the timestamp,
3094	// in milliseconds, at the time it processed the rule.
3095	Timestamp *TimestreamTimestamp
3096}
3097
3098// Metadata attributes of the time series that are written in each measure record.
3099type TimestreamDimension struct {
3100
3101	// The metadata dimension name. This is the name of the column in the Amazon
3102	// Timestream database table record. Dimensions cannot be named: measure_name,
3103	// measure_value, or time. These names are reserved. Dimension names cannot start
3104	// with ts_ or measure_value and they cannot contain the colon (:) character.
3105	//
3106	// This member is required.
3107	Name *string
3108
3109	// The value to write in this column of the database record.
3110	//
3111	// This member is required.
3112	Value *string
3113}
3114
3115// Describes how to interpret an application-defined timestamp value from an MQTT
3116// message payload and the precision of that value.
3117type TimestreamTimestamp struct {
3118
3119	// The precision of the timestamp value that results from the expression described
3120	// in value. Valid values: SECONDS | MILLISECONDS | MICROSECONDS | NANOSECONDS. The
3121	// default is MILLISECONDS.
3122	//
3123	// This member is required.
3124	Unit *string
3125
3126	// An expression that returns a long epoch time value.
3127	//
3128	// This member is required.
3129	Value *string
3130}
3131
3132// Specifies the TLS context to use for the test authorizer request.
3133type TlsContext struct {
3134
3135	// The value of the serverName key in a TLS authorization request.
3136	ServerName *string
3137}
3138
3139// Describes a rule.
3140type TopicRule struct {
3141
3142	// The actions associated with the rule.
3143	Actions []Action
3144
3145	// The version of the SQL rules engine to use when evaluating the rule.
3146	AwsIotSqlVersion *string
3147
3148	// The date and time the rule was created.
3149	CreatedAt *time.Time
3150
3151	// The description of the rule.
3152	Description *string
3153
3154	// The action to perform when an error occurs.
3155	ErrorAction *Action
3156
3157	// Specifies whether the rule is disabled.
3158	RuleDisabled *bool
3159
3160	// The name of the rule.
3161	RuleName *string
3162
3163	// The SQL statement used to query the topic. When using a SQL query with multiple
3164	// lines, be sure to escape the newline characters.
3165	Sql *string
3166}
3167
3168// A topic rule destination.
3169type TopicRuleDestination struct {
3170
3171	// The topic rule destination URL.
3172	Arn *string
3173
3174	// The date and time when the topic rule destination was created.
3175	CreatedAt *time.Time
3176
3177	// Properties of the HTTP URL.
3178	HttpUrlProperties *HttpUrlDestinationProperties
3179
3180	// The date and time when the topic rule destination was last updated.
3181	LastUpdatedAt *time.Time
3182
3183	// The status of the topic rule destination. Valid values are: IN_PROGRESS A topic
3184	// rule destination was created but has not been confirmed. You can set status to
3185	// IN_PROGRESS by calling UpdateTopicRuleDestination. Calling
3186	// UpdateTopicRuleDestination causes a new confirmation challenge to be sent to
3187	// your confirmation endpoint. ENABLED Confirmation was completed, and traffic to
3188	// this destination is allowed. You can set status to DISABLED by calling
3189	// UpdateTopicRuleDestination. DISABLED Confirmation was completed, and traffic to
3190	// this destination is not allowed. You can set status to ENABLED by calling
3191	// UpdateTopicRuleDestination. ERROR Confirmation could not be completed, for
3192	// example if the confirmation timed out. You can call GetTopicRuleDestination for
3193	// details about the error. You can set status to IN_PROGRESS by calling
3194	// UpdateTopicRuleDestination. Calling UpdateTopicRuleDestination causes a new
3195	// confirmation challenge to be sent to your confirmation endpoint.
3196	Status TopicRuleDestinationStatus
3197
3198	// Additional details or reason why the topic rule destination is in the current
3199	// status.
3200	StatusReason *string
3201
3202	// Properties of the virtual private cloud (VPC) connection.
3203	VpcProperties *VpcDestinationProperties
3204}
3205
3206// Configuration of the topic rule destination.
3207type TopicRuleDestinationConfiguration struct {
3208
3209	// Configuration of the HTTP URL.
3210	HttpUrlConfiguration *HttpUrlDestinationConfiguration
3211
3212	// Configuration of the virtual private cloud (VPC) connection.
3213	VpcConfiguration *VpcDestinationConfiguration
3214}
3215
3216// Information about the topic rule destination.
3217type TopicRuleDestinationSummary struct {
3218
3219	// The topic rule destination ARN.
3220	Arn *string
3221
3222	// The date and time when the topic rule destination was created.
3223	CreatedAt *time.Time
3224
3225	// Information about the HTTP URL.
3226	HttpUrlSummary *HttpUrlDestinationSummary
3227
3228	// The date and time when the topic rule destination was last updated.
3229	LastUpdatedAt *time.Time
3230
3231	// The status of the topic rule destination. Valid values are: IN_PROGRESS A topic
3232	// rule destination was created but has not been confirmed. You can set status to
3233	// IN_PROGRESS by calling UpdateTopicRuleDestination. Calling
3234	// UpdateTopicRuleDestination causes a new confirmation challenge to be sent to
3235	// your confirmation endpoint. ENABLED Confirmation was completed, and traffic to
3236	// this destination is allowed. You can set status to DISABLED by calling
3237	// UpdateTopicRuleDestination. DISABLED Confirmation was completed, and traffic to
3238	// this destination is not allowed. You can set status to ENABLED by calling
3239	// UpdateTopicRuleDestination. ERROR Confirmation could not be completed, for
3240	// example if the confirmation timed out. You can call GetTopicRuleDestination for
3241	// details about the error. You can set status to IN_PROGRESS by calling
3242	// UpdateTopicRuleDestination. Calling UpdateTopicRuleDestination causes a new
3243	// confirmation challenge to be sent to your confirmation endpoint.
3244	Status TopicRuleDestinationStatus
3245
3246	// The reason the topic rule destination is in the current status.
3247	StatusReason *string
3248
3249	// Information about the virtual private cloud (VPC) connection.
3250	VpcDestinationSummary *VpcDestinationSummary
3251}
3252
3253// Describes a rule.
3254type TopicRuleListItem struct {
3255
3256	// The date and time the rule was created.
3257	CreatedAt *time.Time
3258
3259	// The rule ARN.
3260	RuleArn *string
3261
3262	// Specifies whether the rule is disabled.
3263	RuleDisabled *bool
3264
3265	// The name of the rule.
3266	RuleName *string
3267
3268	// The pattern for the topic names that apply.
3269	TopicPattern *string
3270}
3271
3272// Describes a rule.
3273type TopicRulePayload struct {
3274
3275	// The actions associated with the rule.
3276	//
3277	// This member is required.
3278	Actions []Action
3279
3280	// The SQL statement used to query the topic. For more information, see AWS IoT SQL
3281	// Reference
3282	// (https://docs.aws.amazon.com/iot/latest/developerguide/iot-sql-reference.html)
3283	// in the AWS IoT Developer Guide.
3284	//
3285	// This member is required.
3286	Sql *string
3287
3288	// The version of the SQL rules engine to use when evaluating the rule.
3289	AwsIotSqlVersion *string
3290
3291	// The description of the rule.
3292	Description *string
3293
3294	// The action to take when an error occurs.
3295	ErrorAction *Action
3296
3297	// Specifies whether the rule is disabled.
3298	RuleDisabled *bool
3299}
3300
3301// Data used to transfer a certificate to an AWS account.
3302type TransferData struct {
3303
3304	// The date the transfer was accepted.
3305	AcceptDate *time.Time
3306
3307	// The date the transfer was rejected.
3308	RejectDate *time.Time
3309
3310	// The reason why the transfer was rejected.
3311	RejectReason *string
3312
3313	// The date the transfer took place.
3314	TransferDate *time.Time
3315
3316	// The transfer message.
3317	TransferMessage *string
3318}
3319
3320// Parameters to define a mitigation action that changes the state of the CA
3321// certificate to inactive.
3322type UpdateCACertificateParams struct {
3323
3324	// The action that you want to apply to the CA certificate. The only supported
3325	// value is DEACTIVATE.
3326	//
3327	// This member is required.
3328	Action CACertificateUpdateAction
3329}
3330
3331// Parameters to define a mitigation action that changes the state of the device
3332// certificate to inactive.
3333type UpdateDeviceCertificateParams struct {
3334
3335	// The action that you want to apply to the device certificate. The only supported
3336	// value is DEACTIVATE.
3337	//
3338	// This member is required.
3339	Action DeviceCertificateUpdateAction
3340}
3341
3342// Information about an error found in a behavior specification.
3343type ValidationError struct {
3344
3345	// The description of an error found in the behaviors.
3346	ErrorMessage *string
3347}
3348
3349// Information about a Device Defender security profile behavior violation.
3350type ViolationEvent struct {
3351
3352	// The behavior that was violated.
3353	Behavior *Behavior
3354
3355	// The value of the metric (the measurement).
3356	MetricValue *MetricValue
3357
3358	// The name of the security profile whose behavior was violated.
3359	SecurityProfileName *string
3360
3361	// The name of the thing responsible for the violation event.
3362	ThingName *string
3363
3364	// The details of a violation event.
3365	ViolationEventAdditionalInfo *ViolationEventAdditionalInfo
3366
3367	// The time the violation event occurred.
3368	ViolationEventTime *time.Time
3369
3370	// The type of violation event.
3371	ViolationEventType ViolationEventType
3372
3373	// The ID of the violation event.
3374	ViolationId *string
3375}
3376
3377// The details of a violation event.
3378type ViolationEventAdditionalInfo struct {
3379
3380	// The sensitivity of anomalous behavior evaluation. Can be Low, Medium, or High.
3381	ConfidenceLevel ConfidenceLevel
3382}
3383
3384// Specifies the time period of which violation events occurred between.
3385type ViolationEventOccurrenceRange struct {
3386
3387	// The end date and time of a time period in which violation events occurred.
3388	//
3389	// This member is required.
3390	EndTime *time.Time
3391
3392	// The start date and time of a time period in which violation events occurred.
3393	//
3394	// This member is required.
3395	StartTime *time.Time
3396}
3397
3398// The configuration information for a virtual private cloud (VPC) destination.
3399type VpcDestinationConfiguration struct {
3400
3401	// The ARN of a role that has permission to create and attach to elastic network
3402	// interfaces (ENIs).
3403	//
3404	// This member is required.
3405	RoleArn *string
3406
3407	// The subnet IDs of the VPC destination.
3408	//
3409	// This member is required.
3410	SubnetIds []string
3411
3412	// The ID of the VPC.
3413	//
3414	// This member is required.
3415	VpcId *string
3416
3417	// The security groups of the VPC destination.
3418	SecurityGroups []string
3419}
3420
3421// The properties of a virtual private cloud (VPC) destination.
3422type VpcDestinationProperties struct {
3423
3424	// The ARN of a role that has permission to create and attach to elastic network
3425	// interfaces (ENIs).
3426	RoleArn *string
3427
3428	// The security groups of the VPC destination.
3429	SecurityGroups []string
3430
3431	// The subnet IDs of the VPC destination.
3432	SubnetIds []string
3433
3434	// The ID of the VPC.
3435	VpcId *string
3436}
3437
3438// The summary of a virtual private cloud (VPC) destination.
3439type VpcDestinationSummary struct {
3440
3441	// The ARN of a role that has permission to create and attach to elastic network
3442	// interfaces (ENIs).
3443	RoleArn *string
3444
3445	// The security groups of the VPC destination.
3446	SecurityGroups []string
3447
3448	// The subnet IDs of the VPC destination.
3449	SubnetIds []string
3450
3451	// The ID of the VPC.
3452	VpcId *string
3453}
3454
3455// UnknownUnionMember is returned when a union member is returned over the wire,
3456// but has an unknown tag.
3457type UnknownUnionMember struct {
3458	Tag   string
3459	Value []byte
3460}
3461
3462func (*UnknownUnionMember) isAssetPropertyVariant() {}
3463