Skip to content

Commit f312a8e

Browse files
Apigateway customer certificates support added
1 parent e19a4ee commit f312a8e

22 files changed

+1541
-1
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
## 3.95.0 (Unreleased)
22
- Support for query parameters added to `object_storage` `object` resource
3+
- Support for custom certificates added to `apigateway` `certificate` resource
34

45
## 3.94.0 (September 23, 2020)
56

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
// Copyright (c) 2017, 2020, 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 "certificate_certificate" {
12+
default = "-----BEGIN CERTIFICATE-----\nMIIFZTCCBE2gAwIBAgISA6/vHTH2+uHo4BFuKgs90rQ2MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0yMDA3MDMxMzIwMTNaFw0y\nMDEwMDExMzIwMTNaMBsxGTAXBgNVBAMTEHd3dy5wYXRyaWNoaS5jb20wggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDWOPcmSEgjKK9o13/FYtJ5U4pzGTbE\n1EuaFPLC9KVFRcIN+16f72BdNjDGxm5b9CzfkfjcgKJpunCGWE7r6ukFch8JDKxn\nyNu6XDrgjhymm0cWn+UxaipzronT9A8RDUllXTD8UJzJjYi/x6/bsds5u0C03CIc\ni0ig5jwJrCKvKGUhsjX1vx8mKibjvETjmkLhZJ+50PYuDUW4MFFqjIKxwIKh+szm\ne2B+lCJQGYhiAY9R7R0J41M7tzYZj4IzuYh7mDt/+t+JOuz1OUenMwAFMauXS9yW\nL0oY7sNEW1cnC2QWH4EHQfyOdN0HkYbsy/0Eia7KzcbgK8zvipjRzbO3AgMBAAGj\nggJyMIICbjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsG\nAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFFHRKpBm95oY9EIO164b+cou\n6qHiMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZFZe/zqOyhMG8GCCsGAQUFBwEB\nBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3AuaW50LXgzLmxldHNlbmNyeXB0\nLm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQuaW50LXgzLmxldHNlbmNyeXB0\nLm9yZy8wKQYDVR0RBCIwIIIMcGF0cmljaGkuY29tghB3d3cucGF0cmljaGkuY29t\nMEwGA1UdIARFMEMwCAYGZ4EMAQIBMDcGCysGAQQBgt8TAQEBMCgwJgYIKwYBBQUH\nAgEWGmh0dHA6Ly9jcHMubGV0c2VuY3J5cHQub3JnMIIBAwYKKwYBBAHWeQIEAgSB\n9ASB8QDvAHUAsh4FzIuizYogTodm+Su5iiUgZ2va+nDnsklTLe+LkF4AAAFzFQyZ\nUAAABAMARjBEAiBNyGhSkSA/QAV8O/z4p1sZxUbHX2LFaYhRn2gnRAmkRwIge9JC\nxsrSGMBtSOwN/mGBCr2yWsO7Xq0mFa7HvdyT5N0AdgBvU3asMfAxGdiZAKRRFf93\nFRwR2QLBACkGjbIImjfZEwAAAXMVDJl7AAAEAwBHMEUCICz3LqARn2byH91k3RZ/\nXloOaCPFI1hhzGk4LZbB7ZxOAiEA9CIbpEytmD0WctjD3HEsLHgpKtFCyFdOMrcS\n3W7+jh0wDQYJKoZIhvcNAQELBQADggEBAIBNvSrPD+01gTK64c6DkUix1xkdkzK6\nbMzjGU6lvcONhCSJGi4WZyl1m/nJfjuJ66xJSVlw0bcTbBmSYQCKWodkDPgR3HFM\nVJPXQuuLW7uNCMjqgz4h6o3WEWI1mKP5Vf5mPHVfgErgfk7TYtVWdqnB2/zJ72Tw\nvJwiSZjbEUBaxlw8BVdK224taStb1i1fM+xP+GOEaVlr6I59E1GpfOp1iwPBPzZi\nrb/w/03eCJn0P1+yTwBskvdsFRJaBbvd5mCGzAHcaAgMvbqv+u/7e01XgzPs8U7t\nHQ+a1q07HAmnobmXvkljO68T7MuUomFLmEX3RnRoNcXxqhNnMQnbQZ4=\n-----END CERTIFICATE-----"
13+
}
14+
15+
variable "certificate_defined_tags_value" {
16+
default = "value"
17+
}
18+
19+
variable "certificate_display_name" {
20+
default = "displayName"
21+
}
22+
23+
variable "certificate_freeform_tags" {
24+
default = {
25+
"Department" = "Finance"
26+
}
27+
}
28+
29+
variable "certificate_intermediate_certificates" {
30+
default = "-----BEGIN CERTIFICATE-----\nMIIEkjCCA3qgAwIBAgIQCgFBQgAAAVOFc2oLheynCDANBgkqhkiG9w0BAQsFADA/\nMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT\nDkRTVCBSb290IENBIFgzMB4XDTE2MDMxNzE2NDA0NloXDTIxMDMxNzE2NDA0Nlow\nSjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUxldCdzIEVuY3J5cHQxIzAhBgNVBAMT\nGkxldCdzIEVuY3J5cHQgQXV0aG9yaXR5IFgzMIIBIjANBgkqhkiG9w0BAQEFAAOC\nAQ8AMIIBCgKCAQEAnNMM8FrlLke3cl03g7NoYzDq1zUmGSXhvb418XCSL7e4S0EF\nq6meNQhY7LEqxGiHC6PjdeTm86dicbp5gWAf15Gan/PQeGdxyGkOlZHP/uaZ6WA8\nSMx+yk13EiSdRxta67nsHjcAHJyse6cF6s5K671B5TaYucv9bTyWaN8jKkKQDIZ0\nZ8h/pZq4UmEUEz9l6YKHy9v6Dlb2honzhT+Xhq+w3Brvaw2VFn3EK6BlspkENnWA\na6xK8xuQSXgvopZPKiAlKQTGdMDQMc2PMTiVFrqoM7hD8bEfwzB/onkxEz0tNvjj\n/PIzark5McWvxI0NHWQWM6r6hCm21AvA2H3DkwIDAQABo4IBfTCCAXkwEgYDVR0T\nAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwfwYIKwYBBQUHAQEEczBxMDIG\nCCsGAQUFBzABhiZodHRwOi8vaXNyZy50cnVzdGlkLm9jc3AuaWRlbnRydXN0LmNv\nbTA7BggrBgEFBQcwAoYvaHR0cDovL2FwcHMuaWRlbnRydXN0LmNvbS9yb290cy9k\nc3Ryb290Y2F4My5wN2MwHwYDVR0jBBgwFoAUxKexpHsscfrb4UuQdf/EFWCFiRAw\nVAYDVR0gBE0wSzAIBgZngQwBAgEwPwYLKwYBBAGC3xMBAQEwMDAuBggrBgEFBQcC\nARYiaHR0cDovL2Nwcy5yb290LXgxLmxldHNlbmNyeXB0Lm9yZzA8BgNVHR8ENTAz\nMDGgL6AthitodHRwOi8vY3JsLmlkZW50cnVzdC5jb20vRFNUUk9PVENBWDNDUkwu\nY3JsMB0GA1UdDgQWBBSoSmpjBH3duubRObemRWXv86jsoTANBgkqhkiG9w0BAQsF\nAAOCAQEA3TPXEfNjWDjdGBX7CVW+dla5cEilaUcne8IkCJLxWh9KEik3JHRRHGJo\nuM2VcGfl96S8TihRzZvoroed6ti6WqEBmtzw3Wodatg+VyOeph4EYpr/1wXKtx8/\nwApIvJSwtmVi4MFU5aMqrSDE6ea73Mj2tcMyo5jMd6jmeWUHK8so/joWUoHOUgwu\nX4Po1QYz+3dszkDqMp4fklxBwXRsW10KXzPMTZ+sOPAveyxindmjkW8lGy+QsRlG\nPfZ+G6Z6h7mjem0Y+iWlkYcV4PIWL1iwBi8saCbGS5jN2p8M+X+Q7UNKEkROb3N6\nKOqkqm57TH2H3eDJAkSnh6/DNFu0Qg==\n-----END CERTIFICATE-----"
31+
}
32+
33+
variable "certificate_private_key" {
34+
default = "-----BEGIN RSA PRIVATE KEY-----\nMIIEpAIBAAKCAQEA1jj3JkhIIyivaNd/xWLSeVOKcxk2xNRLmhTywvSlRUXCDfte\nn+9gXTYwxsZuW/Qs35H43ICiabpwhlhO6+rpBXIfCQysZ8jbulw64I4cpptHFp/l\nMWoqc66J0/QPEQ1JZV0w/FCcyY2Iv8ev27HbObtAtNwiHItIoOY8CawiryhlIbI1\n9b8fJiom47xE45pC4WSfudD2Lg1FuDBRaoyCscCCofrM5ntgfpQiUBmIYgGPUe0d\nCeNTO7c2GY+CM7mIe5g7f/rfiTrs9TlHpzMABTGrl0vcli9KGO7DRFtXJwtkFh+B\nB0H8jnTdB5GG7Mv9BImuys3G4CvM74qY0c2ztwIDAQABAoIBAQCgnYtor48ulUWX\nFOQeqW5nOyS2EXSH9ShN+WDenTEBFEFf3FVhEsgsewHtNz/tP9EZO0fcg7HCFeBi\nSfm6VqGpzJvKXC8zjVx5iMc4MDT5EbkmFHJyL0hu/bEnMnjNbynVjx64PvSfBbg/\nGkgXL23QBj6Im/gTcLbetGDVW7ORoRetRUxgOAGq+rrVrZI2k2n3q2Q+yfMhfcoC\ni9bi62tPeroDfrh4sy5EpkTL8ddIzy3Mz0EdRWpyu17lml+rUgceoLSjZVZVc0Cs\n5mre6Q8m5W0590Rd12yubLliq2E66cKom/wuIaGGy36+8zYbM1wiT8svylfzif4W\nAUSIGWRJAoGBAOwEMuxCoYvcJREG1R7QVc/egR8UrWlM6SXsbc5D96mHBT+DaaPw\nPXReFx9wIQ5J+uNRgTJ2GRfDS05t6i3kHtxDRGmz+qtaakAClmWcKjRBq6gdGg1j\nBcb86aVb7zr/x/x4jL9DQV5CJfC8Qs3Q966BbKzxP0zrPTPs0jLbmNC1AoGBAOhc\nXuZOqTeu4cSvWbcrvYZpoGIuhLCTV3x5OEPF847tEQ/U7m2gYQLpKU5oQPDIboCi\nYdSOs8tszefSW/438+VFPmUaClVVsEOU3hmkRjHPji6eX/pdDmWglZly4egoJNHM\nCtzDSiXU/uf9C1UaIjgnI0BW/jxdnC8Scn0eMXI7AoGAYfNwKuuQXho0a/eY9Zvj\nMU0X641KVvxreqi//a3pmDsIK47fhgFLkAMIt6xym5qKfFM0OnwW9+y+UUN+wCL/\nx8xHFVNzwi/ZDs3EG1GPlnZ2xmOlj068dBQ857ra83J6Tka9qxc/ht4PHvUTCJYk\nZREjyDarXcH3eZhcuGy45E0CgYEA1B222EHIwjdYjIeSu98nNbPpIJfcs6DeBZhX\nX68uZzRNFgnI2rTEuraE6bnMRsKB9dXGvxbCVRrvYQgsyIbllE/A5OR/uGTv8tHM\natYG6mPSJQaZEWGvyeBtkNZKGffDnO3KoLt6Tc0CIl9i3/5qbJ511L9VeV/vOx14\n/HT6qI8CgYA+BTF/aS9iQGrRI1LpMTQh5sbSnMz39Ri2VWulp/MLAOBCTKEpB9+W\neL+z52ZKn/kqo9hP/Ysl1Pt+JymPY1tP0TMJ4QCpVHnrmbx0xyNwZldR5kvgc/DN\neRzKmOYlhMF5LcqqdOaOOP4fbPAReq+FudAZuhrL4iReWnOR+I1Stw==\n-----END RSA PRIVATE KEY-----"
35+
}
36+
37+
variable "certificate_state" {
38+
default = "ACTIVE"
39+
}
40+
41+
provider "oci" {
42+
tenancy_ocid = "${var.tenancy_ocid}"
43+
user_ocid = "${var.user_ocid}"
44+
fingerprint = "${var.fingerprint}"
45+
private_key_path = "${var.private_key_path}"
46+
region = "${var.region}"
47+
}
48+
49+
resource "oci_apigateway_certificate" "test_certificate" {
50+
#Required
51+
certificate = "${var.certificate_certificate}"
52+
compartment_id = "${var.compartment_id}"
53+
private_key = "${var.certificate_private_key}"
54+
55+
#Optional
56+
defined_tags = "${map("${oci_identity_tag_namespace.tag-namespace1.name}.${oci_identity_tag.tag1.name}", "${var.certificate_defined_tags_value}")}"
57+
display_name = "${var.certificate_display_name}"
58+
freeform_tags = "${var.certificate_freeform_tags}"
59+
intermediate_certificates = "${var.certificate_intermediate_certificates}"
60+
}
61+
62+
data "oci_apigateway_certificates" "test_certificates" {
63+
#Required
64+
compartment_id = "${var.compartment_id}"
65+
66+
#Optional
67+
display_name = "${var.certificate_display_name}"
68+
state = "${var.certificate_state}"
69+
}

