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