@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Amazon WorkSpaces
@version 2015-04-08
@auth AWS SigV4
@endpoints 88
@hint download_for_search
@toc root(88)

@endpoint POST /
@required {LinkId: str}
@optional {ClientToken: str}
@returns(200) {AccountLink: AccountLink?{AccountLinkId: str?, AccountLinkStatus: str?, SourceAccountId: str?, TargetAccountId: str?}}

@endpoint POST /
@required {AliasId: str, ResourceId: str}
@returns(200) {ConnectionIdentifier: str?}

@endpoint POST /
@required {DirectoryId: str, GroupIds: [str]}

@endpoint POST /
@required {WorkspaceId: str, ApplicationId: str}
@returns(200) {Association: WorkspaceResourceAssociation?{AssociatedResourceId: str?, AssociatedResourceType: str?, Created: str(timestamp)?, LastUpdatedTime: str(timestamp)?, State: str?, StateReason: AssociationStateReason?{ErrorCode: str?, ErrorMessage: str?}, WorkspaceId: str?}}

@endpoint POST /
@required {GroupId: str, UserRules: [IpRuleItem]}

@endpoint POST /
@required {Name: str, SourceImageId: str, SourceRegion: str}
@optional {Description: str, Tags: [Tag]}
@returns(200) {ImageId: str?}

@endpoint POST /
@required {TargetAccountId: str}
@optional {ClientToken: str}
@returns(200) {AccountLink: AccountLink?{AccountLinkId: str?, AccountLinkStatus: str?, SourceAccountId: str?, TargetAccountId: str?}}

@endpoint POST /
@required {ResourceId: str, Name: str, URL: str}
@returns(200) {AddInId: str?}

@endpoint POST /
@required {ConnectionString: str}
@optional {Tags: [Tag]}
@returns(200) {AliasId: str?}

@endpoint POST /
@required {GroupName: str}
@optional {GroupDesc: str, UserRules: [IpRuleItem], Tags: [Tag]}
@returns(200) {GroupId: str?}

@endpoint POST /
@required {PrimaryRegion: str, StandbyWorkspaces: [StandbyWorkspace]}
@returns(200) {FailedStandbyRequests: [FailedCreateStandbyWorkspacesRequest]?, PendingStandbyRequests: [PendingCreateStandbyWorkspacesRequest]?}

@endpoint POST /
@required {ResourceId: str, Tags: [Tag]}

@endpoint POST /
@required {Name: str, Description: str, SourceImageId: str}
@optional {Tags: [Tag]}
@returns(200) {ImageId: str?}

@endpoint POST /
@required {BundleName: str, BundleDescription: str, ImageId: str, ComputeType: ComputeType, UserStorage: UserStorage}
@optional {RootStorage: RootStorage, Tags: [Tag]}
@returns(200) {WorkspaceBundle: WorkspaceBundle?{BundleId: str?, Name: str?, Owner: str?, Description: str?, ImageId: str?, RootStorage: RootStorage?{Capacity: str}, UserStorage: UserStorage?{Capacity: str}, ComputeType: ComputeType?{Name: str?}, LastUpdatedTime: str(timestamp)?, CreationTime: str(timestamp)?, State: str?, BundleType: str?}}

@endpoint POST /
@required {Name: str, Description: str, WorkspaceId: str}
@optional {Tags: [Tag]}
@returns(200) {ImageId: str?, Name: str?, Description: str?, OperatingSystem: OperatingSystem?{Type: str?}, State: str?, RequiredTenancy: str?, Created: str(timestamp)?, OwnerAccountId: str?}

@endpoint POST /
@required {Workspaces: [WorkspaceRequest]}
@returns(200) {FailedRequests: [FailedCreateWorkspaceRequest]?, PendingRequests: [Workspace]?}

