thousands-train-46386
12/08/2022, 12:10 PMiam.GetPolicyDocument
resource. In the policy statement, I need to provide a federated principle with an identifier value of an ARN provided by resource created earlier in the stack:
myPolicy, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{
Statements: []iam.GetPolicyDocumentStatement{
{
Sid: pulumi.StringRef(""),
Effect: pulumi.StringRef("Allow"),
Principals: []iam.GetPolicyDocumentStatementPrincipal{
{
Type: "Federated",
Identifiers: <ARN>, // <----- this input
},
},
.......
})
The field Identifiers
takes in a slice of strings but I’m needing to provide an ARN value which is not known until earlier stack resources are created and presented in type pulumi.StringOutput
. Is this possible?little-soccer-5693
12/08/2022, 3:56 PMthousands-train-46386
12/08/2022, 5:26 PMpulumi.StringArray
(or any pulumi custom type which allows a pulumi output) there is a compile error:
cannot use (pulumi.StringArray literal) (value of type pulumi.StringArray) as []string value in struct literal
I believe this indicates I must construct a string slice from pulumi output types in order to configure this resource?fierce-ability-58936
12/08/2022, 7:10 PMvar arns pulumi.StringArrayOutput = pulumi.ToStringArrayOutput([]pulumi.StringOutput{
arn1,
arn2,
},
)
iam.GetPolicyDocumentOutput(ctx, iam.GetPolicyDocumentOutputArgs{
Statements: iam.GetPolicyDocumentStatementArray{
iam.GetPolicyDocumentStatementArgs{
Sid: pulumi.String(""),
Effect: pulumi.String("Allow"),
Principals: iam.GetPolicyDocumentStatementPrincipalArray{
iam.GetPolicyDocumentStatementPrincipalArgs{
Type: pulumi.String("Federated"),
Identifiers: arns, // <- pulumi.StringArrayOutput here
},
},
},
},
})
it compiles for me, but I didn't test it.little-soccer-5693
12/08/2022, 8:05 PMiam.GetPolicyDocumentOutput(ctx, iam.GetPolicyDocumentOutputArgs{
Statements: iam.GetPolicyDocumentStatementArray{
iam.GetPolicyDocumentStatementArgs{
Sid: pulumi.String(""),
Effect: pulumi.String("Allow"),
Principals: iam.GetPolicyDocumentStatementPrincipalArray{
iam.GetPolicyDocumentStatementPrincipalArgs{
Type: pulumi.String("Federated"),
Identifiers: pulumi.StringArray{res.Arn},
},
},
},
},
})
where iam is version 5:
import "github.com/pulumi/pulumi-aws/sdk/v5/go/aws/iam"thousands-train-46386
12/08/2022, 10:08 PM