The Opal API is a RESTful API that allows you to interact with the Opal Security platform programmatically.
This API client was generated by the OpenAPI Generator project. By using the OpenAPI-spec from a remote server, you can easily generate an API client.
- API version: 1.0
- Package version: 1.0.0
- Generator version: 7.12.0
- Build package: org.openapitools.codegen.languages.GoClientCodegen For more information, please visit https://www.opal.dev/
Install the following dependencies:
go get github.com/stretchr/testify/assert
go get golang.org/x/net/context
Put the package under your project folder and add the following in import:
import opal "github.com/opalsecurity/opal-go"
To use a proxy, set the environment variable HTTP_PROXY
:
os.Setenv("HTTP_PROXY", "http://proxy_name:proxy_port")
Default configuration comes with Servers
field that contains server objects as defined in the OpenAPI specification.
For using other server than the one defined on index 0 set context value opal.ContextServerIndex
of type int
.
ctx := context.WithValue(context.Background(), opal.ContextServerIndex, 1)
Templated server URL is formatted using default variables from configuration or from context value opal.ContextServerVariables
of type map[string]string
.
ctx := context.WithValue(context.Background(), opal.ContextServerVariables, map[string]string{
"basePath": "v2",
})
Note, enum values are always validated and all unused variables are silently ignored.
Each operation can use different server URL defined using OperationServers
map in the Configuration
.
An operation is uniquely identified by "{classname}Service.{nickname}"
string.
Similar rules for overriding default operation server index and variables applies by using opal.ContextOperationServerIndices
and opal.ContextOperationServerVariables
context maps.
ctx := context.WithValue(context.Background(), opal.ContextOperationServerIndices, map[string]int{
"{classname}Service.{nickname}": 2,
})
ctx = context.WithValue(context.Background(), opal.ContextOperationServerVariables, map[string]map[string]string{
"{classname}Service.{nickname}": {
"port": "8443",
},
})
All URIs are relative to https://api.opal.dev/v1
Class | Method | HTTP request | Description |
---|---|---|---|
AccessRulesAPI | CreateAccessRule | Post /access-rules | |
AccessRulesAPI | GetAccessRule | Get /access-rules/{access_rule_id} | |
AccessRulesAPI | UpdateAccessRule | Put /access-rules/{access_rule_id} | |
AppsAPI | GetApp | Get /apps/{app_id} | |
AppsAPI | GetApps | Get /apps | |
AppsAPI | GetSyncErrors | Get /sync_errors | |
BundlesAPI | AddBundleGroup | Post /bundles/{bundle_id}/groups | |
BundlesAPI | AddBundleResource | Post /bundles/{bundle_id}/resources | |
BundlesAPI | CreateBundle | Post /bundles | |
BundlesAPI | DeleteBundle | Delete /bundles/{bundle_id} | |
BundlesAPI | GetBundle | Get /bundles/{bundle_id} | |
BundlesAPI | GetBundleGroups | Get /bundles/{bundle_id}/groups | |
BundlesAPI | GetBundleResources | Get /bundles/{bundle_id}/resources | |
BundlesAPI | GetBundleVisibility | Get /bundles/{bundle_id}/visibility | |
BundlesAPI | GetBundles | Get /bundles | |
BundlesAPI | RemoveBundleGroup | Delete /bundles/{bundle_id}/groups/{group_id} | |
BundlesAPI | RemoveBundleResource | Delete /bundles/{bundle_id}/resources/{resource_id} | |
BundlesAPI | SetBundleVisibility | Put /bundles/{bundle_id}/visibility | |
BundlesAPI | UpdateBundle | Put /bundles/{bundle_id} | |
ConfigurationTemplatesAPI | CreateConfigurationTemplate | Post /configuration-templates | |
ConfigurationTemplatesAPI | DeleteConfigurationTemplate | Delete /configuration-templates/{configuration_template_id} | |
ConfigurationTemplatesAPI | GetConfigurationTemplates | Get /configuration-templates | |
ConfigurationTemplatesAPI | UpdateConfigurationTemplate | Put /configuration-templates | |
EventsAPI | Events | Get /events | |
GroupBindingsAPI | CreateGroupBinding | Post /group-bindings | |
GroupBindingsAPI | DeleteGroupBinding | Delete /group-bindings/{group_binding_id} | |
GroupBindingsAPI | GetGroupBinding | Get /group-bindings/{group_binding_id} | |
GroupBindingsAPI | GetGroupBindings | Get /group-bindings | |
GroupBindingsAPI | UpdateGroupBindings | Put /group-bindings | |
GroupsAPI | AddGroupContainingGroup | Post /groups/{group_id}/containing-groups | |
GroupsAPI | AddGroupResource | Post /groups/{group_id}/resources/{resource_id} | |
GroupsAPI | AddGroupUser | Post /groups/{group_id}/users/{user_id} | |
GroupsAPI | CreateGroup | Post /groups | |
GroupsAPI | DeleteGroup | Delete /groups/{group_id} | |
GroupsAPI | DeleteGroupUser | Delete /groups/{group_id}/users/{user_id} | |
GroupsAPI | GetGroup | Get /groups/{group_id} | |
GroupsAPI | GetGroupContainingGroup | Get /groups/{group_id}/containing-groups/{containing_group_id} | |
GroupsAPI | GetGroupContainingGroups | Get /groups/{group_id}/containing-groups | |
GroupsAPI | GetGroupMessageChannels | Get /groups/{group_id}/message-channels | |
GroupsAPI | GetGroupOnCallSchedules | Get /groups/{group_id}/on-call-schedules | |
GroupsAPI | GetGroupResources | Get /groups/{group_id}/resources | |
GroupsAPI | GetGroupReviewerStages | Get /groups/{group_id}/reviewer-stages | |
GroupsAPI | GetGroupReviewers | Get /groups/{group_id}/reviewers | |
GroupsAPI | GetGroupTags | Get /groups/{group_id}/tags | |
GroupsAPI | GetGroupUsers | Get /groups/{group_id}/users | |
GroupsAPI | GetGroupVisibility | Get /groups/{group_id}/visibility | |
GroupsAPI | GetGroups | Get /groups | |
GroupsAPI | RemoveGroupContainingGroup | Delete /groups/{group_id}/containing-groups/{containing_group_id} | |
GroupsAPI | SetGroupMessageChannels | Put /groups/{group_id}/message-channels | |
GroupsAPI | SetGroupOnCallSchedules | Put /groups/{group_id}/on-call-schedules | |
GroupsAPI | SetGroupResources | Put /groups/{group_id}/resources | |
GroupsAPI | SetGroupReviewerStages | Put /groups/{group_id}/reviewer-stages | |
GroupsAPI | SetGroupReviewers | Put /groups/{group_id}/reviewers | |
GroupsAPI | SetGroupVisibility | Put /groups/{group_id}/visibility | |
GroupsAPI | UpdateGroupUser | Put /groups/{group_id}/users/{user_id} | |
GroupsAPI | UpdateGroups | Put /groups | |
IdpGroupMappingsAPI | DeleteIdpGroupMappings | Delete /idp-group-mappings/{app_resource_id}/{group_id}/ | |
IdpGroupMappingsAPI | GetIdpGroupMappings | Get /idp-group-mappings/{app_resource_id} | |
IdpGroupMappingsAPI | UpdateIdpGroupMappings | Put /idp-group-mappings/{app_resource_id} | |
MessageChannelsAPI | CreateMessageChannel | Post /message-channels | |
MessageChannelsAPI | GetMessageChannel | Get /message-channels/{message_channel_id} | |
MessageChannelsAPI | GetMessageChannels | Get /message-channels | |
NonHumanIdentitiesAPI | GetNhis | Get /non-human-identities | |
OnCallSchedulesAPI | CreateOnCallSchedule | Post /on-call-schedules | |
OnCallSchedulesAPI | GetOnCallSchedule | Get /on-call-schedules/{on_call_schedule_id} | |
OnCallSchedulesAPI | GetOnCallSchedules | Get /on-call-schedules | |
OwnersAPI | CreateOwner | Post /owners | |
OwnersAPI | DeleteOwner | Delete /owners/{owner_id} | |
OwnersAPI | GetOwner | Get /owners/{owner_id} | |
OwnersAPI | GetOwnerFromName | Get /owners/name/{owner_name} | |
OwnersAPI | GetOwnerUsers | Get /owners/{owner_id}/users | |
OwnersAPI | GetOwners | Get /owners | |
OwnersAPI | SetOwnerUsers | Put /owners/{owner_id}/users | |
OwnersAPI | UpdateOwners | Put /owners | |
RequestsAPI | ApproveRequest | Post /requests/{id}/approve | |
RequestsAPI | CreateRequest | Post /requests | |
RequestsAPI | GetRequests | Get /requests | |
RequestsAPI | GetRequestsRelay | Get /requests/relay | |
ResourcesAPI | AddResourceNhi | Post /resources/{resource_id}/non-human-identities/{non_human_identity_id} | |
ResourcesAPI | AddResourceUser | Post /resources/{resource_id}/users/{user_id} | |
ResourcesAPI | CreateResource | Post /resources | |
ResourcesAPI | DeleteResource | Delete /resources/{resource_id} | |
ResourcesAPI | DeleteResourceNhi | Delete /resources/{resource_id}/non-human-identities/{non_human_identity_id} | |
ResourcesAPI | DeleteResourceUser | Delete /resources/{resource_id}/users/{user_id} | |
ResourcesAPI | GetResource | Get /resources/{resource_id} | |
ResourcesAPI | GetResourceMessageChannels | Get /resources/{resource_id}/message-channels | |
ResourcesAPI | GetResourceNhis | Get /resources/{resource_id}/non-human-identities | |
ResourcesAPI | GetResourceReviewerStages | Get /resources/{resource_id}/reviewer-stages | |
ResourcesAPI | GetResourceReviewers | Get /resources/{resource_id}/reviewers | |
ResourcesAPI | GetResourceTags | Get /resources/{resource_id}/tags | |
ResourcesAPI | GetResourceUser | Get /resources/{resource_id}/users/{user_id} | |
ResourcesAPI | GetResourceUsers | Get /resources/{resource_id}/users | |
ResourcesAPI | GetResourceVisibility | Get /resources/{resource_id}/visibility | |
ResourcesAPI | GetResources | Get /resources | |
ResourcesAPI | ResourceUserAccessStatusRetrieve | Get /resource-user-access-status/{resource_id}/{user_id} | |
ResourcesAPI | SetResourceMessageChannels | Put /resources/{resource_id}/message-channels | |
ResourcesAPI | SetResourceReviewerStages | Put /resources/{resource_id}/reviewer-stages | |
ResourcesAPI | SetResourceReviewers | Put /resources/{resource_id}/reviewers | |
ResourcesAPI | SetResourceVisibility | Put /resources/{resource_id}/visibility | |
ResourcesAPI | UpdateResourceUser | Put /resources/{resource_id}/users/{user_id} | |
ResourcesAPI | UpdateResources | Put /resources | |
SessionsAPI | Sessions | Get /sessions | |
TagsAPI | AddGroupTag | Post /tags/{tag_id}/groups/{group_id} | |
TagsAPI | AddResourceTag | Post /tags/{tag_id}/resources/{resource_id} | |
TagsAPI | AddUserTag | Post /tags/{tag_id}/users/{user_id} | |
TagsAPI | CreateTag | Post /tag | |
TagsAPI | DeleteTagByID | Delete /tag/{tag_id} | |
TagsAPI | GetTag | Get /tag | |
TagsAPI | GetTagByID | Get /tag/{tag_id} | |
TagsAPI | GetTags | Get /tags | |
TagsAPI | RemoveGroupTag | Delete /tags/{tag_id}/groups/{group_id} | |
TagsAPI | RemoveResourceTag | Delete /tags/{tag_id}/resources/{resource_id} | |
TagsAPI | RemoveUserTag | Delete /tags/{tag_id}/users/{user_id} | |
UarsAPI | CreateUar | Post /uar | |
UarsAPI | GetUARs | Get /uars | |
UarsAPI | GetUar | Get /uar/{uar_id} | |
UsersAPI | GetUserTags | Get /users/{user_id}/tags | |
UsersAPI | GetUsers | Get /users | |
UsersAPI | User | Get /user |
- Access
- AccessList
- AccessRule
- AddBundleGroupRequest
- AddBundleResourceRequest
- AddGroupResourceRequest
- AddGroupUserRequest
- AddResourceNhiRequest
- AddResourceUserRequest
- App
- AppTypeEnum
- AppValidation
- AppValidationSeverityEnum
- AppValidationStatusEnum
- ApproveRequest200Response
- ApproveRequestRequest
- AppsList
- AwsPermissionSetMetadata
- AwsPermissionSetMetadataAwsPermissionSet
- Bundle
- BundleGroup
- BundleResource
- Condition
- ConfigurationTemplate
- CreateBundleInfo
- CreateConfigurationTemplateInfo
- CreateGroupBindingInfo
- CreateGroupBindingInfoGroupsInner
- CreateGroupInfo
- CreateMessageChannelInfo
- CreateOnCallScheduleInfo
- CreateOwnerInfo
- CreateRequest200Response
- CreateRequestConfigurationInfoList
- CreateRequestInfo
- CreateRequestInfoCustomMetadataInner
- CreateRequestInfoGroupsInner
- CreateRequestInfoResourcesInner
- CreateRequestInfoSupportTicket
- CreateResourceInfo
- CreateTagInfo
- CreateUARInfo
- EntityTypeEnum
- Event
- GetResourceUser200Response
- Group
- GroupAccessLevel
- GroupBinding
- GroupBindingGroup
- GroupContainingGroup
- GroupContainingGroupList
- GroupRemoteInfo
- GroupRemoteInfoActiveDirectoryGroup
- GroupRemoteInfoAzureAdMicrosoft365Group
- GroupRemoteInfoAzureAdSecurityGroup
- GroupRemoteInfoDuoGroup
- GroupRemoteInfoGithubTeam
- GroupRemoteInfoGitlabGroup
- GroupRemoteInfoGoogleGroup
- GroupRemoteInfoLdapGroup
- GroupRemoteInfoOktaGroup
- GroupRemoteInfoSnowflakeRole
- GroupResource
- GroupResourceList
- GroupTypeEnum
- GroupUser
- GroupUserList
- GroupWithAccessLevel
- IdpGroupMapping
- IdpGroupMappingList
- MessageChannel
- MessageChannelIDList
- MessageChannelList
- MessageChannelProviderEnum
- OnCallSchedule
- OnCallScheduleIDList
- OnCallScheduleList
- OnCallScheduleProviderEnum
- Owner
- PageInfo
- PaginatedAssignedRequestList
- PaginatedBundleGroupList
- PaginatedBundleList
- PaginatedBundleResourceList
- PaginatedConfigurationTemplateList
- PaginatedEventList
- PaginatedGroupBindingsList
- PaginatedGroupsList
- PaginatedOwnersList
- PaginatedResourcesList
- PaginatedTagsList
- PaginatedUARsList
- PaginatedUsersList
- PropagationStatus
- PropagationStatusEnum
- Request
- RequestConfiguration
- RequestConnection
- RequestCustomFieldResponse
- RequestCustomFieldResponseFieldValue
- RequestEdge
- RequestItemStages
- RequestList
- RequestReviewer
- RequestStage
- RequestStatusEnum
- RequestTemplateCustomFieldTypeEnum
- RequestedItem
- Resource
- ResourceAccessLevel
- ResourceAccessUser
- ResourceAccessUserList
- ResourceNHI
- ResourceRemoteInfo
- ResourceRemoteInfoAwsAccount
- ResourceRemoteInfoAwsEc2Instance
- ResourceRemoteInfoAwsEksCluster
- ResourceRemoteInfoAwsIamRole
- ResourceRemoteInfoAwsOrganizationalUnit
- ResourceRemoteInfoAwsPermissionSet
- ResourceRemoteInfoAwsRdsInstance
- ResourceRemoteInfoCustomConnector
- ResourceRemoteInfoGcpBigQueryDataset
- ResourceRemoteInfoGcpBigQueryTable
- ResourceRemoteInfoGcpBucket
- ResourceRemoteInfoGcpComputeInstance
- ResourceRemoteInfoGcpFolder
- ResourceRemoteInfoGcpGkeCluster
- ResourceRemoteInfoGcpOrganization
- ResourceRemoteInfoGcpProject
- ResourceRemoteInfoGcpServiceAccount
- ResourceRemoteInfoGcpSqlInstance
- ResourceRemoteInfoGithubRepo
- ResourceRemoteInfoGitlabProject
- ResourceRemoteInfoOktaApp
- ResourceRemoteInfoOktaCustomRole
- ResourceRemoteInfoOktaStandardRole
- ResourceRemoteInfoPagerdutyRole
- ResourceRemoteInfoSalesforcePermissionSet
- ResourceRemoteInfoSalesforceProfile
- ResourceRemoteInfoSalesforceRole
- ResourceRemoteInfoTeleportRole
- ResourceTypeEnum
- ResourceUser
- ResourceUserAccessStatus
- ResourceUserAccessStatusEnum
- ResourceWithAccessLevel
- ReviewStageOperator
- ReviewerIDList
- ReviewerStage
- ReviewerStageList
- RiskSensitivityEnum
- RuleClauses
- RuleConjunction
- RuleDisjunction
- Session
- SessionsList
- SubEvent
- SyncError
- SyncErrorList
- Tag
- TagFilter
- TagSelector
- TagsList
- TicketPropagationConfiguration
- TicketingProviderEnum
- UAR
- UARReviewerAssignmentPolicyEnum
- UARScope
- UpdateAccessRuleInfo
- UpdateConfigurationTemplateInfo
- UpdateGroupBindingInfo
- UpdateGroupBindingInfoList
- UpdateGroupInfo
- UpdateGroupInfoList
- UpdateGroupResourcesInfo
- UpdateGroupUserRequest
- UpdateIdpGroupMappingsRequest
- UpdateIdpGroupMappingsRequestMappingsInner
- UpdateOwnerInfo
- UpdateOwnerInfoList
- UpdateResourceInfo
- UpdateResourceInfoList
- UpdateResourceUserRequest
- User
- UserHrIdpStatusEnum
- UserIDList
- UserList
- VisibilityInfo
- VisibilityTypeEnum
Authentication schemes defined for the API:
- Type: HTTP Bearer token authentication
Example
auth := context.WithValue(context.Background(), opal.ContextAccessToken, "BEARER_TOKEN_STRING")
r, err := client.Service.Operation(auth, args)
Due to the fact that model structure members are all pointers, this package contains a number of utility functions to easily obtain pointers to values of basic types. Each of these functions takes a value of the given basic type and returns a pointer to it:
PtrBool
PtrInt
PtrInt32
PtrInt64
PtrFloat
PtrFloat32
PtrFloat64
PtrString
PtrTime