@endpoint POST /
@required {PoolName: str, Description: str, BundleId: str, DirectoryId: str, Capacity: Capacity}
@optional {Tags: [Tag], ApplicationSettings: ApplicationSettingsRequest, TimeoutSettings: TimeoutSettings}
@returns(200) {WorkspacesPool: WorkspacesPool?{PoolId: str, PoolArn: str, CapacityStatus: CapacityStatus{AvailableUserSessions: int, DesiredUserSessions: int, ActualUserSessions: int, ActiveUserSessions: int}, PoolName: str, Description: str?, State: str, CreatedAt: str(timestamp), BundleId: str, DirectoryId: str, Errors: [WorkspacesPoolError]?, ApplicationSettings: ApplicationSettingsResponse?{Status: str, SettingsGroup: str?, S3BucketName: str?}, TimeoutSettings: TimeoutSettings?{DisconnectTimeoutInSeconds: int?, IdleDisconnectTimeoutInSeconds: int?, MaxUserDurationInSeconds: int?}}}

@endpoint POST /
@required {LinkId: str}
@optional {ClientToken: str}
@returns(200) {AccountLink: AccountLink?{AccountLinkId: str?, AccountLinkStatus: str?, SourceAccountId: str?, TargetAccountId: str?}}

@endpoint POST /
@required {ResourceId: str, Platforms: [str]}

@endpoint POST /
@required {AddInId: str, ResourceId: str}

@endpoint POST /
@required {AliasId: str}

@endpoint POST /
@required {GroupId: str}

@endpoint POST /
@required {ResourceId: str, TagKeys: [str]}

@endpoint POST /
@optional {BundleId: str}

@endpoint POST /
@required {ImageId: str}

@endpoint POST /
@required {WorkspaceId: str}
@optional {Force: bool}
@returns(200) {Deployment: WorkSpaceApplicationDeployment?{Associations: [WorkspaceResourceAssociation]?}}

@endpoint POST /
@required {DirectoryId: str}

@endpoint POST /
@returns(200) {DedicatedTenancySupport: str?, DedicatedTenancyManagementCidrRange: str?, DedicatedTenancyAccountType: str?}

@endpoint POST /
@optional {NextToken: str}
@returns(200) {AccountModifications: [AccountModification]?, NextToken: str?}

@endpoint POST /
@required {ApplicationId: str, AssociatedResourceTypes: [str]}
@optional {MaxResults: int, NextToken: str}
@returns(200) {Associations: [ApplicationResourceAssociation]?, NextToken: str?}

@endpoint POST /
@optional {ApplicationIds: [str], ComputeTypeNames: [str], LicenseType: str, OperatingSystemNames: [str], Owner: str, MaxResults: int, NextToken: str}
@returns(200) {Applications: [WorkSpaceApplication]?, NextToken: str?}

@endpoint POST /
@required {BundleId: str, AssociatedResourceTypes: [str]}
@returns(200) {Associations: [BundleResourceAssociation]?}

@endpoint POST /
@required {ResourceId: str}
@returns(200) {DeviceTypeWindows: DefaultClientBrandingAttributes?{LogoUrl: str?, SupportEmail: str?, SupportLink: str?, ForgotPasswordLink: str?, LoginMessage: map<str,str>?}, DeviceTypeOsx: DefaultClientBrandingAttributes?{LogoUrl: str?, SupportEmail: str?, SupportLink: str?, ForgotPasswordLink: str?, LoginMessage: map<str,str>?}, DeviceTypeAndroid: DefaultClientBrandingAttributes?{LogoUrl: str?, SupportEmail: str?, SupportLink: str?, ForgotPasswordLink: str?, LoginMessage: map<str,str>?}, DeviceTypeIos: IosClientBrandingAttributes?{LogoUrl: str?, Logo2xUrl: str?, Logo3xUrl: str?, SupportEmail: str?, SupportLink: str?, ForgotPasswordLink: str?, LoginMessage: map<str,str>?}, DeviceTypeLinux: DefaultClientBrandingAttributes?{LogoUrl: str?, SupportEmail: str?, SupportLink: str?, ForgotPasswordLink: str?, LoginMessage: map<str,str>?}, DeviceTypeWeb: DefaultClientBrandingAttributes?{LogoUrl: str?, SupportEmail: str?, SupportLink: str?, ForgotPasswordLink: str?, LoginMessage: map<str,str>?}}

