Skip to content

Latest commit

 

History

48 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Go API client for perimeter81sdk

The YAML for Check Points SASE Public API

Overview

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: 3.0.0
  • Package version: 1.0.0
  • Generator version: 7.24.0
  • Build package: org.openapitools.codegen.languages.GoClientCodegen

Regenerating the SDK

This file is listed in .openapi-generator-ignore, so ./scripts/generate.sh never touches it — edit it directly, the normal way. (An earlier version of this section lived in a templates/README.mustache override instead; that was reverted because it froze a 286-line vendored copy of the stock template against future generator upgrades for no real benefit — .openapi-generator-ignore is the right mechanism for a hand-maintained file, the same one client.go, configuration.go, response.go, and the two token models already use.) One consequence: the endpoint/model listings below are a snapshot from when this was last regenerated, not a live view — regenerate and diff if you need the current list.

This SDK is a build product, not hand-written Go. The pipeline:

api/v3.upstream.yaml   (pristine copy of the upstream spec — never edit)
        + api/overlay.yaml  (24 reviewable corrections, each with a `reason`
                              and a `remove_when` so stale ones get noticed)
        = api/swagger.yaml  (build product of scripts/build_spec.py — never hand-edit)
        -> scripts/generate.sh (openapi-generator 7.24.0 + templates/ overrides)
        = this SDK

make verify is the gate: it regenerates the SDK from scratch and fails on any diff between that output and what's committed. Run it before pushing.

make verify

