Skip to content

Commit

Permalink
Merge pull request #1659 from okta/add-support-device-assurance
Browse files Browse the repository at this point in the history
add support device assurance
  • Loading branch information
duytiennguyen-okta authored Aug 8, 2023
2 parents e9cfe78 + a87bb7e commit 00a9472
Show file tree
Hide file tree
Showing 28 changed files with 3,359 additions and 86 deletions.
9 changes: 9 additions & 0 deletions examples/okta_app_signon_policy_rule/basic_updated.tf
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,12 @@ data "okta_user_type" "default" {
name = "user"
}

resource "okta_policy_device_assurance_android" "test" {
name = "test"
os_version = "12"
jailbreak = false
}

resource "okta_app_signon_policy_rule" "test" {
name = "testAcc_replace_with_uuid_updated"
policy_id = data.okta_app_signon_policy.test.id
Expand All @@ -75,6 +81,9 @@ resource "okta_app_signon_policy_rule" "test" {
okta_group.this[0].id,
okta_group.this[1].id
]
device_assurances_included = [
okta_policy_device_assurance_android.test.id
]
network_connection = "ZONE"
network_includes = [
okta_network_zone.test.id
Expand Down
30 changes: 15 additions & 15 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -12,36 +12,34 @@ require (
github.com/hashicorp/go-hclog v1.5.0
github.com/hashicorp/go-retryablehttp v0.7.4
github.com/hashicorp/terraform-plugin-docs v0.16.0
github.com/hashicorp/terraform-plugin-framework v1.3.2
github.com/hashicorp/terraform-plugin-framework-validators v0.10.0
github.com/hashicorp/terraform-plugin-go v0.18.0
github.com/hashicorp/terraform-plugin-mux v0.11.2
github.com/hashicorp/terraform-plugin-sdk/v2 v2.27.0
github.com/kelseyhightower/envconfig v1.4.0
github.com/okta/okta-sdk-golang/v3 v3.0.11
github.com/okta/okta-sdk-golang/v3 v3.0.12
github.com/patrickmn/go-cache v2.1.0+incompatible
github.com/stretchr/testify v1.8.4
gopkg.in/square/go-jose.v2 v2.6.0
gopkg.in/yaml.v3 v3.0.1
)

require (
github.com/ProtonMail/go-crypto v0.0.0-20230217124315-7d5c6f04bbb8 // indirect
github.com/cloudflare/circl v1.3.3 // indirect
github.com/go-jose/go-jose/v3 v3.0.0 // indirect
github.com/vmihailenco/msgpack/v5 v5.3.5 // indirect
github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect
golang.org/x/exp v0.0.0-20230626212559-97b1e661b5df // indirect
)

require (
github.com/Masterminds/goutils v1.1.1 // indirect
github.com/Masterminds/semver/v3 v3.1.1 // indirect
github.com/Masterminds/sprig/v3 v3.2.2 // indirect
github.com/ProtonMail/go-crypto v0.0.0-20230217124315-7d5c6f04bbb8 // indirect
github.com/agext/levenshtein v1.2.3 // indirect
github.com/apparentlymart/go-textseg/v13 v13.0.0 // indirect
github.com/armon/go-radix v1.0.0 // indirect
github.com/beevik/etree v1.1.0 // indirect
github.com/bgentry/speakeasy v0.1.0 // indirect
github.com/cloudflare/circl v1.3.3 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/dnaeon/go-vcr v1.2.0
github.com/fatih/color v1.13.0 // indirect
github.com/go-jose/go-jose/v3 v3.0.0 // indirect
github.com/golang/protobuf v1.5.3 // indirect
github.com/google/go-cmp v0.5.9 // indirect
github.com/google/uuid v1.3.0 // indirect
Expand All @@ -56,7 +54,6 @@ require (
github.com/hashicorp/logutils v1.0.0 // indirect
github.com/hashicorp/terraform-exec v0.18.1 // indirect
github.com/hashicorp/terraform-json v0.17.1 // indirect
github.com/hashicorp/terraform-plugin-go v0.16.0 // indirect
github.com/hashicorp/terraform-plugin-log v0.9.0 // indirect
github.com/hashicorp/terraform-registry-address v0.2.1 // indirect
github.com/hashicorp/terraform-svchost v0.1.1 // indirect
Expand All @@ -81,16 +78,19 @@ require (
github.com/shopspring/decimal v1.3.1 // indirect
github.com/spf13/cast v1.5.0 // indirect
github.com/vmihailenco/msgpack v4.0.4+incompatible // indirect
github.com/vmihailenco/msgpack/v5 v5.3.5 // indirect
github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect
github.com/zclconf/go-cty v1.13.2 // indirect
golang.org/x/crypto v0.10.0 // indirect
golang.org/x/crypto v0.11.0 // indirect
golang.org/x/exp v0.0.0-20230626212559-97b1e661b5df // indirect
golang.org/x/mod v0.11.0 // indirect
golang.org/x/net v0.11.0 // indirect
golang.org/x/oauth2 v0.7.0 // indirect
golang.org/x/sys v0.9.0 // indirect
golang.org/x/sys v0.10.0 // indirect
golang.org/x/text v0.11.0 // indirect
google.golang.org/appengine v1.6.7 // indirect
google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 // indirect
google.golang.org/grpc v1.56.0 // indirect
google.golang.org/protobuf v1.30.0 // indirect
google.golang.org/grpc v1.56.1 // indirect
google.golang.org/protobuf v1.31.0 // indirect
gopkg.in/yaml.v2 v2.3.0 // indirect
)
32 changes: 19 additions & 13 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -198,10 +198,16 @@ github.com/hashicorp/terraform-json v0.17.1 h1:eMfvh/uWggKmY7Pmb3T85u86E2EQg6EQH
github.com/hashicorp/terraform-json v0.17.1/go.mod h1:Huy6zt6euxaY9knPAFKjUITn8QxUFIe9VuSzb4zn/0o=
github.com/hashicorp/terraform-plugin-docs v0.16.0 h1:UmxFr3AScl6Wged84jndJIfFccGyBZn52KtMNsS12dI=
github.com/hashicorp/terraform-plugin-docs v0.16.0/go.mod h1:M3ZrlKBJAbPMtNOPwHicGi1c+hZUh7/g0ifT/z7TVfA=
github.com/hashicorp/terraform-plugin-go v0.16.0 h1:DSOQ0rz5FUiVO4NUzMs8ln9gsPgHMTsfns7Nk+6gPuE=
github.com/hashicorp/terraform-plugin-go v0.16.0/go.mod h1:4sn8bFuDbt+2+Yztt35IbOrvZc0zyEi87gJzsTgCES8=
github.com/hashicorp/terraform-plugin-framework v1.3.2 h1:aQ6GSD0CTnvoALEWvKAkcH/d8jqSE0Qq56NYEhCexUs=
github.com/hashicorp/terraform-plugin-framework v1.3.2/go.mod h1:oimsRAPJOYkZ4kY6xIGfR0PHjpHLDLaknzuptl6AvnY=
github.com/hashicorp/terraform-plugin-framework-validators v0.10.0 h1:4L0tmy/8esP6OcvocVymw52lY0HyQ5OxB7VNl7k4bS0=
github.com/hashicorp/terraform-plugin-framework-validators v0.10.0/go.mod h1:qdQJCdimB9JeX2YwOpItEu+IrfoJjWQ5PhLpAOMDQAE=
github.com/hashicorp/terraform-plugin-go v0.18.0 h1:IwTkOS9cOW1ehLd/rG0y+u/TGLK9y6fGoBjXVUquzpE=
github.com/hashicorp/terraform-plugin-go v0.18.0/go.mod h1:l7VK+2u5Kf2y+A+742GX0ouLut3gttudmvMgN0PA74Y=
github.com/hashicorp/terraform-plugin-log v0.9.0 h1:i7hOA+vdAItN1/7UrfBqBwvYPQ9TFvymaRGZED3FCV0=
github.com/hashicorp/terraform-plugin-log v0.9.0/go.mod h1:rKL8egZQ/eXSyDqzLUuwUYLVdlYeamldAHSxjUFADow=
github.com/hashicorp/terraform-plugin-mux v0.11.2 h1:XMkAmWQN+6F+l4jwNeqdPom/8Vly6ZNDxHoKjiRHx5c=
github.com/hashicorp/terraform-plugin-mux v0.11.2/go.mod h1:qjoF/pI49rILSNQzKIuDtU+ZX9mpQD0B8YNE1GceLPc=
github.com/hashicorp/terraform-plugin-sdk/v2 v2.27.0 h1:I8efBnjuDrgPjNF1MEypHy48VgcTIUY4X6rOFunrR3Y=
github.com/hashicorp/terraform-plugin-sdk/v2 v2.27.0/go.mod h1:cUEP4ly/nxlHy5HzD6YRrHydtlheGvGRJDhiWqqVik4=
github.com/hashicorp/terraform-registry-address v0.2.1 h1:QuTf6oJ1+WSflJw6WYOHhLgwUiQ0FrROpHPYFtwTYWM=
Expand Down Expand Up @@ -269,8 +275,8 @@ github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx
github.com/modocache/gover v0.0.0-20171022184752-b58185e213c5/go.mod h1:caMODM3PzxT8aQXRPkAt8xlV/e7d7w8GM5g0fa5F0D8=
github.com/oklog/run v1.1.0 h1:GEenZ1cK0+q0+wsJew9qUg/DyD8k3JzYsZAi5gYi2mA=
github.com/oklog/run v1.1.0/go.mod h1:sVPdnTZT1zYwAJeCMu2Th4T21pA3FPOQRfWjQlk7DVU=
github.com/okta/okta-sdk-golang/v3 v3.0.11 h1:bFciYORMGPjC/UqxNt5s3f6PhTHD4SPRBpDzcoNuRYA=
github.com/okta/okta-sdk-golang/v3 v3.0.11/go.mod h1:cYdp2vJAjD803jMGxCJZXiOXBQcTBfOHwBOV6hXqfg0=
github.com/okta/okta-sdk-golang/v3 v3.0.12 h1:YRylSMp/2bLwWJSUuqcL+Yi1gjIEdEUria5LvV2NIks=
github.com/okta/okta-sdk-golang/v3 v3.0.12/go.mod h1:cYdp2vJAjD803jMGxCJZXiOXBQcTBfOHwBOV6hXqfg0=
github.com/patrickmn/go-cache v0.0.0-20180815053127-5633e0862627/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ=
github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc=
github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ=
Expand Down Expand Up @@ -344,8 +350,8 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh
golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.0.0-20220128200615-198e4374d7ed/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto v0.10.0 h1:LKqV2xt9+kDzSTfOhx4FrkEBcMrAgHSYgzywV9zcGmM=
golang.org/x/crypto v0.10.0/go.mod h1:o4eNf7Ede1fv+hwOwZsTHl9EsPFO6q6ZvYR8vYfY45I=
golang.org/x/crypto v0.11.0 h1:6Ewdq3tDic1mg5xRO4milcWCfMVQhI4NkqWWvqejpuA=
golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
Expand Down Expand Up @@ -460,10 +466,10 @@ golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.9.0 h1:KS/R3tvhPqvJvwcKfnBHJwwthS11LRhmM5D59eEXa0s=
golang.org/x/sys v0.9.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.10.0 h1:SqMFp9UcQJZa+pmYuAKjd9xq1f0j5rLcDIk0mj4qAsA=
golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.9.0 h1:GRRCnKYhdQrD8kfRAdQ6Zcw1P0OcELxGLKJvtjVMZ28=
golang.org/x/term v0.10.0 h1:3R7pNqamzBraeqj/Tj8qt1aQ2HpmlC+Cx/qL/7hn4/c=
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
Expand Down Expand Up @@ -586,8 +592,8 @@ google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKa
google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk=
google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
google.golang.org/grpc v1.56.0 h1:+y7Bs8rtMd07LeXmL3NxcTLn7mUkbKZqEpPhMNkwJEE=
google.golang.org/grpc v1.56.0/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s=
google.golang.org/grpc v1.56.1 h1:z0dNfjIl0VpaZ9iSVjA6daGatAYwPGstTjt5vkRMFkQ=
google.golang.org/grpc v1.56.1/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s=
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
Expand All @@ -600,8 +606,8 @@ google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGj
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng=
google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=
google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
Expand Down
42 changes: 34 additions & 8 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,13 @@
package main

import (
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
"github.com/hashicorp/terraform-plugin-sdk/v2/plugin"
"context"
"log"

"github.com/hashicorp/terraform-plugin-framework/providerserver"
"github.com/hashicorp/terraform-plugin-go/tfprotov5"
"github.com/hashicorp/terraform-plugin-go/tfprotov5/tf5server"
"github.com/hashicorp/terraform-plugin-mux/tf5muxserver"
"github.com/okta/terraform-provider-okta/okta"
)

Expand All @@ -14,11 +19,32 @@ import (
//go:generate go run github.com/hashicorp/terraform-plugin-docs/cmd/tfplugindocs

func main() {
// Set descriptions to support Markdown syntax,
// this will be used in document generation.
schema.DescriptionKind = schema.StringMarkdown
var debug bool
providers := []func() tfprotov5.ProviderServer{
// v2 plugin
okta.Provider().GRPCProvider,
// v3 plugin
providerserver.NewProtocol5(okta.NewFWProvider(okta.OktaTerraformProviderVersion)),
}

// use the muxer
muxServer, err := tf5muxserver.NewMuxServer(context.Background(), providers...)
if err != nil {
log.Fatalf(err.Error())
}

var serveOpts []tf5server.ServeOpt

if debug {
serveOpts = append(serveOpts, tf5server.WithManagedDebug())
}

plugin.Serve(&plugin.ServeOpts{
ProviderFunc: okta.Provider,
})
err = tf5server.Serve(
"okta/okta",
muxServer.ProviderServer,
serveOpts...,
)
if err != nil {
log.Fatal(err)
}
}
123 changes: 122 additions & 1 deletion okta/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,24 @@ import (
"fmt"
"net/http"
"os"
"strconv"
"strings"
"time"

"github.com/hashicorp/go-cleanhttp"
"github.com/hashicorp/go-hclog"
"github.com/hashicorp/go-retryablehttp"
"github.com/hashicorp/terraform-plugin-framework/attr"
"github.com/hashicorp/terraform-plugin-framework/types"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/logging"
"github.com/okta/okta-sdk-golang/v3/okta"
"github.com/okta/terraform-provider-okta/okta/internal/apimutex"
"github.com/okta/terraform-provider-okta/okta/internal/transport"
"github.com/okta/terraform-provider-okta/sdk"
)

const OktaTerraformProviderUserAgent = "okta-terraform/4.1.0"
const OktaTerraformProviderVersion = "4.1.0"
const OktaTerraformProviderUserAgent = "okta-terraform/" + OktaTerraformProviderVersion

func (adt *AddHeaderTransport) RoundTrip(req *http.Request) (*http.Response, error) {
req.Header.Add("User-Agent", "Okta Terraform Provider")
Expand Down Expand Up @@ -125,6 +129,123 @@ func (c *Config) loadAndValidate(ctx context.Context) error {
return nil
}

func (c *Config) handlePluginDefaults(ctx context.Context) error {
var err error
if c.orgName == "" && os.Getenv("OKTA_ORG_NAME") != "" {
c.orgName = os.Getenv("OKTA_ORG_NAME")
}
if c.accessToken == "" && os.Getenv("OKTA_ACCESS_TOKEN") != "" {
c.accessToken = os.Getenv("OKTA_ACCESS_TOKEN")
}
if c.apiToken == "" && os.Getenv("OKTA_API_TOKEN") != "" {
c.apiToken = os.Getenv("OKTA_API_TOKEN")
}
if c.clientID == "" && os.Getenv("OKTA_API_CLIENT_ID") != "" {
c.clientID = os.Getenv("OKTA_API_CLIENT_ID")
}
if v := os.Getenv("OKTA_API_SCOPES"); v != "" && len(c.scopes) == 0 {
c.scopes = strings.Split(v, ",")
}
if c.privateKey == "" && os.Getenv("OKTA_API_PRIVATE_KEY") != "" {
c.privateKey = os.Getenv("OKTA_API_PRIVATE_KEY")
}
if c.privateKeyId == "" && os.Getenv("OKTA_API_PRIVATE_KEY_ID") != "" {
c.privateKeyId = os.Getenv("OKTA_API_PRIVATE_KEY_ID")
}
if c.domain == "" {
if os.Getenv("OKTA_BASE_URL") != "" {
c.domain = os.Getenv("OKTA_BASE_URL")
} else {
c.domain = "okta.com"
}
}
if c.httpProxy == "" && os.Getenv("OKTA_HTTP_PROXY") != "" {
c.httpProxy = os.Getenv("OKTA_HTTP_PROXY")
}
if c.maxAPICapacity == 0 {
if os.Getenv("MAX_API_CAPACITY") != "" {
mac, err := strconv.ParseInt(os.Getenv("MAX_API_CAPACITY"), 10, 64)
if err != nil {
return err
}
c.maxAPICapacity = int(mac)
} else {
c.maxAPICapacity = 100
}
}
c.backoff = true
c.minWait = 30
c.maxWait = 300
c.retryCount = 5
c.parallelism = 1
c.logLevel = int(hclog.Error)
c.requestTimeout = 0
return err
}

func (c *Config) handleFrameworkDefaults(ctx context.Context, data *FrameworkProviderData) error {
var err error
if data.OrgName.IsNull() && os.Getenv("OKTA_ORG_NAME") != "" {
data.OrgName = types.StringValue(os.Getenv("OKTA_ORG_NAME"))
}
if data.AccessToken.IsNull() && os.Getenv("OKTA_ACCESS_TOKEN") != "" {
data.AccessToken = types.StringValue(os.Getenv("OKTA_ACCESS_TOKEN"))
}
if data.APIToken.IsNull() && os.Getenv("OKTA_API_TOKEN") != "" {
data.APIToken = types.StringValue(os.Getenv("OKTA_API_TOKEN"))
}
if data.ClientID.IsNull() && os.Getenv("OKTA_API_CLIENT_ID") != "" {
data.ClientID = types.StringValue(os.Getenv("OKTA_API_CLIENT_ID"))
}
if data.Scopes.IsNull() && os.Getenv("OKTA_API_SCOPES") != "" {
v := os.Getenv("OKTA_API_SCOPES")
scopes := strings.Split(v, ",")
if len(scopes) > 0 {
scopesTF := make([]attr.Value, 0)
for _, scope := range scopes {
scopesTF = append(scopesTF, types.StringValue(scope))
}
data.Scopes, _ = types.SetValue(types.StringType, scopesTF)
}
}
if data.PrivateKey.IsNull() && os.Getenv("OKTA_API_PRIVATE_KEY") != "" {
data.PrivateKey = types.StringValue(os.Getenv("OKTA_API_PRIVATE_KEY"))
}
if data.PrivateKeyID.IsNull() && os.Getenv("OKTA_API_PRIVATE_KEY_ID") != "" {
data.PrivateKeyID = types.StringValue(os.Getenv("OKTA_API_PRIVATE_KEY_ID"))
}
if data.BaseURL.IsNull() {
if os.Getenv("OKTA_BASE_URL") != "" {
data.BaseURL = types.StringValue(os.Getenv("OKTA_BASE_URL"))
} else {
data.BaseURL = types.StringValue("okta.com")
}
}
if data.HTTPProxy.IsNull() && os.Getenv("OKTA_HTTP_PROXY") != "" {
data.HTTPProxy = types.StringValue(os.Getenv("OKTA_HTTP_PROXY"))
}
if data.MaxAPICapacity.IsNull() {
if os.Getenv("MAX_API_CAPACITY") != "" {
mac, err := strconv.ParseInt(os.Getenv("MAX_API_CAPACITY"), 10, 64)
if err != nil {
return err
}
data.MaxAPICapacity = types.Int64Value(mac)
} else {
data.MaxAPICapacity = types.Int64Value(100)
}
}
data.Backoff = types.BoolValue(true)
data.MinWaitSeconds = types.Int64Value(30)
data.MaxWaitSeconds = types.Int64Value(300)
data.MaxRetries = types.Int64Value(5)
data.Parallelism = types.Int64Value(1)
data.LogLevel = types.Int64Value(int64(hclog.Error))
data.RequestTimeout = types.Int64Value(0)

return err
}

func providerLogger(c *Config) hclog.Logger {
logLevel := hclog.Level(c.logLevel)
if os.Getenv("TF_LOG") != "" {
Expand Down
Loading

0 comments on commit 00a9472

Please sign in to comment.