@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api AmazonNimbleStudio
@version 2020-08-01
@auth AWS SigV4
@endpoints 49
@hint download_for_search
@toc 2020-08-01(49)

@endpoint POST /2020-08-01/studios/{studioId}/eula-acceptances
@required {studioId: str}
@optional {X-Amz-Client-Token: str, eulaIds: [str]}
@returns(200) {eulaAcceptances: [EulaAcceptance]?}

@endpoint POST /2020-08-01/studios/{studioId}/launch-profiles
@required {studioId: str, ec2SubnetIds: [str], launchProfileProtocolVersions: [str], name: str, streamConfiguration: StreamConfigurationCreate, studioComponentIds: [str]}
@optional {X-Amz-Client-Token: str, description: str, tags: map<str,str>}
@returns(200) {launchProfile: LaunchProfile?{arn: str?, createdAt: str(timestamp)?, createdBy: str?, description: str?, ec2SubnetIds: [str]?, launchProfileId: str?, launchProfileProtocolVersions: [str]?, name: str?, state: str?, statusCode: str?, statusMessage: str?, streamConfiguration: StreamConfiguration?{automaticTerminationMode: str?, clipboardMode: str, ec2InstanceTypes: [str], maxSessionLengthInMinutes: int?, maxStoppedSessionLengthInMinutes: int?, sessionBackup: StreamConfigurationSessionBackup?{maxBackupsToRetain: int?, mode: str?}, sessionPersistenceMode: str?, sessionStorage: StreamConfigurationSessionStorage?{mode: [str], root: StreamingSessionStorageRoot?}, streamingImageIds: [str], volumeConfiguration: VolumeConfiguration?{iops: int?, size: int?, throughput: int?}}, studioComponentIds: [str]?, tags: map<str,str>?, updatedAt: str(timestamp)?, updatedBy: str?, validationResults: [ValidationResult]?}}

@endpoint POST /2020-08-01/studios/{studioId}/streaming-images
@required {studioId: str, ec2ImageId: str, name: str}
@optional {X-Amz-Client-Token: str, description: str, tags: map<str,str>}
@returns(200) {streamingImage: StreamingImage?{arn: str?, description: str?, ec2ImageId: str?, encryptionConfiguration: StreamingImageEncryptionConfiguration?{keyArn: str?, keyType: str}, eulaIds: [str]?, name: str?, owner: str?, platform: str?, state: str?, statusCode: str?, statusMessage: str?, streamingImageId: str?, tags: map<str,str>?}}

@endpoint POST /2020-08-01/studios/{studioId}/streaming-sessions
@required {studioId: str, launchProfileId: str}
@optional {X-Amz-Client-Token: str, ec2InstanceType: str, ownedBy: str, streamingImageId: str, tags: map<str,str>}
@returns(200) {session: StreamingSession?{arn: str?, automaticTerminationMode: str?, backupMode: str?, createdAt: str(timestamp)?, createdBy: str?, ec2InstanceType: str?, launchProfileId: str?, maxBackupsToRetain: int?, ownedBy: str?, sessionId: str?, sessionPersistenceMode: str?, startedAt: str(timestamp)?, startedBy: str?, startedFromBackupId: str?, state: str?, statusCode: str?, statusMessage: str?, stopAt: str(timestamp)?, stoppedAt: str(timestamp)?, stoppedBy: str?, streamingImageId: str?, tags: map<str,str>?, terminateAt: str(timestamp)?, updatedAt: str(timestamp)?, updatedBy: str?, volumeConfiguration: VolumeConfiguration?{iops: int?, size: int?, throughput: int?}, volumeRetentionMode: str?}}

@endpoint POST /2020-08-01/studios/{studioId}/streaming-sessions/{sessionId}/streams
@required {sessionId: str, studioId: str}
@optional {X-Amz-Client-Token: str, expirationInSeconds: int}
@returns(200) {stream: StreamingSessionStream?{createdAt: str(timestamp)?, createdBy: str?, expiresAt: str(timestamp)?, ownedBy: str?, state: str?, statusCode: str?, streamId: str?, url: str?}}