@endpoint POST /
@required {ResourceIds: [str]}
@returns(200) {ClientPropertiesList: [ClientPropertiesResult]?}

@endpoint POST /
@required {ResourceId: str}
@optional {NextToken: str, MaxResults: int}
@returns(200) {AddIns: [ConnectClientAddIn]?, NextToken: str?}

@endpoint POST /
@required {AliasId: str}
@optional {NextToken: str, MaxResults: int}
@returns(200) {AliasId: str?, ConnectionAliasPermissions: [ConnectionAliasPermission]?, NextToken: str?}

@endpoint POST /
@optional {AliasIds: [str], ResourceId: str, Limit: int, NextToken: str}
@returns(200) {ConnectionAliases: [ConnectionAlias]?, NextToken: str?}

@endpoint POST /
@required {ImageId: str, AssociatedResourceTypes: [str]}
@returns(200) {Associations: [ImageResourceAssociation]?}

@endpoint POST /
@optional {GroupIds: [str], NextToken: str, MaxResults: int}
@returns(200) {Result: [WorkspacesIpGroup]?, NextToken: str?}

@endpoint POST /
@required {ResourceId: str}
@returns(200) {TagList: [Tag]?}

@endpoint POST /
@required {WorkspaceId: str, AssociatedResourceTypes: [str]}
@returns(200) {Associations: [WorkspaceResourceAssociation]?}

@endpoint POST /
@optional {BundleIds: [str], Owner: str, NextToken: str}
@returns(200) {Bundles: [WorkspaceBundle]?, NextToken: str?}

@endpoint POST /
@optional {DirectoryIds: [str], WorkspaceDirectoryNames: [str], Limit: int, NextToken: str, Filters: [DescribeWorkspaceDirectoriesFilter]}
@returns(200) {Directories: [WorkspaceDirectory]?, NextToken: str?}

@endpoint POST /
@required {ImageId: str}
@optional {NextToken: str, MaxResults: int}
@returns(200) {ImageId: str?, ImagePermissions: [ImagePermission]?, NextToken: str?}

@endpoint POST /
@optional {ImageIds: [str], ImageType: str, NextToken: str, MaxResults: int}
@returns(200) {Images: [WorkspaceImage]?, NextToken: str?}

@endpoint POST /
@required {WorkspaceId: str}
@returns(200) {RebuildSnapshots: [Snapshot]?, RestoreSnapshots: [Snapshot]?}

@endpoint POST /
@optional {WorkspaceIds: [str], DirectoryId: str, UserName: str, BundleId: str, Limit: int, NextToken: str, WorkspaceName: str}
@returns(200) {Workspaces: [Workspace]?, NextToken: str?}

@endpoint POST /
@optional {WorkspaceIds: [str], NextToken: str}
@returns(200) {WorkspacesConnectionStatus: [WorkspaceConnectionStatus]?, NextToken: str?}

@endpoint POST /
@required {PoolId: str}
@optional {UserId: str, Limit: int, NextToken: str}
@returns(200) {Sessions: [WorkspacesPoolSession]?, NextToken: str?}

@endpoint POST /
@optional {PoolIds: [str], Filters: [DescribeWorkspacesPoolsFilter], Limit: int, NextToken: str}
@returns(200) {WorkspacesPools: [WorkspacesPool]?, NextToken: str?}

@endpoint POST /
@required {AliasId: str}

@endpoint POST /
@required {DirectoryId: str, GroupIds: [str]}

