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