github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/cloudsearch/domainServiceAccessPolicy.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 cloudsearch 5 6 import ( 7 "context" 8 "reflect" 9 10 "errors" 11 "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" 12 "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 13 ) 14 15 // Provides an CloudSearch domain service access policy resource. 16 // 17 // The provider waits for the domain service access policy to become `Active` when applying a configuration. 18 // 19 // ## Example Usage 20 // 21 // <!--Start PulumiCodeChooser --> 22 // ```go 23 // package main 24 // 25 // import ( 26 // 27 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudsearch" 28 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" 29 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 30 // 31 // ) 32 // 33 // func main() { 34 // pulumi.Run(func(ctx *pulumi.Context) error { 35 // exampleDomain, err := cloudsearch.NewDomain(ctx, "example", &cloudsearch.DomainArgs{ 36 // Name: pulumi.String("example-domain"), 37 // }) 38 // if err != nil { 39 // return err 40 // } 41 // example, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ 42 // Statements: []iam.GetPolicyDocumentStatement{ 43 // { 44 // Sid: pulumi.StringRef("search_only"), 45 // Effect: pulumi.StringRef("Allow"), 46 // Principals: []iam.GetPolicyDocumentStatementPrincipal{ 47 // { 48 // Type: "*", 49 // Identifiers: []string{ 50 // "*", 51 // }, 52 // }, 53 // }, 54 // Actions: []string{ 55 // "cloudsearch:search", 56 // "cloudsearch:document", 57 // }, 58 // Conditions: []iam.GetPolicyDocumentStatementCondition{ 59 // { 60 // Test: "IpAddress", 61 // Variable: "aws:SourceIp", 62 // Values: []string{ 63 // "192.0.2.0/32", 64 // }, 65 // }, 66 // }, 67 // }, 68 // }, 69 // }, nil) 70 // if err != nil { 71 // return err 72 // } 73 // _, err = cloudsearch.NewDomainServiceAccessPolicy(ctx, "example", &cloudsearch.DomainServiceAccessPolicyArgs{ 74 // DomainName: exampleDomain.ID(), 75 // AccessPolicy: pulumi.String(example.Json), 76 // }) 77 // if err != nil { 78 // return err 79 // } 80 // return nil 81 // }) 82 // } 83 // 84 // ``` 85 // <!--End PulumiCodeChooser --> 86 // 87 // ## Import 88 // 89 // Using `pulumi import`, import CloudSearch domain service access policies using the domain name. For example: 90 // 91 // ```sh 92 // $ pulumi import aws:cloudsearch/domainServiceAccessPolicy:DomainServiceAccessPolicy example example-domain 93 // ``` 94 type DomainServiceAccessPolicy struct { 95 pulumi.CustomResourceState 96 97 // The access rules you want to configure. These rules replace any existing rules. See the [AWS documentation](https://docs.aws.amazon.com/cloudsearch/latest/developerguide/configuring-access.html) for details. 98 AccessPolicy pulumi.StringOutput `pulumi:"accessPolicy"` 99 // The CloudSearch domain name the policy applies to. 100 DomainName pulumi.StringOutput `pulumi:"domainName"` 101 } 102 103 // NewDomainServiceAccessPolicy registers a new resource with the given unique name, arguments, and options. 104 func NewDomainServiceAccessPolicy(ctx *pulumi.Context, 105 name string, args *DomainServiceAccessPolicyArgs, opts ...pulumi.ResourceOption) (*DomainServiceAccessPolicy, error) { 106 if args == nil { 107 return nil, errors.New("missing one or more required arguments") 108 } 109 110 if args.AccessPolicy == nil { 111 return nil, errors.New("invalid value for required argument 'AccessPolicy'") 112 } 113 if args.DomainName == nil { 114 return nil, errors.New("invalid value for required argument 'DomainName'") 115 } 116 opts = internal.PkgResourceDefaultOpts(opts) 117 var resource DomainServiceAccessPolicy 118 err := ctx.RegisterResource("aws:cloudsearch/domainServiceAccessPolicy:DomainServiceAccessPolicy", name, args, &resource, opts...) 119 if err != nil { 120 return nil, err 121 } 122 return &resource, nil 123 } 124 125 // GetDomainServiceAccessPolicy gets an existing DomainServiceAccessPolicy resource's state with the given name, ID, and optional 126 // state properties that are used to uniquely qualify the lookup (nil if not required). 127 func GetDomainServiceAccessPolicy(ctx *pulumi.Context, 128 name string, id pulumi.IDInput, state *DomainServiceAccessPolicyState, opts ...pulumi.ResourceOption) (*DomainServiceAccessPolicy, error) { 129 var resource DomainServiceAccessPolicy 130 err := ctx.ReadResource("aws:cloudsearch/domainServiceAccessPolicy:DomainServiceAccessPolicy", name, id, state, &resource, opts...) 131 if err != nil { 132 return nil, err 133 } 134 return &resource, nil 135 } 136 137 // Input properties used for looking up and filtering DomainServiceAccessPolicy resources. 138 type domainServiceAccessPolicyState struct { 139 // The access rules you want to configure. These rules replace any existing rules. See the [AWS documentation](https://docs.aws.amazon.com/cloudsearch/latest/developerguide/configuring-access.html) for details. 140 AccessPolicy *string `pulumi:"accessPolicy"` 141 // The CloudSearch domain name the policy applies to. 142 DomainName *string `pulumi:"domainName"` 143 } 144 145 type DomainServiceAccessPolicyState struct { 146 // The access rules you want to configure. These rules replace any existing rules. See the [AWS documentation](https://docs.aws.amazon.com/cloudsearch/latest/developerguide/configuring-access.html) for details. 147 AccessPolicy pulumi.StringPtrInput 148 // The CloudSearch domain name the policy applies to. 149 DomainName pulumi.StringPtrInput 150 } 151 152 func (DomainServiceAccessPolicyState) ElementType() reflect.Type { 153 return reflect.TypeOf((*domainServiceAccessPolicyState)(nil)).Elem() 154 } 155 156 type domainServiceAccessPolicyArgs struct { 157 // The access rules you want to configure. These rules replace any existing rules. See the [AWS documentation](https://docs.aws.amazon.com/cloudsearch/latest/developerguide/configuring-access.html) for details. 158 AccessPolicy string `pulumi:"accessPolicy"` 159 // The CloudSearch domain name the policy applies to. 160 DomainName string `pulumi:"domainName"` 161 } 162 163 // The set of arguments for constructing a DomainServiceAccessPolicy resource. 164 type DomainServiceAccessPolicyArgs struct { 165 // The access rules you want to configure. These rules replace any existing rules. See the [AWS documentation](https://docs.aws.amazon.com/cloudsearch/latest/developerguide/configuring-access.html) for details. 166 AccessPolicy pulumi.StringInput 167 // The CloudSearch domain name the policy applies to. 168 DomainName pulumi.StringInput 169 } 170 171 func (DomainServiceAccessPolicyArgs) ElementType() reflect.Type { 172 return reflect.TypeOf((*domainServiceAccessPolicyArgs)(nil)).Elem() 173 } 174 175 type DomainServiceAccessPolicyInput interface { 176 pulumi.Input 177 178 ToDomainServiceAccessPolicyOutput() DomainServiceAccessPolicyOutput 179 ToDomainServiceAccessPolicyOutputWithContext(ctx context.Context) DomainServiceAccessPolicyOutput 180 } 181 182 func (*DomainServiceAccessPolicy) ElementType() reflect.Type { 183 return reflect.TypeOf((**DomainServiceAccessPolicy)(nil)).Elem() 184 } 185 186 func (i *DomainServiceAccessPolicy) ToDomainServiceAccessPolicyOutput() DomainServiceAccessPolicyOutput { 187 return i.ToDomainServiceAccessPolicyOutputWithContext(context.Background()) 188 } 189 190 func (i *DomainServiceAccessPolicy) ToDomainServiceAccessPolicyOutputWithContext(ctx context.Context) DomainServiceAccessPolicyOutput { 191 return pulumi.ToOutputWithContext(ctx, i).(DomainServiceAccessPolicyOutput) 192 } 193 194 // DomainServiceAccessPolicyArrayInput is an input type that accepts DomainServiceAccessPolicyArray and DomainServiceAccessPolicyArrayOutput values. 195 // You can construct a concrete instance of `DomainServiceAccessPolicyArrayInput` via: 196 // 197 // DomainServiceAccessPolicyArray{ DomainServiceAccessPolicyArgs{...} } 198 type DomainServiceAccessPolicyArrayInput interface { 199 pulumi.Input 200 201 ToDomainServiceAccessPolicyArrayOutput() DomainServiceAccessPolicyArrayOutput 202 ToDomainServiceAccessPolicyArrayOutputWithContext(context.Context) DomainServiceAccessPolicyArrayOutput 203 } 204 205 type DomainServiceAccessPolicyArray []DomainServiceAccessPolicyInput 206 207 func (DomainServiceAccessPolicyArray) ElementType() reflect.Type { 208 return reflect.TypeOf((*[]*DomainServiceAccessPolicy)(nil)).Elem() 209 } 210 211 func (i DomainServiceAccessPolicyArray) ToDomainServiceAccessPolicyArrayOutput() DomainServiceAccessPolicyArrayOutput { 212 return i.ToDomainServiceAccessPolicyArrayOutputWithContext(context.Background()) 213 } 214 215 func (i DomainServiceAccessPolicyArray) ToDomainServiceAccessPolicyArrayOutputWithContext(ctx context.Context) DomainServiceAccessPolicyArrayOutput { 216 return pulumi.ToOutputWithContext(ctx, i).(DomainServiceAccessPolicyArrayOutput) 217 } 218 219 // DomainServiceAccessPolicyMapInput is an input type that accepts DomainServiceAccessPolicyMap and DomainServiceAccessPolicyMapOutput values. 220 // You can construct a concrete instance of `DomainServiceAccessPolicyMapInput` via: 221 // 222 // DomainServiceAccessPolicyMap{ "key": DomainServiceAccessPolicyArgs{...} } 223 type DomainServiceAccessPolicyMapInput interface { 224 pulumi.Input 225 226 ToDomainServiceAccessPolicyMapOutput() DomainServiceAccessPolicyMapOutput 227 ToDomainServiceAccessPolicyMapOutputWithContext(context.Context) DomainServiceAccessPolicyMapOutput 228 } 229 230 type DomainServiceAccessPolicyMap map[string]DomainServiceAccessPolicyInput 231 232 func (DomainServiceAccessPolicyMap) ElementType() reflect.Type { 233 return reflect.TypeOf((*map[string]*DomainServiceAccessPolicy)(nil)).Elem() 234 } 235 236 func (i DomainServiceAccessPolicyMap) ToDomainServiceAccessPolicyMapOutput() DomainServiceAccessPolicyMapOutput { 237 return i.ToDomainServiceAccessPolicyMapOutputWithContext(context.Background()) 238 } 239 240 func (i DomainServiceAccessPolicyMap) ToDomainServiceAccessPolicyMapOutputWithContext(ctx context.Context) DomainServiceAccessPolicyMapOutput { 241 return pulumi.ToOutputWithContext(ctx, i).(DomainServiceAccessPolicyMapOutput) 242 } 243 244 type DomainServiceAccessPolicyOutput struct{ *pulumi.OutputState } 245 246 func (DomainServiceAccessPolicyOutput) ElementType() reflect.Type { 247 return reflect.TypeOf((**DomainServiceAccessPolicy)(nil)).Elem() 248 } 249 250 func (o DomainServiceAccessPolicyOutput) ToDomainServiceAccessPolicyOutput() DomainServiceAccessPolicyOutput { 251 return o 252 } 253 254 func (o DomainServiceAccessPolicyOutput) ToDomainServiceAccessPolicyOutputWithContext(ctx context.Context) DomainServiceAccessPolicyOutput { 255 return o 256 } 257 258 // The access rules you want to configure. These rules replace any existing rules. See the [AWS documentation](https://docs.aws.amazon.com/cloudsearch/latest/developerguide/configuring-access.html) for details. 259 func (o DomainServiceAccessPolicyOutput) AccessPolicy() pulumi.StringOutput { 260 return o.ApplyT(func(v *DomainServiceAccessPolicy) pulumi.StringOutput { return v.AccessPolicy }).(pulumi.StringOutput) 261 } 262 263 // The CloudSearch domain name the policy applies to. 264 func (o DomainServiceAccessPolicyOutput) DomainName() pulumi.StringOutput { 265 return o.ApplyT(func(v *DomainServiceAccessPolicy) pulumi.StringOutput { return v.DomainName }).(pulumi.StringOutput) 266 } 267 268 type DomainServiceAccessPolicyArrayOutput struct{ *pulumi.OutputState } 269 270 func (DomainServiceAccessPolicyArrayOutput) ElementType() reflect.Type { 271 return reflect.TypeOf((*[]*DomainServiceAccessPolicy)(nil)).Elem() 272 } 273 274 func (o DomainServiceAccessPolicyArrayOutput) ToDomainServiceAccessPolicyArrayOutput() DomainServiceAccessPolicyArrayOutput { 275 return o 276 } 277 278 func (o DomainServiceAccessPolicyArrayOutput) ToDomainServiceAccessPolicyArrayOutputWithContext(ctx context.Context) DomainServiceAccessPolicyArrayOutput { 279 return o 280 } 281 282 func (o DomainServiceAccessPolicyArrayOutput) Index(i pulumi.IntInput) DomainServiceAccessPolicyOutput { 283 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *DomainServiceAccessPolicy { 284 return vs[0].([]*DomainServiceAccessPolicy)[vs[1].(int)] 285 }).(DomainServiceAccessPolicyOutput) 286 } 287 288 type DomainServiceAccessPolicyMapOutput struct{ *pulumi.OutputState } 289 290 func (DomainServiceAccessPolicyMapOutput) ElementType() reflect.Type { 291 return reflect.TypeOf((*map[string]*DomainServiceAccessPolicy)(nil)).Elem() 292 } 293 294 func (o DomainServiceAccessPolicyMapOutput) ToDomainServiceAccessPolicyMapOutput() DomainServiceAccessPolicyMapOutput { 295 return o 296 } 297 298 func (o DomainServiceAccessPolicyMapOutput) ToDomainServiceAccessPolicyMapOutputWithContext(ctx context.Context) DomainServiceAccessPolicyMapOutput { 299 return o 300 } 301 302 func (o DomainServiceAccessPolicyMapOutput) MapIndex(k pulumi.StringInput) DomainServiceAccessPolicyOutput { 303 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *DomainServiceAccessPolicy { 304 return vs[0].(map[string]*DomainServiceAccessPolicy)[vs[1].(string)] 305 }).(DomainServiceAccessPolicyOutput) 306 } 307 308 func init() { 309 pulumi.RegisterInputType(reflect.TypeOf((*DomainServiceAccessPolicyInput)(nil)).Elem(), &DomainServiceAccessPolicy{}) 310 pulumi.RegisterInputType(reflect.TypeOf((*DomainServiceAccessPolicyArrayInput)(nil)).Elem(), DomainServiceAccessPolicyArray{}) 311 pulumi.RegisterInputType(reflect.TypeOf((*DomainServiceAccessPolicyMapInput)(nil)).Elem(), DomainServiceAccessPolicyMap{}) 312 pulumi.RegisterOutputType(DomainServiceAccessPolicyOutput{}) 313 pulumi.RegisterOutputType(DomainServiceAccessPolicyArrayOutput{}) 314 pulumi.RegisterOutputType(DomainServiceAccessPolicyMapOutput{}) 315 }