github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/cloudfront/monitoringSubscription.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 cloudfront 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 CloudFront real-time log configuration resource. 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/cloudfront" 26 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 27 // 28 // ) 29 // 30 // func main() { 31 // pulumi.Run(func(ctx *pulumi.Context) error { 32 // _, err := cloudfront.NewMonitoringSubscription(ctx, "example", &cloudfront.MonitoringSubscriptionArgs{ 33 // DistributionId: pulumi.Any(exampleAwsCloudfrontDistribution.Id), 34 // MonitoringSubscription: &cloudfront.MonitoringSubscriptionMonitoringSubscriptionArgs{ 35 // RealtimeMetricsSubscriptionConfig: &cloudfront.MonitoringSubscriptionMonitoringSubscriptionRealtimeMetricsSubscriptionConfigArgs{ 36 // RealtimeMetricsSubscriptionStatus: pulumi.String("Enabled"), 37 // }, 38 // }, 39 // }) 40 // if err != nil { 41 // return err 42 // } 43 // return nil 44 // }) 45 // } 46 // 47 // ``` 48 // <!--End PulumiCodeChooser --> 49 // 50 // ## Import 51 // 52 // Using `pulumi import`, import CloudFront monitoring subscription using the id. For example: 53 // 54 // ```sh 55 // $ pulumi import aws:cloudfront/monitoringSubscription:MonitoringSubscription example E3QYSUHO4VYRGB 56 // ``` 57 type MonitoringSubscription struct { 58 pulumi.CustomResourceState 59 60 // The ID of the distribution that you are enabling metrics for. 61 DistributionId pulumi.StringOutput `pulumi:"distributionId"` 62 // A monitoring subscription. This structure contains information about whether additional CloudWatch metrics are enabled for a given CloudFront distribution. 63 MonitoringSubscription MonitoringSubscriptionMonitoringSubscriptionOutput `pulumi:"monitoringSubscription"` 64 } 65 66 // NewMonitoringSubscription registers a new resource with the given unique name, arguments, and options. 67 func NewMonitoringSubscription(ctx *pulumi.Context, 68 name string, args *MonitoringSubscriptionArgs, opts ...pulumi.ResourceOption) (*MonitoringSubscription, error) { 69 if args == nil { 70 return nil, errors.New("missing one or more required arguments") 71 } 72 73 if args.DistributionId == nil { 74 return nil, errors.New("invalid value for required argument 'DistributionId'") 75 } 76 if args.MonitoringSubscription == nil { 77 return nil, errors.New("invalid value for required argument 'MonitoringSubscription'") 78 } 79 opts = internal.PkgResourceDefaultOpts(opts) 80 var resource MonitoringSubscription 81 err := ctx.RegisterResource("aws:cloudfront/monitoringSubscription:MonitoringSubscription", name, args, &resource, opts...) 82 if err != nil { 83 return nil, err 84 } 85 return &resource, nil 86 } 87 88 // GetMonitoringSubscription gets an existing MonitoringSubscription resource's state with the given name, ID, and optional 89 // state properties that are used to uniquely qualify the lookup (nil if not required). 90 func GetMonitoringSubscription(ctx *pulumi.Context, 91 name string, id pulumi.IDInput, state *MonitoringSubscriptionState, opts ...pulumi.ResourceOption) (*MonitoringSubscription, error) { 92 var resource MonitoringSubscription 93 err := ctx.ReadResource("aws:cloudfront/monitoringSubscription:MonitoringSubscription", name, id, state, &resource, opts...) 94 if err != nil { 95 return nil, err 96 } 97 return &resource, nil 98 } 99 100 // Input properties used for looking up and filtering MonitoringSubscription resources. 101 type monitoringSubscriptionState struct { 102 // The ID of the distribution that you are enabling metrics for. 103 DistributionId *string `pulumi:"distributionId"` 104 // A monitoring subscription. This structure contains information about whether additional CloudWatch metrics are enabled for a given CloudFront distribution. 105 MonitoringSubscription *MonitoringSubscriptionMonitoringSubscription `pulumi:"monitoringSubscription"` 106 } 107 108 type MonitoringSubscriptionState struct { 109 // The ID of the distribution that you are enabling metrics for. 110 DistributionId pulumi.StringPtrInput 111 // A monitoring subscription. This structure contains information about whether additional CloudWatch metrics are enabled for a given CloudFront distribution. 112 MonitoringSubscription MonitoringSubscriptionMonitoringSubscriptionPtrInput 113 } 114 115 func (MonitoringSubscriptionState) ElementType() reflect.Type { 116 return reflect.TypeOf((*monitoringSubscriptionState)(nil)).Elem() 117 } 118 119 type monitoringSubscriptionArgs struct { 120 // The ID of the distribution that you are enabling metrics for. 121 DistributionId string `pulumi:"distributionId"` 122 // A monitoring subscription. This structure contains information about whether additional CloudWatch metrics are enabled for a given CloudFront distribution. 123 MonitoringSubscription MonitoringSubscriptionMonitoringSubscription `pulumi:"monitoringSubscription"` 124 } 125 126 // The set of arguments for constructing a MonitoringSubscription resource. 127 type MonitoringSubscriptionArgs struct { 128 // The ID of the distribution that you are enabling metrics for. 129 DistributionId pulumi.StringInput 130 // A monitoring subscription. This structure contains information about whether additional CloudWatch metrics are enabled for a given CloudFront distribution. 131 MonitoringSubscription MonitoringSubscriptionMonitoringSubscriptionInput 132 } 133 134 func (MonitoringSubscriptionArgs) ElementType() reflect.Type { 135 return reflect.TypeOf((*monitoringSubscriptionArgs)(nil)).Elem() 136 } 137 138 type MonitoringSubscriptionInput interface { 139 pulumi.Input 140 141 ToMonitoringSubscriptionOutput() MonitoringSubscriptionOutput 142 ToMonitoringSubscriptionOutputWithContext(ctx context.Context) MonitoringSubscriptionOutput 143 } 144 145 func (*MonitoringSubscription) ElementType() reflect.Type { 146 return reflect.TypeOf((**MonitoringSubscription)(nil)).Elem() 147 } 148 149 func (i *MonitoringSubscription) ToMonitoringSubscriptionOutput() MonitoringSubscriptionOutput { 150 return i.ToMonitoringSubscriptionOutputWithContext(context.Background()) 151 } 152 153 func (i *MonitoringSubscription) ToMonitoringSubscriptionOutputWithContext(ctx context.Context) MonitoringSubscriptionOutput { 154 return pulumi.ToOutputWithContext(ctx, i).(MonitoringSubscriptionOutput) 155 } 156 157 // MonitoringSubscriptionArrayInput is an input type that accepts MonitoringSubscriptionArray and MonitoringSubscriptionArrayOutput values. 158 // You can construct a concrete instance of `MonitoringSubscriptionArrayInput` via: 159 // 160 // MonitoringSubscriptionArray{ MonitoringSubscriptionArgs{...} } 161 type MonitoringSubscriptionArrayInput interface { 162 pulumi.Input 163 164 ToMonitoringSubscriptionArrayOutput() MonitoringSubscriptionArrayOutput 165 ToMonitoringSubscriptionArrayOutputWithContext(context.Context) MonitoringSubscriptionArrayOutput 166 } 167 168 type MonitoringSubscriptionArray []MonitoringSubscriptionInput 169 170 func (MonitoringSubscriptionArray) ElementType() reflect.Type { 171 return reflect.TypeOf((*[]*MonitoringSubscription)(nil)).Elem() 172 } 173 174 func (i MonitoringSubscriptionArray) ToMonitoringSubscriptionArrayOutput() MonitoringSubscriptionArrayOutput { 175 return i.ToMonitoringSubscriptionArrayOutputWithContext(context.Background()) 176 } 177 178 func (i MonitoringSubscriptionArray) ToMonitoringSubscriptionArrayOutputWithContext(ctx context.Context) MonitoringSubscriptionArrayOutput { 179 return pulumi.ToOutputWithContext(ctx, i).(MonitoringSubscriptionArrayOutput) 180 } 181 182 // MonitoringSubscriptionMapInput is an input type that accepts MonitoringSubscriptionMap and MonitoringSubscriptionMapOutput values. 183 // You can construct a concrete instance of `MonitoringSubscriptionMapInput` via: 184 // 185 // MonitoringSubscriptionMap{ "key": MonitoringSubscriptionArgs{...} } 186 type MonitoringSubscriptionMapInput interface { 187 pulumi.Input 188 189 ToMonitoringSubscriptionMapOutput() MonitoringSubscriptionMapOutput 190 ToMonitoringSubscriptionMapOutputWithContext(context.Context) MonitoringSubscriptionMapOutput 191 } 192 193 type MonitoringSubscriptionMap map[string]MonitoringSubscriptionInput 194 195 func (MonitoringSubscriptionMap) ElementType() reflect.Type { 196 return reflect.TypeOf((*map[string]*MonitoringSubscription)(nil)).Elem() 197 } 198 199 func (i MonitoringSubscriptionMap) ToMonitoringSubscriptionMapOutput() MonitoringSubscriptionMapOutput { 200 return i.ToMonitoringSubscriptionMapOutputWithContext(context.Background()) 201 } 202 203 func (i MonitoringSubscriptionMap) ToMonitoringSubscriptionMapOutputWithContext(ctx context.Context) MonitoringSubscriptionMapOutput { 204 return pulumi.ToOutputWithContext(ctx, i).(MonitoringSubscriptionMapOutput) 205 } 206 207 type MonitoringSubscriptionOutput struct{ *pulumi.OutputState } 208 209 func (MonitoringSubscriptionOutput) ElementType() reflect.Type { 210 return reflect.TypeOf((**MonitoringSubscription)(nil)).Elem() 211 } 212 213 func (o MonitoringSubscriptionOutput) ToMonitoringSubscriptionOutput() MonitoringSubscriptionOutput { 214 return o 215 } 216 217 func (o MonitoringSubscriptionOutput) ToMonitoringSubscriptionOutputWithContext(ctx context.Context) MonitoringSubscriptionOutput { 218 return o 219 } 220 221 // The ID of the distribution that you are enabling metrics for. 222 func (o MonitoringSubscriptionOutput) DistributionId() pulumi.StringOutput { 223 return o.ApplyT(func(v *MonitoringSubscription) pulumi.StringOutput { return v.DistributionId }).(pulumi.StringOutput) 224 } 225 226 // A monitoring subscription. This structure contains information about whether additional CloudWatch metrics are enabled for a given CloudFront distribution. 227 func (o MonitoringSubscriptionOutput) MonitoringSubscription() MonitoringSubscriptionMonitoringSubscriptionOutput { 228 return o.ApplyT(func(v *MonitoringSubscription) MonitoringSubscriptionMonitoringSubscriptionOutput { 229 return v.MonitoringSubscription 230 }).(MonitoringSubscriptionMonitoringSubscriptionOutput) 231 } 232 233 type MonitoringSubscriptionArrayOutput struct{ *pulumi.OutputState } 234 235 func (MonitoringSubscriptionArrayOutput) ElementType() reflect.Type { 236 return reflect.TypeOf((*[]*MonitoringSubscription)(nil)).Elem() 237 } 238 239 func (o MonitoringSubscriptionArrayOutput) ToMonitoringSubscriptionArrayOutput() MonitoringSubscriptionArrayOutput { 240 return o 241 } 242 243 func (o MonitoringSubscriptionArrayOutput) ToMonitoringSubscriptionArrayOutputWithContext(ctx context.Context) MonitoringSubscriptionArrayOutput { 244 return o 245 } 246 247 func (o MonitoringSubscriptionArrayOutput) Index(i pulumi.IntInput) MonitoringSubscriptionOutput { 248 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *MonitoringSubscription { 249 return vs[0].([]*MonitoringSubscription)[vs[1].(int)] 250 }).(MonitoringSubscriptionOutput) 251 } 252 253 type MonitoringSubscriptionMapOutput struct{ *pulumi.OutputState } 254 255 func (MonitoringSubscriptionMapOutput) ElementType() reflect.Type { 256 return reflect.TypeOf((*map[string]*MonitoringSubscription)(nil)).Elem() 257 } 258 259 func (o MonitoringSubscriptionMapOutput) ToMonitoringSubscriptionMapOutput() MonitoringSubscriptionMapOutput { 260 return o 261 } 262 263 func (o MonitoringSubscriptionMapOutput) ToMonitoringSubscriptionMapOutputWithContext(ctx context.Context) MonitoringSubscriptionMapOutput { 264 return o 265 } 266 267 func (o MonitoringSubscriptionMapOutput) MapIndex(k pulumi.StringInput) MonitoringSubscriptionOutput { 268 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *MonitoringSubscription { 269 return vs[0].(map[string]*MonitoringSubscription)[vs[1].(string)] 270 }).(MonitoringSubscriptionOutput) 271 } 272 273 func init() { 274 pulumi.RegisterInputType(reflect.TypeOf((*MonitoringSubscriptionInput)(nil)).Elem(), &MonitoringSubscription{}) 275 pulumi.RegisterInputType(reflect.TypeOf((*MonitoringSubscriptionArrayInput)(nil)).Elem(), MonitoringSubscriptionArray{}) 276 pulumi.RegisterInputType(reflect.TypeOf((*MonitoringSubscriptionMapInput)(nil)).Elem(), MonitoringSubscriptionMap{}) 277 pulumi.RegisterOutputType(MonitoringSubscriptionOutput{}) 278 pulumi.RegisterOutputType(MonitoringSubscriptionArrayOutput{}) 279 pulumi.RegisterOutputType(MonitoringSubscriptionMapOutput{}) 280 }