@endpoint POST /2020-08-01/studios
@required {adminRoleArn: str, displayName: str, studioName: str, userRoleArn: str}
@optional {X-Amz-Client-Token: str, studioEncryptionConfiguration: StudioEncryptionConfiguration, tags: map<str,str>}
@returns(200) {studio: Studio?{adminRoleArn: str?, arn: str?, createdAt: str(timestamp)?, displayName: str?, homeRegion: str?, ssoClientId: str?, state: str?, statusCode: str?, statusMessage: str?, studioEncryptionConfiguration: StudioEncryptionConfiguration?{keyArn: str?, keyType: str}, studioId: str?, studioName: str?, studioUrl: str?, tags: map<str,str>?, updatedAt: str(timestamp)?, userRoleArn: str?}}

@endpoint POST /2020-08-01/studios/{studioId}/studio-components
@required {studioId: str, name: str, type: str}
@optional {X-Amz-Client-Token: str, configuration: StudioComponentConfiguration, description: str, ec2SecurityGroupIds: [str], initializationScripts: [StudioComponentInitializationScript], runtimeRoleArn: str, scriptParameters: [ScriptParameterKeyValue], secureInitializationRoleArn: str, subtype: str, tags: map<str,str>}
@returns(200) {studioComponent: StudioComponent?{arn: str?, configuration: StudioComponentConfiguration?{activeDirectoryConfiguration: ActiveDirectoryConfiguration?{computerAttributes: [ActiveDirectoryComputerAttribute]?, directoryId: str?, organizationalUnitDistinguishedName: str?}, computeFarmConfiguration: ComputeFarmConfiguration?{activeDirectoryUser: str?, endpoint: str?}, licenseServiceConfiguration: LicenseServiceConfiguration?{endpoint: str?}, sharedFileSystemConfiguration: SharedFileSystemConfiguration?{endpoint: str?, fileSystemId: str?, linuxMountPoint: str?, shareName: str?, windowsMountDrive: str?}}, createdAt: str(timestamp)?, createdBy: str?, description: str?, ec2SecurityGroupIds: [str]?, initializationScripts: [StudioComponentInitializationScript]?, name: str?, runtimeRoleArn: str?, scriptParameters: [ScriptParameterKeyValue]?, secureInitializationRoleArn: str?, state: str?, statusCode: str?, statusMessage: str?, studioComponentId: str?, subtype: str?, tags: map<str,str>?, type: str?, updatedAt: str(timestamp)?, updatedBy: str?}}

@endpoint DELETE /2020-08-01/studios/{studioId}/launch-profiles/{launchProfileId}
@required {launchProfileId: str, studioId: str}
@optional {X-Amz-Client-Token: str}
@returns(200) {launchProfile: LaunchProfile?{arn: str?, createdAt: str(timestamp)?, createdBy: str?, description: str?, ec2SubnetIds: [str]?, launchProfileId: str?, launchProfileProtocolVersions: [str]?, name: str?, state: str?, statusCode: str?, statusMessage: str?, streamConfiguration: StreamConfiguration?{automaticTerminationMode: str?, clipboardMode: str, ec2InstanceTypes: [str], maxSessionLengthInMinutes: int?, maxStoppedSessionLengthInMinutes: int?, sessionBackup: StreamConfigurationSessionBackup?{maxBackupsToRetain: int?, mode: str?}, sessionPersistenceMode: str?, sessionStorage: StreamConfigurationSessionStorage?{mode: [str], root: StreamingSessionStorageRoot?}, streamingImageIds: [str], volumeConfiguration: VolumeConfiguration?{iops: int?, size: int?, throughput: int?}}, studioComponentIds: [str]?, tags: map<str,str>?, updatedAt: str(timestamp)?, updatedBy: str?, validationResults: [ValidationResult]?}}

