github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/iam/getPolicy.go (about) 1 // Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. 2 // *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** 3 4 package iam 5 6 import ( 7 "context" 8 "reflect" 9 10 "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" 11 "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 12 ) 13 14 // This data source can be used to fetch information about a specific 15 // IAM policy. 16 // 17 // ## Example Usage 18 // 19 // ### By ARN 20 // 21 // <!--Start PulumiCodeChooser --> 22 // ```go 23 // package main 24 // 25 // import ( 26 // 27 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" 28 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 29 // 30 // ) 31 // 32 // func main() { 33 // pulumi.Run(func(ctx *pulumi.Context) error { 34 // _, err := iam.LookupPolicy(ctx, &iam.LookupPolicyArgs{ 35 // Arn: pulumi.StringRef("arn:aws:iam::123456789012:policy/UsersManageOwnCredentials"), 36 // }, nil) 37 // if err != nil { 38 // return err 39 // } 40 // return nil 41 // }) 42 // } 43 // 44 // ``` 45 // <!--End PulumiCodeChooser --> 46 // 47 // ### By Name 48 // 49 // <!--Start PulumiCodeChooser --> 50 // ```go 51 // package main 52 // 53 // import ( 54 // 55 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" 56 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 57 // 58 // ) 59 // 60 // func main() { 61 // pulumi.Run(func(ctx *pulumi.Context) error { 62 // _, err := iam.LookupPolicy(ctx, &iam.LookupPolicyArgs{ 63 // Name: pulumi.StringRef("test_policy"), 64 // }, nil) 65 // if err != nil { 66 // return err 67 // } 68 // return nil 69 // }) 70 // } 71 // 72 // ``` 73 // <!--End PulumiCodeChooser --> 74 func LookupPolicy(ctx *pulumi.Context, args *LookupPolicyArgs, opts ...pulumi.InvokeOption) (*LookupPolicyResult, error) { 75 opts = internal.PkgInvokeDefaultOpts(opts) 76 var rv LookupPolicyResult 77 err := ctx.Invoke("aws:iam/getPolicy:getPolicy", args, &rv, opts...) 78 if err != nil { 79 return nil, err 80 } 81 return &rv, nil 82 } 83 84 // A collection of arguments for invoking getPolicy. 85 type LookupPolicyArgs struct { 86 // ARN of the IAM policy. 87 // Conflicts with `name` and `pathPrefix`. 88 Arn *string `pulumi:"arn"` 89 // Name of the IAM policy. 90 // Conflicts with `arn`. 91 Name *string `pulumi:"name"` 92 // Prefix of the path to the IAM policy. 93 // Defaults to a slash (`/`). 94 // Conflicts with `arn`. 95 PathPrefix *string `pulumi:"pathPrefix"` 96 // Key-value mapping of tags for the IAM Policy. 97 Tags map[string]string `pulumi:"tags"` 98 } 99 100 // A collection of values returned by getPolicy. 101 type LookupPolicyResult struct { 102 // ARN of the policy. 103 Arn string `pulumi:"arn"` 104 // Number of entities (users, groups, and roles) that the policy is attached to. 105 AttachmentCount int `pulumi:"attachmentCount"` 106 // Description of the policy. 107 Description string `pulumi:"description"` 108 // The provider-assigned unique ID for this managed resource. 109 Id string `pulumi:"id"` 110 Name string `pulumi:"name"` 111 // Path to the policy. 112 Path string `pulumi:"path"` 113 PathPrefix *string `pulumi:"pathPrefix"` 114 // Policy document of the policy. 115 Policy string `pulumi:"policy"` 116 // Policy's ID. 117 PolicyId string `pulumi:"policyId"` 118 // Key-value mapping of tags for the IAM Policy. 119 Tags map[string]string `pulumi:"tags"` 120 } 121 122 func LookupPolicyOutput(ctx *pulumi.Context, args LookupPolicyOutputArgs, opts ...pulumi.InvokeOption) LookupPolicyResultOutput { 123 return pulumi.ToOutputWithContext(context.Background(), args). 124 ApplyT(func(v interface{}) (LookupPolicyResult, error) { 125 args := v.(LookupPolicyArgs) 126 r, err := LookupPolicy(ctx, &args, opts...) 127 var s LookupPolicyResult 128 if r != nil { 129 s = *r 130 } 131 return s, err 132 }).(LookupPolicyResultOutput) 133 } 134 135 // A collection of arguments for invoking getPolicy. 136 type LookupPolicyOutputArgs struct { 137 // ARN of the IAM policy. 138 // Conflicts with `name` and `pathPrefix`. 139 Arn pulumi.StringPtrInput `pulumi:"arn"` 140 // Name of the IAM policy. 141 // Conflicts with `arn`. 142 Name pulumi.StringPtrInput `pulumi:"name"` 143 // Prefix of the path to the IAM policy. 144 // Defaults to a slash (`/`). 145 // Conflicts with `arn`. 146 PathPrefix pulumi.StringPtrInput `pulumi:"pathPrefix"` 147 // Key-value mapping of tags for the IAM Policy. 148 Tags pulumi.StringMapInput `pulumi:"tags"` 149 } 150 151 func (LookupPolicyOutputArgs) ElementType() reflect.Type { 152 return reflect.TypeOf((*LookupPolicyArgs)(nil)).Elem() 153 } 154 155 // A collection of values returned by getPolicy. 156 type LookupPolicyResultOutput struct{ *pulumi.OutputState } 157 158 func (LookupPolicyResultOutput) ElementType() reflect.Type { 159 return reflect.TypeOf((*LookupPolicyResult)(nil)).Elem() 160 } 161 162 func (o LookupPolicyResultOutput) ToLookupPolicyResultOutput() LookupPolicyResultOutput { 163 return o 164 } 165 166 func (o LookupPolicyResultOutput) ToLookupPolicyResultOutputWithContext(ctx context.Context) LookupPolicyResultOutput { 167 return o 168 } 169 170 // ARN of the policy. 171 func (o LookupPolicyResultOutput) Arn() pulumi.StringOutput { 172 return o.ApplyT(func(v LookupPolicyResult) string { return v.Arn }).(pulumi.StringOutput) 173 } 174 175 // Number of entities (users, groups, and roles) that the policy is attached to. 176 func (o LookupPolicyResultOutput) AttachmentCount() pulumi.IntOutput { 177 return o.ApplyT(func(v LookupPolicyResult) int { return v.AttachmentCount }).(pulumi.IntOutput) 178 } 179 180 // Description of the policy. 181 func (o LookupPolicyResultOutput) Description() pulumi.StringOutput { 182 return o.ApplyT(func(v LookupPolicyResult) string { return v.Description }).(pulumi.StringOutput) 183 } 184 185 // The provider-assigned unique ID for this managed resource. 186 func (o LookupPolicyResultOutput) Id() pulumi.StringOutput { 187 return o.ApplyT(func(v LookupPolicyResult) string { return v.Id }).(pulumi.StringOutput) 188 } 189 190 func (o LookupPolicyResultOutput) Name() pulumi.StringOutput { 191 return o.ApplyT(func(v LookupPolicyResult) string { return v.Name }).(pulumi.StringOutput) 192 } 193 194 // Path to the policy. 195 func (o LookupPolicyResultOutput) Path() pulumi.StringOutput { 196 return o.ApplyT(func(v LookupPolicyResult) string { return v.Path }).(pulumi.StringOutput) 197 } 198 199 func (o LookupPolicyResultOutput) PathPrefix() pulumi.StringPtrOutput { 200 return o.ApplyT(func(v LookupPolicyResult) *string { return v.PathPrefix }).(pulumi.StringPtrOutput) 201 } 202 203 // Policy document of the policy. 204 func (o LookupPolicyResultOutput) Policy() pulumi.StringOutput { 205 return o.ApplyT(func(v LookupPolicyResult) string { return v.Policy }).(pulumi.StringOutput) 206 } 207 208 // Policy's ID. 209 func (o LookupPolicyResultOutput) PolicyId() pulumi.StringOutput { 210 return o.ApplyT(func(v LookupPolicyResult) string { return v.PolicyId }).(pulumi.StringOutput) 211 } 212 213 // Key-value mapping of tags for the IAM Policy. 214 func (o LookupPolicyResultOutput) Tags() pulumi.StringMapOutput { 215 return o.ApplyT(func(v LookupPolicyResult) map[string]string { return v.Tags }).(pulumi.StringMapOutput) 216 } 217 218 func init() { 219 pulumi.RegisterOutputType(LookupPolicyResultOutput{}) 220 }