@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api AWS Greengrass
@version 2017-06-07
@auth AWS SigV4
@endpoints 92
@hint download_for_search
@toc greengrass(89), tags(3)

@group greengrass
@endpoint PUT /greengrass/groups/{GroupId}/role
@required {GroupId: str, RoleArn: str}
@returns(200) {AssociatedAt: str?}

@endpoint PUT /greengrass/servicerole
@required {RoleArn: str}
@returns(200) {AssociatedAt: str?}

@endpoint POST /greengrass/definition/connectors
@optional {X-Amzn-Client-Token: str, InitialVersion: ConnectorDefinitionVersion, Name: str, tags: map<str,str>}
@returns(200) {Arn: str?, CreationTimestamp: str?, Id: str?, LastUpdatedTimestamp: str?, LatestVersion: str?, LatestVersionArn: str?, Name: str?}

@endpoint POST /greengrass/definition/connectors/{ConnectorDefinitionId}/versions
@required {ConnectorDefinitionId: str}
@optional {X-Amzn-Client-Token: str, Connectors: [Connector]}
@returns(200) {Arn: str?, CreationTimestamp: str?, Id: str?, Version: str?}

@endpoint POST /greengrass/definition/cores
@optional {X-Amzn-Client-Token: str, InitialVersion: CoreDefinitionVersion, Name: str, tags: map<str,str>}
@returns(200) {Arn: str?, CreationTimestamp: str?, Id: str?, LastUpdatedTimestamp: str?, LatestVersion: str?, LatestVersionArn: str?, Name: str?}

@endpoint POST /greengrass/definition/cores/{CoreDefinitionId}/versions
@required {CoreDefinitionId: str}
@optional {X-Amzn-Client-Token: str, Cores: [Core]}
@returns(200) {Arn: str?, CreationTimestamp: str?, Id: str?, Version: str?}

@endpoint POST /greengrass/groups/{GroupId}/deployments
@required {GroupId: str, DeploymentType: str}
@optional {X-Amzn-Client-Token: str, DeploymentId: str, GroupVersionId: str}
@returns(200) {DeploymentArn: str?, DeploymentId: str?}

@endpoint POST /greengrass/definition/devices
@optional {X-Amzn-Client-Token: str, InitialVersion: DeviceDefinitionVersion, Name: str, tags: map<str,str>}
@returns(200) {Arn: str?, CreationTimestamp: str?, Id: str?, LastUpdatedTimestamp: str?, LatestVersion: str?, LatestVersionArn: str?, Name: str?}

@endpoint POST /greengrass/definition/devices/{DeviceDefinitionId}/versions
@required {DeviceDefinitionId: str}
@optional {X-Amzn-Client-Token: str, Devices: [Device]}
@returns(200) {Arn: str?, CreationTimestamp: str?, Id: str?, Version: str?}

@endpoint POST /greengrass/definition/functions
@optional {X-Amzn-Client-Token: str, InitialVersion: FunctionDefinitionVersion, Name: str, tags: map<str,str>}
@returns(200) {Arn: str?, CreationTimestamp: str?, Id: str?, LastUpdatedTimestamp: str?, LatestVersion: str?, LatestVersionArn: str?, Name: str?}

@endpoint POST /greengrass/definition/functions/{FunctionDefinitionId}/versions
@required {FunctionDefinitionId: str}
@optional {X-Amzn-Client-Token: str, DefaultConfig: FunctionDefaultConfig, Functions: [Function]}
@returns(200) {Arn: str?, CreationTimestamp: str?, Id: str?, Version: str?}

@endpoint POST /greengrass/groups
@required {Name: str}
@optional {X-Amzn-Client-Token: str, InitialVersion: GroupVersion, tags: map<str,str>}
@returns(200) {Arn: str?, CreationTimestamp: str?, Id: str?, LastUpdatedTimestamp: str?, LatestVersion: str?, LatestVersionArn: str?, Name: str?}

@endpoint POST /greengrass/groups/{GroupId}/certificateauthorities
@required {GroupId: str}
@optional {X-Amzn-Client-Token: str}
@returns(200) {GroupCertificateAuthorityArn: str?}

