5353 "freeform_tags" : acctest.Representation {RepType : acctest .Optional , Create : map [string ]string {"Department" : "Finance" }, Update : map [string ]string {"Department" : "Accounting" }},
5454 "is_enabled" : acctest.Representation {RepType : acctest .Optional , Create : `false` , Update : `true` },
5555 }
56+
57+ AutoScalingAutoScalingConfigurationResourceDependenciesCustomQuery = map [string ]interface {}{
58+ "auto_scaling_resources" : acctest.RepresentationGroup {RepType : acctest .Required , Group : AutoScalingautoScalingConfigurationAutoScalingResourcesRepresentation },
59+ "compartment_id" : acctest.Representation {RepType : acctest .Required , Create : `${var.compartment_id}` },
60+ "policies" : acctest.RepresentationGroup {RepType : acctest .Required , Group : AutoScalingautoScalingConfigurationPoliciesRepresentationCustomQuery },
61+ "cool_down_in_seconds" : acctest.Representation {RepType : acctest .Optional , Create : `300` , Update : `400` },
62+ "defined_tags" : acctest.Representation {RepType : acctest .Optional , Create : `${map("${oci_identity_tag_namespace.tag-namespace1.name}.${oci_identity_tag.tag1.name}", "value")}` , Update : `${map("${oci_identity_tag_namespace.tag-namespace1.name}.${oci_identity_tag.tag1.name}", "updatedValue")}` },
63+ "display_name" : acctest.Representation {RepType : acctest .Optional , Create : `example_threshold_autoscaling_configuration` , Update : `displayName2` },
64+ "freeform_tags" : acctest.Representation {RepType : acctest .Optional , Create : map [string ]string {"Department" : "Finance" }, Update : map [string ]string {"Department" : "Accounting" }},
65+ "is_enabled" : acctest.Representation {RepType : acctest .Optional , Create : `false` , Update : `true` },
66+ }
5667 AutoScalingautoScalingConfigurationAutoScalingResourcesRepresentation = map [string ]interface {}{
5768 "id" : acctest.Representation {RepType : acctest .Required , Create : `${oci_core_instance_pool.test_instance_pool.id}` },
5869 "type" : acctest.Representation {RepType : acctest .Required , Create : `instancePool` },
6374 "rules" : []acctest.RepresentationGroup {{RepType : acctest .Required , Group : AutoScalingautoScalingConfigurationPoliciesScaleOutRuleRepresentation }, {RepType : acctest .Required , Group : AutoScalingautoScalingConfigurationPoliciesScaleInRuleRepresentation }},
6475 "display_name" : acctest.Representation {RepType : acctest .Optional , Create : `example_autoscaling_configuration` , Update : `displayName2` },
6576 }
77+ AutoScalingautoScalingConfigurationPoliciesRepresentationCustomQuery = map [string ]interface {}{
78+ "capacity" : acctest.RepresentationGroup {RepType : acctest .Required , Group : AutoScalingautoScalingConfigurationPoliciesCapacityRepresentation },
79+ "policy_type" : acctest.Representation {RepType : acctest .Required , Create : `threshold` , Update : `threshold` },
80+ "rules" : []acctest.RepresentationGroup {{RepType : acctest .Required , Group : AutoScalingautoScalingConfigurationPoliciesScaleOutRuleRepresentationCustomQuery }, {RepType : acctest .Required , Group : AutoScalingautoScalingConfigurationPoliciesScaleInRuleRepresentationCustomQuery }},
81+ "display_name" : acctest.Representation {RepType : acctest .Optional , Create : `example_autoscaling_configuration` , Update : `displayName2` },
82+ }
6683 AutoScalingautoScalingConfigurationPoliciesCapacityRepresentation = map [string ]interface {}{
6784 "initial" : acctest.Representation {RepType : acctest .Required , Create : `2` , Update : `4` },
6885 "max" : acctest.Representation {RepType : acctest .Required , Create : `3` , Update : `5` },
@@ -73,13 +90,25 @@ var (
7390 "display_name" : acctest.Representation {RepType : acctest .Required , Create : `scale out rule` , Update : `scale out rule - updated` },
7491 "metric" : acctest.RepresentationGroup {RepType : acctest .Required , Group : AutoScalingautoScalingConfigurationPoliciesScaleOutRuleMetricRepresentation },
7592 }
93+ AutoScalingautoScalingConfigurationPoliciesScaleOutRuleRepresentationCustomQuery = map [string ]interface {}{
94+ "action" : acctest.RepresentationGroup {RepType : acctest .Required , Group : AutoScalingautoScalingConfigurationPoliciesScaleOutRuleActionRepresentation },
95+ "display_name" : acctest.Representation {RepType : acctest .Required , Create : `scale out rule` , Update : `scale out rule - updated` },
96+ "metric" : acctest.RepresentationGroup {RepType : acctest .Required , Group : AutoScalingautoScalingConfigurationPoliciesRuleRepresentationCustomQuery },
97+ }
98+ AutoScalingautoScalingConfigurationPoliciesScaleInRuleRepresentationCustomQuery = map [string ]interface {}{
99+ "action" : acctest.RepresentationGroup {RepType : acctest .Required , Group : AutoScalingautoScalingConfigurationPoliciesScaleInRuleActionRepresentation },
100+ "display_name" : acctest.Representation {RepType : acctest .Required , Create : `scale in rule` , Update : `scale in rule - updated` },
101+ "metric" : acctest.RepresentationGroup {RepType : acctest .Required , Group : AutoScalingautoScalingConfigurationPoliciesRuleRepresentationCustomQuery },
102+ }
76103 AutoScalingautoScalingConfigurationPoliciesScaleOutRuleActionRepresentation = map [string ]interface {}{
77104 "type" : acctest.Representation {RepType : acctest .Required , Create : `CHANGE_COUNT_BY` , Update : `CHANGE_COUNT_BY` },
78105 "value" : acctest.Representation {RepType : acctest .Required , Create : `1` , Update : `2` },
79106 }
80107 AutoScalingautoScalingConfigurationPoliciesScaleOutRuleMetricRepresentation = map [string ]interface {}{
81- "metric_type" : acctest.Representation {RepType : acctest .Required , Create : `CPU_UTILIZATION` , Update : `CPU_UTILIZATION` },
82- "threshold" : acctest.RepresentationGroup {RepType : acctest .Required , Group : AutoScalingautoScalingConfigurationPoliciesScaleOutRuleMetricThresholdRepresentation },
108+ "metric_source" : acctest.Representation {RepType : acctest .Required , Create : `COMPUTE_AGENT` },
109+ "pending_duration" : acctest.Representation {RepType : acctest .Required , Create : `PT3M` },
110+ "metric_type" : acctest.Representation {RepType : acctest .Required , Create : `CPU_UTILIZATION` , Update : `CPU_UTILIZATION` },
111+ "threshold" : acctest.RepresentationGroup {RepType : acctest .Required , Group : AutoScalingautoScalingConfigurationPoliciesScaleOutRuleMetricThresholdRepresentation },
83112 }
84113 AutoScalingautoScalingConfigurationPoliciesScaleOutRuleMetricThresholdRepresentation = map [string ]interface {}{
85114 "operator" : acctest.Representation {RepType : acctest .Required , Create : `GT` , Update : `GT` },
@@ -90,13 +119,24 @@ var (
90119 "metric" : acctest.RepresentationGroup {RepType : acctest .Required , Group : AutoScalingautoScalingConfigurationPoliciesScaleInRuleMetricRepresentation },
91120 "display_name" : acctest.Representation {RepType : acctest .Required , Create : `scale in rule` , Update : `scale in rule - updated` },
92121 }
122+ AutoScalingautoScalingConfigurationPoliciesRuleRepresentationCustomQuery = map [string ]interface {}{
123+ "metric_compartment_id" : acctest.Representation {RepType : acctest .Required , Create : `${var.compartment_id}` },
124+ "metric_source" : acctest.Representation {RepType : acctest .Required , Create : `CUSTOM_QUERY` },
125+ "namespace" : acctest.Representation {RepType : acctest .Required , Create : `oci_computeagent` },
126+ "pending_duration" : acctest.Representation {RepType : acctest .Required , Create : `PT3M` },
127+ "query" : acctest.Representation {RepType : acctest .Required , Create : `CM-removeLbBackendsWf.detachInstancePoolInstanceWorkflow.removeLbBackendFailureCount[30m]{availabilityDomain=iad-ad-2}.groupBy(availabilityDomain).sum() > 0` },
128+ "resource_group" : acctest.Representation {RepType : acctest .Required , Create : `resourceGroup` },
129+ }
130+
93131 AutoScalingautoScalingConfigurationPoliciesScaleInRuleActionRepresentation = map [string ]interface {}{
94132 "type" : acctest.Representation {RepType : acctest .Required , Create : `CHANGE_COUNT_BY` , Update : `CHANGE_COUNT_BY` },
95133 "value" : acctest.Representation {RepType : acctest .Required , Create : `-1` , Update : `-3` },
96134 }
97135 AutoScalingautoScalingConfigurationPoliciesScaleInRuleMetricRepresentation = map [string ]interface {}{
98- "metric_type" : acctest.Representation {RepType : acctest .Required , Create : `CPU_UTILIZATION` , Update : `CPU_UTILIZATION` },
99- "threshold" : acctest.RepresentationGroup {RepType : acctest .Required , Group : AutoScalingautoScalingConfigurationPoliciesScaleInRuleMetricThresholdRepresentation },
136+ "metric_source" : acctest.Representation {RepType : acctest .Required , Create : `COMPUTE_AGENT` },
137+ "metric_type" : acctest.Representation {RepType : acctest .Required , Create : `CPU_UTILIZATION` , Update : `CPU_UTILIZATION` },
138+ "threshold" : acctest.RepresentationGroup {RepType : acctest .Required , Group : AutoScalingautoScalingConfigurationPoliciesScaleInRuleMetricThresholdRepresentation },
139+ "pending_duration" : acctest.Representation {RepType : acctest .Required , Create : `PT3M` },
100140 }
101141 AutoScalingautoScalingConfigurationPoliciesScaleInRuleMetricThresholdRepresentation = map [string ]interface {}{
102142 "operator" : acctest.Representation {RepType : acctest .Required , Create : `LT` , Update : `LT` },
@@ -176,6 +216,59 @@ func TestAutoScalingAutoScalingConfigurationResource_basic(t *testing.T) {
176216 ),
177217 },
178218
219+ // delete before next Create
220+ {
221+ Config : config + compartmentIdVariableStr + AutoScalingAutoScalingConfigurationResourceDependencies ,
222+ },
223+ {
224+ Config : config + compartmentIdVariableStr + AutoScalingAutoScalingConfigurationResourceDependencies +
225+ acctest .GenerateResourceFromRepresentationMap ("oci_autoscaling_auto_scaling_configuration" , "test_auto_scaling_configuration" , acctest .Required , acctest .Create , AutoScalingAutoScalingConfigurationResourceDependenciesCustomQuery ),
226+ Check : acctest .ComposeAggregateTestCheckFuncWrapper (
227+ resource .TestCheckResourceAttr (resourceName , "auto_scaling_resources.#" , "1" ),
228+ resource .TestCheckResourceAttrSet (resourceName , "auto_scaling_resources.0.id" ),
229+ resource .TestCheckResourceAttr (resourceName , "auto_scaling_resources.0.type" , "instancePool" ),
230+ resource .TestCheckResourceAttr (resourceName , "compartment_id" , compartmentId ),
231+ resource .TestCheckResourceAttr (resourceName , "policies.#" , "1" ),
232+ resource .TestCheckResourceAttr (resourceName , "policies.0.capacity.#" , "1" ),
233+ resource .TestCheckResourceAttr (resourceName , "policies.0.capacity.0.initial" , "2" ),
234+ resource .TestCheckResourceAttr (resourceName , "policies.0.capacity.0.max" , "3" ),
235+ resource .TestCheckResourceAttr (resourceName , "policies.0.capacity.0.min" , "2" ),
236+ resource .TestCheckResourceAttr (resourceName , "policies.0.policy_type" , "threshold" ),
237+ resource .TestCheckResourceAttr (resourceName , "policies.0.rules.#" , "2" ),
238+ acctest .CheckResourceSetContainsElementWithProperties (resourceName , "policies.0.rules" , map [string ]string {
239+ "action.#" : "1" ,
240+ "action.0.type" : "CHANGE_COUNT_BY" ,
241+ "action.0.value" : "1" ,
242+ "metric.#" : "1" ,
243+ "metric.0.metric_compartment_id" : compartmentId ,
244+ "metric.0.metric_source" : "CUSTOM_QUERY" ,
245+ "metric.0.namespace" : "oci_computeagent" ,
246+ "metric.0.pending_duration" : "PT3M" ,
247+ "metric.0.query" : "CM-removeLbBackendsWf.detachInstancePoolInstanceWorkflow.removeLbBackendFailureCount[30m]{availabilityDomain=iad-ad-2}.groupBy(availabilityDomain).sum() > 0" ,
248+ "metric.0.resource_group" : "resourceGroup" ,
249+ },
250+ []string {}),
251+ acctest .CheckResourceSetContainsElementWithProperties (resourceName , "policies.0.rules" , map [string ]string {
252+ "action.#" : "1" ,
253+ "action.0.type" : "CHANGE_COUNT_BY" ,
254+ "action.0.value" : "1" ,
255+ "metric.#" : "1" ,
256+ "metric.0.metric_compartment_id" : compartmentId ,
257+ "metric.0.metric_source" : "CUSTOM_QUERY" ,
258+ "metric.0.namespace" : "oci_computeagent" ,
259+ "metric.0.pending_duration" : "PT3M" ,
260+ "metric.0.query" : "CM-removeLbBackendsWf.detachInstancePoolInstanceWorkflow.removeLbBackendFailureCount[30m]{availabilityDomain=iad-ad-2}.groupBy(availabilityDomain).sum() > 0" ,
261+ "metric.0.resource_group" : "resourceGroup" ,
262+ },
263+ []string {}),
264+
265+ func (s * terraform.State ) (err error ) {
266+ resId , err = acctest .FromInstanceState (s , resourceName , "id" )
267+ return err
268+ },
269+ ),
270+ },
271+
179272 // delete before next Create
180273 {
181274 Config : config + compartmentIdVariableStr + AutoScalingAutoScalingConfigurationResourceDependencies ,
0 commit comments