@endpoint DELETE /2020-08-01/studios/{studioId}/launch-profiles/{launchProfileId}/membership/{principalId}
@required {launchProfileId: str, principalId: str, studioId: str}
@optional {X-Amz-Client-Token: str}

@endpoint DELETE /2020-08-01/studios/{studioId}/streaming-images/{streamingImageId}
@required {streamingImageId: str, studioId: str}
@optional {X-Amz-Client-Token: str}
@returns(200) {streamingImage: StreamingImage?{arn: str?, description: str?, ec2ImageId: str?, encryptionConfiguration: StreamingImageEncryptionConfiguration?{keyArn: str?, keyType: str}, eulaIds: [str]?, name: str?, owner: str?, platform: str?, state: str?, statusCode: str?, statusMessage: str?, streamingImageId: str?, tags: map<str,str>?}}

@endpoint DELETE /2020-08-01/studios/{studioId}/streaming-sessions/{sessionId}
@required {sessionId: str, studioId: str}
@optional {X-Amz-Client-Token: str}
@returns(200) {session: StreamingSession?{arn: str?, automaticTerminationMode: str?, backupMode: str?, createdAt: str(timestamp)?, createdBy: str?, ec2InstanceType: str?, launchProfileId: str?, maxBackupsToRetain: int?, ownedBy: str?, sessionId: str?, sessionPersistenceMode: str?, startedAt: str(timestamp)?, startedBy: str?, startedFromBackupId: str?, state: str?, statusCode: str?, statusMessage: str?, stopAt: str(timestamp)?, stoppedAt: str(timestamp)?, stoppedBy: str?, streamingImageId: str?, tags: map<str,str>?, terminateAt: str(timestamp)?, updatedAt: str(timestamp)?, updatedBy: str?, volumeConfiguration: VolumeConfiguration?{iops: int?, size: int?, throughput: int?}, volumeRetentionMode: str?}}

@endpoint DELETE /2020-08-01/studios/{studioId}
@required {studioId: str}
@optional {X-Amz-Client-Token: str}
@returns(200) {studio: Studio{adminRoleArn: str?, arn: str?, createdAt: str(timestamp)?, displayName: str?, homeRegion: str?, ssoClientId: str?, state: str?, statusCode: str?, statusMessage: str?, studioEncryptionConfiguration: StudioEncryptionConfiguration?{keyArn: str?, keyType: str}, studioId: str?, studioName: str?, studioUrl: str?, tags: map<str,str>?, updatedAt: str(timestamp)?, userRoleArn: str?}}

@endpoint DELETE /2020-08-01/studios/{studioId}/studio-components/{studioComponentId}
@required {studioComponentId: str, studioId: str}
@optional {X-Amz-Client-Token: str}
@returns(200) {studioComponent: StudioComponent?{arn: str?, configuration: StudioComponentConfiguration?{activeDirectoryConfiguration: ActiveDirectoryConfiguration?{computerAttributes: [ActiveDirectoryComputerAttribute]?, directoryId: str?, organizationalUnitDistinguishedName: str?}, computeFarmConfiguration: ComputeFarmConfiguration?{activeDirectoryUser: str?, endpoint: str?}, licenseServiceConfiguration: LicenseServiceConfiguration?{endpoint: str?}, sharedFileSystemConfiguration: SharedFileSystemConfiguration?{endpoint: str?, fileSystemId: str?, linuxMountPoint: str?, shareName: str?, windowsMountDrive: str?}}, createdAt: str(timestamp)?, createdBy: str?, description: str?, ec2SecurityGroupIds: [str]?, initializationScripts: [StudioComponentInitializationScript]?, name: str?, runtimeRoleArn: str?, scriptParameters: [ScriptParameterKeyValue]?, secureInitializationRoleArn: str?, state: str?, statusCode: str?, statusMessage: str?, studioComponentId: str?, subtype: str?, tags: map<str,str>?, type: str?, updatedAt: str(timestamp)?, updatedBy: str?}}