@endpoint POST /greengrass/groups/{GroupId}/versions
@required {GroupId: str}
@optional {X-Amzn-Client-Token: str, ConnectorDefinitionVersionArn: str, CoreDefinitionVersionArn: str, DeviceDefinitionVersionArn: str, FunctionDefinitionVersionArn: str, LoggerDefinitionVersionArn: str, ResourceDefinitionVersionArn: str, SubscriptionDefinitionVersionArn: str}
@returns(200) {Arn: str?, CreationTimestamp: str?, Id: str?, Version: str?}

@endpoint POST /greengrass/definition/loggers
@optional {X-Amzn-Client-Token: str, InitialVersion: LoggerDefinitionVersion, Name: str, tags: map<str,str>}
@returns(200) {Arn: str?, CreationTimestamp: str?, Id: str?, LastUpdatedTimestamp: str?, LatestVersion: str?, LatestVersionArn: str?, Name: str?}

@endpoint POST /greengrass/definition/loggers/{LoggerDefinitionId}/versions
@required {LoggerDefinitionId: str}
@optional {X-Amzn-Client-Token: str, Loggers: [Logger]}
@returns(200) {Arn: str?, CreationTimestamp: str?, Id: str?, Version: str?}

@endpoint POST /greengrass/definition/resources
@optional {X-Amzn-Client-Token: str, InitialVersion: ResourceDefinitionVersion, Name: str, tags: map<str,str>}
@returns(200) {Arn: str?, CreationTimestamp: str?, Id: str?, LastUpdatedTimestamp: str?, LatestVersion: str?, LatestVersionArn: str?, Name: str?}

@endpoint POST /greengrass/definition/resources/{ResourceDefinitionId}/versions
@required {ResourceDefinitionId: str}
@optional {X-Amzn-Client-Token: str, Resources: [Resource]}
@returns(200) {Arn: str?, CreationTimestamp: str?, Id: str?, Version: str?}

@endpoint POST /greengrass/updates
@required {S3UrlSignerRole: str, SoftwareToUpdate: str, UpdateTargets: [str], UpdateTargetsArchitecture: str, UpdateTargetsOperatingSystem: str}
@optional {X-Amzn-Client-Token: str, UpdateAgentLogLevel: str}
@returns(200) {IotJobArn: str?, IotJobId: str?, PlatformSoftwareVersion: str?}

@endpoint POST /greengrass/definition/subscriptions
@optional {X-Amzn-Client-Token: str, InitialVersion: SubscriptionDefinitionVersion, Name: str, tags: map<str,str>}
@returns(200) {Arn: str?, CreationTimestamp: str?, Id: str?, LastUpdatedTimestamp: str?, LatestVersion: str?, LatestVersionArn: str?, Name: str?}

@endpoint POST /greengrass/definition/subscriptions/{SubscriptionDefinitionId}/versions
@required {SubscriptionDefinitionId: str}
@optional {X-Amzn-Client-Token: str, Subscriptions: [Subscription]}
@returns(200) {Arn: str?, CreationTimestamp: str?, Id: str?, Version: str?}

@endpoint DELETE /greengrass/definition/connectors/{ConnectorDefinitionId}
@required {ConnectorDefinitionId: str}

@endpoint DELETE /greengrass/definition/cores/{CoreDefinitionId}
@required {CoreDefinitionId: str}

@endpoint DELETE /greengrass/definition/devices/{DeviceDefinitionId}
@required {DeviceDefinitionId: str}

@endpoint DELETE /greengrass/definition/functions/{FunctionDefinitionId}
@required {FunctionDefinitionId: str}

@endpoint DELETE /greengrass/groups/{GroupId}
@required {GroupId: str}

@endpoint DELETE /greengrass/definition/loggers/{LoggerDefinitionId}
@required {LoggerDefinitionId: str}

@endpoint DELETE /greengrass/definition/resources/{ResourceDefinitionId}
@required {ResourceDefinitionId: str}

@endpoint DELETE /greengrass/definition/subscriptions/{SubscriptionDefinitionId}
@required {SubscriptionDefinitionId: str}

