This repository has been archived by the owner on May 15, 2023. It is now read-only.
/
privateca_certificate_template_iam.go
123 lines (104 loc) · 4.57 KB
/
privateca_certificate_template_iam.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
// ----------------------------------------------------------------------------
//
// *** AUTO GENERATED CODE *** Type: MMv1 ***
//
// ----------------------------------------------------------------------------
//
// This file is automatically generated by Magic Modules and manual
// changes will be clobbered when the file is regenerated.
//
// Please read more about how to change this file in
// .github/CONTRIBUTING.md.
//
// ----------------------------------------------------------------------------
package google
import "fmt"
// Provide a separate asset type constant so we don't have to worry about name conflicts between IAM and non-IAM converter files
const PrivatecaCertificateTemplateIAMAssetType string = "privateca.googleapis.com/CertificateTemplate"
func resourceConverterPrivatecaCertificateTemplateIamPolicy() ResourceConverter {
return ResourceConverter{
AssetType: PrivatecaCertificateTemplateIAMAssetType,
Convert: GetPrivatecaCertificateTemplateIamPolicyCaiObject,
MergeCreateUpdate: MergePrivatecaCertificateTemplateIamPolicy,
}
}
func resourceConverterPrivatecaCertificateTemplateIamBinding() ResourceConverter {
return ResourceConverter{
AssetType: PrivatecaCertificateTemplateIAMAssetType,
Convert: GetPrivatecaCertificateTemplateIamBindingCaiObject,
FetchFullResource: FetchPrivatecaCertificateTemplateIamPolicy,
MergeCreateUpdate: MergePrivatecaCertificateTemplateIamBinding,
MergeDelete: MergePrivatecaCertificateTemplateIamBindingDelete,
}
}
func resourceConverterPrivatecaCertificateTemplateIamMember() ResourceConverter {
return ResourceConverter{
AssetType: PrivatecaCertificateTemplateIAMAssetType,
Convert: GetPrivatecaCertificateTemplateIamMemberCaiObject,
FetchFullResource: FetchPrivatecaCertificateTemplateIamPolicy,
MergeCreateUpdate: MergePrivatecaCertificateTemplateIamMember,
MergeDelete: MergePrivatecaCertificateTemplateIamMemberDelete,
}
}
func GetPrivatecaCertificateTemplateIamPolicyCaiObject(d TerraformResourceData, config *Config) ([]Asset, error) {
return newPrivatecaCertificateTemplateIamAsset(d, config, expandIamPolicyBindings)
}
func GetPrivatecaCertificateTemplateIamBindingCaiObject(d TerraformResourceData, config *Config) ([]Asset, error) {
return newPrivatecaCertificateTemplateIamAsset(d, config, expandIamRoleBindings)
}
func GetPrivatecaCertificateTemplateIamMemberCaiObject(d TerraformResourceData, config *Config) ([]Asset, error) {
return newPrivatecaCertificateTemplateIamAsset(d, config, expandIamMemberBindings)
}
func MergePrivatecaCertificateTemplateIamPolicy(existing, incoming Asset) Asset {
existing.IAMPolicy = incoming.IAMPolicy
return existing
}
func MergePrivatecaCertificateTemplateIamBinding(existing, incoming Asset) Asset {
return mergeIamAssets(existing, incoming, mergeAuthoritativeBindings)
}
func MergePrivatecaCertificateTemplateIamBindingDelete(existing, incoming Asset) Asset {
return mergeDeleteIamAssets(existing, incoming, mergeDeleteAuthoritativeBindings)
}
func MergePrivatecaCertificateTemplateIamMember(existing, incoming Asset) Asset {
return mergeIamAssets(existing, incoming, mergeAdditiveBindings)
}
func MergePrivatecaCertificateTemplateIamMemberDelete(existing, incoming Asset) Asset {
return mergeDeleteIamAssets(existing, incoming, mergeDeleteAdditiveBindings)
}
func newPrivatecaCertificateTemplateIamAsset(
d TerraformResourceData,
config *Config,
expandBindings func(d TerraformResourceData) ([]IAMBinding, error),
) ([]Asset, error) {
bindings, err := expandBindings(d)
if err != nil {
return []Asset{}, fmt.Errorf("expanding bindings: %v", err)
}
name, err := assetName(d, config, "//privateca.googleapis.com/projects/{{project}}/locations/{{location}}/certificateTemplates/{{name}}/{{certificate_template}}")
if err != nil {
return []Asset{}, err
}
return []Asset{{
Name: name,
Type: PrivatecaCertificateTemplateIAMAssetType,
IAMPolicy: &IAMPolicy{
Bindings: bindings,
},
}}, nil
}
func FetchPrivatecaCertificateTemplateIamPolicy(d TerraformResourceData, config *Config) (Asset, error) {
// Check if the identity field returns a value
if _, ok := d.GetOk("location"); !ok {
return Asset{}, ErrEmptyIdentityField
}
if _, ok := d.GetOk("certificate_template"); !ok {
return Asset{}, ErrEmptyIdentityField
}
return fetchIamPolicy(
PrivatecaCertificateTemplateIamUpdaterProducer,
d,
config,
"//privateca.googleapis.com/projects/{{project}}/locations/{{location}}/certificateTemplates/{{name}}/{{certificate_template}}",
PrivatecaCertificateTemplateIAMAssetType,
)
}