Security News
Internet Archive Hacked, 31 Million Record Compromised
The Internet Archive's "Wayback Machine" has been hacked and defaced, with 31 millions records compromised.
github.com/oracle/oci-go-sdk/v65
This is the Go SDK for Oracle Cloud Infrastructure. This project is open source and maintained by Oracle Corp. The home page for the project is here.
Are you a Developer using the OCI SDK? If so, please fill out our survey to help us make the OCI SDK better for you. Click here for the survey page.
If you want to install the SDK under $GOPATH, you can use go get
to retrieve the SDK:
go get -u github.com/oracle/oci-go-sdk
If you are using Go modules, you can install by running the following command within a folder containing a go.mod
file:
go get -d github.com/oracle/oci-go-sdk/v49@latest
The latest major version (for example v49
) can be identified on the Github releases page.
Alternatively, you can install a specific version (supported from v25.0.0
on):
go get -d github.com/oracle/oci-go-sdk/v49@v49.1.0
Run go mod tidy
In your project, you also need to ensure the import paths contain the correct major-version:
import "github.com/oracle/oci-go-sdk/v49/common" // or whatever major version you're using
To start working with the Go SDK, you import the service package, create a client, and then use that client to make calls.
Before using the SDK, set up a config file with the required credentials. See SDK and Tool Configuration for instructions.
Note that the Go SDK does not support profile inheritance or defining custom values in the configuration file.
Once a config file has been setup, call common.DefaultConfigProvider()
function as follows:
// Import necessary packages
import (
"github.com/oracle/oci-go-sdk/v49/common"
"github.com/oracle/oci-go-sdk/v49/identity" // Identity or any other service you wish to make requests to
)
//...
configProvider := common.DefaultConfigProvider()
Or, to configure the SDK programmatically instead, implement the ConfigurationProvider
interface shown below:
// ConfigurationProvider wraps information about the account owner
type ConfigurationProvider interface {
KeyProvider
TenancyOCID() (string, error)
UserOCID() (string, error)
KeyFingerprint() (string, error)
Region() (string, error)
// AuthType() is used for specify the needed auth type, like UserPrincipal, InstancePrincipal, etc. AuthConfig is used for getting auth related paras in config file.
AuthType() (AuthConfig, error)
}
Or simply use one of structs exposed by the oci-go-sdk
that already implement the above interface
To make a request to an Oracle Cloud Infrastructure service, create a client for the service and then use the client to call a function from the service.
New<ServiceName>ClientWithConfigurationProvider
,
such as NewVirtualNetworkClientWithConfigurationProvider
or NewIdentityClientWithConfigurationProvider
. To create a new client,
pass a struct that conforms to the ConfigurationProvider
interface, or use the DefaultConfigProvider()
function in the common package.For example:
config := common.DefaultConfigProvider()
client, err := identity.NewIdentityClientWithConfigurationProvider(config)
if err != nil {
panic(err)
}
context.Context
and a struct that wraps all input parameters. The functions then return a response struct
that contains the desired data, and an error struct that describes the error if an error occurs.For example:
id := "your_group_id"
response, err := client.GetGroup(context.Background(), identity.GetGroupRequest{GroupId:&id})
if err != nil {
//Something happened
panic(err)
}
//Process the data in response struct
fmt.Println("Group's name is:", response.Name)
export OCI_GOSDK_USING_EXPECT_HEADER=FALSE
export OCI_SDK_DEFAULT_CIRCUITBREAKER_ENABLED=FALSE
export OCI_SDK_CIRCUITBREAKER_NUM_HISTORY_RESPONSE=<int value>
The oci-go-sdk
contains the following:
Service packages: All packages except common
and any other package found inside cmd
. These packages represent
the Oracle Cloud Infrastructure services supported by the Go SDK. Each package represents a service.
These packages include methods to interact with the service, structs that model
input and output parameters, and a client struct that acts as receiver for the above methods.
Common package: Found in the common
directory. The common package provides supporting functions and structs used by service packages.
Includes HTTP request/response (de)serialization, request signing, JSON parsing, pointer to reference and other helper functions. Most of the functions
in this package are meant to be used by the service packages.
cmd: Internal tools used by the oci-go-sdk
.
Examples can be found here
Full documentation can be found on the godocs site.
This project welcomes contributions from the community. Before submitting a pull request, please review our contribution guide
Please consult the security guide for our responsible security vulnerability disclosure process
Copyright (c) 2016, 2023, Oracle and/or its affiliates. All rights reserved. This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
See LICENSE for more details.
See CHANGELOG.
You can find information on any known issues with the SDK here and under the Issues tab of this project's GitHub repository.
For Go versions below 1.17
go get github.com/stretchr/testify
go get github.com/sony/gobreaker
go get github.com/gofrs/flock
go get -u golang.org/x/lint/golint
For Go versions 1.17 and above
go install github.com/stretchr/testify
go install github.com/sony/gobreaker
go install github.com/gofrs/flock
go install github.com/golang/lint/golint
go install honnef.co/go/tools/cmd/staticcheck@2023.1.7
Linting (performed by golint) can be done with the following command:
make lint
Linting will perform a number of formatting changes across the code base.
make static-check
This command is also run by the make build and make test commands. Staticcheck will provide formatting warnings but will not make any changes to any files. You can also cause staticcheck to be run before calls to "git commit" with the pre-commit plugin.
pre-commit install
You can install pre-commit itself, you can use your package manager of choice, such as
brew install pre-commit
Building is provided by the make file at the root of the project. To build the project execute.
make build
To run the tests:
make test
FAQs
Unknown package
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
The Internet Archive's "Wayback Machine" has been hacked and defaced, with 31 millions records compromised.
Security News
TC39 is meeting in Tokyo this week and they have approved nearly a dozen proposals to advance to the next stages.
Security News
Our threat research team breaks down two malicious npm packages designed to exploit developer trust, steal your data, and destroy data on your machine.