-
Notifications
You must be signed in to change notification settings - Fork 123
/
zz_rule_terraformed.go
executable file
·129 lines (110 loc) · 3.75 KB
/
zz_rule_terraformed.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
// SPDX-FileCopyrightText: 2024 The Crossplane Authors <https://crossplane.io>
//
// SPDX-License-Identifier: Apache-2.0
// Code generated by upjet. DO NOT EDIT.
package v1beta1
import (
"dario.cat/mergo"
"github.com/pkg/errors"
"github.com/crossplane/upjet/pkg/resource"
"github.com/crossplane/upjet/pkg/resource/json"
)
// GetTerraformResourceType returns Terraform resource type for this Rule
func (mg *Rule) GetTerraformResourceType() string {
return "aws_cloudwatch_event_rule"
}
// GetConnectionDetailsMapping for this Rule
func (tr *Rule) GetConnectionDetailsMapping() map[string]string {
return nil
}
// GetObservation of this Rule
func (tr *Rule) GetObservation() (map[string]any, error) {
o, err := json.TFParser.Marshal(tr.Status.AtProvider)
if err != nil {
return nil, err
}
base := map[string]any{}
return base, json.TFParser.Unmarshal(o, &base)
}
// SetObservation for this Rule
func (tr *Rule) SetObservation(obs map[string]any) error {
p, err := json.TFParser.Marshal(obs)
if err != nil {
return err
}
return json.TFParser.Unmarshal(p, &tr.Status.AtProvider)
}
// GetID returns ID of underlying Terraform resource of this Rule
func (tr *Rule) GetID() string {
if tr.Status.AtProvider.ID == nil {
return ""
}
return *tr.Status.AtProvider.ID
}
// GetParameters of this Rule
func (tr *Rule) GetParameters() (map[string]any, error) {
p, err := json.TFParser.Marshal(tr.Spec.ForProvider)
if err != nil {
return nil, err
}
base := map[string]any{}
return base, json.TFParser.Unmarshal(p, &base)
}
// SetParameters for this Rule
func (tr *Rule) SetParameters(params map[string]any) error {
p, err := json.TFParser.Marshal(params)
if err != nil {
return err
}
return json.TFParser.Unmarshal(p, &tr.Spec.ForProvider)
}
// GetInitParameters of this Rule
func (tr *Rule) GetInitParameters() (map[string]any, error) {
p, err := json.TFParser.Marshal(tr.Spec.InitProvider)
if err != nil {
return nil, err
}
base := map[string]any{}
return base, json.TFParser.Unmarshal(p, &base)
}
// GetInitParameters of this Rule
func (tr *Rule) GetMergedParameters(shouldMergeInitProvider bool) (map[string]any, error) {
params, err := tr.GetParameters()
if err != nil {
return nil, errors.Wrapf(err, "cannot get parameters for resource '%q'", tr.GetName())
}
if !shouldMergeInitProvider {
return params, nil
}
initParams, err := tr.GetInitParameters()
if err != nil {
return nil, errors.Wrapf(err, "cannot get init parameters for resource '%q'", tr.GetName())
}
// Note(lsviben): mergo.WithSliceDeepCopy is needed to merge the
// slices from the initProvider to forProvider. As it also sets
// overwrite to true, we need to set it back to false, we don't
// want to overwrite the forProvider fields with the initProvider
// fields.
err = mergo.Merge(¶ms, initParams, mergo.WithSliceDeepCopy, func(c *mergo.Config) {
c.Overwrite = false
})
if err != nil {
return nil, errors.Wrapf(err, "cannot merge spec.initProvider and spec.forProvider parameters for resource '%q'", tr.GetName())
}
return params, nil
}
// LateInitialize this Rule using its observed tfState.
// returns True if there are any spec changes for the resource.
func (tr *Rule) LateInitialize(attrs []byte) (bool, error) {
params := &RuleParameters{}
if err := json.TFParser.Unmarshal(attrs, params); err != nil {
return false, errors.Wrap(err, "failed to unmarshal Terraform state parameters for late-initialization")
}
opts := []resource.GenericLateInitializerOption{resource.WithZeroValueJSONOmitEmptyFilter(resource.CNameWildcard)}
li := resource.NewGenericLateInitializer(opts...)
return li.LateInitialize(&tr.Spec.ForProvider, params)
}
// GetTerraformSchemaVersion returns the associated Terraform schema version
func (tr *Rule) GetTerraformSchemaVersion() int {
return 1
}