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