- v3: Support for finding InstanceTypes by family and size #681
- v3: Reduce minimum blockstorage size to 1GiB from 10GiB
- v3: Client introduce a wait timeout with different polling strategy #674
- v3 generator: Findable return error on too many found #669
- generate_v3: dbaas endpoints schema changes
- v3: withHttpClient deprecation
- generate_v3: dbaas endpoints schema changes
- v3: user agent as client options #659
- v3: downgrade to go1.22 (dedicated module for the generator) #658
- generator: Add Custom Extension Findable #656
- generate_v3: DBaaS endpoints and integration schemas #651 #653
- generate_v3: replace deprecated ::set-output #647
- generate_v3: handle multiple separators #650
- go.mk: upgrade to v2.0.3 #652
- v3: Add more listable on Name or(not and) ID #642
- v3: automate regeneration when spec changes #643
- v3: github action to build tooling with new commit #645
- v3: Add more HTTP error types #641
- v3 meta-data: private Instance fetch metadata from CD-ROM #634
- v3: Add a metadata package to interact with #632
- v3: Libopenapi bump / nullable reference fix #631
- v3: Remove omitempty on nullable complex types #628
- v3: Add the Authorization header value in the dump request #624
- v3: Add the User-Agent header value #623
- go.mk: remove submodule and initialize through make #618
- Makefile: fix targets #619
- SKS nodepool: support for kubelet image gc #620
- v3 trace: print operation IDs #622
- go.mk: lint with staticcheck #633
- v3: update generated code #637
- v3: separate v3 into its own go module #638
- deprecate v1 and v2 and remove alpha notice for v3 #640
- v2: fix issue with iam role labels #614
- v2: Fixed
SetHTTPClient
#605
- v2: IAMv3 Policy Resources field now noop #604
- v2: implement IAMv3
- fix: give correct permissions to release workflow
- v2: regenerate (2023-08-31) #599
- v2: add validation for UUID
- v2: add private network labels
- v2: refresh openapi generated code (patches generated code to fix codegen bug)
- feature: v2: allow supply security group rules referencing public security groups.
- feature: v2: add RevealInstancePassword
- feature: v2: add FindSecurityGroups with parameter support
- v2: refresh openapi generated code
- feature: v2: add an option to the ListInstances call that allows users to filter by IP address
- v2: database migration stop methods for databases supporting it: Redis, PostgreSQL, MySQL
- v2: refresh openapi generated code
- feature: v2: rename SKS nodepool addon
- feature: v2: add
Client.FindTemplate()
method - fix: v2: error for
Client.GetTemplateByName()
- feature: v2: add
Client.GetTemplateByName()
method - feature: v2: implement sort.Interface for []*Template by CreatedAt or by Name
- feature: v2: implement publicIpAssignment for Instances
- feature: v2: implement reverse DNS management
- feature: v2: add
Client.FindDatabaseService()
method
- fix: v2: seg fault when listing security groups
- feature: v2: add labels support for Elastic IPs
- fix: v2: silence retryable HTTP client debug logs
- feature: v2: retryable HTTP client by default
- change: no HOST header override for IP address endpoints
- feature: v2: add support for Elastic IPv6
- feature: v2: add support for DNS management
- feature: v2: add support for Build, Maintainer and Version attributes to RegisterTemplate
- fix: v2: aligns request signing with public API by urlencoding path in the signature
- feature: v2: WaitInstancePoolConverged allows to waits until an instance pool's VMs are provisioned
- v2: refresh openapi generated code + fix missing type oapi.Reference
- feature: v2: DBaaS: implement migration status command
- feature: v2: add support for listing of SKS Cluster deprecated resources via
ListSKSClusterDeprecatedResources
- change: v2: refresh code generated from public API spec
- change: v2: refresh code generated from public API spec
- fix: v2: fix
CreateSecurityGroupRule()
method (#547)
- change: v2:
SKSClusterOIDCConfig
struct fieldRequiredClaim
now is amap[string]string
type instead of a string
- change: v2: refresh code generated from public API spec
- change: v2: refresh code generated from public API spec
- feature: v2: add support for IAM access key resources
- change: v2: refresh code generated from public API spec
- feature: v2: add support for IAM access keys management
- feature: v2: add support for SKS Cluster OIDC configuration via
CreateSKSClusterOpt
options - feature: v2: add
ListInstancesOpt
options
- change: v2:
DatabaseServiceType
'sLatestVersion
field has been replaced byAvailableVersions
- fix: v2:
Update*()
methods no longer send empty strings to the public API, which does not accept those anymore
- change: v2: refresh code generated from public API spec
- change: v2: refresh code generated from public API spec
- feature: v2: add new
CopyTemplate()
/UpdateTemplate()
methods
- feature: v2:
ListSKSClusterVersions()
method now accepts an additionalListSKSClusterVersionsOpt
variadic argument
- change: v2: type-specific
DatabaseService
methods have been removed, to be re-implemented in a future version; usev2/oapi
methods for type-specific operations in the meantime
- change: v2: switch to func-based options passing
- feature: v2: add support for SKS Nodepool taints
- feature: v2: add
StartInstanceOpt
options
- feature: v2: add a new
Zone
struct field to zone-local API resources
- fix: v2: add missing operations params validation
- fix: v2:
SecurityGroup
: return external sources when present
- feature: v2: add
Client.AddExternalSourceToSecurityGroup()
/Client.RemoveExternalSourceFromSecurityGroup()
methods
- fix: v2: update Exoscale API endpoint prefix
- fix: v2: fix
Client.UpdateElasticIP()
method
- feature: v2: add
AntiAffinityGroup.InstanceIDs
field
- fix: v2: fix
Client.CreateSecurityGroupRule()
method
- feature: v2: add
Client.UpgradeSKSClusterServiceLevel()
method
- feature: v2: add
DatabaseServiceComponent
struct
- feature: v2: add method
Client.GetDatabaseCACertificate()
- fix: v2: add missing
Snapshot.Size
field
- feature: v2: add support for quotas management
- change: v2: all API resource-based methods have been relocated to the
Client
struct
- feature: v2: add support for SKS Nodepool add-ons
- feature: v2: add
Instance.Reset()
method - feature: v2: add
Instance.Scale()
method - feature: v2: add
Instance.ResizeDisk()
method
- fix: v2: fix
RegisterSSHKey()
method
- feature: v2: add support for SSH keys management
- tests: v2: add resource API mocks
- change: v2: replace
InstancePool.ManagerID
of typestring
withInstancePool.Manager
field of type*InstancePoolManager
- feature: v2: add support for Private Networks to SKS Nodepools
- feature: v2: add new
Client.RegisterTemplate()
method - change: v2: change
DatabaseService.UserConfig
type to pointer
- v2: fix a crash in
NetworkLoadBalancer.AddService()
method
- fix: v2: fix required params validation for NLB services
- feature: v2: add support for Private Networks leases
- feature: v2: add
PrivateNetwork.UpdateInstanceIPAddress()
method - feature: v2: add
Instance.Reboot()
method
- fix: v2: don't return pointers to empty maps/slices
- change: v2: API resource structs fields are now pointers instead of concrete types
- change: v2:
Database*
structs fields are now pointers
- feature: v2: add labels support for Compute instances
- feature: v2: add support for Database Services
- change: the
AuthorizeSecurityGroupIngress
struct now uses anint
type forIcmp(Code|Type)
fields (#499)
- change: the
IngressRule
/EgressRule
andv2.SecurityGroupRule
structs now use anint
type for the ICMP code/type storage (#498)
- change: the
IngressRule
/EgressRule
andv2.SecurityGroupRule
structs now use anint8
type for the ICMP code/type storage (#497)
- fix: v2: only point to non-zero struct fields for optional API resource properties (#496)
- feature: v2: add
Client.FindInstanceType()
method
- feature: v2: make API async polling interval customizable
- feature: v2: add
Client.Find*()
methods - feature: v2: add
Start
/Stop
methods toInstance
- feature: v2: add labels support for Network Load Balancers
- fix: v2: fix Security Group parsing from API
- feature: v2: add new
InstanceType
resource
- change: v2: the
Instance.ManagerID
field is replaced withInstance.Manager
of type*InstanceManager
- deprecatation: top-level
Version
constant is replaced byversion.Version
- change: v2: new default HTTP client transport setting request
User-Agent
header tov2.UserAgent
- feature: v2: add support for Elastic IP/Private Network/Security Group attachment/detachment to Instances
- feature: v2: add support for Deploy Targets to SKS Nodepools
- feature: v2: add support for Instance prefix to SKS Nodepools
- fix: v2: add support for
InstancePool.IPv6Enabled
field resetting
- feature: v2: add support for Instance prefix to Instance Pools
- feature: v2: add support for Deploy Targets
- feature: v2: add support for Compute instances management
- feature: v2: add support for Snapshots management
- feature: v2: add support for Templates management
- feature: v2: add getter methods on API resources
- feature: v2: add client property setters (#485)
- fix: v2: make SKSCluster.RotateCCMCredentials() synchronous (#484)
- feature: SKS: add SKSCluster.RotateCCMCredentials() method (#481)
- feature: SKS: add SKSCluster.AuthorityCert() method (#480)
- Fix typo in version.go
- feature: v2: add support for Elastic IP management
- fix: v2: InstancePool.ManagerID resolution (#479)
- feature: v2: add request tracing middleware (#474)
- feature: v2: add support for field resetting (#476)
- feature: v2: add support for Instance Pools management (#471)
- feature: v2: add support for Private Networks management (#472)
- feature: v2: add support for Anti-Affinity Groups management (#473)
- feature: v2: add support for Security Groups management (#475)
- change: in
NewClient()
, thev2.Client
embedded in theClient
struct doesn't inherit the customhttp.Client
set usingWithHTTPClient()
.
- change: Exoscale API V2 related code has been relocated under the
github.com/exoscale/egoscale/v2
package. Note:egoscale.Client
embeds av2.Client
initialized implicitly as a convenience.
- feature: new
SKSNodepool.AntiAffinityGroupIDs
field - change:
SKSCluster.Level
field renamed asSKSCluster.ServiceLevel
- feature: new method
ListZones()
- Improve API v2 async job tests and error reporting (#466)
- feature: new method
UpgradeSKSCluster()
- feature: new fields
SKSCluster.Level
andSKSCluster.CNI
- change:
SKSCluster.EnableExoscaleCloudController
replaced withSKSCluster.AddOns
- fix: add missing
UpdateVirtualMachineSecurityGroups
operation metadata
- feature: add
UpdateVirtualMachineSecurityGroups
operation (#464)
- feature: add
SKSCluster.EvictNodepoolMembers()
andListSKSClusterVersions()
methods
- fix:
UpdateIPAddress.HealthcheckTLSSkipVerify
field always set tofalse
(#462)
- feature:
NewClient()
now accepts options (460) - fix: NLB service healthcheck TLS SNI bug (#461)
- fix:
CreateInstancePool.AntiAffinityGroupIDs
field is optional (#459)
- feature: add support for Exoscale Cloud Controller in SKS clusters
- fix: add missing tests for SKS Nodepools Security Groups
- feature: add support for Anti-Affinity Groups to Instance Pools
- feature: add support for Security Groups to SKS Nodepools
- Fix typo in version.go
- Improve API v2 errors handling (#455)
- fix: various SKS-related bugs (#454)
- feature: add support for SKS resources (#453)
- change:
BucketUsage.Usage
is now anint64
(#451)
- fix: make
GetWithContext
return more relevant errors (#450)
- fix:
UpdateNetworkLoadBalancer
call panicking following a public API change
- feature: add support for Network Load Balancer service HTTPS health checking (#449)
- feature: add support for Instance Pool root disk size update (#448)
- fix: add missing TLS-specific parameters to
AssociateIPAddress
- fix: Instance Pool IPv6 flag handling
- feature: add support for IPv6 in Instance Pools (#446)
- feature: add new TLS-specific parameters to managed EIP
- feature:
ListVirtualMachines
call to allow searching byManagerID
(#442) - fix: remove duplicate
User-Agent
HTTP header in Runstatus calls - tests:
*NetworkLoadBalancer*
calls are now tested using HTTP mocks - codegen:
internal/v2
updated
- fix: Fix
ListVolumes
call to allow searching by ID (#440)
- feature: add
Manager
/ManagerID
fields toVirtualMachine
structure (#438) - fix: HTTP request User Agent header handling (#439)
- feature: Add
evictInstancePoolMembers
call to Instance Pool (#437)
- change: Add support for Compute instance templates boot mode (#436)
- fix: bug in the ListNetworkLoadBalancers call (#435)
- Fixing typo in previous release
- change: updated API V2 async operation code (#434)
- change: updated OpenAPI code-generated API V2 bindings
- change: the
DisplayText
property ofRegisterCustomTemplate
is now optional (#433)
- feature: Add support for Network Load Balancer resources (#432)
- feature: Add support for
listBucketsUsage
(#431) - change: Switch CI to Github Actions (#430)
- feature: Add export snapshot implementation (#427)
- feature: Add support for public API V2 (#425)
- change: Switch module to Go 1.14 (#429)
- change: Travis CI: set minimum Go version to 1.13
- doc: Annotate API doc regarding use of tags (#423)
- tests: fix request client timeout handling (#422)
- change: Add
Resources
field toAPIKey
(#420)
- change: Remove all references to Network Offerings (#418)
- feature: add const
NotFound
404 on typeErrorCode
(#417)
- fix: update the
ListAPIKeysResponse
field (#415)
- feature: Add Instance pool implementation (#410)
- feature: Add IAM implementation (#411)
- feature: add field
Description
on typeIPAddress
(#413) - change: add Json tag
omitempty
on fieldTemplateFilter
in typeListTemplates
(#412)
- change: make the "User-Agent" HTTP request header more informative and exposed
- feature: add method
DeepCopy
on typeAsyncJobResult
(#403)
- remove: remove the
IsFeatured
parameter from callRegisterCustomTemplate
(#402)
- feature: add parameter
RescueProfile
to callStartVirtualMachine
(#401)
- feature: add new call
RegisterCustomTemplate
(#400) - feature: add new call
DeleteTemplate
(#399)
- feature: Add
Healthcheck*
parameters to callUpdateIPAddress
- change: Replace satori/go.uuid by gofrs/uuid
- change: prefix the healthcheck-related params with
Healthcheck
on callAssociateIPAddress
- EIP: the healthcheck should be a pointer
- ip addresses: Add the Healthcheck parameters
- readme: point to new lego org (#395)
- dns: user_id is not sent back (#394)
- fix:
AffinityGroup
lists virtual machines withUUID
rather than string
- fix:
ListVirtualMachines
byIDs
to acceptUUID
rather than string
- fix:
GetRunstatusPage
to always contain the subresources - fix:
ListRunstatus*
to fetch all the subresources - feature:
PaginateRunstatus*
used by list
- change: all DNS calls require a context
- fix:
CreateAffinityGroup
allows emptyname
- fix: runstatus unmarshalling errors
- feature:
UUID
implements DeepCopy, DeepCopyInto - change: export
BooleanResponse
- feat: initial Runstatus API support
- feat:
admin
namespace containingListVirtualMachines
for admin usage
- feat:
Iso
supportListIsos
,AttachIso
, andDetachIso
- change:
Paginate
to acceptListable
- change:
ListCommand
is alsoListable
- change:
client.Get
doesn't modify the given resource, returns a new one - change:
Command
andAsyncCommand
are fully public, thus extensible - remove:
Gettable
- fix:
AuthorizeSecurityGroupEgress
could returnauthorizeSecurityGroupIngress
as name
- feat:
Snapshot
isListable
- change: replace dep by Go modules
- change: remove domainid,domain,regionid,listall,isrecursive,... fields
- remove:
MigrateVirtualMachine
,CreateUser
,EnableAccount
, and other admin calls
- fix:
ListNics
has no virtualmachineid limitations anymore - fix:
PCIDevice
ids are not UUIDs
- fix:
UpdateVMNicIP
is async
- feat: new VM state
Moving
- feat:
UpdateNetwork
withstartip
,endip
,netmask
- feat:
NetworkOffering
isListable
- feat: when it fails parsing the body, it shows it
- fix:
Snapshot.State
is a string, rather than an scalar - change: signature are now using the v3 version with expires by default
- fix:
Network.ListRequest
accepts aName
argument - change:
SecurityGroup
and the rules aren'tTaggable
anymore
- feat: addition of
UpdateVMNicIP
- fix:
UpdateVMAffinityGroup
expected response
no changes in the core library
no changes in the core library
- fix: empty list responses
- fix:
client.Sign
handles correctly the brackets (kudos to @stffabi) - change:
client.Payload
returns aurl.Values
- feat:
listOSCategories
andOSCategory
type - feat:
listApis
supports recursive response structures - feat:
GetRecordsWithFilters
to list records with name or record_type filters - fix: better
DNSErrorResponse
- fix:
ListResourceLimits
type - change: use UUID everywhere
- feat:
Client.Logger
to plug in any*log.Logger
- feat:
Client.TraceOn
/ClientTraceOff
to toggle the HTTP tracing
- feat:
CIDR
to replace string string - fix: prevent panic on nil
- feat:
Account
is Listable - feat:
MACAddress
to replace string type - fix: Go 1.7 support
- fix: ActivateIP6 response
- feat: expose
SyncRequest
andSyncRequestWithContext
- feat: addition of reverse DNS calls
- feat: addition of
SecurityGroup.UserSecurityGroup
- global: cloudstack documentation links are moved into cs
- global: removal of all the
...Response
types - feat:
Network
isListable
- feat: addition of
deleteUser
- feat: addition of
listHosts
- feat: addition of
updateHost
- feat: exo cmd (kudos to @pierre-emmanuelJ)
- change: refactor
Gettable
to useListRequest
- fix:
IPAddress
.ListRequest
with boolean fields - fix:
Network
.ListRequest
with boolean fields - fix:
ServiceOffering
.ListRequest
with boolean fields
- fix:
VirtualMachine
PCIDevice
representation was incomplete
- change:
DNSErrorResponse
is a propererror
- feat: addition of
GetDomains
- fix:
UpdateDomain
may contain more empty fields thanCreateDomain
- fix: expects body to be
application/json
- change: async timeout strategy wait two seconds and not fib(n) seconds
- fix:
GetVirtualUserData
response withDecode
method handling base64 and gzip
- feat:
Template
isGettable
- feat:
ServiceOffering
isGettable
- feat: addition of
GetAPILimit
- feat: addition of
CreateTemplate
,PrepareTemplate
,CopyTemplate
,UpdateTemplate
,RegisterTemplate
- feat: addition of
MigrateVirtualMachine
- feat: cmd cli
- change: remove useless fields related to Project and VPC
- feat:
booleanResponse
supports true booleans: apache/cloudstack#2428
- feat:
ListUsers
,CreateUser
,UpdateUser
- feat:
ListResourceDetails
- feat:
SecurityGroup
helperRuleByID
- feat:
Sign
signs the payload - feat:
UpdateNetworkOffering
- feat:
GetVirtualMachineUserData
- feat:
EnableAccount
andDisableAccount
(admin stuff) - feat:
AsyncRequest
andAsyncRequestWithContext
to examine the polling - fix:
AuthorizeSecurityGroupIngress
support for ICMPv6 - change: move
APIName()
into theClient
, nice godoc - change:
Payload
doesn't sign the request anymore - change:
Client
exposes more of its underlying data - change: requests are sent as GET unless it body size is too big
- feat:
Network
isListable
- feat:
Zone
isGettable
- feat:
Client.Payload
to help preview the HTTP parameters - feat: generate command utility
- fix:
CreateSnapshot
was missing theName
attribute - fix:
ListSnapshots
was missing theIDs
attribute - fix:
ListZones
was missing theNetworkType
attribute - fix:
ListAsyncJobs
was missing theListAll
attribute - change: ICMP Type/Code are uint8 and TCP/UDP port are uint16
- feat:
Template
isListable
- feat:
IPAddress
isListable
- change:
List
andPaginate
return pointers - fix:
Template
was missingtags
- feat:
SSHKeyPair
isListable
- feat:
VirtualMachine
isListable
- feat: new
Client.Paginate
andClient.PaginateWithContext
- change: the inner logic of
Listable
- remove: not working
Client.AsyncList
- fix:
AuthorizeSecurityGroup(In|E)gress
startport may be zero
- feat: new
Listable
interface - feat:
Nic
isListable
- feat:
Volume
isListable
- feat:
Zone
isListable
- feat:
AffinityGroup
isListable
- remove: deprecated methods
ListNics
,AddIPToNic
, andRemoveIPFromNic
- remove: deprecated method
GetRootVolumeForVirtualMachine
- feat:
IPAddress
isGettable
andDeletable
- fix: serialization of *bool
- fix:
GetVMPassword
response - remove: deprecated
GetTopology
,GetImages
, and al
- feat: IP4 and IP6 flags to DeployVirtualMachine
- feat: add ActivateIP6
- fix: error message was gobbled on 40x
- feat: add
BooleanRequestWithContext
- feat: add
client.Get
,client.GetWithContext
to fetch a resource - feat: add
cleint.Delete
,client.DeleteWithContext
to delete a resource - feat:
SSHKeyPair
isGettable
andDeletable
- feat:
VirtualMachine
isGettable
andDeletable
- feat:
AffinityGroup
isGettable
andDeletable
- feat:
SecurityGroup
isGettable
andDeletable
- remove: deprecated methods
CreateAffinityGroup
,DeleteAffinityGroup
- remove: deprecated methods
CreateKeypair
,DeleteKeypair
,RegisterKeypair
- remove: deprecated method
GetSecurityGroupID
- feat: CloudStack API name is now public
APIName()
- feat: enforce the mutual exclusivity of some fields
- feat: add
context.Context
toRequestWithContext
- change:
AsyncRequest
andBooleanAsyncRequest
are gone, useRequest
andBooleanRequest
instead. - change:
AsyncInfo
is no more
- fix: typo made ListAll required in ListPublicIPAddresses
- fix: all bool are now *bool, respecting CS default value
- feat: (*VM).DefaultNic() to obtain the main Nic
- fix: affinity groups virtualmachineIds attribute
- fix: uuidList is not a list of strings
- feat: add RootDiskSize to RestoreVirtualMachine
- fix: monotonic polling using Context
- feat: add Taggable interface to expose ResourceType
- feat: add (Create|Update|Delete|List)InstanceGroup(s)
- feat: add RegisterUserKeys
- feat: add ListResourceLimits
- feat: add ListAccounts
- fix: update UpdateVirtualMachine userdata
- fix: Network's name/displaytext might be empty
- fix: serialization of slice
- fix: constants
- change: userdata expects a string
- change: no pointer in sub-struct's
- bug: createNetwork is a sync call
- bug: typo in listVirtualMachines' domainid
- bug: serialization of map[string], e.g. UpdateVirtualMachine
- change: IPAddress's use net.IP type
- feat: helpers VM.NicsByType, VM.NicByNetworkID, VM.NicByID
- feat: addition of CloudStack ApiErrorCode constants
- bug: sync calls returns succes as a string rather than a bool
- change: unexport BooleanResponse types
- feat: original CloudStack error response can be obtained
Big refactoring, addition of the documentation, compliance to golint.
Initial library