Skip to content

Commit 06b4baf

Browse files
AshishSrividyaKamakshi
authored andcommitted
Added - Support for Privileged API Access Control for Oracle Database Services
1 parent 1c77222 commit 06b4baf

File tree

34 files changed

+5081
-0
lines changed

34 files changed

+5081
-0
lines changed
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
// Copyright (c) 2017, 2024, Oracle and/or its affiliates. All rights reserved.
2+
// Licensed under the Mozilla Public License v2.0
3+
variable "tenancy_ocid" {}
4+
variable "user_ocid" {}
5+
variable "fingerprint" {}
6+
variable "private_key_path" {}
7+
variable "region" {}
8+
9+
variable "authz_compartment_id" {
10+
}
11+
12+
variable "api_metadata_display_name" {
13+
default = "displayName"
14+
}
15+
16+
variable "api_metadata_resource_type" {
17+
default = "EXADATAINFRASTRUCTURE"
18+
}
19+
20+
variable "api_metadata_state" {
21+
default = "ACTIVE"
22+
}
23+
24+
provider "oci" {
25+
tenancy_ocid = var.tenancy_ocid
26+
user_ocid = var.user_ocid
27+
fingerprint = var.fingerprint
28+
private_key_path = var.private_key_path
29+
region = var.region
30+
}
31+
32+
data "oci_apiaccesscontrol_api_metadatas" "test_api_metadatas" {
33+
compartment_id = var.authz_compartment_id
34+
#Optional
35+
display_name = var.api_metadata_display_name
36+
resource_type = var.api_metadata_resource_type
37+
state = var.api_metadata_state
38+
}
39+
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
// Copyright (c) 2017, 2024, Oracle and/or its affiliates. All rights reserved.
2+
// Licensed under the Mozilla Public License v2.0
3+
variable "tenancy_ocid" {}
4+
variable "user_ocid" {}
5+
variable "fingerprint" {}
6+
variable "private_key_path" {}
7+
variable "region" {}
8+
variable "authz_compartment_id" {
9+
}
10+
11+
variable "api_metadata_by_entity_type_display_name" {
12+
default = "displayName"
13+
}
14+
15+
variable "api_metadata_by_entity_type_resource_type" {
16+
default = "EXADATAINFRASTRUCTURE"
17+
}
18+
19+
variable "api_metadata_by_entity_type_state" {
20+
default = "ACTIVE"
21+
}
22+
23+
provider "oci" {
24+
tenancy_ocid = var.tenancy_ocid
25+
user_ocid = var.user_ocid
26+
fingerprint = var.fingerprint
27+
private_key_path = var.private_key_path
28+
region = var.region
29+
}
30+
31+
data "oci_apiaccesscontrol_api_metadata_by_entity_types" "test_api_metadata_by_entity_types" {
32+
compartment_id = var.authz_compartment_id
33+
#Optional
34+
display_name = var.api_metadata_by_entity_type_display_name
35+
resource_type = var.api_metadata_by_entity_type_resource_type
36+
state = var.api_metadata_by_entity_type_state
37+
}
38+
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# Overview
2+
This is a Terraform configuration that creates the Api Access Control service on Oracle Cloud Infrastructure.
3+
4+
The Terraform code is used to create a Resource Manager stack, that creates the required resources and configures the application on the created resources.
Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
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 "authz_compartment_id" {
10+
}
11+
variable "privileged_api_control_resources" {
12+
}
13+
variable "notification_topic_id" {
14+
}
15+
16+
variable "privileged_api_control_privileged_operation_list_api_name" {
17+
}
18+
19+
variable "privileged_api_control_privileged_operation_list_entity_type" {
20+
}
21+
22+
variable "privileged_api_control_approver_group_id_list" {
23+
default = ["use_iam_policy"]
24+
}
25+
26+
variable "privileged_api_control_defined_tags_value" {
27+
default = "value"
28+
}
29+
30+
variable "privileged_api_control_description" {
31+
default = "Control for pre approving the apis"
32+
}
33+
34+
variable "privileged_api_control_display_name" {
35+
default = "TestPrivilegedApiControl"
36+
}
37+
38+
variable "privileged_api_control_freeform_tags" {
39+
default = { "Department" = "db" }
40+
}
41+
42+
variable "privileged_api_control_id" {
43+
default = "id"
44+
}
45+
46+
variable "privileged_api_control_number_of_approvers" {
47+
default = 1
48+
}
49+
50+
variable "privileged_api_control_privileged_operation_list_attribute_names" {
51+
default = []
52+
}
53+
54+
55+
variable "privileged_api_control_resource_type" {
56+
default = "EXADATAINFRASTRUCTURE"
57+
}
58+
59+
variable "privileged_api_control_state" {
60+
default = "ACTIVE"
61+
}
62+
63+
provider "oci" {
64+
tenancy_ocid = var.tenancy_ocid
65+
user_ocid = var.user_ocid
66+
fingerprint = var.fingerprint
67+
private_key_path = var.private_key_path
68+
region = var.region
69+
}
70+
71+
resource "oci_apiaccesscontrol_privileged_api_control" "test_privileged_api_control" {
72+
#Required
73+
approver_group_id_list = var.privileged_api_control_approver_group_id_list
74+
compartment_id = var.authz_compartment_id
75+
notification_topic_id = var.notification_topic_id
76+
privileged_operation_list {
77+
#Required
78+
api_name = var.privileged_api_control_privileged_operation_list_api_name
79+
entity_type = var.privileged_api_control_privileged_operation_list_entity_type
80+
#Optional
81+
attribute_names = var.privileged_api_control_privileged_operation_list_attribute_names
82+
}
83+
resource_type = var.privileged_api_control_resource_type
84+
resources = var.privileged_api_control_resources
85+
number_of_approvers = var.privileged_api_control_number_of_approvers
86+
description = var.privileged_api_control_description
87+
display_name = var.privileged_api_control_display_name
88+
#Optional
89+
freeform_tags = var.privileged_api_control_freeform_tags
90+
}
91+
92+
data "oci_apiaccesscontrol_privileged_api_controls" "test_privileged_api_controls" {
93+
compartment_id = var.authz_compartment_id
94+
#Optional
95+
display_name = var.privileged_api_control_display_name
96+
id = var.privileged_api_control_id
97+
resource_type = var.privileged_api_control_resource_type
98+
state = var.privileged_api_control_state
99+
}
100+
Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
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 "authz_compartment_id" {
10+
}
11+
variable "privileged_api_control_privileged_operation_list_api_name" {
12+
}
13+
variable "notification_topic_id" {
14+
}
15+
variable "resource_id" {
16+
}
17+
18+
variable "privileged_api_request_defined_tags_value" {
19+
default = "value"
20+
}
21+
22+
variable "privileged_api_request_display_name" {
23+
default = "displayName"
24+
}
25+
26+
variable "privileged_api_request_duration_in_hrs" {
27+
default = 1
28+
}
29+
30+
variable "privileged_api_request_freeform_tags" {
31+
default = { "Department" = "db" }
32+
}
33+
34+
variable "privileged_api_request_id" {
35+
default = "id"
36+
}
37+
38+
variable "privileged_api_request_privileged_operation_list_attribute_names" {
39+
default = []
40+
}
41+
42+
variable "privileged_api_request_reason_detail" {
43+
default = "reasonDetail"
44+
}
45+
46+
variable "privileged_api_request_reason_summary" {
47+
default = "TestPrivilegedApiControl"
48+
}
49+
50+
variable "privileged_api_request_resource_type" {
51+
default = "EXADATAINFRASTRUCTURE"
52+
}
53+
54+
variable "privileged_api_request_severity" {
55+
default = "SEV_3"
56+
}
57+
58+
variable "privileged_api_request_state" {
59+
default = "APPROVED"
60+
}
61+
62+
variable "privileged_api_request_sub_resource_name_list" {
63+
default = []
64+
}
65+
66+
variable "privileged_api_request_ticket_numbers" {
67+
default = []
68+
}
69+
70+
variable "privileged_api_request_time_requested_for_future_access" {
71+
default = ""
72+
}
73+
74+
75+
provider "oci" {
76+
tenancy_ocid = var.tenancy_ocid
77+
user_ocid = var.user_ocid
78+
fingerprint = var.fingerprint
79+
private_key_path = var.private_key_path
80+
region = var.region
81+
}
82+
83+
resource "oci_apiaccesscontrol_privileged_api_request" "test_privileged_api_request" {
84+
#Required
85+
compartment_id = var.authz_compartment_id
86+
privileged_operation_list {
87+
#Required
88+
api_name = var.privileged_api_control_privileged_operation_list_api_name
89+
90+
#Optional
91+
attribute_names = var.privileged_api_request_privileged_operation_list_attribute_names
92+
}
93+
reason_summary = var.privileged_api_request_reason_summary
94+
resource_id = var.resource_id
95+
96+
#Optional
97+
duration_in_hrs = var.privileged_api_request_duration_in_hrs
98+
freeform_tags = var.privileged_api_request_freeform_tags
99+
notification_topic_id = var.notification_topic_id
100+
reason_detail = var.privileged_api_request_reason_detail
101+
severity = var.privileged_api_request_severity
102+
sub_resource_name_list = var.privileged_api_request_sub_resource_name_list
103+
ticket_numbers = var.privileged_api_request_ticket_numbers
104+
time_requested_for_future_access = var.privileged_api_request_time_requested_for_future_access
105+
}
106+
107+
data "oci_apiaccesscontrol_privileged_api_requests" "test_privileged_api_requests" {
108+
compartment_id = var.authz_compartment_id
109+
#Optional
110+
display_name = var.privileged_api_request_display_name
111+
id = var.privileged_api_request_id
112+
resource_id = var.resource_id
113+
resource_type = var.privileged_api_request_resource_type
114+
state = var.privileged_api_request_state
115+
}
116+
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
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_apiaccesscontrol "github.com/oracle/oci-go-sdk/v65/apiaccesscontrol"
8+
9+
oci_common "github.com/oracle/oci-go-sdk/v65/common"
10+
)
11+
12+
func init() {
13+
RegisterOracleClient("oci_apiaccesscontrol.ApiMetadataClient", &OracleClient{InitClientFn: initApiaccesscontrolApiMetadataClient})
14+
RegisterOracleClient("oci_apiaccesscontrol.PrivilegedApiWorkRequestClient", &OracleClient{InitClientFn: initApiaccesscontrolPrivilegedApiWorkRequestClient})
15+
RegisterOracleClient("oci_apiaccesscontrol.PrivilegedApiControlClient", &OracleClient{InitClientFn: initApiaccesscontrolPrivilegedApiControlClient})
16+
RegisterOracleClient("oci_apiaccesscontrol.PrivilegedApiRequestsClient", &OracleClient{InitClientFn: initApiaccesscontrolPrivilegedApiRequestsClient})
17+
}
18+
19+
func initApiaccesscontrolApiMetadataClient(configProvider oci_common.ConfigurationProvider, configureClient ConfigureClient, serviceClientOverrides ServiceClientOverrides) (interface{}, error) {
20+
client, err := oci_apiaccesscontrol.NewApiMetadataClientWithConfigurationProvider(configProvider)
21+
if err != nil {
22+
return nil, err
23+
}
24+
err = configureClient(&client.BaseClient)
25+
if err != nil {
26+
return nil, err
27+
}
28+
29+
if serviceClientOverrides.HostUrlOverride != "" {
30+
client.Host = serviceClientOverrides.HostUrlOverride
31+
}
32+
return &client, nil
33+
}
34+
35+
func (m *OracleClients) ApiMetadataClient() *oci_apiaccesscontrol.ApiMetadataClient {
36+
return m.GetClient("oci_apiaccesscontrol.ApiMetadataClient").(*oci_apiaccesscontrol.ApiMetadataClient)
37+
}
38+
39+
func initApiaccesscontrolPrivilegedApiWorkRequestClient(configProvider oci_common.ConfigurationProvider, configureClient ConfigureClient, serviceClientOverrides ServiceClientOverrides) (interface{}, error) {
40+
client, err := oci_apiaccesscontrol.NewPrivilegedApiWorkRequestClientWithConfigurationProvider(configProvider)
41+
if err != nil {
42+
return nil, err
43+
}
44+
err = configureClient(&client.BaseClient)
45+
if err != nil {
46+
return nil, err
47+
}
48+
49+
if serviceClientOverrides.HostUrlOverride != "" {
50+
client.Host = serviceClientOverrides.HostUrlOverride
51+
}
52+
return &client, nil
53+
}
54+
55+
func (m *OracleClients) ApiaccesscontrolPrivilegedApiWorkRequestClient() *oci_apiaccesscontrol.PrivilegedApiWorkRequestClient {
56+
return m.GetClient("oci_apiaccesscontrol.PrivilegedApiWorkRequestClient").(*oci_apiaccesscontrol.PrivilegedApiWorkRequestClient)
57+
}
58+
59+
func initApiaccesscontrolPrivilegedApiControlClient(configProvider oci_common.ConfigurationProvider, configureClient ConfigureClient, serviceClientOverrides ServiceClientOverrides) (interface{}, error) {
60+
client, err := oci_apiaccesscontrol.NewPrivilegedApiControlClientWithConfigurationProvider(configProvider)
61+
if err != nil {
62+
return nil, err
63+
}
64+
err = configureClient(&client.BaseClient)
65+
if err != nil {
66+
return nil, err
67+
}
68+
69+
if serviceClientOverrides.HostUrlOverride != "" {
70+
client.Host = serviceClientOverrides.HostUrlOverride
71+
}
72+
return &client, nil
73+
}
74+
75+
func (m *OracleClients) PrivilegedApiControlClient() *oci_apiaccesscontrol.PrivilegedApiControlClient {
76+
return m.GetClient("oci_apiaccesscontrol.PrivilegedApiControlClient").(*oci_apiaccesscontrol.PrivilegedApiControlClient)
77+
}
78+
79+
func initApiaccesscontrolPrivilegedApiRequestsClient(configProvider oci_common.ConfigurationProvider, configureClient ConfigureClient, serviceClientOverrides ServiceClientOverrides) (interface{}, error) {
80+
client, err := oci_apiaccesscontrol.NewPrivilegedApiRequestsClientWithConfigurationProvider(configProvider)
81+
if err != nil {
82+
return nil, err
83+
}
84+
err = configureClient(&client.BaseClient)
85+
if err != nil {
86+
return nil, err
87+
}
88+
89+
if serviceClientOverrides.HostUrlOverride != "" {
90+
client.Host = serviceClientOverrides.HostUrlOverride
91+
}
92+
return &client, nil
93+
}
94+
95+
func (m *OracleClients) PrivilegedApiRequestsClient() *oci_apiaccesscontrol.PrivilegedApiRequestsClient {
96+
return m.GetClient("oci_apiaccesscontrol.PrivilegedApiRequestsClient").(*oci_apiaccesscontrol.PrivilegedApiRequestsClient)
97+
}

0 commit comments

Comments
 (0)