github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/redshift/dataShareAuthorization.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 redshift 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 // Resource for managing an AWS Redshift Data Share Authorization. 16 // 17 // ## Example Usage 18 // 19 // ### Basic Usage 20 // 21 // <!--Start PulumiCodeChooser --> 22 // ```go 23 // package main 24 // 25 // import ( 26 // 27 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/redshift" 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 := redshift.NewDataShareAuthorization(ctx, "example", &redshift.DataShareAuthorizationArgs{ 35 // ConsumerIdentifier: pulumi.String("012345678901"), 36 // DataShareArn: pulumi.String("arn:aws:redshift:us-west-2:012345678901:datashare:3072dae5-022b-4d45-9cd3-01f010aae4b2/example_share"), 37 // }) 38 // if err != nil { 39 // return err 40 // } 41 // return nil 42 // }) 43 // } 44 // 45 // ``` 46 // <!--End PulumiCodeChooser --> 47 // 48 // ## Import 49 // 50 // Using `pulumi import`, import Redshift Data Share Authorization using the `id`. For example: 51 // 52 // ```sh 53 // $ pulumi import aws:redshift/dataShareAuthorization:DataShareAuthorization example arn:aws:redshift:us-west-2:012345678901:datashare:3072dae5-022b-4d45-9cd3-01f010aae4b2/example_share,012345678901 54 // ``` 55 type DataShareAuthorization struct { 56 pulumi.CustomResourceState 57 58 // Whether to allow write operations for a datashare. 59 AllowWrites pulumi.BoolPtrOutput `pulumi:"allowWrites"` 60 // Identifier of the data consumer that is authorized to access the datashare. This identifier is an AWS account ID or a keyword, such as `ADX`. 61 ConsumerIdentifier pulumi.StringOutput `pulumi:"consumerIdentifier"` 62 // Amazon Resource Name (ARN) of the datashare that producers are to authorize sharing for. 63 // 64 // The following arguments are optional: 65 DataShareArn pulumi.StringOutput `pulumi:"dataShareArn"` 66 // Identifier of a datashare to show its managing entity. 67 ManagedBy pulumi.StringOutput `pulumi:"managedBy"` 68 // Amazon Resource Name (ARN) of the producer. 69 ProducerArn pulumi.StringOutput `pulumi:"producerArn"` 70 } 71 72 // NewDataShareAuthorization registers a new resource with the given unique name, arguments, and options. 73 func NewDataShareAuthorization(ctx *pulumi.Context, 74 name string, args *DataShareAuthorizationArgs, opts ...pulumi.ResourceOption) (*DataShareAuthorization, error) { 75 if args == nil { 76 return nil, errors.New("missing one or more required arguments") 77 } 78 79 if args.ConsumerIdentifier == nil { 80 return nil, errors.New("invalid value for required argument 'ConsumerIdentifier'") 81 } 82 if args.DataShareArn == nil { 83 return nil, errors.New("invalid value for required argument 'DataShareArn'") 84 } 85 opts = internal.PkgResourceDefaultOpts(opts) 86 var resource DataShareAuthorization 87 err := ctx.RegisterResource("aws:redshift/dataShareAuthorization:DataShareAuthorization", name, args, &resource, opts...) 88 if err != nil { 89 return nil, err 90 } 91 return &resource, nil 92 } 93 94 // GetDataShareAuthorization gets an existing DataShareAuthorization resource's state with the given name, ID, and optional 95 // state properties that are used to uniquely qualify the lookup (nil if not required). 96 func GetDataShareAuthorization(ctx *pulumi.Context, 97 name string, id pulumi.IDInput, state *DataShareAuthorizationState, opts ...pulumi.ResourceOption) (*DataShareAuthorization, error) { 98 var resource DataShareAuthorization 99 err := ctx.ReadResource("aws:redshift/dataShareAuthorization:DataShareAuthorization", name, id, state, &resource, opts...) 100 if err != nil { 101 return nil, err 102 } 103 return &resource, nil 104 } 105 106 // Input properties used for looking up and filtering DataShareAuthorization resources. 107 type dataShareAuthorizationState struct { 108 // Whether to allow write operations for a datashare. 109 AllowWrites *bool `pulumi:"allowWrites"` 110 // Identifier of the data consumer that is authorized to access the datashare. This identifier is an AWS account ID or a keyword, such as `ADX`. 111 ConsumerIdentifier *string `pulumi:"consumerIdentifier"` 112 // Amazon Resource Name (ARN) of the datashare that producers are to authorize sharing for. 113 // 114 // The following arguments are optional: 115 DataShareArn *string `pulumi:"dataShareArn"` 116 // Identifier of a datashare to show its managing entity. 117 ManagedBy *string `pulumi:"managedBy"` 118 // Amazon Resource Name (ARN) of the producer. 119 ProducerArn *string `pulumi:"producerArn"` 120 } 121 122 type DataShareAuthorizationState struct { 123 // Whether to allow write operations for a datashare. 124 AllowWrites pulumi.BoolPtrInput 125 // Identifier of the data consumer that is authorized to access the datashare. This identifier is an AWS account ID or a keyword, such as `ADX`. 126 ConsumerIdentifier pulumi.StringPtrInput 127 // Amazon Resource Name (ARN) of the datashare that producers are to authorize sharing for. 128 // 129 // The following arguments are optional: 130 DataShareArn pulumi.StringPtrInput 131 // Identifier of a datashare to show its managing entity. 132 ManagedBy pulumi.StringPtrInput 133 // Amazon Resource Name (ARN) of the producer. 134 ProducerArn pulumi.StringPtrInput 135 } 136 137 func (DataShareAuthorizationState) ElementType() reflect.Type { 138 return reflect.TypeOf((*dataShareAuthorizationState)(nil)).Elem() 139 } 140 141 type dataShareAuthorizationArgs struct { 142 // Whether to allow write operations for a datashare. 143 AllowWrites *bool `pulumi:"allowWrites"` 144 // Identifier of the data consumer that is authorized to access the datashare. This identifier is an AWS account ID or a keyword, such as `ADX`. 145 ConsumerIdentifier string `pulumi:"consumerIdentifier"` 146 // Amazon Resource Name (ARN) of the datashare that producers are to authorize sharing for. 147 // 148 // The following arguments are optional: 149 DataShareArn string `pulumi:"dataShareArn"` 150 } 151 152 // The set of arguments for constructing a DataShareAuthorization resource. 153 type DataShareAuthorizationArgs struct { 154 // Whether to allow write operations for a datashare. 155 AllowWrites pulumi.BoolPtrInput 156 // Identifier of the data consumer that is authorized to access the datashare. This identifier is an AWS account ID or a keyword, such as `ADX`. 157 ConsumerIdentifier pulumi.StringInput 158 // Amazon Resource Name (ARN) of the datashare that producers are to authorize sharing for. 159 // 160 // The following arguments are optional: 161 DataShareArn pulumi.StringInput 162 } 163 164 func (DataShareAuthorizationArgs) ElementType() reflect.Type { 165 return reflect.TypeOf((*dataShareAuthorizationArgs)(nil)).Elem() 166 } 167 168 type DataShareAuthorizationInput interface { 169 pulumi.Input 170 171 ToDataShareAuthorizationOutput() DataShareAuthorizationOutput 172 ToDataShareAuthorizationOutputWithContext(ctx context.Context) DataShareAuthorizationOutput 173 } 174 175 func (*DataShareAuthorization) ElementType() reflect.Type { 176 return reflect.TypeOf((**DataShareAuthorization)(nil)).Elem() 177 } 178 179 func (i *DataShareAuthorization) ToDataShareAuthorizationOutput() DataShareAuthorizationOutput { 180 return i.ToDataShareAuthorizationOutputWithContext(context.Background()) 181 } 182 183 func (i *DataShareAuthorization) ToDataShareAuthorizationOutputWithContext(ctx context.Context) DataShareAuthorizationOutput { 184 return pulumi.ToOutputWithContext(ctx, i).(DataShareAuthorizationOutput) 185 } 186 187 // DataShareAuthorizationArrayInput is an input type that accepts DataShareAuthorizationArray and DataShareAuthorizationArrayOutput values. 188 // You can construct a concrete instance of `DataShareAuthorizationArrayInput` via: 189 // 190 // DataShareAuthorizationArray{ DataShareAuthorizationArgs{...} } 191 type DataShareAuthorizationArrayInput interface { 192 pulumi.Input 193 194 ToDataShareAuthorizationArrayOutput() DataShareAuthorizationArrayOutput 195 ToDataShareAuthorizationArrayOutputWithContext(context.Context) DataShareAuthorizationArrayOutput 196 } 197 198 type DataShareAuthorizationArray []DataShareAuthorizationInput 199 200 func (DataShareAuthorizationArray) ElementType() reflect.Type { 201 return reflect.TypeOf((*[]*DataShareAuthorization)(nil)).Elem() 202 } 203 204 func (i DataShareAuthorizationArray) ToDataShareAuthorizationArrayOutput() DataShareAuthorizationArrayOutput { 205 return i.ToDataShareAuthorizationArrayOutputWithContext(context.Background()) 206 } 207 208 func (i DataShareAuthorizationArray) ToDataShareAuthorizationArrayOutputWithContext(ctx context.Context) DataShareAuthorizationArrayOutput { 209 return pulumi.ToOutputWithContext(ctx, i).(DataShareAuthorizationArrayOutput) 210 } 211 212 // DataShareAuthorizationMapInput is an input type that accepts DataShareAuthorizationMap and DataShareAuthorizationMapOutput values. 213 // You can construct a concrete instance of `DataShareAuthorizationMapInput` via: 214 // 215 // DataShareAuthorizationMap{ "key": DataShareAuthorizationArgs{...} } 216 type DataShareAuthorizationMapInput interface { 217 pulumi.Input 218 219 ToDataShareAuthorizationMapOutput() DataShareAuthorizationMapOutput 220 ToDataShareAuthorizationMapOutputWithContext(context.Context) DataShareAuthorizationMapOutput 221 } 222 223 type DataShareAuthorizationMap map[string]DataShareAuthorizationInput 224 225 func (DataShareAuthorizationMap) ElementType() reflect.Type { 226 return reflect.TypeOf((*map[string]*DataShareAuthorization)(nil)).Elem() 227 } 228 229 func (i DataShareAuthorizationMap) ToDataShareAuthorizationMapOutput() DataShareAuthorizationMapOutput { 230 return i.ToDataShareAuthorizationMapOutputWithContext(context.Background()) 231 } 232 233 func (i DataShareAuthorizationMap) ToDataShareAuthorizationMapOutputWithContext(ctx context.Context) DataShareAuthorizationMapOutput { 234 return pulumi.ToOutputWithContext(ctx, i).(DataShareAuthorizationMapOutput) 235 } 236 237 type DataShareAuthorizationOutput struct{ *pulumi.OutputState } 238 239 func (DataShareAuthorizationOutput) ElementType() reflect.Type { 240 return reflect.TypeOf((**DataShareAuthorization)(nil)).Elem() 241 } 242 243 func (o DataShareAuthorizationOutput) ToDataShareAuthorizationOutput() DataShareAuthorizationOutput { 244 return o 245 } 246 247 func (o DataShareAuthorizationOutput) ToDataShareAuthorizationOutputWithContext(ctx context.Context) DataShareAuthorizationOutput { 248 return o 249 } 250 251 // Whether to allow write operations for a datashare. 252 func (o DataShareAuthorizationOutput) AllowWrites() pulumi.BoolPtrOutput { 253 return o.ApplyT(func(v *DataShareAuthorization) pulumi.BoolPtrOutput { return v.AllowWrites }).(pulumi.BoolPtrOutput) 254 } 255 256 // Identifier of the data consumer that is authorized to access the datashare. This identifier is an AWS account ID or a keyword, such as `ADX`. 257 func (o DataShareAuthorizationOutput) ConsumerIdentifier() pulumi.StringOutput { 258 return o.ApplyT(func(v *DataShareAuthorization) pulumi.StringOutput { return v.ConsumerIdentifier }).(pulumi.StringOutput) 259 } 260 261 // Amazon Resource Name (ARN) of the datashare that producers are to authorize sharing for. 262 // 263 // The following arguments are optional: 264 func (o DataShareAuthorizationOutput) DataShareArn() pulumi.StringOutput { 265 return o.ApplyT(func(v *DataShareAuthorization) pulumi.StringOutput { return v.DataShareArn }).(pulumi.StringOutput) 266 } 267 268 // Identifier of a datashare to show its managing entity. 269 func (o DataShareAuthorizationOutput) ManagedBy() pulumi.StringOutput { 270 return o.ApplyT(func(v *DataShareAuthorization) pulumi.StringOutput { return v.ManagedBy }).(pulumi.StringOutput) 271 } 272 273 // Amazon Resource Name (ARN) of the producer. 274 func (o DataShareAuthorizationOutput) ProducerArn() pulumi.StringOutput { 275 return o.ApplyT(func(v *DataShareAuthorization) pulumi.StringOutput { return v.ProducerArn }).(pulumi.StringOutput) 276 } 277 278 type DataShareAuthorizationArrayOutput struct{ *pulumi.OutputState } 279 280 func (DataShareAuthorizationArrayOutput) ElementType() reflect.Type { 281 return reflect.TypeOf((*[]*DataShareAuthorization)(nil)).Elem() 282 } 283 284 func (o DataShareAuthorizationArrayOutput) ToDataShareAuthorizationArrayOutput() DataShareAuthorizationArrayOutput { 285 return o 286 } 287 288 func (o DataShareAuthorizationArrayOutput) ToDataShareAuthorizationArrayOutputWithContext(ctx context.Context) DataShareAuthorizationArrayOutput { 289 return o 290 } 291 292 func (o DataShareAuthorizationArrayOutput) Index(i pulumi.IntInput) DataShareAuthorizationOutput { 293 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *DataShareAuthorization { 294 return vs[0].([]*DataShareAuthorization)[vs[1].(int)] 295 }).(DataShareAuthorizationOutput) 296 } 297 298 type DataShareAuthorizationMapOutput struct{ *pulumi.OutputState } 299 300 func (DataShareAuthorizationMapOutput) ElementType() reflect.Type { 301 return reflect.TypeOf((*map[string]*DataShareAuthorization)(nil)).Elem() 302 } 303 304 func (o DataShareAuthorizationMapOutput) ToDataShareAuthorizationMapOutput() DataShareAuthorizationMapOutput { 305 return o 306 } 307 308 func (o DataShareAuthorizationMapOutput) ToDataShareAuthorizationMapOutputWithContext(ctx context.Context) DataShareAuthorizationMapOutput { 309 return o 310 } 311 312 func (o DataShareAuthorizationMapOutput) MapIndex(k pulumi.StringInput) DataShareAuthorizationOutput { 313 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *DataShareAuthorization { 314 return vs[0].(map[string]*DataShareAuthorization)[vs[1].(string)] 315 }).(DataShareAuthorizationOutput) 316 } 317 318 func init() { 319 pulumi.RegisterInputType(reflect.TypeOf((*DataShareAuthorizationInput)(nil)).Elem(), &DataShareAuthorization{}) 320 pulumi.RegisterInputType(reflect.TypeOf((*DataShareAuthorizationArrayInput)(nil)).Elem(), DataShareAuthorizationArray{}) 321 pulumi.RegisterInputType(reflect.TypeOf((*DataShareAuthorizationMapInput)(nil)).Elem(), DataShareAuthorizationMap{}) 322 pulumi.RegisterOutputType(DataShareAuthorizationOutput{}) 323 pulumi.RegisterOutputType(DataShareAuthorizationArrayOutput{}) 324 pulumi.RegisterOutputType(DataShareAuthorizationMapOutput{}) 325 }