private async Task InstallAsync(RunningDeployment deployment) { Guard.NotNull(deployment, "deployment can not be null"); Func <IAmazonSecurityTokenService> stsClientFactory = () => ClientHelpers.CreateSecurityTokenServiceClient(awsEnvironmentGeneration); Func <IAmazonIdentityManagementService> identityManagementClientFactory = () => ClientHelpers.CreateIdentityManagementServiceClient(awsEnvironmentGeneration); if (deployment.Variables.IsSet(SpecialVariables.Action.Aws.AssumeRoleARN) || !deployment.Variables.IsSet(SpecialVariables.Action.Aws.AccountId) || !deployment.Variables.IsSet(deployment.Variables.Get(SpecialVariables.Action.Aws.AccountId) + ".AccessKey")) { await WriteRoleInfo(stsClientFactory); } else { await WriteUseInfo(identityManagementClientFactory); } }