@endpoint DELETE /greengrass/groups/{GroupId}/role
@required {GroupId: str}
@returns(200) {DisassociatedAt: str?}

@endpoint DELETE /greengrass/servicerole
@returns(200) {DisassociatedAt: str?}

@endpoint GET /greengrass/groups/{GroupId}/role
@required {GroupId: str}
@returns(200) {AssociatedAt: str?, RoleArn: str?}

@endpoint GET /greengrass/bulk/deployments/{BulkDeploymentId}/status
@required {BulkDeploymentId: str}
@returns(200) {BulkDeploymentMetrics: BulkDeploymentMetrics?{InvalidInputRecords: int?, RecordsProcessed: int?, RetryAttempts: int?}, BulkDeploymentStatus: str?, CreatedAt: str?, ErrorDetails: [ErrorDetail]?, ErrorMessage: str?, tags: map<str,str>?}

@endpoint GET /greengrass/things/{ThingName}/connectivityInfo
@required {ThingName: str}
@returns(200) {ConnectivityInfo: [ConnectivityInfo]?, Message: str?}

@endpoint GET /greengrass/definition/connectors/{ConnectorDefinitionId}
@required {ConnectorDefinitionId: str}
@returns(200) {Arn: str?, CreationTimestamp: str?, Id: str?, LastUpdatedTimestamp: str?, LatestVersion: str?, LatestVersionArn: str?, Name: str?, tags: map<str,str>?}

@endpoint GET /greengrass/definition/connectors/{ConnectorDefinitionId}/versions/{ConnectorDefinitionVersionId}
@required {ConnectorDefinitionId: str, ConnectorDefinitionVersionId: str}
@optional {NextToken: str}
@returns(200) {Arn: str?, CreationTimestamp: str?, Definition: ConnectorDefinitionVersion?{Connectors: [Connector]?}, Id: str?, NextToken: str?, Version: str?}

@endpoint GET /greengrass/definition/cores/{CoreDefinitionId}
@required {CoreDefinitionId: str}
@returns(200) {Arn: str?, CreationTimestamp: str?, Id: str?, LastUpdatedTimestamp: str?, LatestVersion: str?, LatestVersionArn: str?, Name: str?, tags: map<str,str>?}

@endpoint GET /greengrass/definition/cores/{CoreDefinitionId}/versions/{CoreDefinitionVersionId}
@required {CoreDefinitionId: str, CoreDefinitionVersionId: str}
@returns(200) {Arn: str?, CreationTimestamp: str?, Definition: CoreDefinitionVersion?{Cores: [Core]?}, Id: str?, NextToken: str?, Version: str?}

@endpoint GET /greengrass/groups/{GroupId}/deployments/{DeploymentId}/status
@required {DeploymentId: str, GroupId: str}
@returns(200) {DeploymentStatus: str?, DeploymentType: str?, ErrorDetails: [ErrorDetail]?, ErrorMessage: str?, UpdatedAt: str?}

@endpoint GET /greengrass/definition/devices/{DeviceDefinitionId}
@required {DeviceDefinitionId: str}
@returns(200) {Arn: str?, CreationTimestamp: str?, Id: str?, LastUpdatedTimestamp: str?, LatestVersion: str?, LatestVersionArn: str?, Name: str?, tags: map<str,str>?}

@endpoint GET /greengrass/definition/devices/{DeviceDefinitionId}/versions/{DeviceDefinitionVersionId}
@required {DeviceDefinitionId: str, DeviceDefinitionVersionId: str}
@optional {NextToken: str}
@returns(200) {Arn: str?, CreationTimestamp: str?, Definition: DeviceDefinitionVersion?{Devices: [Device]?}, Id: str?, NextToken: str?, Version: str?}

@endpoint GET /greengrass/definition/functions/{FunctionDefinitionId}
@required {FunctionDefinitionId: str}
@returns(200) {Arn: str?, CreationTimestamp: str?, Id: str?, LastUpdatedTimestamp: str?, LatestVersion: str?, LatestVersionArn: str?, Name: str?, tags: map<str,str>?}

