Skip to content

Commit 7f88cdd

Browse files
committed
Added - Support for Visual Builder Runtime
1 parent 826c532 commit 7f88cdd

15 files changed

+1989
-1
lines changed

examples/visual_builder/main.tf

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
// Copyright (c) 2017, 2021, Oracle and/or its affiliates. All rights reserved.
2+
// Licensed under the Mozilla Public License v2.0
3+
4+
variable "tenancy_ocid" {
5+
}
6+
7+
variable "user_ocid" {
8+
}
9+
10+
variable "fingerprint" {
11+
}
12+
13+
variable "private_key_path" {
14+
}
15+
16+
variable "region" {
17+
}
18+
19+
variable "compartment_id" {
20+
}
21+
22+
variable "idcs_open_id" {
23+
}
24+
25+
variable "vb_instance_consumption_model" {
26+
default = "UCM"
27+
}
28+
29+
variable "custom_endpoint_certificate_secret_id" {
30+
}
31+
32+
variable "custom_endpoint_host_name" {
33+
default = "hostname.com"
34+
}
35+
36+
provider "oci" {
37+
tenancy_ocid = var.tenancy_ocid
38+
user_ocid = var.user_ocid
39+
fingerprint = var.fingerprint
40+
private_key_path = var.private_key_path
41+
region = var.region
42+
}
43+
44+
resource "oci_visual_builder_vb_instance" "test_vb_instance" {
45+
#Required
46+
compartment_id = var.compartment_id
47+
display_name = "displayName"
48+
is_visual_builder_enabled = "true"
49+
idcs_open_id = var.idcs_open_id
50+
node_count = "1"
51+
52+
#Optional
53+
consumption_model = var.vb_instance_consumption_model
54+
custom_endpoint {
55+
hostname = var.custom_endpoint_host_name
56+
certificate_secret_id = var.custom_endpoint_certificate_secret_id
57+
}
58+
freeform_tags = {
59+
"bar-key" = "value"
60+
}
61+
62+
state = "ACTIVE"
63+
}
64+
65+
data "oci_visual_builder_vb_instances" "test_vb_instances" {
66+
#Required
67+
compartment_id = var.compartment_id
68+
69+
#Optional
70+
display_name = "displayName"
71+
state = "Active"
72+
filter {
73+
name = "id"
74+
values = [oci_visual_builder_vb_instance.test_vb_instance.id]
75+
}
76+
}
77+
78+
data "oci_visual_builder_vb_instance" "test_vb_instance" {
79+
#Required
80+
vb_instance_id = oci_visual_builder_vb_instance.test_vb_instance.id
81+
}
82+
83+
data "oci_visual_builder_vb_instance_applications" "test_vb_instance_applications" {
84+
#Required
85+
vb_instance_id = oci_visual_builder_vb_instance.test_vb_instance.id
86+
idcs_open_id = var.idcs_open_id
87+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
// Copyright (c) 2017, 2021, Oracle and/or its affiliates. All rights reserved.
2+
// Licensed under the Mozilla Public License v2.0
3+
4+
package client
5+
6+
import (
7+
oci_visual_builder "github.com/oracle/oci-go-sdk/v55/visualbuilder"
8+
9+
oci_common "github.com/oracle/oci-go-sdk/v55/common"
10+
)
11+
12+
func init() {
13+
RegisterOracleClient("oci_visual_builder.VbInstanceClient", &OracleClient{InitClientFn: initVisualbuilderVbInstanceClient})
14+
}
15+
16+
func initVisualbuilderVbInstanceClient(configProvider oci_common.ConfigurationProvider, configureClient ConfigureClient, serviceClientOverrides ServiceClientOverrides) (interface{}, error) {
17+
client, err := oci_visual_builder.NewVbInstanceClientWithConfigurationProvider(configProvider)
18+
if err != nil {
19+
return nil, err
20+
}
21+
err = configureClient(&client.BaseClient)
22+
if err != nil {
23+
return nil, err
24+
}
25+
26+
if serviceClientOverrides.HostUrlOverride != "" {
27+
client.Host = serviceClientOverrides.HostUrlOverride
28+
}
29+
return &client, nil
30+
}
31+
32+
func (m *OracleClients) VbInstanceClient() *oci_visual_builder.VbInstanceClient {
33+
return m.GetClient("oci_visual_builder.VbInstanceClient").(*oci_visual_builder.VbInstanceClient)
34+
}

internal/integrationtest/data_labeling_service_dataset_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ func TestDataLabelingServiceDatasetResource_basic(t *testing.T) {
107107
config := acctest.ProviderTestConfig()
108108

109109
compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid")
110-
compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id"+
110+
compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id" +
111111
"\" { default = \"%s\" }\n", compartmentId)
112112

113113
compartmentIdU := utils.GetEnvSettingWithDefault("compartment_id_for_Update", compartmentId)

internal/integrationtest/visual_builder_vb_instance_test.go

Lines changed: 402 additions & 0 deletions
Large diffs are not rendered by default.

internal/resourcediscovery/export_definitions.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ import (
3737
oci_opsi "github.com/oracle/oci-go-sdk/v55/opsi"
3838
oci_sch "github.com/oracle/oci-go-sdk/v55/sch"
3939
oci_streaming "github.com/oracle/oci-go-sdk/v55/streaming"
40+
oci_visual_builder "github.com/oracle/oci-go-sdk/v55/visualbuilder"
4041
oci_vulnerability_scanning "github.com/oracle/oci-go-sdk/v55/vulnerabilityscanning"
4142
oci_waas "github.com/oracle/oci-go-sdk/v55/waas"
4243
oci_waf "github.com/oracle/oci-go-sdk/v55/waf"
@@ -2771,6 +2772,18 @@ var exportUsageProxySubscriptionRedeemableUserHints = &TerraformResourceHints{
27712772
resourceAbbreviation: "subscription_redeemable_user",
27722773
}
27732774

2775+
var exportVisualBuilderVbInstanceHints = &TerraformResourceHints{
2776+
resourceClass: "oci_visual_builder_vb_instance",
2777+
datasourceClass: "oci_visual_builder_vb_instances",
2778+
datasourceItemsAttr: "vb_instance_summary_collection",
2779+
isDatasourceCollection: true,
2780+
resourceAbbreviation: "vb_instance",
2781+
requireResourceRefresh: true,
2782+
discoverableLifecycleStates: []string{
2783+
string(oci_visual_builder.VbInstanceLifecycleStateActive),
2784+
},
2785+
}
2786+
27742787
var exportVulnerabilityScanningHostScanRecipeHints = &TerraformResourceHints{
27752788
resourceClass: "oci_vulnerability_scanning_host_scan_recipe",
27762789
datasourceClass: "oci_vulnerability_scanning_host_scan_recipes",

internal/resourcediscovery/export_graphs.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ var compartmentResourceGraphs = map[string]TerraformResourceGraph{
7777
"waf": wafResourceGraph,
7878
"streaming": streamingResourceGraph,
7979
"tagging": taggingResourceGraph,
80+
"visual_builder": visualBuilderResourceGraph,
8081
//"vulnerability_scanning": vulnerabilityScanningResourceGraph,
8182
//"waas": waasResourceGraph,
8283
//"waf": wafResourceGraph,
@@ -1087,6 +1088,12 @@ var usageProxyResourceGraph = TerraformResourceGraph{
10871088
"oci_identity_compartment": {},
10881089
}
10891090

1091+
var visualBuilderResourceGraph = TerraformResourceGraph{
1092+
"oci_identity_compartment": {
1093+
{TerraformResourceHints: exportVisualBuilderVbInstanceHints},
1094+
},
1095+
}
1096+
10901097
var vulnerabilityScanningResourceGraph = TerraformResourceGraph{
10911098
"oci_identity_compartment": {
10921099
{TerraformResourceHints: exportVulnerabilityScanningHostScanRecipeHints},
Lines changed: 144 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,144 @@
1+
package visual_builder
2+
3+
import (
4+
"context"
5+
"github.com/hashicorp/terraform-plugin-sdk/helper/schema"
6+
"github.com/terraform-providers/terraform-provider-oci/internal/client"
7+
"github.com/terraform-providers/terraform-provider-oci/internal/tfresource"
8+
"github.com/terraform-providers/terraform-provider-oci/internal/utils"
9+
10+
oci_visual_builder "github.com/oracle/oci-go-sdk/v55/visualbuilder"
11+
)
12+
13+
func VisualBuilderVbInstanceApplicationsDataSource() *schema.Resource {
14+
return &schema.Resource{
15+
Importer: &schema.ResourceImporter{
16+
State: schema.ImportStatePassthrough,
17+
},
18+
Read: readVisualBuilderVbInstanceApplication,
19+
Schema: map[string]*schema.Schema{
20+
"vb_instance_id": {
21+
Type: schema.TypeString,
22+
Required: true,
23+
},
24+
"idcs_open_id": {
25+
Type: schema.TypeString,
26+
Optional: true,
27+
StateFunc: utils.GetMd5Hash,
28+
Sensitive: true,
29+
},
30+
"application_summary_collection": {
31+
Type: schema.TypeList,
32+
Computed: true,
33+
Elem: &schema.Resource{
34+
Schema: map[string]*schema.Schema{
35+
"items": {
36+
Type: schema.TypeList,
37+
Computed: true,
38+
// Elem: GetDataSourceItemSchema(VisualBuilderVbInstanceApplicationsDataSource()),
39+
Elem: &schema.Resource{
40+
Schema: map[string]*schema.Schema{
41+
"state": {
42+
Type: schema.TypeString,
43+
Required: true,
44+
},
45+
"id": {
46+
Type: schema.TypeString,
47+
Required: true,
48+
},
49+
"version": {
50+
Type: schema.TypeString,
51+
Required: true,
52+
},
53+
"project_id": {
54+
Type: schema.TypeString,
55+
Required: true,
56+
},
57+
},
58+
},
59+
},
60+
},
61+
},
62+
},
63+
},
64+
}
65+
}
66+
67+
func readVisualBuilderVbInstanceApplication(d *schema.ResourceData, m interface{}) error {
68+
sync := &VisualBuilderVbInstanceApplicationsDataSourceCrud{}
69+
sync.D = d
70+
sync.Client = m.(*client.OracleClients).VbInstanceClient()
71+
72+
return tfresource.ReadResource(sync)
73+
}
74+
75+
type VisualBuilderVbInstanceApplicationsDataSourceCrud struct {
76+
D *schema.ResourceData
77+
Client *oci_visual_builder.VbInstanceClient
78+
Res *oci_visual_builder.RequestSummarizedApplicationsResponse
79+
}
80+
81+
func (s *VisualBuilderVbInstanceApplicationsDataSourceCrud) VoidState() {
82+
s.D.SetId("")
83+
}
84+
85+
func (s *VisualBuilderVbInstanceApplicationsDataSourceCrud) Get() error {
86+
request := oci_visual_builder.RequestSummarizedApplicationsRequest{}
87+
88+
if vbInstanceId, ok := s.D.GetOkExists("vb_instance_id"); ok {
89+
tmp := vbInstanceId.(string)
90+
request.VbInstanceId = &tmp
91+
}
92+
93+
if idcsOpenId, ok := s.D.GetOkExists("idcs_open_id"); ok {
94+
tmp := idcsOpenId.(string)
95+
request.IdcsOpenId = &tmp
96+
} else {
97+
tmp := ""
98+
request.IdcsOpenId = &tmp
99+
}
100+
101+
request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "visual_builder")
102+
103+
response, err := s.Client.RequestSummarizedApplications(context.Background(), request)
104+
if err != nil {
105+
return err
106+
}
107+
108+
s.Res = &response
109+
return nil
110+
}
111+
112+
func (s *VisualBuilderVbInstanceApplicationsDataSourceCrud) SetData() error {
113+
if s.Res == nil {
114+
return nil
115+
}
116+
117+
s.D.SetId(tfresource.GenerateDataSourceHashID("VisualBuilderVbInstanceApplicationsDataSource-", VisualBuilderVbInstanceApplicationsDataSource(), s.D))
118+
resources := []map[string]interface{}{}
119+
vbInstanceApplication := map[string]interface{}{}
120+
121+
items := []interface{}{}
122+
for _, item := range s.Res.Items {
123+
items = append(items, VbApplicationSummaryToMap(item))
124+
}
125+
vbInstanceApplication["items"] = items
126+
127+
resources = append(resources, vbInstanceApplication)
128+
if err := s.D.Set("application_summary_collection", resources); err != nil {
129+
return err
130+
}
131+
132+
return nil
133+
}
134+
135+
func VbApplicationSummaryToMap(obj oci_visual_builder.ApplicationSummary) map[string]interface{} {
136+
result := map[string]interface{}{}
137+
138+
result["state"] = string(obj.State)
139+
result["id"] = *obj.Id
140+
result["version"] = *obj.Version
141+
result["project_id"] = *obj.ProjectId
142+
143+
return result
144+
}

0 commit comments

Comments
 (0)