@endpoint POST /
@required {WorkspaceId: str, ApplicationId: str}
@returns(200) {Association: WorkspaceResourceAssociation?{AssociatedResourceId: str?, AssociatedResourceType: str?, Created: str(timestamp)?, LastUpdatedTime: str(timestamp)?, State: str?, StateReason: AssociationStateReason?{ErrorCode: str?, ErrorMessage: str?}, WorkspaceId: str?}}

@endpoint POST /
@optional {LinkId: str, LinkedAccountId: str}
@returns(200) {AccountLink: AccountLink?{AccountLinkId: str?, AccountLinkStatus: str?, SourceAccountId: str?, TargetAccountId: str?}}

@endpoint POST /
@required {ResourceId: str}
@optional {DeviceTypeWindows: DefaultImportClientBrandingAttributes, DeviceTypeOsx: DefaultImportClientBrandingAttributes, DeviceTypeAndroid: DefaultImportClientBrandingAttributes, DeviceTypeIos: IosImportClientBrandingAttributes, DeviceTypeLinux: DefaultImportClientBrandingAttributes, DeviceTypeWeb: DefaultImportClientBrandingAttributes}
@returns(200) {DeviceTypeWindows: DefaultClientBrandingAttributes?{LogoUrl: str?, SupportEmail: str?, SupportLink: str?, ForgotPasswordLink: str?, LoginMessage: map<str,str>?}, DeviceTypeOsx: DefaultClientBrandingAttributes?{LogoUrl: str?, SupportEmail: str?, SupportLink: str?, ForgotPasswordLink: str?, LoginMessage: map<str,str>?}, DeviceTypeAndroid: DefaultClientBrandingAttributes?{LogoUrl: str?, SupportEmail: str?, SupportLink: str?, ForgotPasswordLink: str?, LoginMessage: map<str,str>?}, DeviceTypeIos: IosClientBrandingAttributes?{LogoUrl: str?, Logo2xUrl: str?, Logo3xUrl: str?, SupportEmail: str?, SupportLink: str?, ForgotPasswordLink: str?, LoginMessage: map<str,str>?}, DeviceTypeLinux: DefaultClientBrandingAttributes?{LogoUrl: str?, SupportEmail: str?, SupportLink: str?, ForgotPasswordLink: str?, LoginMessage: map<str,str>?}, DeviceTypeWeb: DefaultClientBrandingAttributes?{LogoUrl: str?, SupportEmail: str?, SupportLink: str?, ForgotPasswordLink: str?, LoginMessage: map<str,str>?}}

@endpoint POST /
@required {Ec2ImageId: str, IngestionProcess: str, ImageName: str, ImageDescription: str}
@optional {Tags: [Tag], Applications: [str]}
@returns(200) {ImageId: str?}

@endpoint POST /
@optional {LinkStatusFilter: [str], NextToken: str, MaxResults: int}
@returns(200) {AccountLinks: [AccountLink]?, NextToken: str?}

@endpoint POST /
@required {ManagementCidrRangeConstraint: str}
@optional {MaxResults: int, NextToken: str}
@returns(200) {ManagementCidrRanges: [str]?, NextToken: str?}

@endpoint POST /
@required {SourceWorkspaceId: str, BundleId: str}
@returns(200) {SourceWorkspaceId: str?, TargetWorkspaceId: str?}

@endpoint POST /
@optional {DedicatedTenancySupport: str, DedicatedTenancyManagementCidrRange: str}

@endpoint POST /
@required {ResourceId: str}
@optional {CertificateBasedAuthProperties: CertificateBasedAuthProperties, PropertiesToDelete: [str]}

@endpoint POST /
@required {ResourceId: str, ClientProperties: ClientProperties}

@endpoint POST /
@required {ResourceId: str}
@optional {SamlProperties: SamlProperties, PropertiesToDelete: [str]}

@endpoint POST /
@required {ResourceId: str, SelfservicePermissions: SelfservicePermissions}

@endpoint POST /
@required {ResourceId: str}
@optional {StreamingProperties: StreamingProperties}

