Skip to content

Commit

Permalink
feat(client-nimble): Amazon Nimble Studio adds support for IAM-based …
Browse files Browse the repository at this point in the history
…access to AWS resources for Nimble Studio components and custom studio components. Studio Component scripts use these roles on Nimble Studio workstation to mount filesystems, access S3 buckets, or other configured resources in the Studio's AWS account
  • Loading branch information
awstools committed Jul 14, 2022
1 parent a22c328 commit bae6c59
Show file tree
Hide file tree
Showing 5 changed files with 258 additions and 149 deletions.
2 changes: 1 addition & 1 deletion clients/client-nimble/src/Nimble.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1192,7 +1192,7 @@ export class Nimble extends NimbleClient {
}

/**
* <p>Lists the streaming image resources in a studio.</p>
* <p>Lists the streaming sessions in a studio.</p>
*/
public listStreamingSessions(
args: ListStreamingSessionsCommandInput,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ export interface ListStreamingSessionsCommandInput extends ListStreamingSessions
export interface ListStreamingSessionsCommandOutput extends ListStreamingSessionsResponse, __MetadataBearer {}

/**
* <p>Lists the streaming image resources in a studio.</p>
* <p>Lists the streaming sessions in a studio.</p>
* @example
* Use a bare-bones client and the command you need to make an API call.
* ```javascript
Expand Down
48 changes: 44 additions & 4 deletions clients/client-nimble/src/models/models_0.ts
Original file line number Diff line number Diff line change
Expand Up @@ -500,12 +500,12 @@ export interface StreamConfigurationCreate {
* <p>If the value is missing or set to 0, your sessions can’t be stopped. If you then call
* <code>StopStreamingSession</code>, the session fails. If the time that a session
* stays in the READY state exceeds the <code>maxSessionLengthInMinutes</code> value, the
* session will automatically be terminated by AWS (instead of stopped).</p>
* session will automatically be terminated (instead of stopped).</p>
* <p>If the value is set to a positive number, the session can be stopped. You can call
* <code>StopStreamingSession</code> to stop sessions in the READY state. If the time
* that a session stays in the READY state exceeds the
* <code>maxSessionLengthInMinutes</code> value, the session will automatically be
* stopped by AWS (instead of terminated).</p>
* stopped (instead of terminated).</p>
*/
maxStoppedSessionLengthInMinutes?: number;

Expand Down Expand Up @@ -658,12 +658,12 @@ export interface StreamConfiguration {
* <p>If the value is missing or set to 0, your sessions can’t be stopped. If you then call
* <code>StopStreamingSession</code>, the session fails. If the time that a session
* stays in the READY state exceeds the <code>maxSessionLengthInMinutes</code> value, the
* session will automatically be terminated by AWS (instead of stopped).</p>
* session will automatically be terminated (instead of stopped).</p>
* <p>If the value is set to a positive number, the session can be stopped. You can call
* <code>StopStreamingSession</code> to stop sessions in the READY state. If the time
* that a session stays in the READY state exceeds the
* <code>maxSessionLengthInMinutes</code> value, the session will automatically be
* stopped by AWS (instead of terminated).</p>
* stopped (instead of terminated).</p>
*/
maxStoppedSessionLengthInMinutes?: number;

Expand Down Expand Up @@ -1932,6 +1932,16 @@ export interface CreateStudioComponentRequest {
* <p>The type of the studio component.</p>
*/
type: StudioComponentType | string | undefined;

/**
* <p>An IAM role attached to Studio Component when the system initialization script runs which give the studio component access to AWS resources when the system initialization script runs.</p>
*/
secureInitializationRoleArn?: string;

/**
* <p>An IAM role attached to a Studio Component that gives the studio component access to AWS resources at anytime while the instance is running. </p>
*/
runtimeRoleArn?: string;
}

export namespace CreateStudioComponentRequest {
Expand Down Expand Up @@ -2078,6 +2088,16 @@ export interface StudioComponent {
* <p>The user ID of the user that most recently updated the resource.</p>
*/
updatedBy?: string;

/**
* <p>An IAM role attached to Studio Component when the system initialization script runs which give the studio component access to AWS resources when the system initialization script runs.</p>
*/
secureInitializationRoleArn?: string;

/**
* <p>An IAM role attached to a Studio Component that gives the studio component access to AWS resources at anytime while the instance is running. </p>
*/
runtimeRoleArn?: string;
}

export namespace StudioComponent {
Expand Down Expand Up @@ -2840,6 +2860,16 @@ export interface LaunchProfileInitializationScript {
* <p>The name for the studio component.</p>
*/
studioComponentName?: string;

/**
* <p>An IAM role attached to Studio Component when the system initialization script runs which give the studio component access to AWS resources when the system initialization script runs.</p>
*/
secureInitializationRoleArn?: string;

/**
* <p>An IAM role attached to a Studio Component that gives the studio component access to AWS resources at anytime while the instance is running. </p>
*/
runtimeRoleArn?: string;
}

export namespace LaunchProfileInitializationScript {
Expand Down Expand Up @@ -4163,6 +4193,16 @@ export interface UpdateStudioComponentRequest {
* <p>The type of the studio component.</p>
*/
type?: StudioComponentType | string;

/**
* <p>An IAM role attached to Studio Component when the system initialization script runs which give the studio component access to AWS resources when the system initialization script runs.</p>
*/
secureInitializationRoleArn?: string;

/**
* <p>An IAM role attached to a Studio Component that gives the studio component access to AWS resources at anytime while the instance is running. </p>
*/
runtimeRoleArn?: string;
}

export namespace UpdateStudioComponentRequest {
Expand Down
12 changes: 12 additions & 0 deletions clients/client-nimble/src/protocols/Aws_restJson1.ts
Original file line number Diff line number Diff line change
Expand Up @@ -479,12 +479,16 @@ export const serializeAws_restJson1CreateStudioComponentCommand = async (
),
}),
...(input.name != null && { name: input.name }),
...(input.runtimeRoleArn != null && { runtimeRoleArn: input.runtimeRoleArn }),
...(input.scriptParameters != null && {
scriptParameters: serializeAws_restJson1StudioComponentScriptParameterKeyValueList(
input.scriptParameters,
context
),
}),
...(input.secureInitializationRoleArn != null && {
secureInitializationRoleArn: input.secureInitializationRoleArn,
}),
...(input.subtype != null && { subtype: input.subtype }),
...(input.tags != null && { tags: serializeAws_restJson1Tags(input.tags, context) }),
...(input.type != null && { type: input.type }),
Expand Down Expand Up @@ -2060,12 +2064,16 @@ export const serializeAws_restJson1UpdateStudioComponentCommand = async (
),
}),
...(input.name != null && { name: input.name }),
...(input.runtimeRoleArn != null && { runtimeRoleArn: input.runtimeRoleArn }),
...(input.scriptParameters != null && {
scriptParameters: serializeAws_restJson1StudioComponentScriptParameterKeyValueList(
input.scriptParameters,
context
),
}),
...(input.secureInitializationRoleArn != null && {
secureInitializationRoleArn: input.secureInitializationRoleArn,
}),
...(input.subtype != null && { subtype: input.subtype }),
...(input.type != null && { type: input.type }),
});
Expand Down Expand Up @@ -5801,7 +5809,9 @@ const deserializeAws_restJson1LaunchProfileInitializationScript = (
context: __SerdeContext
): LaunchProfileInitializationScript => {
return {
runtimeRoleArn: __expectString(output.runtimeRoleArn),
script: __expectString(output.script),
secureInitializationRoleArn: __expectString(output.secureInitializationRoleArn),
studioComponentId: __expectString(output.studioComponentId),
studioComponentName: __expectString(output.studioComponentName),
} as any;
Expand Down Expand Up @@ -6151,10 +6161,12 @@ const deserializeAws_restJson1StudioComponent = (output: any, context: __SerdeCo
? deserializeAws_restJson1StudioComponentInitializationScriptList(output.initializationScripts, context)
: undefined,
name: __expectString(output.name),
runtimeRoleArn: __expectString(output.runtimeRoleArn),
scriptParameters:
output.scriptParameters != null
? deserializeAws_restJson1StudioComponentScriptParameterKeyValueList(output.scriptParameters, context)
: undefined,
secureInitializationRoleArn: __expectString(output.secureInitializationRoleArn),
state: __expectString(output.state),
statusCode: __expectString(output.statusCode),
statusMessage: __expectString(output.statusMessage),
Expand Down
Loading

0 comments on commit bae6c59

Please sign in to comment.