@endpoint DELETE /2020-08-01/studios/{studioId}/membership/{principalId}
@required {principalId: str, studioId: str}
@optional {X-Amz-Client-Token: str}

@endpoint GET /2020-08-01/eulas/{eulaId}
@required {eulaId: str}
@returns(200) {eula: Eula?{content: str?, createdAt: str(timestamp)?, eulaId: str?, name: str?, updatedAt: str(timestamp)?}}

@endpoint GET /2020-08-01/studios/{studioId}/launch-profiles/{launchProfileId}
@required {launchProfileId: str, studioId: str}
@returns(200) {launchProfile: LaunchProfile?{arn: str?, createdAt: str(timestamp)?, createdBy: str?, description: str?, ec2SubnetIds: [str]?, launchProfileId: str?, launchProfileProtocolVersions: [str]?, name: str?, state: str?, statusCode: str?, statusMessage: str?, streamConfiguration: StreamConfiguration?{automaticTerminationMode: str?, clipboardMode: str, ec2InstanceTypes: [str], maxSessionLengthInMinutes: int?, maxStoppedSessionLengthInMinutes: int?, sessionBackup: StreamConfigurationSessionBackup?{maxBackupsToRetain: int?, mode: str?}, sessionPersistenceMode: str?, sessionStorage: StreamConfigurationSessionStorage?{mode: [str], root: StreamingSessionStorageRoot?}, streamingImageIds: [str], volumeConfiguration: VolumeConfiguration?{iops: int?, size: int?, throughput: int?}}, studioComponentIds: [str]?, tags: map<str,str>?, updatedAt: str(timestamp)?, updatedBy: str?, validationResults: [ValidationResult]?}}

@endpoint GET /2020-08-01/studios/{studioId}/launch-profiles/{launchProfileId}/details
@required {launchProfileId: str, studioId: str}
@returns(200) {launchProfile: LaunchProfile?{arn: str?, createdAt: str(timestamp)?, createdBy: str?, description: str?, ec2SubnetIds: [str]?, launchProfileId: str?, launchProfileProtocolVersions: [str]?, name: str?, state: str?, statusCode: str?, statusMessage: str?, streamConfiguration: StreamConfiguration?{automaticTerminationMode: str?, clipboardMode: str, ec2InstanceTypes: [str], maxSessionLengthInMinutes: int?, maxStoppedSessionLengthInMinutes: int?, sessionBackup: StreamConfigurationSessionBackup?{maxBackupsToRetain: int?, mode: str?}, sessionPersistenceMode: str?, sessionStorage: StreamConfigurationSessionStorage?{mode: [str], root: StreamingSessionStorageRoot?}, streamingImageIds: [str], volumeConfiguration: VolumeConfiguration?{iops: int?, size: int?, throughput: int?}}, studioComponentIds: [str]?, tags: map<str,str>?, updatedAt: str(timestamp)?, updatedBy: str?, validationResults: [ValidationResult]?}, streamingImages: [StreamingImage]?, studioComponentSummaries: [StudioComponentSummary]?}

@endpoint GET /2020-08-01/studios/{studioId}/launch-profiles/{launchProfileId}/init
@required {launchProfileId: str, launchProfileProtocolVersions: [str], launchPurpose: str, platform: str, studioId: str}
@returns(200) {launchProfileInitialization: LaunchProfileInitialization?{activeDirectory: LaunchProfileInitializationActiveDirectory?{computerAttributes: [ActiveDirectoryComputerAttribute]?, directoryId: str?, directoryName: str?, dnsIpAddresses: [str]?, organizationalUnitDistinguishedName: str?, studioComponentId: str?, studioComponentName: str?}, ec2SecurityGroupIds: [str]?, launchProfileId: str?, launchProfileProtocolVersion: str?, launchPurpose: str?, name: str?, platform: str?, systemInitializationScripts: [LaunchProfileInitializationScript]?, userInitializationScripts: [LaunchProfileInitializationScript]?}}