@endpoint POST /
@required {ResourceId: str, WorkspaceAccessProperties: WorkspaceAccessProperties}

@endpoint POST /
@required {ResourceId: str, WorkspaceCreationProperties: WorkspaceCreationProperties}

@endpoint POST /
@required {WorkspaceId: str}
@optional {WorkspaceProperties: WorkspaceProperties, DataReplication: str}

@endpoint POST /
@required {WorkspaceId: str, WorkspaceState: str}

@endpoint POST /
@required {RebootWorkspaceRequests: [RebootRequest]}
@returns(200) {FailedRequests: [FailedWorkspaceChangeRequest]?}

@endpoint POST /
@required {RebuildWorkspaceRequests: [RebuildRequest]}
@returns(200) {FailedRequests: [FailedWorkspaceChangeRequest]?}

@endpoint POST /
@optional {DirectoryId: str, SubnetIds: [str], EnableWorkDocs: bool, EnableSelfService: bool, Tenancy: str, Tags: [Tag], WorkspaceDirectoryName: str, WorkspaceDirectoryDescription: str, UserIdentityType: str, IdcInstanceArn: str, MicrosoftEntraConfig: MicrosoftEntraConfig, WorkspaceType: str, ActiveDirectoryConfig: ActiveDirectoryConfig}
@returns(200) {DirectoryId: str?, State: str?}

@endpoint POST /
@required {LinkId: str}
@optional {ClientToken: str}
@returns(200) {AccountLink: AccountLink?{AccountLinkId: str?, AccountLinkStatus: str?, SourceAccountId: str?, TargetAccountId: str?}}

@endpoint POST /
@required {WorkspaceId: str}

@endpoint POST /
@required {GroupId: str, UserRules: [str]}

@endpoint POST /
@required {StartWorkspaceRequests: [StartRequest]}
@returns(200) {FailedRequests: [FailedWorkspaceChangeRequest]?}

@endpoint POST /
@required {PoolId: str}

@endpoint POST /
@required {StopWorkspaceRequests: [StopRequest]}
@returns(200) {FailedRequests: [FailedWorkspaceChangeRequest]?}

@endpoint POST /
@required {PoolId: str}

@endpoint POST /
@required {TerminateWorkspaceRequests: [TerminateRequest]}
@returns(200) {FailedRequests: [FailedWorkspaceChangeRequest]?}

@endpoint POST /
@required {PoolId: str}

@endpoint POST /
@required {SessionId: str}

@endpoint POST /
@required {AddInId: str, ResourceId: str}
@optional {Name: str, URL: str}

@endpoint POST /
@required {AliasId: str, ConnectionAliasPermission: ConnectionAliasPermission}

@endpoint POST /
@required {GroupId: str, UserRules: [IpRuleItem]}

@endpoint POST /
@optional {BundleId: str, ImageId: str}

@endpoint POST /
@required {ImageId: str, AllowCopyImage: bool, SharedAccountId: str}

@endpoint POST /
@required {PoolId: str}
@optional {Description: str, BundleId: str, DirectoryId: str, Capacity: Capacity, ApplicationSettings: ApplicationSettingsRequest, TimeoutSettings: TimeoutSettings}
@returns(200) {WorkspacesPool: WorkspacesPool?{PoolId: str, PoolArn: str, CapacityStatus: CapacityStatus{AvailableUserSessions: int, DesiredUserSessions: int, ActualUserSessions: int, ActiveUserSessions: int}, PoolName: str, Description: str?, State: str, CreatedAt: str(timestamp), BundleId: str, DirectoryId: str, Errors: [WorkspacesPoolError]?, ApplicationSettings: ApplicationSettingsResponse?{Status: str, SettingsGroup: str?, S3BucketName: str?}, TimeoutSettings: TimeoutSettings?{DisconnectTimeoutInSeconds: int?, IdleDisconnectTimeoutInSeconds: int?, MaxUserDurationInSeconds: int?}}}

@end