go.mod

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ require (
77
github.com/hashicorp/hcl2 v0.0.0-20190618163856-0b64543c968c
88
github.com/hashicorp/terraform v0.12.4-0.20190628193153-a74738cd35fc
99
github.com/mitchellh/cli v1.0.0
10+
github.com/oracle/oci-go-sdk v24.3.0+incompatible
1011
github.com/oracle/oci-go-sdk/v25 v25.1.0
1112
github.com/stretchr/objx v0.1.1 // indirect
1213
github.com/stretchr/testify v1.6.1
Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
// Copyright (c) 2017, 2020, Oracle and/or its affiliates. All rights reserved.
2+
// Licensed under the Mozilla Public License v2.0
3+
4+
package oci
5+
6+
import (
7+
"context"
8+
9+
"github.com/hashicorp/terraform/helper/schema"
10+
oci_apigateway "github.com/oracle/oci-go-sdk/v25/apigateway"
11+
)
12+
13+
func init() {
14+
RegisterDatasource("oci_apigateway_certificate", ApigatewayCertificateDataSource())
15+
}
16+
17+
func ApigatewayCertificateDataSource() *schema.Resource {
18+
fieldMap := make(map[string]*schema.Schema)
19+
fieldMap["certificate_id"] = &schema.Schema{
20+
Type: schema.TypeString,
21+
Required: true,
22+
}
23+
return GetSingularDataSourceItemSchema(ApigatewayCertificateResource(), fieldMap, readSingularApigatewayCertificate)
24+
}
25+
26+
func readSingularApigatewayCertificate(d *schema.ResourceData, m interface{}) error {
27+
sync := &ApigatewayCertificateDataSourceCrud{}
28+
sync.D = d
29+
sync.Client = m.(*OracleClients).apiGatewayClient()
30+
31+
return ReadResource(sync)
32+
}
33+
34+
type ApigatewayCertificateDataSourceCrud struct {
35+
D *schema.ResourceData
36+
Client *oci_apigateway.ApiGatewayClient
37+
Res *oci_apigateway.GetCertificateResponse
38+
}
39+
40+
func (s *ApigatewayCertificateDataSourceCrud) VoidState() {
41+
s.D.SetId("")
42+
}
43+
44+
func (s *ApigatewayCertificateDataSourceCrud) Get() error {
45+
request := oci_apigateway.GetCertificateRequest{}
46+
47+
if certificateId, ok := s.D.GetOkExists("certificate_id"); ok {
48+
tmp := certificateId.(string)
49+
request.CertificateId = &tmp
50+
}
51+
52+
request.RequestMetadata.RetryPolicy = getRetryPolicy(false, "apigateway")
53+
54+
response, err := s.Client.GetCertificate(context.Background(), request)
55+
if err != nil {
56+
return err
57+
}
58+
59+
s.Res = &response
60+
return nil
61+
}
62+
63+
func (s *ApigatewayCertificateDataSourceCrud) SetData() error {
64+
if s.Res == nil {
65+
return nil
66+
}
67+
68+
s.D.SetId(*s.Res.Id)
69+
70+
if s.Res.Certificate.Certificate != nil {
71+
s.D.Set("certificate", s.Res.Certificate)
72+
}
73+
74+
if s.Res.CompartmentId != nil {
75+
s.D.Set("compartment_id", *s.Res.CompartmentId)
76+
}
77+
78+
if s.Res.DefinedTags != nil {
79+
s.D.Set("defined_tags", definedTagsToMap(s.Res.DefinedTags))
80+
}
81+
82+
if s.Res.DisplayName != nil {
83+
s.D.Set("display_name", *s.Res.DisplayName)
84+
}
85+
86+
s.D.Set("freeform_tags", s.Res.FreeformTags)
87+
88+
if s.Res.IntermediateCertificates != nil {
89+
s.D.Set("intermediate_certificates", *s.Res.IntermediateCertificates)
90+
}
91+
92+
if s.Res.LifecycleDetails != nil {
93+
s.D.Set("lifecycle_details", *s.Res.LifecycleDetails)
94+
}
95+
96+
s.D.Set("state", s.Res.LifecycleState)
97+
98+
s.D.Set("subject_names", s.Res.SubjectNames)
99+
100+
if s.Res.TimeCreated != nil {
101+
s.D.Set("time_created", s.Res.TimeCreated.String())
102+
}
103+
104+
if s.Res.TimeNotValidAfter != nil {
105+
s.D.Set("time_not_valid_after", s.Res.TimeNotValidAfter.String())
106+
}
107+
108+
if s.Res.TimeUpdated != nil {
109+
s.D.Set("time_updated", s.Res.TimeUpdated.String())
110+
}
111+
112+
return nil
113+
}

0 commit comments

Comments
 (0)