1. Packages
  2. Minio Provider
  3. API Docs
  4. getIamPolicyDocument
MinIO v0.16.4 published on Tuesday, Apr 29, 2025 by Pulumi

minio.getIamPolicyDocument

Start a Neo task
Explain and create a minio.getIamPolicyDocument resource
minio logo
MinIO v0.16.4 published on Tuesday, Apr 29, 2025 by Pulumi

    Example Usage

    import * as pulumi from "@pulumi/pulumi";
    import * as minio from "@pulumi/minio";
    
    const example = minio.getIamPolicyDocument({
        statements: [
            {
                sid: "1",
                actions: [
                    "s3:ListAllMyBuckets",
                    "s3:GetBucketLocation",
                ],
                resources: ["arn:aws:s3:::*"],
            },
            {
                actions: ["s3:ListBucket"],
                resources: ["arn:aws:s3:::state-terraform-s3"],
                conditions: [{
                    test: "StringLike",
                    variable: "s3:prefix",
                    values: [
                        "",
                        "home/",
                    ],
                }],
            },
            {
                actions: ["s3:PutObject"],
                resources: [
                    "arn:aws:s3:::state-terraform-s3",
                    "arn:aws:s3:::state-terraform-s3/*",
                ],
            },
        ],
    });
    const testPolicy = new minio.IamPolicy("test_policy", {
        name: "state-terraform-s3",
        policy: example.then(example => example.json),
    });
    
    import pulumi
    import pulumi_minio as minio
    
    example = minio.get_iam_policy_document(statements=[
        {
            "sid": "1",
            "actions": [
                "s3:ListAllMyBuckets",
                "s3:GetBucketLocation",
            ],
            "resources": ["arn:aws:s3:::*"],
        },
        {
            "actions": ["s3:ListBucket"],
            "resources": ["arn:aws:s3:::state-terraform-s3"],
            "conditions": [{
                "test": "StringLike",
                "variable": "s3:prefix",
                "values": [
                    "",
                    "home/",
                ],
            }],
        },
        {
            "actions": ["s3:PutObject"],
            "resources": [
                "arn:aws:s3:::state-terraform-s3",
                "arn:aws:s3:::state-terraform-s3/*",
            ],
        },
    ])
    test_policy = minio.IamPolicy("test_policy",
        name="state-terraform-s3",
        policy=example.json)
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-minio/sdk/go/minio"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		example, err := minio.GetIamPolicyDocument(ctx, &minio.GetIamPolicyDocumentArgs{
    			Statements: []minio.GetIamPolicyDocumentStatement{
    				{
    					Sid: pulumi.StringRef("1"),
    					Actions: []string{
    						"s3:ListAllMyBuckets",
    						"s3:GetBucketLocation",
    					},
    					Resources: []string{
    						"arn:aws:s3:::*",
    					},
    				},
    				{
    					Actions: []string{
    						"s3:ListBucket",
    					},
    					Resources: []string{
    						"arn:aws:s3:::state-terraform-s3",
    					},
    					Conditions: []minio.GetIamPolicyDocumentStatementCondition{
    						{
    							Test:     "StringLike",
    							Variable: "s3:prefix",
    							Values: []string{
    								"",
    								"home/",
    							},
    						},
    					},
    				},
    				{
    					Actions: []string{
    						"s3:PutObject",
    					},
    					Resources: []string{
    						"arn:aws:s3:::state-terraform-s3",
    						"arn:aws:s3:::state-terraform-s3/*",
    					},
    				},
    			},
    		}, nil)
    		if err != nil {
    			return err
    		}
    		_, err = minio.NewIamPolicy(ctx, "test_policy", &minio.IamPolicyArgs{
    			Name:   pulumi.String("state-terraform-s3"),
    			Policy: pulumi.String(example.Json),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Minio = Pulumi.Minio;
    
    return await Deployment.RunAsync(() => 
    {
        var example = Minio.GetIamPolicyDocument.Invoke(new()
        {
            Statements = new[]
            {
                new Minio.Inputs.GetIamPolicyDocumentStatementInputArgs
                {
                    Sid = "1",
                    Actions = new[]
                    {
                        "s3:ListAllMyBuckets",
                        "s3:GetBucketLocation",
                    },
                    Resources = new[]
                    {
                        "arn:aws:s3:::*",
                    },
                },
                new Minio.Inputs.GetIamPolicyDocumentStatementInputArgs
                {
                    Actions = new[]
                    {
                        "s3:ListBucket",
                    },
                    Resources = new[]
                    {
                        "arn:aws:s3:::state-terraform-s3",
                    },
                    Conditions = new[]
                    {
                        new Minio.Inputs.GetIamPolicyDocumentStatementConditionInputArgs
                        {
                            Test = "StringLike",
                            Variable = "s3:prefix",
                            Values = new[]
                            {
                                "",
                                "home/",
                            },
                        },
                    },
                },
                new Minio.Inputs.GetIamPolicyDocumentStatementInputArgs
                {
                    Actions = new[]
                    {
                        "s3:PutObject",
                    },
                    Resources = new[]
                    {
                        "arn:aws:s3:::state-terraform-s3",
                        "arn:aws:s3:::state-terraform-s3/*",
                    },
                },
            },
        });
    
        var testPolicy = new Minio.IamPolicy("test_policy", new()
        {
            Name = "state-terraform-s3",
            Policy = example.Apply(getIamPolicyDocumentResult => getIamPolicyDocumentResult.Json),
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.minio.MinioFunctions;
    import com.pulumi.minio.inputs.GetIamPolicyDocumentArgs;
    import com.pulumi.minio.IamPolicy;
    import com.pulumi.minio.IamPolicyArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            final var example = MinioFunctions.getIamPolicyDocument(GetIamPolicyDocumentArgs.builder()
                .statements(            
                    GetIamPolicyDocumentStatementArgs.builder()
                        .sid("1")
                        .actions(                    
                            "s3:ListAllMyBuckets",
                            "s3:GetBucketLocation")
                        .resources("arn:aws:s3:::*")
                        .build(),
                    GetIamPolicyDocumentStatementArgs.builder()
                        .actions("s3:ListBucket")
                        .resources("arn:aws:s3:::state-terraform-s3")
                        .conditions(GetIamPolicyDocumentStatementConditionArgs.builder()
                            .test("StringLike")
                            .variable("s3:prefix")
                            .values(                        
                                "",
                                "home/")
                            .build())
                        .build(),
                    GetIamPolicyDocumentStatementArgs.builder()
                        .actions("s3:PutObject")
                        .resources(                    
                            "arn:aws:s3:::state-terraform-s3",
                            "arn:aws:s3:::state-terraform-s3/*")
                        .build())
                .build());
    
            var testPolicy = new IamPolicy("testPolicy", IamPolicyArgs.builder()
                .name("state-terraform-s3")
                .policy(example.json())
                .build());
    
        }
    }
    
    resources:
      testPolicy:
        type: minio:IamPolicy
        name: test_policy
        properties:
          name: state-terraform-s3
          policy: ${example.json}
    variables:
      example:
        fn::invoke:
          function: minio:getIamPolicyDocument
          arguments:
            statements:
              - sid: '1'
                actions:
                  - s3:ListAllMyBuckets
                  - s3:GetBucketLocation
                resources:
                  - arn:aws:s3:::*
              - actions:
                  - s3:ListBucket
                resources:
                  - arn:aws:s3:::state-terraform-s3
                conditions:
                  - test: StringLike
                    variable: s3:prefix
                    values:
                      - ""
                      - home/
              - actions:
                  - s3:PutObject
                resources:
                  - arn:aws:s3:::state-terraform-s3
                  - arn:aws:s3:::state-terraform-s3/*
    

    Using getIamPolicyDocument

    Two invocation forms are available. The direct form accepts plain arguments and either blocks until the result value is available, or returns a Promise-wrapped result. The output form accepts Input-wrapped arguments and returns an Output-wrapped result.

    function getIamPolicyDocument(args: GetIamPolicyDocumentArgs, opts?: InvokeOptions): Promise<GetIamPolicyDocumentResult>
    function getIamPolicyDocumentOutput(args: GetIamPolicyDocumentOutputArgs, opts?: InvokeOptions): Output<GetIamPolicyDocumentResult>
    def get_iam_policy_document(override_json: Optional[str] = None,
                                policy_id: Optional[str] = None,
                                source_json: Optional[str] = None,
                                statements: Optional[Sequence[GetIamPolicyDocumentStatement]] = None,
                                version: Optional[str] = None,
                                opts: Optional[InvokeOptions] = None) -> GetIamPolicyDocumentResult
    def get_iam_policy_document_output(override_json: Optional[pulumi.Input[str]] = None,
                                policy_id: Optional[pulumi.Input[str]] = None,
                                source_json: Optional[pulumi.Input[str]] = None,
                                statements: Optional[pulumi.Input[Sequence[pulumi.Input[GetIamPolicyDocumentStatementArgs]]]] = None,
                                version: Optional[pulumi.Input[str]] = None,
                                opts: Optional[InvokeOptions] = None) -> Output[GetIamPolicyDocumentResult]
    func GetIamPolicyDocument(ctx *Context, args *GetIamPolicyDocumentArgs, opts ...InvokeOption) (*GetIamPolicyDocumentResult, error)
    func GetIamPolicyDocumentOutput(ctx *Context, args *GetIamPolicyDocumentOutputArgs, opts ...InvokeOption) GetIamPolicyDocumentResultOutput

    > Note: This function is named GetIamPolicyDocument in the Go SDK.

    public static class GetIamPolicyDocument 
    {
        public static Task<GetIamPolicyDocumentResult> InvokeAsync(GetIamPolicyDocumentArgs args, InvokeOptions? opts = null)
        public static Output<GetIamPolicyDocumentResult> Invoke(GetIamPolicyDocumentInvokeArgs args, InvokeOptions? opts = null)
    }
    public static CompletableFuture<GetIamPolicyDocumentResult> getIamPolicyDocument(GetIamPolicyDocumentArgs args, InvokeOptions options)
    public static Output<GetIamPolicyDocumentResult> getIamPolicyDocument(GetIamPolicyDocumentArgs args, InvokeOptions options)
    
    fn::invoke:
      function: minio:index/getIamPolicyDocument:getIamPolicyDocument
      arguments:
        # arguments dictionary

    The following arguments are supported:

    getIamPolicyDocument Result

    The following output properties are available:

    Id string
    The provider-assigned unique ID for this managed resource.
    Json string
    OverrideJson string
    PolicyId string
    SourceJson string
    Statements List<GetIamPolicyDocumentStatement>
    Version string
    Id string
    The provider-assigned unique ID for this managed resource.
    Json string
    OverrideJson string
    PolicyId string
    SourceJson string
    Statements []GetIamPolicyDocumentStatement
    Version string
    id String
    The provider-assigned unique ID for this managed resource.
    json String
    overrideJson String
    policyId String
    sourceJson String
    statements List<GetIamPolicyDocumentStatement>
    version String
    id string
    The provider-assigned unique ID for this managed resource.
    json string
    overrideJson string
    policyId string
    sourceJson string
    statements GetIamPolicyDocumentStatement[]
    version string
    id str
    The provider-assigned unique ID for this managed resource.
    json str
    override_json str
    policy_id str
    source_json str
    statements Sequence[GetIamPolicyDocumentStatement]
    version str
    id String
    The provider-assigned unique ID for this managed resource.
    json String
    overrideJson String
    policyId String
    sourceJson String
    statements List<Property Map>
    version String

    Supporting Types

    GetIamPolicyDocumentStatement

    actions List<String>
    conditions List<Property Map>
    effect String
    principal String
    resources List<String>
    sid String

    GetIamPolicyDocumentStatementCondition

    Test string
    Values List<string>
    Variable string
    Test string
    Values []string
    Variable string
    test String
    values List<String>
    variable String
    test string
    values string[]
    variable string
    test str
    values Sequence[str]
    variable str
    test String
    values List<String>
    variable String

    Package Details

    Repository
    MinIO pulumi/pulumi-minio
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the minio Terraform Provider.
    minio logo
    MinIO v0.16.4 published on Tuesday, Apr 29, 2025 by Pulumi
      Meet Neo: Your AI Platform Teammate