updateStack method

Future<UpdateStackResult> updateStack({
  1. required String name,
  2. List<AccessEndpoint>? accessEndpoints,
  3. AgentAccessConfigForUpdate? agentAccessConfig,
  4. ApplicationSettings? applicationSettings,
  5. List<StackAttribute>? attributesToDelete,
  6. ContentRedirection? contentRedirection,
  7. bool? deleteStorageConnectors,
  8. String? description,
  9. String? displayName,
  10. List<String>? embedHostDomains,
  11. String? feedbackURL,
  12. String? redirectURL,
  13. List<StorageConnector>? storageConnectors,
  14. StreamingExperienceSettings? streamingExperienceSettings,
  15. List<UserSetting>? userSettings,
})

Updates the specified fields for the specified stack.

May throw ConcurrentModificationException. May throw IncompatibleImageException. May throw InvalidAccountStatusException. May throw InvalidParameterCombinationException. May throw InvalidRoleException. May throw LimitExceededException. May throw OperationNotPermittedException. May throw ResourceInUseException. May throw ResourceNotFoundException.

Parameter name : The name of the stack.

Parameter accessEndpoints : The list of interface VPC endpoint (interface endpoint) objects. Users of the stack can connect to WorkSpaces Applications only through the specified endpoints.

Parameter agentAccessConfig : The configuration for agent access on the stack. Specify this to update agent access settings. To remove agent access, use AttributesToDelete with the AGENT_ACCESS_CONFIG value.

Parameter applicationSettings : The persistent application settings for users of a stack. When these settings are enabled, changes that users make to applications and Windows settings are automatically saved after each session and applied to the next session.

Parameter attributesToDelete : The stack attributes to delete.

Parameter deleteStorageConnectors : Deletes the storage connectors currently enabled for the stack.

Parameter description : The description to display.

Parameter displayName : The stack name to display.

Parameter embedHostDomains : The domains where WorkSpaces Applications streaming sessions can be embedded in an iframe. You must approve the domains that you want to host embedded WorkSpaces Applications streaming sessions.

Parameter feedbackURL : The URL that users are redirected to after they choose the Send Feedback link. If no URL is specified, no Send Feedback link is displayed.

Parameter redirectURL : The URL that users are redirected to after their streaming session ends.

Parameter storageConnectors : The storage connectors to enable.

Parameter streamingExperienceSettings : The streaming protocol you want your stack to prefer. This can be UDP or TCP. Currently, UDP is only supported in the Windows native client.

Parameter userSettings : The actions that are enabled or disabled for users during their streaming sessions. By default, these actions are enabled.

Implementation

Future<UpdateStackResult> updateStack({
  required String name,
  List<AccessEndpoint>? accessEndpoints,
  AgentAccessConfigForUpdate? agentAccessConfig,
  ApplicationSettings? applicationSettings,
  List<StackAttribute>? attributesToDelete,
  ContentRedirection? contentRedirection,
  bool? deleteStorageConnectors,
  String? description,
  String? displayName,
  List<String>? embedHostDomains,
  String? feedbackURL,
  String? redirectURL,
  List<StorageConnector>? storageConnectors,
  StreamingExperienceSettings? streamingExperienceSettings,
  List<UserSetting>? userSettings,
}) async {
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.1',
    'X-Amz-Target': 'PhotonAdminProxyService.UpdateStack'
  };
  final jsonResponse = await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      'Name': name,
      if (accessEndpoints != null) 'AccessEndpoints': accessEndpoints,
      if (agentAccessConfig != null) 'AgentAccessConfig': agentAccessConfig,
      if (applicationSettings != null)
        'ApplicationSettings': applicationSettings,
      if (attributesToDelete != null)
        'AttributesToDelete': attributesToDelete.map((e) => e.value).toList(),
      if (contentRedirection != null)
        'ContentRedirection': contentRedirection,
      if (deleteStorageConnectors != null)
        'DeleteStorageConnectors': deleteStorageConnectors,
      if (description != null) 'Description': description,
      if (displayName != null) 'DisplayName': displayName,
      if (embedHostDomains != null) 'EmbedHostDomains': embedHostDomains,
      if (feedbackURL != null) 'FeedbackURL': feedbackURL,
      if (redirectURL != null) 'RedirectURL': redirectURL,
      if (storageConnectors != null) 'StorageConnectors': storageConnectors,
      if (streamingExperienceSettings != null)
        'StreamingExperienceSettings': streamingExperienceSettings,
      if (userSettings != null) 'UserSettings': userSettings,
    },
  );

  return UpdateStackResult.fromJson(jsonResponse.body);
}