1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099
|
// Code generated by smithy-go-codegen DO NOT EDIT.
package types
import (
smithydocument "github.com/aws/smithy-go/document"
"time"
)
// Contains a request to associate a client device with a core device. The [BatchAssociateClientDeviceWithCoreDevice]
// operation consumes a list of these requests.
//
// [BatchAssociateClientDeviceWithCoreDevice]: https://docs.aws.amazon.com/greengrass/v2/APIReference/API_BatchAssociateClientDeviceWithCoreDevice.html
type AssociateClientDeviceWithCoreDeviceEntry struct {
// The name of the IoT thing that represents the client device to associate.
//
// This member is required.
ThingName *string
noSmithyDocumentSerde
}
// Contains an error that occurs from a request to associate a client device with
// a core device. The [BatchAssociateClientDeviceWithCoreDevice]operation returns a list of these errors.
//
// [BatchAssociateClientDeviceWithCoreDevice]: https://docs.aws.amazon.com/greengrass/v2/APIReference/API_BatchAssociateClientDeviceWithCoreDevice.html
type AssociateClientDeviceWithCoreDeviceErrorEntry struct {
// The error code for the request.
Code *string
// A message that provides additional information about the error.
Message *string
// The name of the IoT thing whose associate request failed.
ThingName *string
noSmithyDocumentSerde
}
// Contains information about a client device that is associated to a core device
// for cloud discovery.
type AssociatedClientDevice struct {
// The time that the client device was associated, expressed in ISO 8601 format.
AssociationTimestamp *time.Time
// The name of the IoT thing that represents the associated client device.
ThingName *string
noSmithyDocumentSerde
}
// Contains the status of a component version in the IoT Greengrass service.
type CloudComponentStatus struct {
// The state of the component version.
ComponentState CloudComponentState
// A dictionary of errors that communicate why the component version is in an
// error state. For example, if IoT Greengrass can't access an artifact for the
// component version, then errors contains the artifact's URI as a key, and the
// error message as the value for that key.
Errors map[string]string
// A message that communicates details, such as errors, about the status of the
// component version.
Message *string
// The vendor guidance state for the component version. This state indicates
// whether the component version has any issues that you should consider before you
// deploy it. The vendor guidance state can be:
//
// - ACTIVE – This component version is available and recommended for use.
//
// - DISCONTINUED – This component version has been discontinued by its
// publisher. You can deploy this component version, but we recommend that you use
// a different version of this component.
//
// - DELETED – This component version has been deleted by its publisher, so you
// can't deploy it. If you have any existing deployments that specify this
// component version, those deployments will fail.
VendorGuidance VendorGuidance
// A message that communicates details about the vendor guidance state of the
// component version. This message communicates why a component version is
// discontinued or deleted.
VendorGuidanceMessage *string
noSmithyDocumentSerde
}
// Contains information about a component.
type Component struct {
// The [ARN] of the component version.
//
// [ARN]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
Arn *string
// The name of the component.
ComponentName *string
// The latest version of the component and its details.
LatestVersion *ComponentLatestVersion
noSmithyDocumentSerde
}
// Contains information about a component that is a candidate to deploy to a
// Greengrass core device.
type ComponentCandidate struct {
// The name of the component.
ComponentName *string
// The version of the component.
ComponentVersion *string
// The version requirements for the component's dependencies. Greengrass core
// devices get the version requirements from component recipes.
//
// IoT Greengrass V2 uses semantic version constraints. For more information, see [Semantic Versioning].
//
// [Semantic Versioning]: https://semver.org/
VersionRequirements map[string]string
noSmithyDocumentSerde
}
// Contains information about a deployment's update to a component's configuration
// on Greengrass core devices. For more information, see [Update component configurations]in the IoT Greengrass V2
// Developer Guide.
//
// [Update component configurations]: https://docs.aws.amazon.com/greengrass/v2/developerguide/update-component-configurations.html
type ComponentConfigurationUpdate struct {
// A serialized JSON string that contains the configuration object to merge to
// target devices. The core device merges this configuration with the component's
// existing configuration. If this is the first time a component deploys on a
// device, the core device merges this configuration with the component's default
// configuration. This means that the core device keeps it's existing configuration
// for keys and values that you don't specify in this object. For more information,
// see [Merge configuration updates]in the IoT Greengrass V2 Developer Guide.
//
// [Merge configuration updates]: https://docs.aws.amazon.com/greengrass/v2/developerguide/update-component-configurations.html#merge-configuration-update
Merge *string
// The list of configuration nodes to reset to default values on target devices.
// Use JSON pointers to specify each node to reset. JSON pointers start with a
// forward slash ( / ) and use forward slashes to separate the key for each level
// in the object. For more information, see the [JSON pointer specification]and [Reset configuration updates] in the IoT Greengrass V2
// Developer Guide.
//
// [JSON pointer specification]: https://tools.ietf.org/html/rfc6901
// [Reset configuration updates]: https://docs.aws.amazon.com/greengrass/v2/developerguide/update-component-configurations.html#reset-configuration-update
Reset []string
noSmithyDocumentSerde
}
// Contains information about a component dependency for a Lambda function
// component.
type ComponentDependencyRequirement struct {
// The type of this dependency. Choose from the following options:
//
// - SOFT – The component doesn't restart if the dependency changes state.
//
// - HARD – The component restarts if the dependency changes state.
//
// Default: HARD
DependencyType ComponentDependencyType
// The component version requirement for the component dependency.
//
// IoT Greengrass V2 uses semantic version constraints. For more information, see [Semantic Versioning].
//
// [Semantic Versioning]: https://semver.org/
VersionRequirement *string
noSmithyDocumentSerde
}
// Contains information about a component to deploy.
type ComponentDeploymentSpecification struct {
// The version of the component.
//
// This member is required.
ComponentVersion *string
// The configuration updates to deploy for the component. You can define reset
// updates and merge updates. A reset updates the keys that you specify to the
// default configuration for the component. A merge updates the core device's
// component configuration with the keys and values that you specify. The IoT
// Greengrass Core software applies reset updates before it applies merge updates.
// For more information, see [Update component configurations]in the IoT Greengrass V2 Developer Guide.
//
// [Update component configurations]: https://docs.aws.amazon.com/greengrass/v2/developerguide/update-component-configurations.html
ConfigurationUpdate *ComponentConfigurationUpdate
// The system user and group that the IoT Greengrass Core software uses to run
// component processes on the core device. If you omit this parameter, the IoT
// Greengrass Core software uses the system user and group that you configure for
// the core device. For more information, see [Configure the user and group that run components]in the IoT Greengrass V2 Developer
// Guide.
//
// [Configure the user and group that run components]: https://docs.aws.amazon.com/greengrass/v2/developerguide/configure-greengrass-core-v2.html#configure-component-user
RunWith *ComponentRunWith
noSmithyDocumentSerde
}
// Contains information about the latest version of a component.
type ComponentLatestVersion struct {
// The [ARN] of the component version.
//
// [ARN]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
Arn *string
// The version of the component.
ComponentVersion *string
// The time at which the component was created, expressed in ISO 8601 format.
CreationTimestamp *time.Time
// The description of the component version.
Description *string
// The platforms that the component version supports.
Platforms []ComponentPlatform
// The publisher of the component version.
Publisher *string
noSmithyDocumentSerde
}
// Contains information about a platform that a component supports.
type ComponentPlatform struct {
// A dictionary of attributes for the platform. The IoT Greengrass Core software
// defines the os and architecture by default. You can specify additional platform
// attributes for a core device when you deploy the Greengrass nucleus component.
// For more information, see the [Greengrass nucleus component]in the IoT Greengrass V2 Developer Guide.
//
// [Greengrass nucleus component]: https://docs.aws.amazon.com/greengrass/v2/developerguide/greengrass-nucleus-component.html
Attributes map[string]string
// The friendly name of the platform. This name helps you identify the platform.
//
// If you omit this parameter, IoT Greengrass creates a friendly name from the os
// and architecture of the platform.
Name *string
noSmithyDocumentSerde
}
// Contains information system user and group that the IoT Greengrass Core
// software uses to run component processes on the core device. For more
// information, see [Configure the user and group that run components]in the IoT Greengrass V2 Developer Guide.
//
// [Configure the user and group that run components]: https://docs.aws.amazon.com/greengrass/v2/developerguide/configure-greengrass-core-v2.html#configure-component-user
type ComponentRunWith struct {
// The POSIX system user and, optionally, group to use to run this component on
// Linux core devices. The user, and group if specified, must exist on each Linux
// core device. Specify the user and group separated by a colon ( : ) in the
// following format: user:group . The group is optional. If you don't specify a
// group, the IoT Greengrass Core software uses the primary user for the group.
//
// If you omit this parameter, the IoT Greengrass Core software uses the default
// system user and group that you configure on the Greengrass nucleus component.
// For more information, see [Configure the user and group that run components].
//
// [Configure the user and group that run components]: https://docs.aws.amazon.com/greengrass/v2/developerguide/configure-greengrass-core-v2.html#configure-component-user
PosixUser *string
// The system resource limits to apply to this component's process on the core
// device. IoT Greengrass currently supports this feature on only Linux core
// devices.
//
// If you omit this parameter, the IoT Greengrass Core software uses the default
// system resource limits that you configure on the Greengrass nucleus component.
// For more information, see [Configure system resource limits for components].
//
// [Configure system resource limits for components]: https://docs.aws.amazon.com/greengrass/v2/developerguide/configure-greengrass-core-v2.html#configure-component-system-resource-limits
SystemResourceLimits *SystemResourceLimits
// The Windows user to use to run this component on Windows core devices. The user
// must exist on each Windows core device, and its name and password must be in the
// LocalSystem account's Credentials Manager instance.
//
// If you omit this parameter, the IoT Greengrass Core software uses the default
// Windows user that you configure on the Greengrass nucleus component. For more
// information, see [Configure the user and group that run components].
//
// [Configure the user and group that run components]: https://docs.aws.amazon.com/greengrass/v2/developerguide/configure-greengrass-core-v2.html#configure-component-user
WindowsUser *string
noSmithyDocumentSerde
}
// Contains information about a component version in a list.
type ComponentVersionListItem struct {
// The [ARN] of the component version.
//
// [ARN]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
Arn *string
// The name of the component.
ComponentName *string
// The version of the component.
ComponentVersion *string
noSmithyDocumentSerde
}
// Contains information about an endpoint and port where client devices can
// connect to an MQTT broker on a Greengrass core device.
type ConnectivityInfo struct {
// The IP address or DNS address where client devices can connect to an MQTT
// broker on the Greengrass core device.
HostAddress *string
// An ID for the connectivity information.
Id *string
// Additional metadata to provide to client devices that connect to this core
// device.
Metadata *string
// The port where the MQTT broker operates on the core device. This port is
// typically 8883, which is the default port for the MQTT broker component that
// runs on core devices.
PortNumber int32
noSmithyDocumentSerde
}
// Contains information about a Greengrass core device, which is an IoT thing that
// runs the IoT Greengrass Core software.
type CoreDevice struct {
// The name of the core device. This is also the name of the IoT thing.
CoreDeviceThingName *string
// The time at which the core device's status last updated, expressed in ISO 8601
// format.
LastStatusUpdateTimestamp *time.Time
// The status of the core device. Core devices can have the following statuses:
//
// - HEALTHY – The IoT Greengrass Core software and all components run on the
// core device without issue.
//
// - UNHEALTHY – The IoT Greengrass Core software or a component is in a failed
// state on the core device.
Status CoreDeviceStatus
noSmithyDocumentSerde
}
// Contains information about a deployment.
type Deployment struct {
// The time at which the deployment was created, expressed in ISO 8601 format.
CreationTimestamp *time.Time
// The ID of the deployment.
DeploymentId *string
// The name of the deployment.
DeploymentName *string
// The status of the deployment.
DeploymentStatus DeploymentStatus
// Whether or not the deployment is the latest revision for its target.
IsLatestForTarget bool
// The parent deployment's target [ARN] within a subdeployment.
//
// [ARN]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
ParentTargetArn *string
// The revision number of the deployment.
RevisionId *string
// The [ARN] of the target IoT thing or thing group. When creating a subdeployment, the
// targetARN can only be a thing group.
//
// [ARN]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
TargetArn *string
noSmithyDocumentSerde
}
// Contains information about a deployment's policy that defines when components
// are safe to update.
//
// Each component on a device can report whether or not it's ready to update.
// After a component and its dependencies are ready, they can apply the update in
// the deployment. You can configure whether or not the deployment notifies
// components of an update and waits for a response. You specify the amount of time
// each component has to respond to the update notification.
type DeploymentComponentUpdatePolicy struct {
// Whether or not to notify components and wait for components to become safe to
// update. Choose from the following options:
//
// - NOTIFY_COMPONENTS – The deployment notifies each component before it stops
// and updates that component. Components can use the [SubscribeToComponentUpdates]IPC operation to receive
// these notifications. Then, components can respond with the [DeferComponentUpdate]IPC operation. For
// more information, see [Create deployments]in the IoT Greengrass V2 Developer Guide.
//
// - SKIP_NOTIFY_COMPONENTS – The deployment doesn't notify components or wait
// for them to be safe to update.
//
// Default: NOTIFY_COMPONENTS
//
// [DeferComponentUpdate]: https://docs.aws.amazon.com/greengrass/v2/developerguide/interprocess-communication.html#ipc-operation-defercomponentupdate
// [SubscribeToComponentUpdates]: https://docs.aws.amazon.com/greengrass/v2/developerguide/interprocess-communication.html#ipc-operation-subscribetocomponentupdates
// [Create deployments]: https://docs.aws.amazon.com/greengrass/v2/developerguide/create-deployments.html
Action DeploymentComponentUpdatePolicyAction
// The amount of time in seconds that each component on a device has to report
// that it's safe to update. If the component waits for longer than this timeout,
// then the deployment proceeds on the device.
//
// Default: 60
TimeoutInSeconds *int32
noSmithyDocumentSerde
}
// Contains information about how long a component on a core device can validate
// its configuration updates before it times out. Components can use the [SubscribeToValidateConfigurationUpdates]IPC
// operation to receive notifications when a deployment specifies a configuration
// update. Then, components can respond with the [SendConfigurationValidityReport]IPC operation. For more
// information, see [Create deployments]in the IoT Greengrass V2 Developer Guide.
//
// [SendConfigurationValidityReport]: https://docs.aws.amazon.com/greengrass/v2/developerguide/interprocess-communication.html#ipc-operation-sendconfigurationvalidityreport
// [SubscribeToValidateConfigurationUpdates]: https://docs.aws.amazon.com/greengrass/v2/developerguide/interprocess-communication.html#ipc-operation-subscribetovalidateconfigurationupdates
// [Create deployments]: https://docs.aws.amazon.com/greengrass/v2/developerguide/create-deployments.html
type DeploymentConfigurationValidationPolicy struct {
// The amount of time in seconds that a component can validate its configuration
// updates. If the validation time exceeds this timeout, then the deployment
// proceeds for the device.
//
// Default: 30
TimeoutInSeconds *int32
noSmithyDocumentSerde
}
// Contains information about an IoT job configuration.
type DeploymentIoTJobConfiguration struct {
// The stop configuration for the job. This configuration defines when and how to
// stop a job rollout.
AbortConfig *IoTJobAbortConfig
// The rollout configuration for the job. This configuration defines the rate at
// which the job rolls out to the fleet of target devices.
JobExecutionsRolloutConfig *IoTJobExecutionsRolloutConfig
// The timeout configuration for the job. This configuration defines the amount of
// time each device has to complete the job.
TimeoutConfig *IoTJobTimeoutConfig
noSmithyDocumentSerde
}
// Contains information about policies that define how a deployment updates
// components and handles failure.
type DeploymentPolicies struct {
// The component update policy for the configuration deployment. This policy
// defines when it's safe to deploy the configuration to devices.
ComponentUpdatePolicy *DeploymentComponentUpdatePolicy
// The configuration validation policy for the configuration deployment. This
// policy defines how long each component has to validate its configure updates.
ConfigurationValidationPolicy *DeploymentConfigurationValidationPolicy
// The failure handling policy for the configuration deployment. This policy
// defines what to do if the deployment fails.
//
// Default: ROLLBACK
FailureHandlingPolicy DeploymentFailureHandlingPolicy
noSmithyDocumentSerde
}
// Contains a request to disassociate a client device from a core device. The [BatchDisassociateClientDeviceWithCoreDevice]
// operation consumes a list of these requests.
//
// [BatchDisassociateClientDeviceWithCoreDevice]: https://docs.aws.amazon.com/greengrass/v2/APIReference/API_BatchDisassociateClientDeviceWithCoreDevice.html
type DisassociateClientDeviceFromCoreDeviceEntry struct {
// The name of the IoT thing that represents the client device to disassociate.
//
// This member is required.
ThingName *string
noSmithyDocumentSerde
}
// Contains an error that occurs from a request to disassociate a client device
// from a core device. The [BatchDisassociateClientDeviceWithCoreDevice]operation returns a list of these errors.
//
// [BatchDisassociateClientDeviceWithCoreDevice]: https://docs.aws.amazon.com/greengrass/v2/APIReference/API_BatchDisassociateClientDeviceWithCoreDevice.html
type DisassociateClientDeviceFromCoreDeviceErrorEntry struct {
// The error code for the request.
Code *string
// A message that provides additional information about the error.
Message *string
// The name of the IoT thing whose disassociate request failed.
ThingName *string
noSmithyDocumentSerde
}
// Contains information about a deployment job that IoT Greengrass sends to a
// Greengrass core device.
type EffectiveDeployment struct {
// The status of the deployment job on the Greengrass core device.
//
// - IN_PROGRESS – The deployment job is running.
//
// - QUEUED – The deployment job is in the job queue and waiting to run.
//
// - FAILED – The deployment failed. For more information, see the statusDetails
// field.
//
// - COMPLETED – The deployment to an IoT thing was completed successfully.
//
// - TIMED_OUT – The deployment didn't complete in the allotted time.
//
// - CANCELED – The deployment was canceled by the user.
//
// - REJECTED – The deployment was rejected. For more information, see the
// statusDetails field.
//
// - SUCCEEDED – The deployment to an IoT thing group was completed successfully.
//
// This member is required.
CoreDeviceExecutionStatus EffectiveDeploymentExecutionStatus
// The time at which the deployment was created, expressed in ISO 8601 format.
//
// This member is required.
CreationTimestamp *time.Time
// The ID of the deployment.
//
// This member is required.
DeploymentId *string
// The name of the deployment.
//
// This member is required.
DeploymentName *string
// The time at which the deployment job was last modified, expressed in ISO 8601
// format.
//
// This member is required.
ModifiedTimestamp *time.Time
// The [ARN] of the target IoT thing or thing group.
//
// [ARN]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
//
// This member is required.
TargetArn *string
// The description of the deployment job.
Description *string
// The [ARN] of the IoT job that applies the deployment to target devices.
//
// [ARN]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
IotJobArn *string
// The ID of the IoT job that applies the deployment to target devices.
IotJobId *string
// The reason code for the update, if the job was updated.
Reason *string
// The status details that explain why a deployment has an error. This response
// will be null if the deployment is in a success state.
StatusDetails *EffectiveDeploymentStatusDetails
noSmithyDocumentSerde
}
// Contains all error-related information for the deployment record. The status
// details will be null if the deployment is in a success state.
//
// Greengrass nucleus v2.8.0 or later is required to get an accurate errorStack
// and errorTypes response. This field will not be returned for earlier Greengrass
// nucleus versions.
type EffectiveDeploymentStatusDetails struct {
// Contains an ordered list of short error codes that range from the most generic
// error to the most specific one. The error codes describe the reason for failure
// whenever the coreDeviceExecutionStatus is in a failed state. The response will
// be an empty list if there is no error.
ErrorStack []string
// Contains tags which describe the error. You can use the error types to classify
// errors to assist with remediating the failure. The response will be an empty
// list if there is no error.
ErrorTypes []string
noSmithyDocumentSerde
}
// Contains information about a component on a Greengrass core device.
type InstalledComponent struct {
// The name of the component.
ComponentName *string
// The version of the component.
ComponentVersion *string
// Whether or not the component is a root component.
IsRoot bool
// The most recent deployment source that brought the component to the Greengrass
// core device. For a thing group deployment or thing deployment, the source will
// be the ID of the last deployment that contained the component. For local
// deployments it will be LOCAL .
//
// Any deployment will attempt to reinstall currently broken components on the
// device, which will update the last installation source.
LastInstallationSource *string
// The last time the Greengrass core device sent a message containing a
// component's state to the Amazon Web Services Cloud.
//
// A component does not need to see a state change for this field to update.
LastReportedTimestamp *time.Time
// The status of how current the data is.
//
// This response is based off of component state changes. The status reflects
// component disruptions and deployments. If a component only sees a configuration
// update during a deployment, it might not undergo a state change and this status
// would not be updated.
LastStatusChangeTimestamp *time.Time
// The lifecycle state of the component.
LifecycleState InstalledComponentLifecycleState
// A detailed response about the lifecycle state of the component that explains
// the reason why a component has an error or is broken.
LifecycleStateDetails *string
// The status codes that indicate the reason for failure whenever the
// lifecycleState has an error or is in a broken state.
//
// Greengrass nucleus v2.8.0 or later is required to get an accurate
// lifecycleStatusCodes response. This response can be inaccurate in earlier
// Greengrass nucleus versions.
LifecycleStatusCodes []string
noSmithyDocumentSerde
}
// Contains a list of criteria that define when and how to cancel a configuration
// deployment.
type IoTJobAbortConfig struct {
// The list of criteria that define when and how to cancel the configuration
// deployment.
//
// This member is required.
CriteriaList []IoTJobAbortCriteria
noSmithyDocumentSerde
}
// Contains criteria that define when and how to cancel a job.
//
// The deployment stops if the following conditions are true:
//
// - The number of things that receive the deployment exceeds the
// minNumberOfExecutedThings .
//
// - The percentage of failures with type failureType exceeds the
// thresholdPercentage .
type IoTJobAbortCriteria struct {
// The action to perform when the criteria are met.
//
// This member is required.
Action IoTJobAbortAction
// The type of job deployment failure that can cancel a job.
//
// This member is required.
FailureType IoTJobExecutionFailureType
// The minimum number of things that receive the configuration before the job can
// cancel.
//
// This member is required.
MinNumberOfExecutedThings *int32
// The minimum percentage of failureType failures that occur before the job can
// cancel.
//
// This parameter supports up to two digits after the decimal (for example, you
// can specify 10.9 or 10.99 , but not 10.999 ).
//
// This member is required.
ThresholdPercentage float64
noSmithyDocumentSerde
}
// Contains information about the rollout configuration for a job. This
// configuration defines the rate at which the job deploys a configuration to a
// fleet of target devices.
type IoTJobExecutionsRolloutConfig struct {
// The exponential rate to increase the job rollout rate.
ExponentialRate *IoTJobExponentialRolloutRate
// The maximum number of devices that receive a pending job notification, per
// minute.
MaximumPerMinute *int32
noSmithyDocumentSerde
}
// Contains information about an exponential rollout rate for a configuration
// deployment job.
type IoTJobExponentialRolloutRate struct {
// The minimum number of devices that receive a pending job notification, per
// minute, when the job starts. This parameter defines the initial rollout rate of
// the job.
//
// This member is required.
BaseRatePerMinute *int32
// The exponential factor to increase the rollout rate for the job.
//
// This parameter supports up to one digit after the decimal (for example, you can
// specify 1.5 , but not 1.55 ).
//
// This member is required.
IncrementFactor *float64
// The criteria to increase the rollout rate for the job.
//
// This member is required.
RateIncreaseCriteria *IoTJobRateIncreaseCriteria
noSmithyDocumentSerde
}
// Contains information about criteria to meet before a job increases its rollout
// rate. Specify either numberOfNotifiedThings or numberOfSucceededThings .
type IoTJobRateIncreaseCriteria struct {
// The number of devices to receive the job notification before the rollout rate
// increases.
NumberOfNotifiedThings *int32
// The number of devices to successfully run the configuration job before the
// rollout rate increases.
NumberOfSucceededThings *int32
noSmithyDocumentSerde
}
// Contains information about the timeout configuration for a job.
type IoTJobTimeoutConfig struct {
// The amount of time, in minutes, that devices have to complete the job. The
// timer starts when the job status is set to IN_PROGRESS . If the job status
// doesn't change to a terminal state before the time expires, then the job status
// is set to TIMED_OUT .
//
// The timeout interval must be between 1 minute and 7 days (10080 minutes).
InProgressTimeoutInMinutes *int64
noSmithyDocumentSerde
}
// Contains information about a container in which Lambda functions run on
// Greengrass core devices.
type LambdaContainerParams struct {
// The list of system devices that the container can access.
Devices []LambdaDeviceMount
// The memory size of the container, expressed in kilobytes.
//
// Default: 16384 (16 MB)
MemorySizeInKB *int32
// Whether or not the container can read information from the device's /sys folder.
//
// Default: false
MountROSysfs *bool
// The list of volumes that the container can access.
Volumes []LambdaVolumeMount
noSmithyDocumentSerde
}
// Contains information about a device that Linux processes in a container can
// access.
type LambdaDeviceMount struct {
// The mount path for the device in the file system.
//
// This member is required.
Path *string
// Whether or not to add the component's system user as an owner of the device.
//
// Default: false
AddGroupOwner *bool
// The permission to access the device: read/only ( ro ) or read/write ( rw ).
//
// Default: ro
Permission LambdaFilesystemPermission
noSmithyDocumentSerde
}
// Contains information about an event source for an Lambda function. The event
// source defines the topics on which this Lambda function subscribes to receive
// messages that run the function.
type LambdaEventSource struct {
// The topic to which to subscribe to receive event messages.
//
// This member is required.
Topic *string
// The type of event source. Choose from the following options:
//
// - PUB_SUB – Subscribe to local publish/subscribe messages. This event source
// type doesn't support MQTT wildcards ( + and # ) in the event source topic.
//
// - IOT_CORE – Subscribe to Amazon Web Services IoT Core MQTT messages. This
// event source type supports MQTT wildcards ( + and # ) in the event source
// topic.
//
// This member is required.
Type LambdaEventSourceType
noSmithyDocumentSerde
}
// Contains parameters for a Lambda function that runs on IoT Greengrass.
type LambdaExecutionParameters struct {
// The map of environment variables that are available to the Lambda function when
// it runs.
EnvironmentVariables map[string]string
// The list of event sources to which to subscribe to receive work messages. The
// Lambda function runs when it receives a message from an event source. You can
// subscribe this function to local publish/subscribe messages and Amazon Web
// Services IoT Core MQTT messages.
EventSources []LambdaEventSource
// The list of arguments to pass to the Lambda function when it runs.
ExecArgs []string
// The encoding type that the Lambda function supports.
//
// Default: json
InputPayloadEncodingType LambdaInputPayloadEncodingType
// The parameters for the Linux process that contains the Lambda function.
LinuxProcessParams *LambdaLinuxProcessParams
// The maximum amount of time in seconds that a non-pinned Lambda function can
// idle before the IoT Greengrass Core software stops its process.
MaxIdleTimeInSeconds *int32
// The maximum number of instances that a non-pinned Lambda function can run at
// the same time.
MaxInstancesCount *int32
// The maximum size of the message queue for the Lambda function component. The
// IoT Greengrass core stores messages in a FIFO (first-in-first-out) queue until
// it can run the Lambda function to consume each message.
MaxQueueSize *int32
// Whether or not the Lambda function is pinned, or long-lived.
//
// - A pinned Lambda function starts when IoT Greengrass starts and keeps
// running in its own container.
//
// - A non-pinned Lambda function starts only when it receives a work item and
// exists after it idles for maxIdleTimeInSeconds . If the function has multiple
// work items, the IoT Greengrass Core software creates multiple instances of the
// function.
//
// Default: true
Pinned *bool
// The interval in seconds at which a pinned (also known as long-lived) Lambda
// function component sends status updates to the Lambda manager component.
StatusTimeoutInSeconds *int32
// The maximum amount of time in seconds that the Lambda function can process a
// work item.
TimeoutInSeconds *int32
noSmithyDocumentSerde
}
// Contains information about an Lambda function to import to create a component.
type LambdaFunctionRecipeSource struct {
// The [ARN] of the Lambda function. The ARN must include the version of the function
// to import. You can't use version aliases like $LATEST .
//
// [ARN]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
//
// This member is required.
LambdaArn *string
// The component versions on which this Lambda function component depends.
ComponentDependencies map[string]ComponentDependencyRequirement
// The system and runtime parameters for the Lambda function as it runs on the
// Greengrass core device.
ComponentLambdaParameters *LambdaExecutionParameters
// The name of the component.
//
// Defaults to the name of the Lambda function.
ComponentName *string
// The platforms that the component version supports.
ComponentPlatforms []ComponentPlatform
// The version of the component.
//
// Defaults to the version of the Lambda function as a semantic version. For
// example, if your function version is 3 , the component version becomes 3.0.0 .
ComponentVersion *string
noSmithyDocumentSerde
}
// Contains parameters for a Linux process that contains an Lambda function.
type LambdaLinuxProcessParams struct {
// The parameters for the container in which the Lambda function runs.
ContainerParams *LambdaContainerParams
// The isolation mode for the process that contains the Lambda function. The
// process can run in an isolated runtime environment inside the IoT Greengrass
// container, or as a regular process outside any container.
//
// Default: GreengrassContainer
IsolationMode LambdaIsolationMode
noSmithyDocumentSerde
}
// Contains information about a volume that Linux processes in a container can
// access. When you define a volume, the IoT Greengrass Core software mounts the
// source files to the destination inside the container.
type LambdaVolumeMount struct {
// The path to the logical volume in the file system.
//
// This member is required.
DestinationPath *string
// The path to the physical volume in the file system.
//
// This member is required.
SourcePath *string
// Whether or not to add the IoT Greengrass user group as an owner of the volume.
//
// Default: false
AddGroupOwner *bool
// The permission to access the volume: read/only ( ro ) or read/write ( rw ).
//
// Default: ro
Permission LambdaFilesystemPermission
noSmithyDocumentSerde
}
// Contains information about a component version that is compatible to run on a
// Greengrass core device.
type ResolvedComponentVersion struct {
// The [ARN] of the component version.
//
// [ARN]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
Arn *string
// The name of the component.
ComponentName *string
// The version of the component.
ComponentVersion *string
// A message that communicates details about the vendor guidance state of the
// component version. This message communicates why a component version is
// discontinued or deleted.
Message *string
// The recipe of the component version.
Recipe []byte
// The vendor guidance state for the component version. This state indicates
// whether the component version has any issues that you should consider before you
// deploy it. The vendor guidance state can be:
//
// - ACTIVE – This component version is available and recommended for use.
//
// - DISCONTINUED – This component version has been discontinued by its
// publisher. You can deploy this component version, but we recommend that you use
// a different version of this component.
//
// - DELETED – This component version has been deleted by its publisher, so you
// can't deploy it. If you have any existing deployments that specify this
// component version, those deployments will fail.
VendorGuidance VendorGuidance
noSmithyDocumentSerde
}
// Contains information about system resource limits that the IoT Greengrass Core
// software applies to a component's processes. For more information, see [Configure system resource limits for components].
//
// [Configure system resource limits for components]: https://docs.aws.amazon.com/greengrass/v2/developerguide/configure-greengrass-core-v2.html#configure-component-system-resource-limits
type SystemResourceLimits struct {
// The maximum amount of CPU time that a component's processes can use on the core
// device. A core device's total CPU time is equivalent to the device's number of
// CPU cores. For example, on a core device with 4 CPU cores, you can set this
// value to 2 to limit the component's processes to 50 percent usage of each CPU
// core. On a device with 1 CPU core, you can set this value to 0.25 to limit the
// component's processes to 25 percent usage of the CPU. If you set this value to a
// number greater than the number of CPU cores, the IoT Greengrass Core software
// doesn't limit the component's CPU usage.
Cpus float64
// The maximum amount of RAM, expressed in kilobytes, that a component's processes
// can use on the core device.
Memory int64
noSmithyDocumentSerde
}
// Contains information about a validation exception field.
type ValidationExceptionField struct {
// The message of the exception field.
//
// This member is required.
Message *string
// The name of the exception field.
//
// This member is required.
Name *string
noSmithyDocumentSerde
}
type noSmithyDocumentSerde = smithydocument.NoSerde
|