@endpoint GET /greengrass/definition/functions/{FunctionDefinitionId}/versions/{FunctionDefinitionVersionId}
@required {FunctionDefinitionId: str, FunctionDefinitionVersionId: str}
@optional {NextToken: str}
@returns(200) {Arn: str?, CreationTimestamp: str?, Definition: FunctionDefinitionVersion?{DefaultConfig: FunctionDefaultConfig?{Execution: FunctionDefaultExecutionConfig?{IsolationMode: str?, RunAs: FunctionRunAsConfig?}}, Functions: [Function]?}, Id: str?, NextToken: str?, Version: str?}

@endpoint GET /greengrass/groups/{GroupId}
@required {GroupId: str}
@returns(200) {Arn: str?, CreationTimestamp: str?, Id: str?, LastUpdatedTimestamp: str?, LatestVersion: str?, LatestVersionArn: str?, Name: str?, tags: map<str,str>?}

@endpoint GET /greengrass/groups/{GroupId}/certificateauthorities/{CertificateAuthorityId}
@required {CertificateAuthorityId: str, GroupId: str}
@returns(200) {GroupCertificateAuthorityArn: str?, GroupCertificateAuthorityId: str?, PemEncodedCertificate: str?}

@endpoint GET /greengrass/groups/{GroupId}/certificateauthorities/configuration/expiry
@required {GroupId: str}
@returns(200) {CertificateAuthorityExpiryInMilliseconds: str?, CertificateExpiryInMilliseconds: str?, GroupId: str?}

@endpoint GET /greengrass/groups/{GroupId}/versions/{GroupVersionId}
@required {GroupId: str, GroupVersionId: str}
@returns(200) {Arn: str?, CreationTimestamp: str?, Definition: GroupVersion?{ConnectorDefinitionVersionArn: str?, CoreDefinitionVersionArn: str?, DeviceDefinitionVersionArn: str?, FunctionDefinitionVersionArn: str?, LoggerDefinitionVersionArn: str?, ResourceDefinitionVersionArn: str?, SubscriptionDefinitionVersionArn: str?}, Id: str?, Version: str?}

@endpoint GET /greengrass/definition/loggers/{LoggerDefinitionId}
@required {LoggerDefinitionId: str}
@returns(200) {Arn: str?, CreationTimestamp: str?, Id: str?, LastUpdatedTimestamp: str?, LatestVersion: str?, LatestVersionArn: str?, Name: str?, tags: map<str,str>?}

@endpoint GET /greengrass/definition/loggers/{LoggerDefinitionId}/versions/{LoggerDefinitionVersionId}
@required {LoggerDefinitionId: str, LoggerDefinitionVersionId: str}
@optional {NextToken: str}
@returns(200) {Arn: str?, CreationTimestamp: str?, Definition: LoggerDefinitionVersion?{Loggers: [Logger]?}, Id: str?, Version: str?}

@endpoint GET /greengrass/definition/resources/{ResourceDefinitionId}
@required {ResourceDefinitionId: str}
@returns(200) {Arn: str?, CreationTimestamp: str?, Id: str?, LastUpdatedTimestamp: str?, LatestVersion: str?, LatestVersionArn: str?, Name: str?, tags: map<str,str>?}

@endpoint GET /greengrass/definition/resources/{ResourceDefinitionId}/versions/{ResourceDefinitionVersionId}
@required {ResourceDefinitionId: str, ResourceDefinitionVersionId: str}
@returns(200) {Arn: str?, CreationTimestamp: str?, Definition: ResourceDefinitionVersion?{Resources: [Resource]?}, Id: str?, Version: str?}

@endpoint GET /greengrass/servicerole
@returns(200) {AssociatedAt: str?, RoleArn: str?}

@endpoint GET /greengrass/definition/subscriptions/{SubscriptionDefinitionId}
@required {SubscriptionDefinitionId: str}
@returns(200) {Arn: str?, CreationTimestamp: str?, Id: str?, LastUpdatedTimestamp: str?, LatestVersion: str?, LatestVersionArn: str?, Name: str?, tags: map<str,str>?}

