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