Skip to content

Latest commit

 

History

History
309 lines (262 loc) · 18.5 KB

README.md

File metadata and controls

309 lines (262 loc) · 18.5 KB

Go API client for waf

No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)

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: 1.0.0
  • Package version: 1.0.0
  • Build package: org.openapitools.codegen.languages.GoClientExperimentalCodegen For more information, please visit https://support.stackpath.com/

Installation

Install the following dependencies:

go get github.com/stretchr/testify/assert
go get golang.org/x/oauth2
go get golang.org/x/net/context

Put the package under your project folder and add the following in import:

import sw "./waf"

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 sw.ContextServerIndex of type int.

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

Templated Server URL

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

ctx := context.WithValue(context.Background(), sw.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 identifield by "{classname}Service.{nickname}" string. Similar rules for overriding default operation server index and variables applies by using sw.ContextOperationServerIndices and sw.ContextOperationServerVariables context maps.

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

Documentation for API Endpoints

All URIs are relative to https://gateway.stackpath.com

Class Method HTTP request Description
ConfigurationApi GetSiteDnsTargets Get /waf/v1/stacks/{stack_id}/sites/{site_id}/delivery/dns/targets Get CNAME targets
EventsApi GetEvent Get /waf/v1/stacks/{stack_id}/sites/{site_id}/events/{event_id} LEGACY: Get an event
EventsApi GetEventStatistics Get /waf/v1/stacks/{stack_id}/sites/{site_id}/event_stats LEGACY: Get event statistics
EventsApi SearchEvents Get /waf/v1/stacks/{stack_id}/sites/{site_id}/events LEGACY: Get all events
InfrastructureApi GetWAFOrganizations Get /waf/v1/organizations Get WHOIS organizations
PoliciesApi DisablePolicy Post /waf/v1/stacks/{stack_id}/sites/{site_id}/policy_groups/{policy_group_id}/policies/{policy_id}/disable Disable a policy
PoliciesApi DisablePolicyGroup Post /waf/v1/stacks/{stack_id}/sites/{site_id}/policy_groups/{policy_group_id}/disable Disable all policies in a group
PoliciesApi EnablePolicy Post /waf/v1/stacks/{stack_id}/sites/{site_id}/policy_groups/{policy_group_id}/policies/{policy_id}/enable Enable a policy
PoliciesApi EnablePolicyGroup Post /waf/v1/stacks/{stack_id}/sites/{site_id}/policy_groups/{policy_group_id}/enable Enable all policies in a group
PoliciesApi GetPolicies Get /waf/v1/stacks/{stack_id}/sites/{site_id}/policy_groups/{policy_group_id}/policies Get all policies in a group
PoliciesApi GetPolicy Get /waf/v1/stacks/{stack_id}/sites/{site_id}/policy_groups/{policy_group_id}/policies/{policy_id} Get a policy
PoliciesApi GetPolicyGroup Get /waf/v1/stacks/{stack_id}/sites/{site_id}/policy_groups/{policy_group_id} Get a policy group
PoliciesApi GetPolicyGroups Get /waf/v1/stacks/{stack_id}/sites/{site_id}/policy_groups Get all policy groups
PoliciesApi UpdatePolicyGroups Patch /waf/v1/stacks/{stack_id}/sites/{site_id}/policy_groups Update policy groups
RequestsApi GetRequest Get /waf/v1/stacks/{stack_id}/sites/{site_id}/requests/{request_id} Get a request
RequestsApi GetRequestDetails Get /waf/v1/stacks/{stack_id}/sites/{site_id}/requests/{request_id}/details Get a request's details
RequestsApi GetRequests Get /waf/v1/stacks/{stack_id}/sites/{site_id}/requests Get all requests
RulesApi BulkDeleteRules Post /waf/v1/stacks/{stack_id}/sites/{site_id}/rules/bulk_delete Delete multiple rules
RulesApi CreateRule Post /waf/v1/stacks/{stack_id}/sites/{site_id}/rules Create a rule
RulesApi DeleteRule Delete /waf/v1/stacks/{stack_id}/sites/{site_id}/rules/{rule_id} Delete a rule
RulesApi DisableRule Post /waf/v1/stacks/{stack_id}/sites/{site_id}/rules/{rule_id}/disable Disable a rule
RulesApi EnableRule Post /waf/v1/stacks/{stack_id}/sites/{site_id}/rules/{rule_id}/enable Enable a rule
RulesApi GetRule Get /waf/v1/stacks/{stack_id}/sites/{site_id}/rules/{rule_id} Get a rule
RulesApi GetRules Get /waf/v1/stacks/{stack_id}/sites/{site_id}/rules Get all rules
RulesApi UpdateRule Patch /waf/v1/stacks/{stack_id}/sites/{site_id}/rules/{rule_id} Update a rule
SSLApi ConnectSiteToCertificate Put /waf/v1/stacks/{stack_id}/sites/{site_id}/delivery/certificates/{certificate_id} Update SAN hosts
SSLApi CreateCertificate Post /waf/v1/stacks/{stack_id}/delivery/certificates Add a certificate
SSLApi DeleteCertificate Delete /waf/v1/stacks/{stack_id}/delivery/certificates/{certificate_id} Delete a certificate
SSLApi GetCertificate Get /waf/v1/stacks/{stack_id}/delivery/certificates/{certificate_id} Get a certificate
SSLApi GetCertificateVerificationDetails Get /waf/v1/stacks/{stack_id}/delivery/certificates/{certificate_id}/verification_details Get sites associated with a certificate
SSLApi GetCertificates Get /waf/v1/stacks/{stack_id}/delivery/certificates Get all certificates
SSLApi GetSiteCertificates Get /waf/v1/stacks/{stack_id}/sites/{site_id}/delivery/certificates Get all site certificates
SSLApi RenewCertificate Post /waf/v1/stacks/{stack_id}/delivery/certificates/{certificate_id}/renew Renew a certificate
SSLApi RequestCertificate Post /waf/v1/stacks/{stack_id}/sites/{site_id}/delivery/certificates/request Request a free certificate
SSLApi UpdateCertificate Put /waf/v1/stacks/{stack_id}/delivery/certificates/{certificate_id} Update a certificate
TrafficApi GetTraffic Get /waf/v1/stacks/{stack_id}/traffic LEGACY: Get traffic
TrafficApi GetTrafficV2 Get /waf/v2/stacks/{stack_id}/traffic Get traffic
WAFFeaturesApi GetDdosSettings Get /waf/v1/stacks/{stack_id}/sites/{site_id}/ddos Get DDOS settings
WAFFeaturesApi GetTags Get /waf/v1/tags Get all tags
WAFFeaturesApi MonitorSite Post /waf/v1/stacks/{stack_id}/sites/{site_id}/monitoring Enable monitoring mode
WAFFeaturesApi UnMonitorSite Delete /waf/v1/stacks/{stack_id}/sites/{site_id}/monitoring Disable monitoring mode
WAFFeaturesApi UpdateDdosSettings Patch /waf/v1/stacks/{stack_id}/sites/{site_id}/ddos Update DDOS settings
WAFFeaturesApi UpdateSiteApiUrls Put /waf/v1/stacks/{stack_id}/sites/{site_id}/api_urls Update API URLs

Documentation For Models

Documentation For Authorization

oauth2

  • Type: OAuth
  • Flow: application
  • Authorization URL:
  • Scopes: N/A

Example

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

Or via OAuth2 module to automatically refresh tokens and perform user authentication.

import "golang.org/x/oauth2"

/* Perform OAuth2 round trip request and obtain a token */

tokenSource := oauth2cfg.TokenSource(createContext(httpClient), &token)
auth := context.WithValue(oauth2.NoContext, sw.ContextOAuth2, tokenSource)
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