@endpoint GET /greengrass/definition/subscriptions/{SubscriptionDefinitionId}/versions/{SubscriptionDefinitionVersionId}
@required {SubscriptionDefinitionId: str, SubscriptionDefinitionVersionId: str}
@optional {NextToken: str}
@returns(200) {Arn: str?, CreationTimestamp: str?, Definition: SubscriptionDefinitionVersion?{Subscriptions: [Subscription]?}, Id: str?, NextToken: str?, Version: str?}

@endpoint GET /greengrass/things/{ThingName}/runtimeconfig
@required {ThingName: str}
@returns(200) {RuntimeConfiguration: RuntimeConfiguration?{TelemetryConfiguration: TelemetryConfiguration?{ConfigurationSyncStatus: str?, Telemetry: str}}}

@endpoint GET /greengrass/bulk/deployments/{BulkDeploymentId}/detailed-reports
@required {BulkDeploymentId: str}
@optional {MaxResults: str, NextToken: str}
@returns(200) {Deployments: [BulkDeploymentResult]?, NextToken: str?}

@endpoint GET /greengrass/bulk/deployments
@optional {MaxResults: str, NextToken: str}
@returns(200) {BulkDeployments: [BulkDeployment]?, NextToken: str?}

@endpoint GET /greengrass/definition/connectors/{ConnectorDefinitionId}/versions
@required {ConnectorDefinitionId: str}
@optional {MaxResults: str, NextToken: str}
@returns(200) {NextToken: str?, Versions: [VersionInformation]?}

@endpoint GET /greengrass/definition/connectors
@optional {MaxResults: str, NextToken: str}
@returns(200) {Definitions: [DefinitionInformation]?, NextToken: str?}

@endpoint GET /greengrass/definition/cores/{CoreDefinitionId}/versions
@required {CoreDefinitionId: str}
@optional {MaxResults: str, NextToken: str}
@returns(200) {NextToken: str?, Versions: [VersionInformation]?}

@endpoint GET /greengrass/definition/cores
@optional {MaxResults: str, NextToken: str}
@returns(200) {Definitions: [DefinitionInformation]?, NextToken: str?}

@endpoint GET /greengrass/groups/{GroupId}/deployments
@required {GroupId: str}
@optional {MaxResults: str, NextToken: str}
@returns(200) {Deployments: [Deployment]?, NextToken: str?}

@endpoint GET /greengrass/definition/devices/{DeviceDefinitionId}/versions
@required {DeviceDefinitionId: str}
@optional {MaxResults: str, NextToken: str}
@returns(200) {NextToken: str?, Versions: [VersionInformation]?}

@endpoint GET /greengrass/definition/devices
@optional {MaxResults: str, NextToken: str}
@returns(200) {Definitions: [DefinitionInformation]?, NextToken: str?}

@endpoint GET /greengrass/definition/functions/{FunctionDefinitionId}/versions
@required {FunctionDefinitionId: str}
@optional {MaxResults: str, NextToken: str}
@returns(200) {NextToken: str?, Versions: [VersionInformation]?}

@endpoint GET /greengrass/definition/functions
@optional {MaxResults: str, NextToken: str}
@returns(200) {Definitions: [DefinitionInformation]?, NextToken: str?}

@endpoint GET /greengrass/groups/{GroupId}/certificateauthorities
@required {GroupId: str}
@returns(200) {GroupCertificateAuthorities: [GroupCertificateAuthorityProperties]?}

@endpoint GET /greengrass/groups/{GroupId}/versions
@required {GroupId: str}
@optional {MaxResults: str, NextToken: str}
@returns(200) {NextToken: str?, Versions: [VersionInformation]?}

@endpoint GET /greengrass/groups
@optional {MaxResults: str, NextToken: str}
@returns(200) {Groups: [GroupInformation]?, NextToken: str?}

@endpoint GET /greengrass/definition/loggers/{LoggerDefinitionId}/versions
@required {LoggerDefinitionId: str}
@optional {MaxResults: str, NextToken: str}
@returns(200) {NextToken: str?, Versions: [VersionInformation]?}

