1// Code generated by smithy-go-codegen DO NOT EDIT. 2 3package types 4 5// Information about a bulk deployment. You cannot start a new bulk deployment 6// while another one is still running or in a non-terminal state. 7type BulkDeployment struct { 8 9 // The ARN of the bulk deployment. 10 BulkDeploymentArn *string 11 12 // The ID of the bulk deployment. 13 BulkDeploymentId *string 14 15 // The time, in ISO format, when the deployment was created. 16 CreatedAt *string 17} 18 19// Relevant metrics on input records processed during bulk deployment. 20type BulkDeploymentMetrics struct { 21 22 // The total number of records that returned a non-retryable error. For example, 23 // this can occur if a group record from the input file uses an invalid format or 24 // specifies a nonexistent group version, or if the execution role doesn't grant 25 // permission to deploy a group or group version. 26 InvalidInputRecords int32 27 28 // The total number of group records from the input file that have been processed 29 // so far, or attempted. 30 RecordsProcessed int32 31 32 // The total number of deployment attempts that returned a retryable error. For 33 // example, a retry is triggered if the attempt to deploy a group returns a 34 // throttling error. ''StartBulkDeployment'' retries a group deployment up to five 35 // times. 36 RetryAttempts int32 37} 38 39// Information about an individual group deployment in a bulk deployment operation. 40type BulkDeploymentResult struct { 41 42 // The time, in ISO format, when the deployment was created. 43 CreatedAt *string 44 45 // The ARN of the group deployment. 46 DeploymentArn *string 47 48 // The ID of the group deployment. 49 DeploymentId *string 50 51 // The current status of the group deployment: ''InProgress'', ''Building'', 52 // ''Success'', or ''Failure''. 53 DeploymentStatus *string 54 55 // The type of the deployment. 56 DeploymentType DeploymentType 57 58 // Details about the error. 59 ErrorDetails []ErrorDetail 60 61 // The error message for a failed deployment 62 ErrorMessage *string 63 64 // The ARN of the Greengrass group. 65 GroupArn *string 66} 67 68// Information about a Greengrass core's connectivity. 69type ConnectivityInfo struct { 70 71 // The endpoint for the Greengrass core. Can be an IP address or DNS. 72 HostAddress *string 73 74 // The ID of the connectivity information. 75 Id *string 76 77 // Metadata for this endpoint. 78 Metadata *string 79 80 // The port of the Greengrass core. Usually 8883. 81 PortNumber int32 82} 83 84// Information about a connector. Connectors run on the Greengrass core and contain 85// built-in integration with local infrastructure, device protocols, AWS, and other 86// cloud services. 87type Connector struct { 88 89 // The ARN of the connector. 90 // 91 // This member is required. 92 ConnectorArn *string 93 94 // A descriptive or arbitrary ID for the connector. This value must be unique 95 // within the connector definition version. Max length is 128 characters with 96 // pattern [a-zA-Z0-9:_-]+. 97 // 98 // This member is required. 99 Id *string 100 101 // The parameters or configuration that the connector uses. 102 Parameters map[string]string 103} 104 105// Information about the connector definition version, which is a container for 106// connectors. 107type ConnectorDefinitionVersion struct { 108 109 // A list of references to connectors in this version, with their corresponding 110 // configuration settings. 111 Connectors []Connector 112} 113 114// Information about a core. 115type Core struct { 116 117 // The ARN of the certificate associated with the core. 118 // 119 // This member is required. 120 CertificateArn *string 121 122 // A descriptive or arbitrary ID for the core. This value must be unique within the 123 // core definition version. Max length is 128 characters with pattern 124 // ''[a-zA-Z0-9:_-]+''. 125 // 126 // This member is required. 127 Id *string 128 129 // The ARN of the thing which is the core. 130 // 131 // This member is required. 132 ThingArn *string 133 134 // If true, the core's local shadow is automatically synced with the cloud. 135 SyncShadow bool 136} 137 138// Information about a core definition version. 139type CoreDefinitionVersion struct { 140 141 // A list of cores in the core definition version. 142 Cores []Core 143} 144 145// Information about a definition. 146type DefinitionInformation struct { 147 148 // The ARN of the definition. 149 Arn *string 150 151 // The time, in milliseconds since the epoch, when the definition was created. 152 CreationTimestamp *string 153 154 // The ID of the definition. 155 Id *string 156 157 // The time, in milliseconds since the epoch, when the definition was last updated. 158 LastUpdatedTimestamp *string 159 160 // The ID of the latest version associated with the definition. 161 LatestVersion *string 162 163 // The ARN of the latest version associated with the definition. 164 LatestVersionArn *string 165 166 // The name of the definition. 167 Name *string 168 169 // Tag(s) attached to the resource arn. 170 Tags map[string]string 171} 172 173// Information about a deployment. 174type Deployment struct { 175 176 // The time, in milliseconds since the epoch, when the deployment was created. 177 CreatedAt *string 178 179 // The ARN of the deployment. 180 DeploymentArn *string 181 182 // The ID of the deployment. 183 DeploymentId *string 184 185 // The type of the deployment. 186 DeploymentType DeploymentType 187 188 // The ARN of the group for this deployment. 189 GroupArn *string 190} 191 192// Information about a device. 193type Device struct { 194 195 // The ARN of the certificate associated with the device. 196 // 197 // This member is required. 198 CertificateArn *string 199 200 // A descriptive or arbitrary ID for the device. This value must be unique within 201 // the device definition version. Max length is 128 characters with pattern 202 // ''[a-zA-Z0-9:_-]+''. 203 // 204 // This member is required. 205 Id *string 206 207 // The thing ARN of the device. 208 // 209 // This member is required. 210 ThingArn *string 211 212 // If true, the device's local shadow will be automatically synced with the cloud. 213 SyncShadow bool 214} 215 216// Information about a device definition version. 217type DeviceDefinitionVersion struct { 218 219 // A list of devices in the definition version. 220 Devices []Device 221} 222 223// Details about the error. 224type ErrorDetail struct { 225 226 // A detailed error code. 227 DetailedErrorCode *string 228 229 // A detailed error message. 230 DetailedErrorMessage *string 231} 232 233// Information about a Lambda function. 234type Function struct { 235 236 // A descriptive or arbitrary ID for the function. This value must be unique within 237 // the function definition version. Max length is 128 characters with pattern 238 // ''[a-zA-Z0-9:_-]+''. 239 // 240 // This member is required. 241 Id *string 242 243 // The ARN of the Lambda function. 244 FunctionArn *string 245 246 // The configuration of the Lambda function. 247 FunctionConfiguration *FunctionConfiguration 248} 249 250// The configuration of the Lambda function. 251type FunctionConfiguration struct { 252 253 // The expected encoding type of the input payload for the function. The default is 254 // ''json''. 255 EncodingType EncodingType 256 257 // The environment configuration of the function. 258 Environment *FunctionConfigurationEnvironment 259 260 // The execution arguments. 261 ExecArgs *string 262 263 // The name of the function executable. 264 Executable *string 265 266 // The memory size, in KB, which the function requires. This setting is not 267 // applicable and should be cleared when you run the Lambda function without 268 // containerization. 269 MemorySize int32 270 271 // True if the function is pinned. Pinned means the function is long-lived and 272 // starts when the core starts. 273 Pinned bool 274 275 // The allowed function execution time, after which Lambda should terminate the 276 // function. This timeout still applies to pinned Lambda functions for each 277 // request. 278 Timeout int32 279} 280 281// The environment configuration of the function. 282type FunctionConfigurationEnvironment struct { 283 284 // If true, the Lambda function is allowed to access the host's /sys folder. Use 285 // this when the Lambda function needs to read device information from /sys. This 286 // setting applies only when you run the Lambda function in a Greengrass container. 287 AccessSysfs bool 288 289 // Configuration related to executing the Lambda function 290 Execution *FunctionExecutionConfig 291 292 // A list of the resources, with their permissions, to which the Lambda function 293 // will be granted access. A Lambda function can have at most 10 resources. 294 // ResourceAccessPolicies apply only when you run the Lambda function in a 295 // Greengrass container. 296 ResourceAccessPolicies []ResourceAccessPolicy 297 298 // Environment variables for the Lambda function's configuration. 299 Variables map[string]string 300} 301 302// The default configuration that applies to all Lambda functions in the group. 303// Individual Lambda functions can override these settings. 304type FunctionDefaultConfig struct { 305 306 // Configuration information that specifies how a Lambda function runs. 307 Execution *FunctionDefaultExecutionConfig 308} 309 310// Configuration information that specifies how a Lambda function runs. 311type FunctionDefaultExecutionConfig struct { 312 313 // Specifies whether the Lambda function runs in a Greengrass container (default) 314 // or without containerization. Unless your scenario requires that you run without 315 // containerization, we recommend that you run in a Greengrass container. Omit this 316 // value to run the Lambda function with the default containerization for the 317 // group. 318 IsolationMode FunctionIsolationMode 319 320 // Specifies the user and group whose permissions are used when running the Lambda 321 // function. You can specify one or both values to override the default values. We 322 // recommend that you avoid running as root unless absolutely necessary to minimize 323 // the risk of unintended changes or malicious attacks. To run as root, you must 324 // set ''IsolationMode'' to ''NoContainer'' and update config.json in 325 // ''greengrass-root/config'' to set ''allowFunctionsToRunAsRoot'' to ''yes''. 326 RunAs *FunctionRunAsConfig 327} 328 329// Information about a function definition version. 330type FunctionDefinitionVersion struct { 331 332 // The default configuration that applies to all Lambda functions in this function 333 // definition version. Individual Lambda functions can override these settings. 334 DefaultConfig *FunctionDefaultConfig 335 336 // A list of Lambda functions in this function definition version. 337 Functions []Function 338} 339 340// Configuration information that specifies how a Lambda function runs. 341type FunctionExecutionConfig struct { 342 343 // Specifies whether the Lambda function runs in a Greengrass container (default) 344 // or without containerization. Unless your scenario requires that you run without 345 // containerization, we recommend that you run in a Greengrass container. Omit this 346 // value to run the Lambda function with the default containerization for the 347 // group. 348 IsolationMode FunctionIsolationMode 349 350 // Specifies the user and group whose permissions are used when running the Lambda 351 // function. You can specify one or both values to override the default values. We 352 // recommend that you avoid running as root unless absolutely necessary to minimize 353 // the risk of unintended changes or malicious attacks. To run as root, you must 354 // set ''IsolationMode'' to ''NoContainer'' and update config.json in 355 // ''greengrass-root/config'' to set ''allowFunctionsToRunAsRoot'' to ''yes''. 356 RunAs *FunctionRunAsConfig 357} 358 359// Specifies the user and group whose permissions are used when running the Lambda 360// function. You can specify one or both values to override the default values. We 361// recommend that you avoid running as root unless absolutely necessary to minimize 362// the risk of unintended changes or malicious attacks. To run as root, you must 363// set ''IsolationMode'' to ''NoContainer'' and update config.json in 364// ''greengrass-root/config'' to set ''allowFunctionsToRunAsRoot'' to ''yes''. 365type FunctionRunAsConfig struct { 366 367 // The group ID whose permissions are used to run a Lambda function. 368 Gid int32 369 370 // The user ID whose permissions are used to run a Lambda function. 371 Uid int32 372} 373 374// Information about a certificate authority for a group. 375type GroupCertificateAuthorityProperties struct { 376 377 // The ARN of the certificate authority for the group. 378 GroupCertificateAuthorityArn *string 379 380 // The ID of the certificate authority for the group. 381 GroupCertificateAuthorityId *string 382} 383 384// Information about a group. 385type GroupInformation struct { 386 387 // The ARN of the group. 388 Arn *string 389 390 // The time, in milliseconds since the epoch, when the group was created. 391 CreationTimestamp *string 392 393 // The ID of the group. 394 Id *string 395 396 // The time, in milliseconds since the epoch, when the group was last updated. 397 LastUpdatedTimestamp *string 398 399 // The ID of the latest version associated with the group. 400 LatestVersion *string 401 402 // The ARN of the latest version associated with the group. 403 LatestVersionArn *string 404 405 // The name of the group. 406 Name *string 407} 408 409// Group owner related settings for local resources. 410type GroupOwnerSetting struct { 411 412 // If true, AWS IoT Greengrass automatically adds the specified Linux OS group 413 // owner of the resource to the Lambda process privileges. Thus the Lambda process 414 // will have the file access permissions of the added Linux group. 415 AutoAddGroupOwner bool 416 417 // The name of the Linux OS group whose privileges will be added to the Lambda 418 // process. This field is optional. 419 GroupOwner *string 420} 421 422// Information about a group version. 423type GroupVersion struct { 424 425 // The ARN of the connector definition version for this group. 426 ConnectorDefinitionVersionArn *string 427 428 // The ARN of the core definition version for this group. 429 CoreDefinitionVersionArn *string 430 431 // The ARN of the device definition version for this group. 432 DeviceDefinitionVersionArn *string 433 434 // The ARN of the function definition version for this group. 435 FunctionDefinitionVersionArn *string 436 437 // The ARN of the logger definition version for this group. 438 LoggerDefinitionVersionArn *string 439 440 // The ARN of the resource definition version for this group. 441 ResourceDefinitionVersionArn *string 442 443 // The ARN of the subscription definition version for this group. 444 SubscriptionDefinitionVersionArn *string 445} 446 447// Attributes that define a local device resource. 448type LocalDeviceResourceData struct { 449 450 // Group/owner related settings for local resources. 451 GroupOwnerSetting *GroupOwnerSetting 452 453 // The local absolute path of the device resource. The source path for a device 454 // resource can refer only to a character device or block device under ''/dev''. 455 SourcePath *string 456} 457 458// Attributes that define a local volume resource. 459type LocalVolumeResourceData struct { 460 461 // The absolute local path of the resource inside the Lambda environment. 462 DestinationPath *string 463 464 // Allows you to configure additional group privileges for the Lambda process. This 465 // field is optional. 466 GroupOwnerSetting *GroupOwnerSetting 467 468 // The local absolute path of the volume resource on the host. The source path for 469 // a volume resource type cannot start with ''/sys''. 470 SourcePath *string 471} 472 473// Information about a logger 474type Logger struct { 475 476 // The component that will be subject to logging. 477 // 478 // This member is required. 479 Component LoggerComponent 480 481 // A descriptive or arbitrary ID for the logger. This value must be unique within 482 // the logger definition version. Max length is 128 characters with pattern 483 // ''[a-zA-Z0-9:_-]+''. 484 // 485 // This member is required. 486 Id *string 487 488 // The level of the logs. 489 // 490 // This member is required. 491 Level LoggerLevel 492 493 // The type of log output which will be used. 494 // 495 // This member is required. 496 Type LoggerType 497 498 // The amount of file space, in KB, to use if the local file system is used for 499 // logging purposes. 500 Space int32 501} 502 503// Information about a logger definition version. 504type LoggerDefinitionVersion struct { 505 506 // A list of loggers. 507 Loggers []Logger 508} 509 510// Information about a resource. 511type Resource struct { 512 513 // The resource ID, used to refer to a resource in the Lambda function 514 // configuration. Max length is 128 characters with pattern ''[a-zA-Z0-9:_-]+''. 515 // This must be unique within a Greengrass group. 516 // 517 // This member is required. 518 Id *string 519 520 // The descriptive resource name, which is displayed on the AWS IoT Greengrass 521 // console. Max length 128 characters with pattern ''[a-zA-Z0-9:_-]+''. This must 522 // be unique within a Greengrass group. 523 // 524 // This member is required. 525 Name *string 526 527 // A container of data for all resource types. 528 // 529 // This member is required. 530 ResourceDataContainer *ResourceDataContainer 531} 532 533// A policy used by the function to access a resource. 534type ResourceAccessPolicy struct { 535 536 // The ID of the resource. (This ID is assigned to the resource when you create the 537 // resource definiton.) 538 // 539 // This member is required. 540 ResourceId *string 541 542 // The permissions that the Lambda function has to the resource. Can be one of 543 // ''rw'' (read/write) or ''ro'' (read-only). 544 Permission Permission 545} 546 547// A container for resource data. The container takes only one of the following 548// supported resource data types: ''LocalDeviceResourceData'', 549// ''LocalVolumeResourceData'', ''SageMakerMachineLearningModelResourceData'', 550// ''S3MachineLearningModelResourceData'', ''SecretsManagerSecretResourceData''. 551type ResourceDataContainer struct { 552 553 // Attributes that define the local device resource. 554 LocalDeviceResourceData *LocalDeviceResourceData 555 556 // Attributes that define the local volume resource. 557 LocalVolumeResourceData *LocalVolumeResourceData 558 559 // Attributes that define an Amazon S3 machine learning resource. 560 S3MachineLearningModelResourceData *S3MachineLearningModelResourceData 561 562 // Attributes that define an Amazon SageMaker machine learning resource. 563 SageMakerMachineLearningModelResourceData *SageMakerMachineLearningModelResourceData 564 565 // Attributes that define a secret resource, which references a secret from AWS 566 // Secrets Manager. 567 SecretsManagerSecretResourceData *SecretsManagerSecretResourceData 568} 569 570// Information about a resource definition version. 571type ResourceDefinitionVersion struct { 572 573 // A list of resources. 574 Resources []Resource 575} 576 577// The owner setting for downloaded machine learning resources. 578type ResourceDownloadOwnerSetting struct { 579 580 // The group owner of the resource. This is the name of an existing Linux OS group 581 // on the system or a GID. The group's permissions are added to the Lambda process. 582 // 583 // This member is required. 584 GroupOwner *string 585 586 // The permissions that the group owner has to the resource. Valid values are 587 // ''rw'' (read/write) or ''ro'' (read-only). 588 // 589 // This member is required. 590 GroupPermission Permission 591} 592 593// Runtime configuration for a thing. 594type RuntimeConfiguration struct { 595 596 // Configuration for telemetry service. 597 TelemetryConfiguration *TelemetryConfiguration 598} 599 600// Attributes that define an Amazon S3 machine learning resource. 601type S3MachineLearningModelResourceData struct { 602 603 // The absolute local path of the resource inside the Lambda environment. 604 DestinationPath *string 605 606 // The owner setting for downloaded machine learning resources. 607 OwnerSetting *ResourceDownloadOwnerSetting 608 609 // The URI of the source model in an S3 bucket. The model package must be in tar.gz 610 // or .zip format. 611 S3Uri *string 612} 613 614// Attributes that define an Amazon SageMaker machine learning resource. 615type SageMakerMachineLearningModelResourceData struct { 616 617 // The absolute local path of the resource inside the Lambda environment. 618 DestinationPath *string 619 620 // The owner setting for downloaded machine learning resources. 621 OwnerSetting *ResourceDownloadOwnerSetting 622 623 // The ARN of the Amazon SageMaker training job that represents the source model. 624 SageMakerJobArn *string 625} 626 627// Attributes that define a secret resource, which references a secret from AWS 628// Secrets Manager. AWS IoT Greengrass stores a local, encrypted copy of the secret 629// on the Greengrass core, where it can be securely accessed by connectors and 630// Lambda functions. 631type SecretsManagerSecretResourceData struct { 632 633 // The ARN of the Secrets Manager secret to make available on the core. The value 634 // of the secret's latest version (represented by the ''AWSCURRENT'' staging label) 635 // is included by default. 636 ARN *string 637 638 // Optional. The staging labels whose values you want to make available on the 639 // core, in addition to ''AWSCURRENT''. 640 AdditionalStagingLabelsToDownload []string 641} 642 643// Information about a subscription. 644type Subscription struct { 645 646 // A descriptive or arbitrary ID for the subscription. This value must be unique 647 // within the subscription definition version. Max length is 128 characters with 648 // pattern ''[a-zA-Z0-9:_-]+''. 649 // 650 // This member is required. 651 Id *string 652 653 // The source of the subscription. Can be a thing ARN, a Lambda function ARN, a 654 // connector ARN, 'cloud' (which represents the AWS IoT cloud), or 655 // 'GGShadowService'. 656 // 657 // This member is required. 658 Source *string 659 660 // The MQTT topic used to route the message. 661 // 662 // This member is required. 663 Subject *string 664 665 // Where the message is sent to. Can be a thing ARN, a Lambda function ARN, a 666 // connector ARN, 'cloud' (which represents the AWS IoT cloud), or 667 // 'GGShadowService'. 668 // 669 // This member is required. 670 Target *string 671} 672 673// Information about a subscription definition version. 674type SubscriptionDefinitionVersion struct { 675 676 // A list of subscriptions. 677 Subscriptions []Subscription 678} 679 680// Configuration settings for running telemetry. 681type TelemetryConfiguration struct { 682 683 // Configure telemetry to be on or off. 684 // 685 // This member is required. 686 Telemetry Telemetry 687 688 // Synchronization status of the device reported configuration with the desired 689 // configuration. 690 ConfigurationSyncStatus ConfigurationSyncStatus 691} 692 693// Configuration settings for running telemetry. 694type TelemetryConfigurationUpdate struct { 695 696 // Configure telemetry to be on or off. 697 // 698 // This member is required. 699 Telemetry Telemetry 700} 701 702// Information about a version. 703type VersionInformation struct { 704 705 // The ARN of the version. 706 Arn *string 707 708 // The time, in milliseconds since the epoch, when the version was created. 709 CreationTimestamp *string 710 711 // The ID of the parent definition that the version is associated with. 712 Id *string 713 714 // The ID of the version. 715 Version *string 716} 717