@endpoint GET /2020-08-01/studios/{studioId}/launch-profiles/{launchProfileId}/membership/{principalId}
@required {launchProfileId: str, principalId: str, studioId: str}
@returns(200) {member: LaunchProfileMembership?{identityStoreId: str?, persona: str?, principalId: str?, sid: str?}}

@endpoint GET /2020-08-01/studios/{studioId}/streaming-images/{streamingImageId}
@required {streamingImageId: str, studioId: str}
@returns(200) {streamingImage: StreamingImage?{arn: str?, description: str?, ec2ImageId: str?, encryptionConfiguration: StreamingImageEncryptionConfiguration?{keyArn: str?, keyType: str}, eulaIds: [str]?, name: str?, owner: str?, platform: str?, state: str?, statusCode: str?, statusMessage: str?, streamingImageId: str?, tags: map<str,str>?}}

@endpoint GET /2020-08-01/studios/{studioId}/streaming-sessions/{sessionId}
@required {sessionId: str, studioId: str}
@returns(200) {session: StreamingSession?{arn: str?, automaticTerminationMode: str?, backupMode: str?, createdAt: str(timestamp)?, createdBy: str?, ec2InstanceType: str?, launchProfileId: str?, maxBackupsToRetain: int?, ownedBy: str?, sessionId: str?, sessionPersistenceMode: str?, startedAt: str(timestamp)?, startedBy: str?, startedFromBackupId: str?, state: str?, statusCode: str?, statusMessage: str?, stopAt: str(timestamp)?, stoppedAt: str(timestamp)?, stoppedBy: str?, streamingImageId: str?, tags: map<str,str>?, terminateAt: str(timestamp)?, updatedAt: str(timestamp)?, updatedBy: str?, volumeConfiguration: VolumeConfiguration?{iops: int?, size: int?, throughput: int?}, volumeRetentionMode: str?}}

@endpoint GET /2020-08-01/studios/{studioId}/streaming-session-backups/{backupId}
@required {backupId: str, studioId: str}
@returns(200) {streamingSessionBackup: StreamingSessionBackup?{arn: str?, backupId: str?, createdAt: str(timestamp)?, launchProfileId: str?, ownedBy: str?, sessionId: str?, state: str?, statusCode: str?, statusMessage: str?, tags: map<str,str>?}}

@endpoint GET /2020-08-01/studios/{studioId}/streaming-sessions/{sessionId}/streams/{streamId}
@required {sessionId: str, streamId: str, studioId: str}
@returns(200) {stream: StreamingSessionStream?{createdAt: str(timestamp)?, createdBy: str?, expiresAt: str(timestamp)?, ownedBy: str?, state: str?, statusCode: str?, streamId: str?, url: str?}}

@endpoint GET /2020-08-01/studios/{studioId}
@required {studioId: str}
@returns(200) {studio: Studio{adminRoleArn: str?, arn: str?, createdAt: str(timestamp)?, displayName: str?, homeRegion: str?, ssoClientId: str?, state: str?, statusCode: str?, statusMessage: str?, studioEncryptionConfiguration: StudioEncryptionConfiguration?{keyArn: str?, keyType: str}, studioId: str?, studioName: str?, studioUrl: str?, tags: map<str,str>?, updatedAt: str(timestamp)?, userRoleArn: str?}}

