github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/ssm/resourceDataSync.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 ssm 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 a SSM resource data sync. 16 // 17 // ## Example Usage 18 // 19 // <!--Start PulumiCodeChooser --> 20 // ```go 21 // package main 22 // 23 // import ( 24 // 25 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" 26 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" 27 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ssm" 28 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 29 // 30 // ) 31 // 32 // func main() { 33 // pulumi.Run(func(ctx *pulumi.Context) error { 34 // hogeBucketV2, err := s3.NewBucketV2(ctx, "hoge", &s3.BucketV2Args{ 35 // Bucket: pulumi.String("tf-test-bucket-1234"), 36 // }) 37 // if err != nil { 38 // return err 39 // } 40 // hoge, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ 41 // Statements: []iam.GetPolicyDocumentStatement{ 42 // { 43 // Sid: pulumi.StringRef("SSMBucketPermissionsCheck"), 44 // Effect: pulumi.StringRef("Allow"), 45 // Principals: []iam.GetPolicyDocumentStatementPrincipal{ 46 // { 47 // Type: "Service", 48 // Identifiers: []string{ 49 // "ssm.amazonaws.com", 50 // }, 51 // }, 52 // }, 53 // Actions: []string{ 54 // "s3:GetBucketAcl", 55 // }, 56 // Resources: []string{ 57 // "arn:aws:s3:::tf-test-bucket-1234", 58 // }, 59 // }, 60 // { 61 // Sid: pulumi.StringRef("SSMBucketDelivery"), 62 // Effect: pulumi.StringRef("Allow"), 63 // Principals: []iam.GetPolicyDocumentStatementPrincipal{ 64 // { 65 // Type: "Service", 66 // Identifiers: []string{ 67 // "ssm.amazonaws.com", 68 // }, 69 // }, 70 // }, 71 // Actions: []string{ 72 // "s3:PutObject", 73 // }, 74 // Resources: []string{ 75 // "arn:aws:s3:::tf-test-bucket-1234/*", 76 // }, 77 // Conditions: []iam.GetPolicyDocumentStatementCondition{ 78 // { 79 // Test: "StringEquals", 80 // Variable: "s3:x-amz-acl", 81 // Values: []string{ 82 // "bucket-owner-full-control", 83 // }, 84 // }, 85 // }, 86 // }, 87 // }, 88 // }, nil) 89 // if err != nil { 90 // return err 91 // } 92 // _, err = s3.NewBucketPolicy(ctx, "hoge", &s3.BucketPolicyArgs{ 93 // Bucket: hogeBucketV2.ID(), 94 // Policy: pulumi.String(hoge.Json), 95 // }) 96 // if err != nil { 97 // return err 98 // } 99 // _, err = ssm.NewResourceDataSync(ctx, "foo", &ssm.ResourceDataSyncArgs{ 100 // Name: pulumi.String("foo"), 101 // S3Destination: &ssm.ResourceDataSyncS3DestinationArgs{ 102 // BucketName: hogeBucketV2.Bucket, 103 // Region: hogeBucketV2.Region, 104 // }, 105 // }) 106 // if err != nil { 107 // return err 108 // } 109 // return nil 110 // }) 111 // } 112 // 113 // ``` 114 // <!--End PulumiCodeChooser --> 115 // 116 // ## Import 117 // 118 // Using `pulumi import`, import SSM resource data sync using the `name`. For example: 119 // 120 // ```sh 121 // $ pulumi import aws:ssm/resourceDataSync:ResourceDataSync example example-name 122 // ``` 123 type ResourceDataSync struct { 124 pulumi.CustomResourceState 125 126 // Name for the configuration. 127 Name pulumi.StringOutput `pulumi:"name"` 128 // Amazon S3 configuration details for the sync. 129 S3Destination ResourceDataSyncS3DestinationOutput `pulumi:"s3Destination"` 130 } 131 132 // NewResourceDataSync registers a new resource with the given unique name, arguments, and options. 133 func NewResourceDataSync(ctx *pulumi.Context, 134 name string, args *ResourceDataSyncArgs, opts ...pulumi.ResourceOption) (*ResourceDataSync, error) { 135 if args == nil { 136 return nil, errors.New("missing one or more required arguments") 137 } 138 139 if args.S3Destination == nil { 140 return nil, errors.New("invalid value for required argument 'S3Destination'") 141 } 142 opts = internal.PkgResourceDefaultOpts(opts) 143 var resource ResourceDataSync 144 err := ctx.RegisterResource("aws:ssm/resourceDataSync:ResourceDataSync", name, args, &resource, opts...) 145 if err != nil { 146 return nil, err 147 } 148 return &resource, nil 149 } 150 151 // GetResourceDataSync gets an existing ResourceDataSync resource's state with the given name, ID, and optional 152 // state properties that are used to uniquely qualify the lookup (nil if not required). 153 func GetResourceDataSync(ctx *pulumi.Context, 154 name string, id pulumi.IDInput, state *ResourceDataSyncState, opts ...pulumi.ResourceOption) (*ResourceDataSync, error) { 155 var resource ResourceDataSync 156 err := ctx.ReadResource("aws:ssm/resourceDataSync:ResourceDataSync", name, id, state, &resource, opts...) 157 if err != nil { 158 return nil, err 159 } 160 return &resource, nil 161 } 162 163 // Input properties used for looking up and filtering ResourceDataSync resources. 164 type resourceDataSyncState struct { 165 // Name for the configuration. 166 Name *string `pulumi:"name"` 167 // Amazon S3 configuration details for the sync. 168 S3Destination *ResourceDataSyncS3Destination `pulumi:"s3Destination"` 169 } 170 171 type ResourceDataSyncState struct { 172 // Name for the configuration. 173 Name pulumi.StringPtrInput 174 // Amazon S3 configuration details for the sync. 175 S3Destination ResourceDataSyncS3DestinationPtrInput 176 } 177 178 func (ResourceDataSyncState) ElementType() reflect.Type { 179 return reflect.TypeOf((*resourceDataSyncState)(nil)).Elem() 180 } 181 182 type resourceDataSyncArgs struct { 183 // Name for the configuration. 184 Name *string `pulumi:"name"` 185 // Amazon S3 configuration details for the sync. 186 S3Destination ResourceDataSyncS3Destination `pulumi:"s3Destination"` 187 } 188 189 // The set of arguments for constructing a ResourceDataSync resource. 190 type ResourceDataSyncArgs struct { 191 // Name for the configuration. 192 Name pulumi.StringPtrInput 193 // Amazon S3 configuration details for the sync. 194 S3Destination ResourceDataSyncS3DestinationInput 195 } 196 197 func (ResourceDataSyncArgs) ElementType() reflect.Type { 198 return reflect.TypeOf((*resourceDataSyncArgs)(nil)).Elem() 199 } 200 201 type ResourceDataSyncInput interface { 202 pulumi.Input 203 204 ToResourceDataSyncOutput() ResourceDataSyncOutput 205 ToResourceDataSyncOutputWithContext(ctx context.Context) ResourceDataSyncOutput 206 } 207 208 func (*ResourceDataSync) ElementType() reflect.Type { 209 return reflect.TypeOf((**ResourceDataSync)(nil)).Elem() 210 } 211 212 func (i *ResourceDataSync) ToResourceDataSyncOutput() ResourceDataSyncOutput { 213 return i.ToResourceDataSyncOutputWithContext(context.Background()) 214 } 215 216 func (i *ResourceDataSync) ToResourceDataSyncOutputWithContext(ctx context.Context) ResourceDataSyncOutput { 217 return pulumi.ToOutputWithContext(ctx, i).(ResourceDataSyncOutput) 218 } 219 220 // ResourceDataSyncArrayInput is an input type that accepts ResourceDataSyncArray and ResourceDataSyncArrayOutput values. 221 // You can construct a concrete instance of `ResourceDataSyncArrayInput` via: 222 // 223 // ResourceDataSyncArray{ ResourceDataSyncArgs{...} } 224 type ResourceDataSyncArrayInput interface { 225 pulumi.Input 226 227 ToResourceDataSyncArrayOutput() ResourceDataSyncArrayOutput 228 ToResourceDataSyncArrayOutputWithContext(context.Context) ResourceDataSyncArrayOutput 229 } 230 231 type ResourceDataSyncArray []ResourceDataSyncInput 232 233 func (ResourceDataSyncArray) ElementType() reflect.Type { 234 return reflect.TypeOf((*[]*ResourceDataSync)(nil)).Elem() 235 } 236 237 func (i ResourceDataSyncArray) ToResourceDataSyncArrayOutput() ResourceDataSyncArrayOutput { 238 return i.ToResourceDataSyncArrayOutputWithContext(context.Background()) 239 } 240 241 func (i ResourceDataSyncArray) ToResourceDataSyncArrayOutputWithContext(ctx context.Context) ResourceDataSyncArrayOutput { 242 return pulumi.ToOutputWithContext(ctx, i).(ResourceDataSyncArrayOutput) 243 } 244 245 // ResourceDataSyncMapInput is an input type that accepts ResourceDataSyncMap and ResourceDataSyncMapOutput values. 246 // You can construct a concrete instance of `ResourceDataSyncMapInput` via: 247 // 248 // ResourceDataSyncMap{ "key": ResourceDataSyncArgs{...} } 249 type ResourceDataSyncMapInput interface { 250 pulumi.Input 251 252 ToResourceDataSyncMapOutput() ResourceDataSyncMapOutput 253 ToResourceDataSyncMapOutputWithContext(context.Context) ResourceDataSyncMapOutput 254 } 255 256 type ResourceDataSyncMap map[string]ResourceDataSyncInput 257 258 func (ResourceDataSyncMap) ElementType() reflect.Type { 259 return reflect.TypeOf((*map[string]*ResourceDataSync)(nil)).Elem() 260 } 261 262 func (i ResourceDataSyncMap) ToResourceDataSyncMapOutput() ResourceDataSyncMapOutput { 263 return i.ToResourceDataSyncMapOutputWithContext(context.Background()) 264 } 265 266 func (i ResourceDataSyncMap) ToResourceDataSyncMapOutputWithContext(ctx context.Context) ResourceDataSyncMapOutput { 267 return pulumi.ToOutputWithContext(ctx, i).(ResourceDataSyncMapOutput) 268 } 269 270 type ResourceDataSyncOutput struct{ *pulumi.OutputState } 271 272 func (ResourceDataSyncOutput) ElementType() reflect.Type { 273 return reflect.TypeOf((**ResourceDataSync)(nil)).Elem() 274 } 275 276 func (o ResourceDataSyncOutput) ToResourceDataSyncOutput() ResourceDataSyncOutput { 277 return o 278 } 279 280 func (o ResourceDataSyncOutput) ToResourceDataSyncOutputWithContext(ctx context.Context) ResourceDataSyncOutput { 281 return o 282 } 283 284 // Name for the configuration. 285 func (o ResourceDataSyncOutput) Name() pulumi.StringOutput { 286 return o.ApplyT(func(v *ResourceDataSync) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) 287 } 288 289 // Amazon S3 configuration details for the sync. 290 func (o ResourceDataSyncOutput) S3Destination() ResourceDataSyncS3DestinationOutput { 291 return o.ApplyT(func(v *ResourceDataSync) ResourceDataSyncS3DestinationOutput { return v.S3Destination }).(ResourceDataSyncS3DestinationOutput) 292 } 293 294 type ResourceDataSyncArrayOutput struct{ *pulumi.OutputState } 295 296 func (ResourceDataSyncArrayOutput) ElementType() reflect.Type { 297 return reflect.TypeOf((*[]*ResourceDataSync)(nil)).Elem() 298 } 299 300 func (o ResourceDataSyncArrayOutput) ToResourceDataSyncArrayOutput() ResourceDataSyncArrayOutput { 301 return o 302 } 303 304 func (o ResourceDataSyncArrayOutput) ToResourceDataSyncArrayOutputWithContext(ctx context.Context) ResourceDataSyncArrayOutput { 305 return o 306 } 307 308 func (o ResourceDataSyncArrayOutput) Index(i pulumi.IntInput) ResourceDataSyncOutput { 309 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ResourceDataSync { 310 return vs[0].([]*ResourceDataSync)[vs[1].(int)] 311 }).(ResourceDataSyncOutput) 312 } 313 314 type ResourceDataSyncMapOutput struct{ *pulumi.OutputState } 315 316 func (ResourceDataSyncMapOutput) ElementType() reflect.Type { 317 return reflect.TypeOf((*map[string]*ResourceDataSync)(nil)).Elem() 318 } 319 320 func (o ResourceDataSyncMapOutput) ToResourceDataSyncMapOutput() ResourceDataSyncMapOutput { 321 return o 322 } 323 324 func (o ResourceDataSyncMapOutput) ToResourceDataSyncMapOutputWithContext(ctx context.Context) ResourceDataSyncMapOutput { 325 return o 326 } 327 328 func (o ResourceDataSyncMapOutput) MapIndex(k pulumi.StringInput) ResourceDataSyncOutput { 329 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ResourceDataSync { 330 return vs[0].(map[string]*ResourceDataSync)[vs[1].(string)] 331 }).(ResourceDataSyncOutput) 332 } 333 334 func init() { 335 pulumi.RegisterInputType(reflect.TypeOf((*ResourceDataSyncInput)(nil)).Elem(), &ResourceDataSync{}) 336 pulumi.RegisterInputType(reflect.TypeOf((*ResourceDataSyncArrayInput)(nil)).Elem(), ResourceDataSyncArray{}) 337 pulumi.RegisterInputType(reflect.TypeOf((*ResourceDataSyncMapInput)(nil)).Elem(), ResourceDataSyncMap{}) 338 pulumi.RegisterOutputType(ResourceDataSyncOutput{}) 339 pulumi.RegisterOutputType(ResourceDataSyncArrayOutput{}) 340 pulumi.RegisterOutputType(ResourceDataSyncMapOutput{}) 341 }