Categorygithub.com/szczad/hyperstack-api-go
repositorypackage
0.0.1-pre.2
Repository: https://github.com/szczad/hyperstack-api-go.git
Documentation: pkg.go.dev

# Packages

No description provided by the author

# README

Go API client for hyperstack

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

Installation

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 hyperstack "github.com/szczad/hyperstack-api-go"

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

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

Templated Server URL

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

ctx := context.WithValue(context.Background(), hyperstack.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 hyperstack.ContextOperationServerIndices and hyperstack.ContextOperationServerVariables context maps.

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

Documentation for API Endpoints

All URIs are relative to https://infrahub-api.nexgencloud.com/v1

ClassMethodHTTP requestDescription
AliveAPIGetAliveGet /billing/aliveGET: Alive
ApiKeyAPIDeleteAPIKeyDelete /api-key/{api_key_id}Delete API Key
ApiKeyAPIGenerateAPIKeyPost /api-key/generateGenerate API Key
ApiKeyAPIRetrieveAPIKeyGet /api-keyRetrieve API Keys
ApiKeyAPIUpdateAPIKeyPut /api-key/{api_key_id}Update API Key
AssigningMemberRoleAPIAssignRBACRoleToUserPut /auth/users/{user_id}/assign-rolesAssign RBAC Role
AssigningMemberRoleAPIRemoveRBACRoleFromUserDelete /auth/users/{user_id}/rolesRemove RBAC Role From User
AuthAPIRetrieveAuthenticatedUserDetailsGet /auth/meRetrieve Authenticated User Details
BillingAPIGetLastDayCostGet /billing/billing/last-day-costGET: Last Day Cost
BillingAPIGetUsageGet /billing/billing/usageGET: Billing usage
CalculateAPIGetCalculateGet /pricebook/calculate/resource/{resource_type}/{id}Retrieve Billing Rate for Resource
CallbacksAPIAttachCallbackToVirtualMachinePost /core/virtual-machines/{id}/attach-callbackAttach callback to virtual machine
CallbacksAPIAttachCallbackToVolumePost /core/volumes/{id}/attach-callbackAttach callback to volume
CallbacksAPIDeleteVirtualMachineCallbackDelete /core/virtual-machines/{id}/delete-callbackDelete virtual machine callback
CallbacksAPIDeleteVolumeCallbackDelete /core/volumes/{id}/delete-callbackDelete volume callback
CallbacksAPIUpdateVirtualMachineCallbackPut /core/virtual-machines/{id}/update-callbackUpdate virtual machine callback
CallbacksAPIUpdateVolumeCallbackPut /core/volumes/{id}/update-callbackUpdate volume callback
ComplianceAPICreateCompliancePost /core/complianceCreate compliance
ComplianceAPIDeleteAComplianceDelete /core/compliance/{gpu_model}Delete a compliance
ComplianceAPIRetrieveComplianceGet /core/complianceRetrieve GPU compliance
ComplianceAPIUpdateACompliancePut /core/complianceUpdate a compliance
CreditAPICheckBalanceAsAnOrganizationGet /billing/user-credit/creditGET: View credit and threshold
CustomerContractAPIDetailsOfContractByIDForCustomerGet /pricebook/contracts/{contract_id}Retrieve Contract Details
CustomerContractAPIGetCustomerContractGet /pricebook/contractsList Contracts
DashboardAPIRetrieveDashboardGet /core/dashboardRetrieve Dashboard
DeploymentAPIDeleteDeploymentDelete /core/marketplace/deployments/{id}Delete Deployment
DeploymentAPIDetailsOfDeploymentByIDGet /core/marketplace/deployments/{id}Details of Deployment by ID
DeploymentAPIListDeploymentsGet /core/marketplace/deploymentsList Deployments
DeploymentAPIStartDeploymentPost /core/marketplace/deploymentsStart Deployment
EnvironmentAPICreateEnvironmentPost /core/environmentsCreate environment
EnvironmentAPIDeleteEnvironmentDelete /core/environments/{id}Delete environment
EnvironmentAPIListEnvironmentsGet /core/environmentsList environments
EnvironmentAPIRetrieveEnvironmentGet /core/environments/{id}Retrieve environment
EnvironmentAPIUpdateEnvironmentPut /core/environments/{id}Update environment
FirewallAttachmentAPIAttachFirewallToVMsPost /core/firewalls/{firewall_id}/update-attachmentsAttach Firewalls to VMs
FirewallsAPIAddRulesToFirewallPost /core/firewalls/{firewall_id}/firewall-rulesAdd Rules to Firewall
FirewallsAPICreateFirewallPost /core/firewallsCreate Firewall
FirewallsAPIDeleteFirewallDelete /core/firewalls/{id}Delete Firewall
FirewallsAPIDeleteFirewallRulesFromFirewallDelete /core/firewalls/{firewall_id}/firewall-rules/{firewall_rule_id}Delete Firewall Rules from Firewall
FirewallsAPIDetailsOfFirewallByIDGet /core/firewalls/{id}Details of Firewall by ID
FirewallsAPIRetrieveFirewallsGet /core/firewallsList firewalls
FlavorAPIListFlavorsGet /core/flavorsList flavors
FloatingIpAPIAttachPublicIPToVirtualMachinePost /core/virtual-machines/{id}/attach-floatingipAttach public IP to virtual machine
FloatingIpAPIDetachPublicIPFromVirtualMachinePost /core/virtual-machines/{id}/detach-floatingipDetach public IP from virtual machine
GpuAPIListGPUsGet /core/gpusList GPUs
ImageAPIListImagesGet /core/imagesList images
InviteAPIDeleteInviteDelete /auth/invites/{id}Delete Invite
InviteAPIInviteUserToOrganizationPost /auth/invitesInvite User to Organization
InviteAPIListInvitesGet /auth/invitesList Invites
KeypairAPIDeleteKeyPairDelete /core/keypair/{id}Delete key pair
KeypairAPIImportKeyPairPost /core/keypairsImport key pair
KeypairAPIListKeyPairsGet /core/keypairsList key pairs
KeypairAPIUpdateKeyPairNamePut /core/keypair/{id}Update key pair name
OrganizationAPIRemoveOrganizationMemberPost /auth/organizations/remove-memberRemove Organization Member
OrganizationAPIRetrieveOrganizationInformationGet /auth/organizationsRetrieve Organization Information
OrganizationAPIUpdateOrganizationInformationPut /auth/organizations/updateUpdate Organization Information
PaymentAPIGetDetailsGet /billing/payment/payment-detailsGET: View payment details
PaymentAPIPostPaymentPost /billing/payment/payment-initiatePOST: Initiate payment
PermissionAPIListPermissionsGet /auth/permissionsList Permissions
PolicyAPIListPoliciesGet /auth/policiesList Policies
PricebookAPIRetrivePricebookGet /pricebook
ProfileAPICreateProfilePost /core/profilesCreate profile
ProfileAPIDeleteProfileDelete /core/profiles/{id}Delete profile
ProfileAPIListProfilesGet /core/profilesList profiles
ProfileAPIRetrieveProfileDetailsGet /core/profiles/{id}Retrieve profile details
RbacRoleAPICreateRBACRolePost /auth/rolesCreate RBAC Role
RbacRoleAPIDeleteRBACRoleDelete /auth/roles/{id}Delete RBAC Role
RbacRoleAPIListRBACRolesGet /auth/rolesList RBAC Roles
RbacRoleAPIRetrieveRBACRoleDetailsGet /auth/roles/{id}Retrieve RBAC Role Details
RbacRoleAPIUpdateRBACRolePut /auth/roles/{id}Update RBAC Role
RegionAPIListRegionsGet /core/regionsList regions
SecurityRulesAPIListFirewallRuleProtocolsGet /core/sg-rules-protocolsList firewall rule protocols
StockAPIRetrieveGPUStocksGet /core/stocksRetrieve GPU stocks
TemplateAPICreateTemplatePost /core/marketplace/templatesCreate template
TemplateAPIDeleteTemplateDelete /core/marketplace/templates/{id}Delete template
TemplateAPIListTemplatesGet /core/marketplace/templatesList templates
TemplateAPIRetrieveTemplateDetailsGet /core/marketplace/templates/{id}Retrieve template details
TemplateAPIUpdateTemplatePut /core/marketplace/templates/{id}Update template
UserAPIGetUserGet /billing/user/infoGET: Fetch User Info
UserAPIPostUserPost /billing/user/infoPOST: Insert user info
UserAPIUpdateUserInfoPut /billing/user/infoPUT: Update user info
UserDetailChoiceAPIRetrieveDefaultFlavorsAndImagesGet /core/user/resources/defaultsRetrieve Default Flavors and Images
UserPermissionAPIListMyUserPermissionsGet /auth/users/me/permissionsList My User Permissions
UserPermissionAPIListUserPermissionsGet /auth/users/{id}/permissionsList User Permissions
VirtualMachineAPIAddFirewallRuleToVirtualMachinePost /core/virtual-machines/{id}/sg-rulesAdd firewall rule to virtual machine
VirtualMachineAPIAttachFirewallsToAVMPost /core/virtual-machines/{vm_id}/attach-firewallsAttach Firewalls to a VM
VirtualMachineAPICreateVirtualMachinePost /core/virtual-machinesCreate virtual machine
VirtualMachineAPIDeleteFirewallRuleFromVirtualMachineDelete /core/virtual-machines/{virtual_machine_id}/sg-rules/{sg_rule_id}Delete firewall rule from virtual machine
VirtualMachineAPIDeleteVirtualMachineDelete /core/virtual-machines/{id}Delete virtual machine
VirtualMachineAPIEditLabelsOfAnExistingVMPut /core/virtual-machines/{virtual_machine_id}/labelEdit labels of an existing VM
VirtualMachineAPIHardRebootVirtualMachineGet /core/virtual-machines/{id}/hard-rebootHard reboot virtual machine
VirtualMachineAPIHibernateVirtualMachineGet /core/virtual-machines/{virtual_machine_id}/hibernateHibernate virtual machine
VirtualMachineAPIListVirtualMachinesGet /core/virtual-machinesList virtual machines
VirtualMachineAPIResizeVirtualMachinePost /core/virtual-machines/{virtual_machine_id}/resizeResize virtual machine
VirtualMachineAPIRestoreVirtualMachineFromHibernationGet /core/virtual-machines/{virtual_machine_id}/hibernate-restoreRestore virtual machine from hibernation
VirtualMachineAPIRetrieveVirtualMachineDetailsGet /core/virtual-machines/{id}Retrieve virtual machine details
VirtualMachineAPIRetrieveVirtualMachinePerformanceMetricsGet /core/virtual-machines/{virtual_machine_id}/metricsRetrieve virtual machine performance metrics
VirtualMachineAPIRetrieveVirtualMachinesAssociatedWithAContractGet /core/virtual-machines/contract/{contract_id}/virtual-machinesRetrieve virtual machines associated with a contract
VirtualMachineAPIStartVirtualMachineGet /core/virtual-machines/{id}/startStart virtual machine
VirtualMachineAPIStopVirtualMachineGet /core/virtual-machines/{id}/stopStop virtual machine
VirtualMachineEventsAPIListVirtualMachineEventsGet /core/virtual-machines/{virtual_machine_id}/eventsList virtual machine events
VncUrlAPIGetVNCConsoleLinkGet /core/virtual-machines/{virtual_machine_id}/console/{job_id}Get VNC Console Link
VncUrlAPIRequestConsoleGet /core/virtual-machines/{id}/request-consoleRequest Instance Console
VolumeAPICreateVolumePost /core/volumesCreate volume
VolumeAPIDeleteVolumeDelete /core/volumes/{id}Delete volume
VolumeAPIListVolumeTypesGet /core/volume-typesList volume types
VolumeAPIListVolumesGet /core/volumesList volumes
VolumeAttachmentAPIAttachVolumesToVirtualMachinePost /core/virtual-machines/{virtual_machine_id}/attach-volumesAttach volumes to virtual machine
VolumeAttachmentAPIDetachVolumesFromVirtualMachinePost /core/virtual-machines/{virtual_machine_id}/detach-volumesDetach volumes from virtual machine

Documentation For Models

Documentation For Authorization

Authentication schemes defined for the API:

accessToken

  • Type: API key
  • API key parameter name: Authorization
  • Location: HTTP header

Note, each API key must be added to a map of map[string]APIKey where the key is: Authorization and passed in as the auth context for each request.

Example

auth := context.WithValue(
		context.Background(),
		hyperstack.ContextAPIKeys,
		map[string]hyperstack.APIKey{
			"Authorization": {Key: "API_KEY_STRING"},
		},
	)
r, err := client.Service.Operation(auth, args)

apiKey

  • Type: API key
  • API key parameter name: api_key
  • Location: HTTP header

Note, each API key must be added to a map of map[string]APIKey where the key is: api_key and passed in as the auth context for each request.

Example

auth := context.WithValue(
		context.Background(),
		hyperstack.ContextAPIKeys,
		map[string]hyperstack.APIKey{
			"api_key": {Key: "API_KEY_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