@endpoint GET /2020-08-01/studios/{studioId}/studio-components/{studioComponentId}
@required {studioComponentId: str, studioId: str}
@returns(200) {studioComponent: StudioComponent?{arn: str?, configuration: StudioComponentConfiguration?{activeDirectoryConfiguration: ActiveDirectoryConfiguration?{computerAttributes: [ActiveDirectoryComputerAttribute]?, directoryId: str?, organizationalUnitDistinguishedName: str?}, computeFarmConfiguration: ComputeFarmConfiguration?{activeDirectoryUser: str?, endpoint: str?}, licenseServiceConfiguration: LicenseServiceConfiguration?{endpoint: str?}, sharedFileSystemConfiguration: SharedFileSystemConfiguration?{endpoint: str?, fileSystemId: str?, linuxMountPoint: str?, shareName: str?, windowsMountDrive: str?}}, createdAt: str(timestamp)?, createdBy: str?, description: str?, ec2SecurityGroupIds: [str]?, initializationScripts: [StudioComponentInitializationScript]?, name: str?, runtimeRoleArn: str?, scriptParameters: [ScriptParameterKeyValue]?, secureInitializationRoleArn: str?, state: str?, statusCode: str?, statusMessage: str?, studioComponentId: str?, subtype: str?, tags: map<str,str>?, type: str?, updatedAt: str(timestamp)?, updatedBy: str?}}

@endpoint GET /2020-08-01/studios/{studioId}/membership/{principalId}
@required {principalId: str, studioId: str}
@returns(200) {member: StudioMembership?{identityStoreId: str?, persona: str?, principalId: str?, sid: str?}}

@endpoint GET /2020-08-01/studios/{studioId}/eula-acceptances
@required {studioId: str}
@optional {eulaIds: [str], nextToken: str}
@returns(200) {eulaAcceptances: [EulaAcceptance]?, nextToken: str?}

@endpoint GET /2020-08-01/eulas
@optional {eulaIds: [str], nextToken: str}
@returns(200) {eulas: [Eula]?, nextToken: str?}

@endpoint GET /2020-08-01/studios/{studioId}/launch-profiles/{launchProfileId}/membership
@required {launchProfileId: str, studioId: str}
@optional {maxResults: int, nextToken: str}
@returns(200) {members: [LaunchProfileMembership]?, nextToken: str?}

@endpoint GET /2020-08-01/studios/{studioId}/launch-profiles
@required {studioId: str}
@optional {maxResults: int, nextToken: str, principalId: str, states: [str]}
@returns(200) {launchProfiles: [LaunchProfile]?, nextToken: str?}

@endpoint GET /2020-08-01/studios/{studioId}/streaming-images
@required {studioId: str}
@optional {nextToken: str, owner: str}
@returns(200) {nextToken: str?, streamingImages: [StreamingImage]?}

@endpoint GET /2020-08-01/studios/{studioId}/streaming-session-backups
@required {studioId: str}
@optional {nextToken: str, ownedBy: str}
@returns(200) {nextToken: str?, streamingSessionBackups: [StreamingSessionBackup]?}

@endpoint GET /2020-08-01/studios/{studioId}/streaming-sessions
@required {studioId: str}
@optional {createdBy: str, nextToken: str, ownedBy: str, sessionIds: str}
@returns(200) {nextToken: str?, sessions: [StreamingSession]?}

@endpoint GET /2020-08-01/studios/{studioId}/studio-components
@required {studioId: str}
@optional {maxResults: int, nextToken: str, states: [str], types: [str]}
@returns(200) {nextToken: str?, studioComponents: [StudioComponent]?}

@endpoint GET /2020-08-01/studios/{studioId}/membership
@required {studioId: str}
@optional {maxResults: int, nextToken: str}
@returns(200) {members: [StudioMembership]?, nextToken: str?}

@endpoint GET /2020-08-01/studios
@optional {nextToken: str}
@returns(200) {nextToken: str?, studios: [Studio]}

@endpoint GET /2020-08-01/tags/{resourceArn}
@required {resourceArn: str}
@returns(200) {tags: map<str,str>?}

@endpoint POST /2020-08-01/studios/{studioId}/launch-profiles/{launchProfileId}/membership
@required {launchProfileId: str, studioId: str, identityStoreId: str, members: [NewLaunchProfileMember]}
@optional {X-Amz-Client-Token: str}

@endpoint POST /2020-08-01/studios/{studioId}/membership
@required {studioId: str, identityStoreId: str, members: [NewStudioMember]}
@optional {X-Amz-Client-Token: str}

