Skip to content

Commit 326dbfc

Browse files
Hitanshu MevawallaMaxrovr
authored andcommitted
Added - Support for API Platform Cloud Service
1 parent 07d3323 commit 326dbfc

15 files changed

+1546
-1
lines changed
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
// Copyright (c) 2017, 2024, Oracle and/or its affiliates. All rights reserved.
2+
// Licensed under the Mozilla Public License v2.0
3+
4+
variable "tenancy_ocid" {}
5+
variable "user_ocid" {}
6+
variable "fingerprint" {}
7+
variable "private_key_path" {}
8+
variable "region" {}
9+
variable "compartment_id" {}
10+
11+
variable "api_platform_instance_description" {
12+
default = "description"
13+
}
14+
15+
variable "api_platform_instance_freeform_tags" {
16+
default = { "bar-key" = "value" }
17+
}
18+
19+
variable "api_platform_instance_name" {
20+
default = "name"
21+
}
22+
23+
variable "api_platform_instance_state" {
24+
default = "ACTIVE"
25+
}
26+
27+
28+
provider "oci" {
29+
tenancy_ocid = var.tenancy_ocid
30+
user_ocid = var.user_ocid
31+
fingerprint = var.fingerprint
32+
private_key_path = var.private_key_path
33+
region = var.region
34+
}
35+
36+
resource "oci_api_platform_api_platform_instance" "test_api_platform_instance" {
37+
#Required
38+
compartment_id = var.compartment_id
39+
name = var.api_platform_instance_name
40+
41+
#Optional
42+
defined_tags = { "example-tag-namespace-all.example-tag" = "value" }
43+
description = var.api_platform_instance_description
44+
freeform_tags = var.api_platform_instance_freeform_tags
45+
}
46+
47+
data "oci_api_platform_api_platform_instances" "test_api_platform_instances" {
48+
#Required
49+
compartment_id = var.compartment_id
50+
51+
#Optional
52+
id = oci_api_platform_api_platform_instance.test_api_platform_instance.id
53+
name = var.api_platform_instance_name
54+
state = var.api_platform_instance_state
55+
}
56+
57+
data "oci_api_platform_api_platform_instance" "test_api_platform_instance_data" {
58+
#Required
59+
api_platform_instance_id = oci_api_platform_api_platform_instance.test_api_platform_instance.id
60+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
// Copyright (c) 2017, 2024, 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_api_platform "github.com/oracle/oci-go-sdk/v65/apiplatform"
8+
9+
oci_common "github.com/oracle/oci-go-sdk/v65/common"
10+
)
11+
12+
func init() {
13+
RegisterOracleClient("oci_api_platform.ApiPlatformClient", &OracleClient{InitClientFn: initApiplatformApiPlatformClient})
14+
}
15+
16+
func initApiplatformApiPlatformClient(configProvider oci_common.ConfigurationProvider, configureClient ConfigureClient, serviceClientOverrides ServiceClientOverrides) (interface{}, error) {
17+
client, err := oci_api_platform.NewApiPlatformClientWithConfigurationProvider(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) ApiPlatformClient() *oci_api_platform.ApiPlatformClient {
33+
return m.GetClient("oci_api_platform.ApiPlatformClient").(*oci_api_platform.ApiPlatformClient)
34+
}

internal/integrationtest/api_platform_api_platform_instance_test.go

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

internal/provider/register_datasource.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111
tf_ai_vision "github.com/oracle/terraform-provider-oci/internal/service/ai_vision"
1212
tf_analytics "github.com/oracle/terraform-provider-oci/internal/service/analytics"
1313
tf_announcements_service "github.com/oracle/terraform-provider-oci/internal/service/announcements_service"
14+
tf_api_platform "github.com/oracle/terraform-provider-oci/internal/service/api_platform"
1415
tf_apiaccesscontrol "github.com/oracle/terraform-provider-oci/internal/service/apiaccesscontrol"
1516
tf_apigateway "github.com/oracle/terraform-provider-oci/internal/service/apigateway"
1617
tf_apm "github.com/oracle/terraform-provider-oci/internal/service/apm"
@@ -153,6 +154,9 @@ func init() {
153154
if common.CheckForEnabledServices("announcementsservice") {
154155
tf_announcements_service.RegisterDatasource()
155156
}
157+
if common.CheckForEnabledServices("apiplatform") {
158+
tf_api_platform.RegisterDatasource()
159+
}
156160
if common.CheckForEnabledServices("apiaccesscontrol") {
157161
tf_apiaccesscontrol.RegisterDatasource()
158162
}

internal/provider/register_resource.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111
tf_ai_vision "github.com/oracle/terraform-provider-oci/internal/service/ai_vision"
1212
tf_analytics "github.com/oracle/terraform-provider-oci/internal/service/analytics"
1313
tf_announcements_service "github.com/oracle/terraform-provider-oci/internal/service/announcements_service"
14+
tf_api_platform "github.com/oracle/terraform-provider-oci/internal/service/api_platform"
1415
tf_apiaccesscontrol "github.com/oracle/terraform-provider-oci/internal/service/apiaccesscontrol"
1516
tf_apigateway "github.com/oracle/terraform-provider-oci/internal/service/apigateway"
1617
tf_apm "github.com/oracle/terraform-provider-oci/internal/service/apm"
@@ -153,6 +154,9 @@ func init() {
153154
if common.CheckForEnabledServices("announcementsservice") {
154155
tf_announcements_service.RegisterResource()
155156
}
157+
if common.CheckForEnabledServices("apiplatform") {
158+
tf_api_platform.RegisterResource()
159+
}
156160
if common.CheckForEnabledServices("apiaccesscontrol") {
157161
tf_apiaccesscontrol.RegisterResource()
158162
}
Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
// Copyright (c) 2017, 2024, Oracle and/or its affiliates. All rights reserved.
2+
// Licensed under the Mozilla Public License v2.0
3+
4+
package api_platform
5+
6+
import (
7+
"context"
8+
9+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
10+
oci_api_platform "github.com/oracle/oci-go-sdk/v65/apiplatform"
11+
12+
"github.com/oracle/terraform-provider-oci/internal/client"
13+
"github.com/oracle/terraform-provider-oci/internal/tfresource"
14+
)
15+
16+
func ApiPlatformApiPlatformInstanceDataSource() *schema.Resource {
17+
fieldMap := make(map[string]*schema.Schema)
18+
fieldMap["api_platform_instance_id"] = &schema.Schema{
19+
Type: schema.TypeString,
20+
Required: true,
21+
}
22+
return tfresource.GetSingularDataSourceItemSchema(ApiPlatformApiPlatformInstanceResource(), fieldMap, readSingularApiPlatformApiPlatformInstance)
23+
}
24+
25+
func readSingularApiPlatformApiPlatformInstance(d *schema.ResourceData, m interface{}) error {
26+
sync := &ApiPlatformApiPlatformInstanceDataSourceCrud{}
27+
sync.D = d
28+
sync.Client = m.(*client.OracleClients).ApiPlatformClient()
29+
30+
return tfresource.ReadResource(sync)
31+
}
32+
33+
type ApiPlatformApiPlatformInstanceDataSourceCrud struct {
34+
D *schema.ResourceData
35+
Client *oci_api_platform.ApiPlatformClient
36+
Res *oci_api_platform.GetApiPlatformInstanceResponse
37+
}
38+
39+
func (s *ApiPlatformApiPlatformInstanceDataSourceCrud) VoidState() {
40+
s.D.SetId("")
41+
}
42+
43+
func (s *ApiPlatformApiPlatformInstanceDataSourceCrud) Get() error {
44+
request := oci_api_platform.GetApiPlatformInstanceRequest{}
45+
46+
if apiPlatformInstanceId, ok := s.D.GetOkExists("api_platform_instance_id"); ok {
47+
tmp := apiPlatformInstanceId.(string)
48+
request.ApiPlatformInstanceId = &tmp
49+
}
50+
51+
request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "api_platform")
52+
53+
response, err := s.Client.GetApiPlatformInstance(context.Background(), request)
54+
if err != nil {
55+
return err
56+
}
57+
58+
s.Res = &response
59+
return nil
60+
}
61+
62+
func (s *ApiPlatformApiPlatformInstanceDataSourceCrud) SetData() error {
63+
if s.Res == nil {
64+
return nil
65+
}
66+
67+
s.D.SetId(*s.Res.Id)
68+
69+
if s.Res.CompartmentId != nil {
70+
s.D.Set("compartment_id", *s.Res.CompartmentId)
71+
}
72+
73+
if s.Res.DefinedTags != nil {
74+
s.D.Set("defined_tags", tfresource.DefinedTagsToMap(s.Res.DefinedTags))
75+
}
76+
77+
if s.Res.Description != nil {
78+
s.D.Set("description", *s.Res.Description)
79+
}
80+
81+
s.D.Set("freeform_tags", s.Res.FreeformTags)
82+
83+
if s.Res.IdcsApp != nil {
84+
s.D.Set("idcs_app", []interface{}{IdcsAppToMap(s.Res.IdcsApp)})
85+
} else {
86+
s.D.Set("idcs_app", nil)
87+
}
88+
89+
if s.Res.LifecycleDetails != nil {
90+
s.D.Set("lifecycle_details", *s.Res.LifecycleDetails)
91+
}
92+
93+
if s.Res.Name != nil {
94+
s.D.Set("name", *s.Res.Name)
95+
}
96+
97+
s.D.Set("state", s.Res.LifecycleState)
98+
99+
if s.Res.SystemTags != nil {
100+
s.D.Set("system_tags", tfresource.SystemTagsToMap(s.Res.SystemTags))
101+
}
102+
103+
if s.Res.TimeCreated != nil {
104+
s.D.Set("time_created", s.Res.TimeCreated.String())
105+
}
106+
107+
if s.Res.TimeUpdated != nil {
108+
s.D.Set("time_updated", s.Res.TimeUpdated.String())
109+
}
110+
111+
if s.Res.Uris != nil {
112+
s.D.Set("uris", []interface{}{UrisToMap(s.Res.Uris)})
113+
} else {
114+
s.D.Set("uris", nil)
115+
}
116+
117+
return nil
118+
}

0 commit comments

Comments
 (0)