@endpoint GET /greengrass/definition/loggers
@optional {MaxResults: str, NextToken: str}
@returns(200) {Definitions: [DefinitionInformation]?, NextToken: str?}

@endpoint GET /greengrass/definition/resources/{ResourceDefinitionId}/versions
@required {ResourceDefinitionId: str}
@optional {MaxResults: str, NextToken: str}
@returns(200) {NextToken: str?, Versions: [VersionInformation]?}

@endpoint GET /greengrass/definition/resources
@optional {MaxResults: str, NextToken: str}
@returns(200) {Definitions: [DefinitionInformation]?, NextToken: str?}

@endpoint GET /greengrass/definition/subscriptions/{SubscriptionDefinitionId}/versions
@required {SubscriptionDefinitionId: str}
@optional {MaxResults: str, NextToken: str}
@returns(200) {NextToken: str?, Versions: [VersionInformation]?}

@endpoint GET /greengrass/definition/subscriptions
@optional {MaxResults: str, NextToken: str}
@returns(200) {Definitions: [DefinitionInformation]?, NextToken: str?}

@endgroup

@group tags
@endpoint GET /tags/{resource-arn}
@required {ResourceArn: str}
@returns(200) {tags: map<str,str>?}

@endgroup

@group greengrass
@endpoint POST /greengrass/groups/{GroupId}/deployments/$reset
@required {GroupId: str}
@optional {X-Amzn-Client-Token: str, Force: bool}
@returns(200) {DeploymentArn: str?, DeploymentId: str?}

@endpoint POST /greengrass/bulk/deployments
@required {ExecutionRoleArn: str, InputFileUri: str}
@optional {X-Amzn-Client-Token: str, tags: map<str,str>}
@returns(200) {BulkDeploymentArn: str?, BulkDeploymentId: str?}

@endpoint PUT /greengrass/bulk/deployments/{BulkDeploymentId}/$stop
@required {BulkDeploymentId: str}

@endgroup

@group tags
@endpoint POST /tags/{resource-arn}
@required {ResourceArn: str}
@optional {tags: map<str,str>}

@endpoint DELETE /tags/{resource-arn}
@required {ResourceArn: str, tagKeys: [str]}

@endgroup

@group greengrass
@endpoint PUT /greengrass/things/{ThingName}/connectivityInfo
@required {ThingName: str}
@optional {ConnectivityInfo: [ConnectivityInfo]}
@returns(200) {Message: str?, Version: str?}

@endpoint PUT /greengrass/definition/connectors/{ConnectorDefinitionId}
@required {ConnectorDefinitionId: str}
@optional {Name: str}

@endpoint PUT /greengrass/definition/cores/{CoreDefinitionId}
@required {CoreDefinitionId: str}
@optional {Name: str}

@endpoint PUT /greengrass/definition/devices/{DeviceDefinitionId}
@required {DeviceDefinitionId: str}
@optional {Name: str}

@endpoint PUT /greengrass/definition/functions/{FunctionDefinitionId}
@required {FunctionDefinitionId: str}
@optional {Name: str}

@endpoint PUT /greengrass/groups/{GroupId}
@required {GroupId: str}
@optional {Name: str}

@endpoint PUT /greengrass/groups/{GroupId}/certificateauthorities/configuration/expiry
@required {GroupId: str}
@optional {CertificateExpiryInMilliseconds: str}
@returns(200) {CertificateAuthorityExpiryInMilliseconds: str?, CertificateExpiryInMilliseconds: str?, GroupId: str?}

@endpoint PUT /greengrass/definition/loggers/{LoggerDefinitionId}
@required {LoggerDefinitionId: str}
@optional {Name: str}

@endpoint PUT /greengrass/definition/resources/{ResourceDefinitionId}
@required {ResourceDefinitionId: str}
@optional {Name: str}

@endpoint PUT /greengrass/definition/subscriptions/{SubscriptionDefinitionId}
@required {SubscriptionDefinitionId: str}
@optional {Name: str}

@endpoint PUT /greengrass/things/{ThingName}/runtimeconfig
@required {ThingName: str}
@optional {TelemetryConfiguration: TelemetryConfigurationUpdate}

@endgroup

@end
