Skip to content

Commit 914bbbe

Browse files
SAHIL THUKRALSrividyaKamakshi
authored andcommitted
Added - Support for AI Data Platform
1 parent 73f900d commit 914bbbe

15 files changed

+1602
-0
lines changed
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
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 "ai_data_platform_ai_data_platform_type" {
12+
default = "aiDataPlatformType"
13+
}
14+
15+
variable "ai_data_platform_display_name" {
16+
default = "displayName"
17+
}
18+
19+
variable "ai_data_platform_workspace_name" {
20+
default = "workspaceName"
21+
}
22+
23+
variable "ai_data_platform_exclude_lifecycle_state" {
24+
default = "CREATING"
25+
}
26+
27+
variable "ai_data_platform_freeform_tags" {
28+
default = { "Department" = "Finance" }
29+
}
30+
31+
variable "ai_data_platform_include_legacy" {
32+
default = "true"
33+
}
34+
35+
variable "ai_data_platform_state" {
36+
default = "ACTIVE"
37+
}
38+
39+
variable "ai_data_platform_system_tags" {
40+
default = "value"
41+
}
42+
43+
provider "oci" {
44+
tenancy_ocid = var.tenancy_ocid
45+
user_ocid = var.user_ocid
46+
fingerprint = var.fingerprint
47+
private_key_path = var.private_key_path
48+
region = var.region
49+
}
50+
51+
resource "oci_ai_data_platform_ai_data_platform" "test_ai_data_platform" {
52+
#Required
53+
compartment_id = var.compartment_id
54+
55+
#Optional
56+
ai_data_platform_type = var.ai_data_platform_ai_data_platform_type
57+
default_workspace_name = var.ai_data_platform_workspace_name
58+
#defined_tags = map(oci_identity_tag_namespace.tag-namespace1.name.oci_identity_tag.tag1.name, var.ai_data_platform_defined_tags_value)
59+
display_name = var.ai_data_platform_display_name
60+
freeform_tags = var.ai_data_platform_freeform_tags
61+
}
62+
63+
data "oci_ai_data_platform_ai_data_platforms" "test_ai_data_platforms" {
64+
65+
depends_on = [oci_ai_data_platform_ai_data_platform.test_ai_data_platform]
66+
67+
#Optional
68+
compartment_id = var.compartment_id
69+
display_name = var.ai_data_platform_display_name
70+
exclude_lifecycle_state = var.ai_data_platform_exclude_lifecycle_state
71+
id = oci_ai_data_platform_ai_data_platform.test_ai_data_platform.id
72+
include_legacy = var.ai_data_platform_include_legacy
73+
state = var.ai_data_platform_state
74+
}
75+
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_ai_data_platform "github.com/oracle/oci-go-sdk/v65/aidataplatform"
8+
9+
oci_common "github.com/oracle/oci-go-sdk/v65/common"
10+
)
11+
12+
func init() {
13+
RegisterOracleClient("oci_ai_data_platform.AiDataPlatformClient", &OracleClient{InitClientFn: initAidataplatformAiDataPlatformClient})
14+
}
15+
16+
func initAidataplatformAiDataPlatformClient(configProvider oci_common.ConfigurationProvider, configureClient ConfigureClient, serviceClientOverrides ServiceClientOverrides) (interface{}, error) {
17+
client, err := oci_ai_data_platform.NewAiDataPlatformClientWithConfigurationProvider(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) AiDataPlatformClient() *oci_ai_data_platform.AiDataPlatformClient {
33+
return m.GetClient("oci_ai_data_platform.AiDataPlatformClient").(*oci_ai_data_platform.AiDataPlatformClient)
34+
}

internal/integrationtest/ai_data_platform_ai_data_platform_test.go

Lines changed: 356 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
@@ -6,6 +6,7 @@ package provider
66
import (
77
"github.com/oracle/oci-go-sdk/v65/common"
88
tf_adm "github.com/oracle/terraform-provider-oci/internal/service/adm"
9+
tf_ai_data_platform "github.com/oracle/terraform-provider-oci/internal/service/ai_data_platform"
910
tf_ai_document "github.com/oracle/terraform-provider-oci/internal/service/ai_document"
1011
tf_ai_language "github.com/oracle/terraform-provider-oci/internal/service/ai_language"
1112
tf_ai_vision "github.com/oracle/terraform-provider-oci/internal/service/ai_vision"
@@ -144,6 +145,9 @@ func init() {
144145
if common.CheckForEnabledServices("adm") {
145146
tf_adm.RegisterDatasource()
146147
}
148+
if common.CheckForEnabledServices("aidataplatform") {
149+
tf_ai_data_platform.RegisterDatasource()
150+
}
147151
if common.CheckForEnabledServices("aidocument") {
148152
tf_ai_document.RegisterDatasource()
149153
}

internal/provider/register_resource.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ package provider
66
import (
77
"github.com/oracle/oci-go-sdk/v65/common"
88
tf_adm "github.com/oracle/terraform-provider-oci/internal/service/adm"
9+
tf_ai_data_platform "github.com/oracle/terraform-provider-oci/internal/service/ai_data_platform"
910
tf_ai_document "github.com/oracle/terraform-provider-oci/internal/service/ai_document"
1011
tf_ai_language "github.com/oracle/terraform-provider-oci/internal/service/ai_language"
1112
tf_ai_vision "github.com/oracle/terraform-provider-oci/internal/service/ai_vision"
@@ -144,6 +145,9 @@ func init() {
144145
if common.CheckForEnabledServices("adm") {
145146
tf_adm.RegisterResource()
146147
}
148+
if common.CheckForEnabledServices("aidataplatform") {
149+
tf_ai_data_platform.RegisterResource()
150+
}
147151
if common.CheckForEnabledServices("aidocument") {
148152
tf_ai_document.RegisterResource()
149153
}
Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
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 ai_data_platform
5+
6+
import (
7+
"context"
8+
9+
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
10+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
11+
oci_ai_data_platform "github.com/oracle/oci-go-sdk/v65/aidataplatform"
12+
13+
"github.com/oracle/terraform-provider-oci/internal/client"
14+
"github.com/oracle/terraform-provider-oci/internal/tfresource"
15+
)
16+
17+
func AiDataPlatformAiDataPlatformDataSource() *schema.Resource {
18+
fieldMap := make(map[string]*schema.Schema)
19+
fieldMap["ai_data_platform_id"] = &schema.Schema{
20+
Type: schema.TypeString,
21+
Required: true,
22+
}
23+
return tfresource.GetSingularDataSourceItemSchemaWithContext(AiDataPlatformAiDataPlatformResource(), fieldMap, readSingularAiDataPlatformAiDataPlatformWithContext)
24+
}
25+
26+
func readSingularAiDataPlatformAiDataPlatformWithContext(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
27+
sync := &AiDataPlatformAiDataPlatformDataSourceCrud{}
28+
sync.D = d
29+
sync.Client = m.(*client.OracleClients).AiDataPlatformClient()
30+
31+
return tfresource.HandleDiagError(m, tfresource.ReadResourceWithContext(ctx, sync))
32+
}
33+
34+
type AiDataPlatformAiDataPlatformDataSourceCrud struct {
35+
D *schema.ResourceData
36+
Client *oci_ai_data_platform.AiDataPlatformClient
37+
Res *oci_ai_data_platform.GetAiDataPlatformResponse
38+
}
39+
40+
func (s *AiDataPlatformAiDataPlatformDataSourceCrud) VoidState() {
41+
s.D.SetId("")
42+
}
43+
44+
func (s *AiDataPlatformAiDataPlatformDataSourceCrud) GetWithContext(ctx context.Context) error {
45+
request := oci_ai_data_platform.GetAiDataPlatformRequest{}
46+
47+
if aiDataPlatformId, ok := s.D.GetOkExists("ai_data_platform_id"); ok {
48+
tmp := aiDataPlatformId.(string)
49+
request.AiDataPlatformId = &tmp
50+
}
51+
52+
request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "ai_data_platform")
53+
54+
response, err := s.Client.GetAiDataPlatform(ctx, request)
55+
if err != nil {
56+
return err
57+
}
58+
59+
s.Res = &response
60+
return nil
61+
}
62+
63+
func (s *AiDataPlatformAiDataPlatformDataSourceCrud) SetData() error {
64+
if s.Res == nil {
65+
return nil
66+
}
67+
68+
s.D.SetId(*s.Res.Id)
69+
70+
if s.Res.AiDataPlatformType != nil {
71+
s.D.Set("ai_data_platform_type", *s.Res.AiDataPlatformType)
72+
}
73+
74+
if s.Res.AliasKey != nil {
75+
s.D.Set("alias_key", *s.Res.AliasKey)
76+
}
77+
78+
if s.Res.CompartmentId != nil {
79+
s.D.Set("compartment_id", *s.Res.CompartmentId)
80+
}
81+
82+
if s.Res.CreatedBy != nil {
83+
s.D.Set("created_by", *s.Res.CreatedBy)
84+
}
85+
86+
if s.Res.DefinedTags != nil {
87+
s.D.Set("defined_tags", tfresource.DefinedTagsToMap(s.Res.DefinedTags))
88+
}
89+
90+
if s.Res.DisplayName != nil {
91+
s.D.Set("display_name", *s.Res.DisplayName)
92+
}
93+
94+
s.D.Set("freeform_tags", s.Res.FreeformTags)
95+
96+
if s.Res.LifecycleDetails != nil {
97+
s.D.Set("lifecycle_details", *s.Res.LifecycleDetails)
98+
}
99+
100+
s.D.Set("state", s.Res.LifecycleState)
101+
102+
if s.Res.SystemTags != nil {
103+
s.D.Set("system_tags", tfresource.SystemTagsToMap(s.Res.SystemTags))
104+
}
105+
106+
if s.Res.TimeCreated != nil {
107+
s.D.Set("time_created", s.Res.TimeCreated.String())
108+
}
109+
110+
if s.Res.TimeUpdated != nil {
111+
s.D.Set("time_updated", s.Res.TimeUpdated.String())
112+
}
113+
114+
if s.Res.WebSocketEndpoint != nil {
115+
s.D.Set("web_socket_endpoint", *s.Res.WebSocketEndpoint)
116+
}
117+
118+
return nil
119+
}

0 commit comments

Comments
 (0)