A footgun to know about: make verify's diff check compares the regenerated working tree to git's index, not to whatever you just typed. That means its behavior depends on whether your edit to a generated file has been git added:

  • Uncommitted, unstaged edit to a generated file (e.g. you hand-patched api_objects.go and haven't run git add): make verify exits 0. Regeneration overwrites your edit in the working tree before the diff check runs, so there's nothing left to catch — your change is silently destroyed, and the command reports success while doing it.
  • Staged or committed edit to a generated file: make verify exits 2, with ERROR: committed SDK differs from regenerated output. This is the case CI (or a teammate pulling your branch) actually sees, since a checkout always starts from committed content.

Destroying hand-edits to generated files is the intended outcome — that's the whole point of this pipeline. What's surprising is the silent, exit-0 success in the uncommitted case. Commit or stash before running make verify if you want the gate to actually see your change instead of quietly discarding it.

Why this matters: the v2.3 SDK fixed generator defects by hand-editing the generated .go files directly, and "protected" those edits with a .swagger-codegen-ignore file — which the generator (openapi-generator, not swagger-codegen) never reads. Every one of those 21 hand-patches was one regeneration away from being silently destroyed, with no signal that it had happened. Corrections belong in api/overlay.yaml (spec-level fixes) or templates/ (codegen-level fixes), never in the generated Go output.

The generator is pinned to exactly 7.24.0: generated output differs across generator versions, and the verification gate compares byte-for-byte, so a version drift shows up as a spurious (and confusing) diff.

go vet ./... (bare) is expected to fail on this codebase: openapi-generator 7.24.0's model_oneof.mustache template has a bug that emits duplicated if/else branches for oneOf schemas with 2+ variants, which go vet correctly flags as unreachable code — except the code is generator-emitted, not a mistake in this repo. scripts/generate.sh therefore runs go vet -unreachable=false ./..., which is the form to use; do not reintroduce a bare go vet ./... anywhere in tooling for this SDK.

There is currently no CI workflow wired up for this gate (that was a deliberate choice, not an oversight) — make verify is run locally before pushing. If CI is added later: the openapi-generator 7.24.0 CLI jar from Maven Central (https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/7.24.0/openapi-generator-cli-7.24.0.jar) is byte-identical (verified by MD5) to the jar Homebrew installs locally, and running it directly with java -jar openapi-generator-cli-7.24.0.jar version prints exactly 7.24.0 with no extra banner text — a clean way to pin the exact version scripts/generate.sh checks for, without depending on the @openapitools/openapi-generator-cli npm wrapper (whose own version command can print extra text depending on configuration, which would break that exact-match check).

Installation

Import the package in a go file in your project and run go mod tidy:

import perimeter81sdk "github.com/CheckPointSW/perimeter-81-client-sdk/v3"

To use a proxy, set the environment variable HTTP_PROXY:

os.Setenv("HTTP_PROXY", "http://proxy_name:proxy_port")

Configuration of Server URL

Default configuration comes with Servers field that contains server objects as defined in the OpenAPI specification.

Select Server Configuration

For using other server than the one defined on index 0 set context value perimeter81sdk.ContextServerIndex of type int.

ctx := context.WithValue(context.Background(), perimeter81sdk.ContextServerIndex, 1)

Templated Server URL

Templated server URL is formatted using default variables from configuration or from context value perimeter81sdk.ContextServerVariables of type map[string]string.

ctx := context.WithValue(context.Background(), perimeter81sdk.ContextServerVariables, map[string]string{
	"basePath": "v2",
})

Note, enum values are always validated and all unused variables are silently ignored.

URLs Configuration per Operation

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 perimeter81sdk.ContextOperationServerIndices and perimeter81sdk.ContextOperationServerVariables context maps.

ctx := context.WithValue(context.Background(), perimeter81sdk.ContextOperationServerIndices, map[string]int{
	"{classname}Service.{nickname}": 2,
})
ctx = context.WithValue(context.Background(), perimeter81sdk.ContextOperationServerVariables, map[string]map[string]string{
	"{classname}Service.{nickname}": {
		"port": "8443",
	},
})

Documentation for API Endpoints

All URIs are relative to https://virtserver.swaggerhub.com/perimeter81/public-api-yaml/1.0.0

Class Method HTTP request Description
ApplicationsAPI CreateApplication Post /v3/applications Create Application
ApplicationsAPI GetApplicationById Get /v3/applications/{applicationId} Get Application by ID
ApplicationsAPI GetApplicationStatus Get /v3/applications/status/{statusId} Get status of Application creation process by statusId
ApplicationsAPI GetApplications Get /v3/applications Get Applications list
AuthenticationAPI AuthorizeToken Post /v3/auth/authorize Get Access Token
CustomRolesAPI CreateCustomRole Post /v3/gum/custom-roles Create a new custom role
CustomRolesAPI DeleteCustomRole Delete /v3/gum/custom-roles/{roleId} Delete a custom role
CustomRolesAPI GetCustomRole Get /v3/gum/custom-roles/{roleId} Get a specific custom role by ID
CustomRolesAPI GetCustomRoleCategories Get /v3/gum/custom-roles/categories Get all permission categories
CustomRolesAPI ListCustomRoles Get /v3/gum/custom-roles List all custom roles for tenant
CustomRolesAPI UpdateCustomRole Put /v3/gum/custom-roles/{roleId} Update a custom role
EnhancedNetworksAPI CreateEnhancedNetwork Post /v3/networks/enhanced Create enhanced network
EnhancedNetworksAPI DeleteEnhancedNetwork Delete /v3/networks/enhanced/{networkId} Delete enhanced network
EnhancedNetworksAPI EnhancedNetworksControllerV23GetNetworkCustomerCertificate Get /v3/networks/enhanced/network-customer-certificate Get network customer certificate
EnhancedNetworksAPI GetEnhancedNetwork Get /v3/networks/enhanced/{networkId} Get enhanced network by ID
EnhancedNetworksAPI GetEnhancedNetworkHealth Get /v3/networks/enhanced/{networkId}/health Get enhanced network health status
EnhancedNetworksAPI GetEnhancedNetworks Get /v3/networks/enhanced Get all enhanced networks
EnhancedNetworksAPI UpdateEnhancedNetwork Put /v3/networks/enhanced/{networkId} Update enhanced network
EnhancedPrivateDNSAPI GetEnhancedNetworkPrivateDNS Get /v3/networks/enhanced/{networkId}/privateDNS Get network-level private DNS settings
EnhancedPrivateDNSAPI GetEnhancedRegionPrivateDNS Get /v3/networks/enhanced/{networkId}/regions/{regionId}/privateDNS Get region-level private DNS settings
EnhancedPrivateDNSAPI UpdateEnhancedNetworkPrivateDNS Put /v3/networks/enhanced/{networkId}/privateDNS Update network-level private DNS settings
EnhancedPrivateDNSAPI UpdateEnhancedRegionPrivateDNS Put /v3/networks/enhanced/{networkId}/regions/{regionId}/privateDNS Update region-level private DNS settings
EnhancedRegionsAPI CreateEnhancedRegion Post /v3/networks/enhanced/{networkId}/regions Create enhanced region
EnhancedRegionsAPI DeleteEnhancedRegion Delete /v3/networks/enhanced/{networkId}/regions/{regionId} Delete enhanced region
EnhancedRegionsAPI EnhancedNetworksControllerV2GetRegions Get /v3/networks/enhanced/harmony-sase-regions List of available Harmony SASE regions that supports enhanced networks
EnhancedRegionsAPI GetEnhancedRegion Get /v3/networks/enhanced/{networkId}/regions/{regionId} Get region
EnhancedRegionsAPI IncreaseScaleUnit Put /v3/networks/enhanced/{networkId}/regions/{regionId}/scale-unit/increase Increase scale units
EnhancedRegionsAPI ListEnhancedRegions Get /v3/networks/enhanced/{networkId}/regions List regions
EnhancedRegionsAPI ReduceScaleUnit Put /v3/networks/enhanced/{networkId}/regions/{regionId}/scale-unit/reduce Reduce scale units
EnhancedRouteTablesAPI CreateDynamicRoute Post /v3/networks/enhanced/{networkId}/route-table/dynamic Create dynamic route
EnhancedRouteTablesAPI CreateStaticRoute Post /v3/networks/enhanced/{networkId}/route-table/static Create static route
EnhancedRouteTablesAPI DeleteRouteEntry Delete /v3/networks/enhanced/{networkId}/route-table/{routeId} Delete route entry
EnhancedRouteTablesAPI GetEnhancedRouteTable Get /v3/networks/enhanced/{networkId}/route-table Get route table
EnhancedRouteTablesAPI GetRouteEntry Get /v3/networks/enhanced/{networkId}/route-table/{routeId} Get route entry
EnhancedRouteTablesAPI UpdateRouteEntry Put /v3/networks/enhanced/{networkId}/route-table/{routeId} Update route entry
EnhancedTunnelsAPI CreateDynamicTunnel Post /v3/networks/enhanced/{networkId}/tunnels/ipsec/dynamic Create dynamic IPSec tunnel
EnhancedTunnelsAPI CreateStaticTunnel Post /v3/networks/enhanced/{networkId}/tunnels/ipsec/static Create static IPSec tunnel
EnhancedTunnelsAPI DeleteDynamicTunnel Delete /v3/networks/enhanced/{networkId}/tunnels/ipsec/dynamic/{dynamicTunnelId} Delete dynamic IPSec tunnel
EnhancedTunnelsAPI DeleteStaticTunnel Delete /v3/networks/enhanced/{networkId}/tunnels/ipsec/static/{tunnelId} Delete static IPSec tunnel
EnhancedTunnelsAPI GetDynamicTunnel Get /v3/networks/enhanced/{networkId}/tunnels/ipsec/dynamic/{dynamicTunnelId} Get dynamic IPSec tunnel
EnhancedTunnelsAPI GetEnhancedRegionTunnelsPerNetwork Get /v3/networks/enhanced/{networkId}/tunnels Get tunnels for a network
EnhancedTunnelsAPI GetEnhancedRegionTunnelsPerRegion Get /v3/networks/enhanced/{networkId}/regions/{regionId}/tunnels Get tunnels for a region
EnhancedTunnelsAPI GetStaticTunnel Get /v3/networks/enhanced/{networkId}/tunnels/ipsec/static/{tunnelId} Get static IPSec tunnel
EnhancedTunnelsAPI UpdateDynamicTunnel Put /v3/networks/enhanced/{networkId}/tunnels/ipsec/dynamic/{dynamicTunnelId} Update dynamic IPSec tunnel
EnhancedTunnelsAPI UpdateStaticTunnel Put /v3/networks/enhanced/{networkId}/tunnels/ipsec/static/{tunnelId} Update static IPSec tunnel
FirewallPolicyAPI GetGranularFirewallPolicy Get /v3/networks/{networkId}/firewall-policy Get firewall policy by network ID
FirewallPolicyAPI UpdateGranularFirewallPolicy Put /v3/networks/{networkId}/firewall-policy Update firewall policy by network ID
InternetAccessPoliciesAPI DeleteAccessPolicy Delete /v3/ia/access/policy Delete all access policy rules
InternetAccessPoliciesAPI DeleteHttpsInspectionPolicy Delete /v3/ia/https-inspection/policy Delete all HTTPS Inspection policy rules
InternetAccessPoliciesAPI GetAccessPolicy Get /v3/ia/access/policy Get all access policy rules
InternetAccessPoliciesAPI GetHttpsInspectionPolicy Get /v3/ia/https-inspection/policy Get all HTTPS Inspection policy rules
InternetAccessPoliciesAPI GetIAStatus Get /v3/ia/status Get Internet Access security enforcement status
InternetAccessPoliciesAPI SetIAStatus Post /v3/ia/status Update Internet Access security enforcement status
InternetAccessPoliciesAPI UpdateAccessPolicy Post /v3/ia/access/policy Update/Create all access policy rules
InternetAccessPoliciesAPI UpdateHttpsInspectionPolicy Post /v3/ia/https-inspection/policy Update/Create all HTTPS Inspection policy rules
NetworksAPI GetSplitTunnelingConfiguration Get /v3/networks/{networkId}/split-tunneling Get split tunneling configuration
NetworksAPI GetStatus Get /v3/status Get system status
NetworksAPI NetworksControllerV2Status Get /v3/networks/status/{statusId} Get status of asynchronous operations.
NetworksAPI UpdateSplitTunnelingConfigurationAsync Put /v3/networks/{networkId}/split-tunneling/async Set up split tunneling configuration (async)
ObjectsAPI CreateAddress Post /v3/objects/addresses Create address
ObjectsAPI DeleteAddress Delete /v3/objects/addresses/{addressId} Delete address
ObjectsAPI DeleteObjectsServices Delete /v3/objects/services/{objectId} Delete Service object
ObjectsAPI GetAddresses Get /v3/objects/addresses Get list of addresses
ObjectsAPI GetApplicationControlApplications Get /v3/objects/application-control/application Get all applications available in Application Control applications
ObjectsAPI GetObjectsServices Get /v3/objects/services Get object services
ObjectsAPI GetUpdatableObjects Get /v3/objects/updatable-objects
ObjectsAPI GetWebCategories Get /v3/objects/web-category Get all Web categories
ObjectsAPI PostObjectsServices Post /v3/objects/services Create new Service object
ObjectsAPI PutObjectsServices Put /v3/objects/services/{objectId} Update Service object
ObjectsAPI UpdateAddress Put /v3/objects/addresses/{id} Update address
SettingsAPI GetSupportOptions Get /v3/account/customize/support-options Get end users support information settings
SettingsAPI UpdateSupportOptions Put /v3/account/customize/support-options Update end users support information settings
StandardNetworksAPI StandardGetInstance Get /v3/networks/standard/{networkId}/instances/{gatewayId} Get instance of a gateway by ID
StandardNetworksAPI StandardGetNetworks Get /v3/networks/standard Get all networks
StandardNetworksAPI StandardNetworksControllerV2AddNetworkInstance Post /v3/networks/standard/{networkId}/instances Add gateway
StandardNetworksAPI StandardNetworksControllerV2DeleteNetworkInstance Delete /v3/networks/standard/{networkId}/instances Remove gateways from network
StandardNetworksAPI StandardNetworksControllerV2GetNetworkHealth Get /v3/networks/standard/{networkId}/health Get network health status
StandardNetworksAPI StandardNetworksControllerV2NetworkCreate Post /v3/networks/standard Create network
StandardNetworksAPI StandardNetworksControllerV2NetworkDelete Delete /v3/networks/standard/{networkId} Delete network
StandardNetworksAPI StandardNetworksControllerV2NetworkFind Get /v3/networks/standard/{networkId} Get network by ID
StandardNetworksAPI StandardNetworksControllerV2NetworkUpdate Put /v3/networks/standard/{networkId} Update network
StandardNetworksAPI StandardNetworksControllerV2Status Get /v3/networks/standard/status/{statusId} Get status of asynchronous operations.
StandardPrivateDNSAPI GetStandardNetworkPrivateDNS Get /v3/networks/standard/{networkId}/privateDNS Get network-level private DNS settings
StandardPrivateDNSAPI GetStandardRegionPrivateDNS Get /v3/networks/standard/{networkId}/regions/{regionId}/privateDNS Get region-level private DNS settings
StandardRegionsAPI StandardGetRegion Get /v3/networks/standard/{networkId}/regions/{regionId} Get region by ID
StandardRegionsAPI StandardNetworksControllerV2AddNetworkRegion Put /v3/networks/standard/{networkId}/regions Add regions to a network
StandardRegionsAPI StandardNetworksControllerV2DeleteNetworkRegion Delete /v3/networks/standard/{networkId}/regions Remove regions from network
StandardRegionsAPI StandardNetworksControllerV2GetRegions Get /v3/networks/standard/harmony-sase-regions List of available Harmony SASE regions that support standard networks
StandardRouteTablesAPI StandardGetRouteTable Get /v3/networks/standard/{networkId}/route-table Get route table
StandardTunnelsAPI StandardCreateIPSecRedundantTunnel Post /v3/networks/standard/{networkId}/tunnels/ipsec/redundant Create a new IPSec redundant tunnel
StandardTunnelsAPI StandardCreateIPSecSingleTunnel Post /v3/networks/standard/{networkId}/tunnels/ipsec/single Create a new IPSec Single tunnel
StandardTunnelsAPI StandardCreateOpenVPNTunnel Post /v3/networks/standard/{networkId}/tunnels/openvpn Create a new OpenVPN tunnel
StandardTunnelsAPI StandardCreateWireguardTunnel Post /v3/networks/standard/{networkId}/tunnels/wireguard Create a new Wireguard tunnel
StandardTunnelsAPI StandardDeleteIPSecRedundantTunnel Delete /v3/networks/standard/{networkId}/tunnels/ipsec/redundant/{haTunnelId} Delete IPSec redundant tunnel
StandardTunnelsAPI StandardDeleteIPSecSingleTunnel Delete /v3/networks/standard/{networkId}/tunnels/ipsec/single/{tunnelId} Delete IPSec single tunnel
StandardTunnelsAPI StandardDeleteOpenVPNTunnel Delete /v3/networks/standard/{networkId}/tunnels/openvpn/{tunnelId} Delete OpenVPN tunnel
StandardTunnelsAPI StandardDeleteWireguardTunnel Delete /v3/networks/standard/{networkId}/tunnels/wireguard/{tunnelId} Delete Wireguard tunnel
StandardTunnelsAPI StandardGetIPSecRedundantTunnel Get /v3/networks/standard/{networkId}/tunnels/ipsec/redundant/{haTunnelId} Get IPSec redundant tunnel by ID
StandardTunnelsAPI StandardGetIPSecSingleTunnel Get /v3/networks/standard/{networkId}/tunnels/ipsec/single/{tunnelId} Get IPSec single tunnel by ID
StandardTunnelsAPI StandardGetOpenVPNTunnel Get /v3/networks/standard/{networkId}/tunnels/openvpn/{tunnelId} Get one OpenVPN tunnel
StandardTunnelsAPI StandardGetWireguardConfigUrl Get /v3/networks/standard/{networkId}/tunnels/wireguard/{tunnelId}/config-token Get Wireguard config download URL
StandardTunnelsAPI StandardGetWireguardTunnel Get /v3/networks/standard/{networkId}/tunnels/wireguard/{tunnelId} Get a Wireguard tunnel
StandardTunnelsAPI StandardUpdateIPSecRedundantTunnel Put /v3/networks/standard/{networkId}/tunnels/ipsec/redundant/{haTunnelId} Update a new IPSec redundant tunnel
StandardTunnelsAPI StandardUpdateIPSecSingleTunnel Put /v3/networks/standard/{networkId}/tunnels/ipsec/single/{tunnelId} Update IPSec single tunnel
StandardTunnelsAPI StandardUpdateOpenVPNTunnel Put /v3/networks/standard/{networkId}/tunnels/openvpn/{tunnelId} Update OpenVPN tunnel
StandardTunnelsAPI StandardUpdateWireguardTunnel Put /v3/networks/standard/{networkId}/tunnels/wireguard/{tunnelId} Update a Wireguard tunnel
TeamAPI AddGroupMember Post /v3/groups/{groupId}/member/{userId} Add member to group
TeamAPI CreateGroup Post /v3/groups Create new group
TeamAPI CreateUser Post /v3/users Create new user
TeamAPI DeleteGroup Delete /v3/groups/{id} Delete group by ID
TeamAPI DeleteUser Delete /v3/users/{id} Delete user
TeamAPI ListGroups Get /v3/groups Returns paginated list of groups
TeamAPI ListUsers Get /v3/users Returns paginated list of users
TeamAPI RemoveGroupMember Delete /v3/groups/{groupId}/member/{userId} Remove member from group

Documentation For Models

Documentation For Authorization

Authentication schemes defined for the API:

bearer

  • Type: HTTP Bearer token authentication

Example

auth := context.WithValue(context.Background(), perimeter81sdk.ContextAccessToken, "BEARER_TOKEN_STRING")
r, err := client.Service.Operation(auth, args)

Documentation for Utility Methods

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

Author

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages