@@ -5,13 +5,58 @@ import (
55 "strings"
66
77 "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
8+ "github.com/trodge/magic-modules/tgc-container-cluster/mmv1/third_party/tgc_next/pkg/caiasset"
9+ "github.com/trodge/magic-modules/tgc-container-cluster/mmv1/third_party/tgc_next/pkg/tfplan2cai/converters/cai"
810
911 "github.com/GoogleCloudPlatform/terraform-google-conversion/v7/pkg/tpgresource"
1012 transport_tpg "github.com/GoogleCloudPlatform/terraform-google-conversion/v7/pkg/transport"
1113
1214 "google.golang.org/api/container/v1"
1315)
1416
17+ func ContainerClusterTfplan2CaiConverter () cai.Tfplan2caiConverter {
18+ return cai.Tfplan2caiConverter {
19+ Convert : GetContainerCluster ,
20+ }
21+ }
22+
23+ func GetContainerCluster (d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (caiasset.Asset , error ) {
24+ name , err := cai .AssetName (d , config , "//container.googleapis.com/projects/{{project}}/locations/{{location}}/clusters/{{name}}" )
25+ if err != nil {
26+ return caiasset.Asset {}, err
27+ }
28+ if data , err := GetContainerClusterData (d , config ); err == nil {
29+ location , _ := tpgresource .GetLocation (d , config )
30+ return caiasset.Asset {
31+ Name : name ,
32+ Type : ContainerClusterAssetType ,
33+ Resource : & caiasset.AssetResource {
34+ Version : "v1" ,
35+ DiscoveryDocumentURI : "https://www.googleapis.com/discovery/v1/apis/container/v1/rest" ,
36+ DiscoveryName : "Cluster" ,
37+ Data : data ,
38+ Location : location ,
39+ },
40+ }, nil
41+ } else {
42+ return caiasset.Asset {}, err
43+ }
44+ }
45+
46+ func GetContainerClusterData (d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (map [string ]interface {}, error ) {
47+ project , err := tpgresource .GetProject (d , config )
48+ if err != nil {
49+ return nil , err
50+ }
51+
52+ cluster , err := expandContainerCluster (project , d , config )
53+ if err != nil {
54+ return nil , err
55+ }
56+
57+ return cai .JsonMap (cluster )
58+ }
59+
1560func expandContainerCluster (project string , d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (* container.Cluster , error ) {
1661 clusterName := d .Get ("name" ).(string )
1762 cluster := & container.Cluster {
0 commit comments