@endpoint POST /2020-08-01/studios/{studioId}/streaming-sessions/{sessionId}/start
@required {sessionId: str, studioId: str}
@optional {X-Amz-Client-Token: str, backupId: str}
@returns(200) {session: StreamingSession?{arn: str?, automaticTerminationMode: str?, backupMode: str?, createdAt: str(timestamp)?, createdBy: str?, ec2InstanceType: str?, launchProfileId: str?, maxBackupsToRetain: int?, ownedBy: str?, sessionId: str?, sessionPersistenceMode: str?, startedAt: str(timestamp)?, startedBy: str?, startedFromBackupId: str?, state: str?, statusCode: str?, statusMessage: str?, stopAt: str(timestamp)?, stoppedAt: str(timestamp)?, stoppedBy: str?, streamingImageId: str?, tags: map<str,str>?, terminateAt: str(timestamp)?, updatedAt: str(timestamp)?, updatedBy: str?, volumeConfiguration: VolumeConfiguration?{iops: int?, size: int?, throughput: int?}, volumeRetentionMode: str?}}

@endpoint PUT /2020-08-01/studios/{studioId}/sso-configuration
@required {studioId: str}
@optional {X-Amz-Client-Token: str}
@returns(200) {studio: Studio{adminRoleArn: str?, arn: str?, createdAt: str(timestamp)?, displayName: str?, homeRegion: str?, ssoClientId: str?, state: str?, statusCode: str?, statusMessage: str?, studioEncryptionConfiguration: StudioEncryptionConfiguration?{keyArn: str?, keyType: str}, studioId: str?, studioName: str?, studioUrl: str?, tags: map<str,str>?, updatedAt: str(timestamp)?, userRoleArn: str?}}

@endpoint POST /2020-08-01/studios/{studioId}/streaming-sessions/{sessionId}/stop
@required {sessionId: str, studioId: str}
@optional {X-Amz-Client-Token: str, volumeRetentionMode: str}
@returns(200) {session: StreamingSession?{arn: str?, automaticTerminationMode: str?, backupMode: str?, createdAt: str(timestamp)?, createdBy: str?, ec2InstanceType: str?, launchProfileId: str?, maxBackupsToRetain: int?, ownedBy: str?, sessionId: str?, sessionPersistenceMode: str?, startedAt: str(timestamp)?, startedBy: str?, startedFromBackupId: str?, state: str?, statusCode: str?, statusMessage: str?, stopAt: str(timestamp)?, stoppedAt: str(timestamp)?, stoppedBy: str?, streamingImageId: str?, tags: map<str,str>?, terminateAt: str(timestamp)?, updatedAt: str(timestamp)?, updatedBy: str?, volumeConfiguration: VolumeConfiguration?{iops: int?, size: int?, throughput: int?}, volumeRetentionMode: str?}}

@endpoint POST /2020-08-01/tags/{resourceArn}
@required {resourceArn: str}
@optional {tags: map<str,str>}

@endpoint DELETE /2020-08-01/tags/{resourceArn}
@required {resourceArn: str, tagKeys: [str]}

@endpoint PATCH /2020-08-01/studios/{studioId}/launch-profiles/{launchProfileId}
@required {launchProfileId: str, studioId: str}
@optional {X-Amz-Client-Token: str, description: str, launchProfileProtocolVersions: [str], name: str, streamConfiguration: StreamConfigurationCreate, studioComponentIds: [str]}
@returns(200) {launchProfile: LaunchProfile?{arn: str?, createdAt: str(timestamp)?, createdBy: str?, description: str?, ec2SubnetIds: [str]?, launchProfileId: str?, launchProfileProtocolVersions: [str]?, name: str?, state: str?, statusCode: str?, statusMessage: str?, streamConfiguration: StreamConfiguration?{automaticTerminationMode: str?, clipboardMode: str, ec2InstanceTypes: [str], maxSessionLengthInMinutes: int?, maxStoppedSessionLengthInMinutes: int?, sessionBackup: StreamConfigurationSessionBackup?{maxBackupsToRetain: int?, mode: str?}, sessionPersistenceMode: str?, sessionStorage: StreamConfigurationSessionStorage?{mode: [str], root: StreamingSessionStorageRoot?}, streamingImageIds: [str], volumeConfiguration: VolumeConfiguration?{iops: int?, size: int?, throughput: int?}}, studioComponentIds: [str]?, tags: map<str,str>?, updatedAt: str(timestamp)?, updatedBy: str?, validationResults: [ValidationResult]?}}

