Skip to content

Commit 9a14346

Browse files
Fixed #220
1 parent 02f8015 commit 9a14346

File tree

4 files changed

+128
-35
lines changed

4 files changed

+128
-35
lines changed

dynatrace/api/v1/config/credentials/aws/settings/aws_credentials_config.go

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -79,12 +79,10 @@ func (awscc *AWSCredentialsConfig) Schema() map[string]*schema.Schema {
7979
},
8080
},
8181
"supporting_services_to_monitor": {
82-
Type: schema.TypeList,
82+
Type: schema.TypeSet,
8383
Description: "supporting services to be monitored",
8484
Optional: true,
85-
Elem: &schema.Resource{
86-
Schema: new(AWSSupportingServiceConfig).Schema(),
87-
},
85+
Elem: &schema.Resource{Schema: new(AWSSupportingServiceConfig).Schema()},
8886
},
8987
"unknowns": {
9088
Type: schema.TypeString,
@@ -226,7 +224,7 @@ func (awscc *AWSCredentialsConfig) MarshalHCL(properties hcl.Properties) error {
226224
return err
227225
}
228226
}
229-
if err := properties.Encode("supporting_services_to_monitor", awscc.SupportingServicesToMonitor); err != nil {
227+
if err := properties.EncodeSlice("supporting_services_to_monitor", awscc.SupportingServicesToMonitor); err != nil {
230228
return err
231229
}
232230
if err := properties.Encode("label", awscc.Label); err != nil {
@@ -269,15 +267,8 @@ func (awscc *AWSCredentialsConfig) UnmarshalHCL(decoder hcl.Decoder) error {
269267
if value, ok := decoder.GetOk("label"); ok {
270268
awscc.Label = value.(string)
271269
}
272-
if result, ok := decoder.GetOk("supporting_services_to_monitor.#"); ok {
273-
awscc.SupportingServicesToMonitor = []*AWSSupportingServiceConfig{}
274-
for idx := 0; idx < result.(int); idx++ {
275-
entry := new(AWSSupportingServiceConfig)
276-
if err := entry.UnmarshalHCL(hcl.NewDecoder(decoder, "supporting_services_to_monitor", idx)); err != nil {
277-
return err
278-
}
279-
awscc.SupportingServicesToMonitor = append(awscc.SupportingServicesToMonitor, entry)
280-
}
270+
if err := decoder.DecodeSlice("supporting_services_to_monitor", &awscc.SupportingServicesToMonitor); err != nil {
271+
return err
281272
}
282273
if value, ok := decoder.GetOk("tagged_only"); ok {
283274
awscc.TaggedOnly = opt.NewBool(value.(bool))

dynatrace/api/v1/config/credentials/aws/settings/aws_supporting_service_config.go

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -40,12 +40,10 @@ func (assc *AWSSupportingServiceConfig) Schema() map[string]*schema.Schema {
4040
Optional: true,
4141
},
4242
"monitored_metrics": {
43-
Type: schema.TypeList,
43+
Type: schema.TypeSet,
4444
Description: "a list of metrics to be monitored for this service",
4545
Optional: true,
46-
Elem: &schema.Resource{
47-
Schema: new(AWSSupportingServiceMetric).Schema(),
48-
},
46+
Elem: &schema.Resource{Schema: new(AWSSupportingServiceMetric).Schema()},
4947
},
5048
"unknowns": {
5149
Type: schema.TypeString,
@@ -111,7 +109,7 @@ func (assc *AWSSupportingServiceConfig) MarshalHCL(properties hcl.Properties) er
111109
if err := properties.Encode("name", assc.Name); err != nil {
112110
return err
113111
}
114-
if err := properties.Encode("monitored_metrics", assc.MonitoredMetrics); err != nil {
112+
if err := properties.EncodeSlice("monitored_metrics", assc.MonitoredMetrics); err != nil {
115113
return err
116114
}
117115
return nil
@@ -134,15 +132,8 @@ func (assc *AWSSupportingServiceConfig) UnmarshalHCL(decoder hcl.Decoder) error
134132
if value, ok := decoder.GetOk("name"); ok {
135133
assc.Name = value.(string)
136134
}
137-
if result, ok := decoder.GetOk("monitored_metrics.#"); ok {
138-
assc.MonitoredMetrics = []*AWSSupportingServiceMetric{}
139-
for idx := 0; idx < result.(int); idx++ {
140-
monitoredMetric := new(AWSSupportingServiceMetric)
141-
if err := monitoredMetric.UnmarshalHCL(hcl.NewDecoder(decoder, "monitored_metrics", idx)); err != nil {
142-
return err
143-
}
144-
assc.MonitoredMetrics = append(assc.MonitoredMetrics, monitoredMetric)
145-
}
135+
if err := decoder.DecodeSlice("monitored_metrics", &assc.MonitoredMetrics); err != nil {
136+
return err
146137
}
147138
return nil
148139
}

dynatrace/api/v1/config/credentials/aws/settings/aws_supporting_service_metric.go

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ func (assm *AWSSupportingServiceMetric) Schema() map[string]*schema.Schema {
4646
Optional: true,
4747
},
4848
"dimensions": {
49-
Type: schema.TypeList,
49+
Type: schema.TypeSet,
5050
Description: "a list of metric's dimensions names",
5151
Optional: true,
5252
Elem: &schema.Schema{Type: schema.TypeString},
@@ -158,13 +158,11 @@ func (assm *AWSSupportingServiceMetric) UnmarshalHCL(decoder hcl.Decoder) error
158158
if value, ok := decoder.GetOk("statistic"); ok {
159159
assm.Statistic = Statistic(value.(string))
160160
}
161-
if _, ok := decoder.GetOk("dimensions.#"); ok {
161+
if err := decoder.Decode("dimensions", &assm.Dimensions); err != nil {
162+
return err
163+
}
164+
if assm.Dimensions == nil {
162165
assm.Dimensions = []string{}
163-
if dims, ok := decoder.GetOk("dimensions"); ok {
164-
for _, dim := range dims.([]any) {
165-
assm.Dimensions = append(assm.Dimensions, dim.(string))
166-
}
167-
}
168166
}
169167
return nil
170168
}
Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
resource "dynatrace_aws_credentials" "#name#" {
2+
label = "#name#"
3+
partition_type = "AWS_CN"
4+
tagged_only = true
5+
6+
authentication_data {
7+
access_key = "########05"
8+
secret_key = "########17"
9+
}
10+
11+
tags_to_monitor {
12+
name = "string"
13+
value = "string2"
14+
}
15+
16+
supporting_services_to_monitor {
17+
name = "polly"
18+
monitored_metrics {
19+
name = "4XXCount"
20+
dimensions = ["Region", "Operation"]
21+
statistic = "AVERAGE"
22+
}
23+
monitored_metrics {
24+
name = "4XXCount"
25+
dimensions = ["Region", "Operation"]
26+
statistic = "SUM"
27+
}
28+
monitored_metrics {
29+
name = "2XXCount"
30+
dimensions = ["Region", "Operation"]
31+
statistic = "AVERAGE"
32+
}
33+
monitored_metrics {
34+
name = "2XXCount"
35+
dimensions = ["Region", "Operation"]
36+
statistic = "SUM"
37+
}
38+
monitored_metrics {
39+
name = "5XXCount"
40+
dimensions = ["Region", "Operation"]
41+
statistic = "AVERAGE"
42+
}
43+
monitored_metrics {
44+
name = "5XXCount"
45+
dimensions = ["Region", "Operation"]
46+
statistic = "SUM"
47+
}
48+
monitored_metrics {
49+
name = "RequestCharacters"
50+
dimensions = ["Region", "Operation"]
51+
statistic = "AVG_MIN_MAX"
52+
}
53+
monitored_metrics {
54+
name = "RequestCharacters"
55+
dimensions = ["Region", "Operation"]
56+
statistic = "SUM"
57+
}
58+
monitored_metrics {
59+
name = "ResponseLatency"
60+
dimensions = ["Region", "Operation"]
61+
statistic = "AVG_MIN_MAX"
62+
}
63+
monitored_metrics {
64+
name = "ResponseLatency"
65+
dimensions = ["Region", "Operation"]
66+
statistic = "SAMPLE_COUNT"
67+
}
68+
}
69+
supporting_services_to_monitor {
70+
name = "logs"
71+
monitored_metrics {
72+
name = "IncomingLogEvents"
73+
dimensions = ["LogGroupName"]
74+
statistic = "SUM"
75+
}
76+
monitored_metrics {
77+
name = "IncomingBytes"
78+
dimensions = ["LogGroupName"]
79+
statistic = "SUM"
80+
}
81+
monitored_metrics {
82+
name = "IncomingBytes"
83+
dimensions = ["Region"]
84+
statistic = "SUM"
85+
}
86+
monitored_metrics {
87+
name = "IncomingLogEvents"
88+
dimensions = ["Region"]
89+
statistic = "SUM"
90+
}
91+
}
92+
supporting_services_to_monitor {
93+
name = "connect"
94+
monitored_metrics {
95+
name = "CallsBreachingConcurrencyQuota"
96+
dimensions = ["InstanceId"]
97+
statistic = "SUM"
98+
}
99+
}
100+
supporting_services_to_monitor {
101+
name = "KinesisFirehose"
102+
monitored_metrics {
103+
name = "IncomingBytes"
104+
dimensions = ["DeliveryStreamName"]
105+
statistic = "SUM"
106+
}
107+
monitored_metrics {
108+
name = "IncomingRecords"
109+
dimensions = ["DeliveryStreamName"]
110+
statistic = "SUM"
111+
}
112+
}
113+
}

0 commit comments

Comments
 (0)