@endpoint PATCH /2020-08-01/studios/{studioId}/launch-profiles/{launchProfileId}/membership/{principalId}
@required {launchProfileId: str, principalId: str, studioId: str, persona: str}
@optional {X-Amz-Client-Token: str}
@returns(200) {member: LaunchProfileMembership?{identityStoreId: str?, persona: str?, principalId: str?, sid: str?}}

@endpoint PATCH /2020-08-01/studios/{studioId}/streaming-images/{streamingImageId}
@required {streamingImageId: str, studioId: str}
@optional {X-Amz-Client-Token: str, description: str, name: str}
@returns(200) {streamingImage: StreamingImage?{arn: str?, description: str?, ec2ImageId: str?, encryptionConfiguration: StreamingImageEncryptionConfiguration?{keyArn: str?, keyType: str}, eulaIds: [str]?, name: str?, owner: str?, platform: str?, state: str?, statusCode: str?, statusMessage: str?, streamingImageId: str?, tags: map<str,str>?}}

@endpoint PATCH /2020-08-01/studios/{studioId}
@required {studioId: str}
@optional {X-Amz-Client-Token: str, adminRoleArn: str, displayName: str, userRoleArn: str}
@returns(200) {studio: Studio{adminRoleArn: str?, arn: str?, createdAt: str(timestamp)?, displayName: str?, homeRegion: str?, ssoClientId: str?, state: str?, statusCode: str?, statusMessage: str?, studioEncryptionConfiguration: StudioEncryptionConfiguration?{keyArn: str?, keyType: str}, studioId: str?, studioName: str?, studioUrl: str?, tags: map<str,str>?, updatedAt: str(timestamp)?, userRoleArn: str?}}

@endpoint PATCH /2020-08-01/studios/{studioId}/studio-components/{studioComponentId}
@required {studioComponentId: str, studioId: str}
@optional {X-Amz-Client-Token: str, configuration: StudioComponentConfiguration, description: str, ec2SecurityGroupIds: [str], initializationScripts: [StudioComponentInitializationScript], name: str, runtimeRoleArn: str, scriptParameters: [ScriptParameterKeyValue], secureInitializationRoleArn: str, subtype: str, type: str}
@returns(200) {studioComponent: StudioComponent?{arn: str?, configuration: StudioComponentConfiguration?{activeDirectoryConfiguration: ActiveDirectoryConfiguration?{computerAttributes: [ActiveDirectoryComputerAttribute]?, directoryId: str?, organizationalUnitDistinguishedName: str?}, computeFarmConfiguration: ComputeFarmConfiguration?{activeDirectoryUser: str?, endpoint: str?}, licenseServiceConfiguration: LicenseServiceConfiguration?{endpoint: str?}, sharedFileSystemConfiguration: SharedFileSystemConfiguration?{endpoint: str?, fileSystemId: str?, linuxMountPoint: str?, shareName: str?, windowsMountDrive: str?}}, createdAt: str(timestamp)?, createdBy: str?, description: str?, ec2SecurityGroupIds: [str]?, initializationScripts: [StudioComponentInitializationScript]?, name: str?, runtimeRoleArn: str?, scriptParameters: [ScriptParameterKeyValue]?, secureInitializationRoleArn: str?, state: str?, statusCode: str?, statusMessage: str?, studioComponentId: str?, subtype: str?, tags: map<str,str>?, type: str?, updatedAt: str(timestamp)?, updatedBy: str?}}

@end
