apache/cloudstack-go

Missing API support

Opened this issue · 8 comments

Here's a list of the APIs in 4.16 not yet added to the SDK

acquirePodIpAddress
addAnnotation
addCiscoAsa1000vResource
addCiscoVnmcResource
addExternalFirewall
addExternalLoadBalancer
addF5LoadBalancer
addKubernetesSupportedVersion
addSrxFirewall
addUserToProject
addVmwareDc
archiveSnapshot
cancelHostAsDegraded
cloudianIsEnabled
configureF5LoadBalancer
configureSrxFirewall
createKubernetesCluster
createManagementNetworkIpRange
createProjectRole
createSnapshotFromVMSnapshot
declareHostAsDegraded
deleteCiscoAsa1000vResource
deleteCiscoNexusVSM
deleteCiscoVnmcResource
deleteExternalFirewall
deleteExternalLoadBalancer
deleteF5LoadBalancer
deleteKubernetesCluster
deleteKubernetesSupportedVersion
deleteManagementNetworkIpRange
deleteNetscalerControlCenter
deleteProjectRole
deleteResourceIcon
deleteServicePackageOffering
deleteSrxFirewall
deleteUserFromProject
deployNetscalerVpx
destroyVolume
disableCiscoNexusVSM
disableHAForHost
enableCiscoNexusVSM
getDiagnosticsData
getKubernetesClusterConfig
getRouterHealthCheckResults
getSolidFireVolumeAccessGroupIds
getUploadParamsForIso
getUserKeys
importRole
importUnmanagedInstance
importVsphereStoragePolicies
issueCertificate
linkAccountToLdap
listAnnotations
listCaCertificate
listCAProviders
listCiscoAsa1000vResources
listCiscoNexusVSMs
listCiscoVnmcResources
listDetailOptions
listElastistorInterface
listElastistorPool
listElastistorVolume
listExternalFirewalls
listExternalLoadBalancers
listF5LoadBalancerNetworks
listF5LoadBalancers
listHostHAProviders
listHostHAResources
listInfrastructure
listKubernetesClusters
listKubernetesSupportedVersions
listManagementServers
listNetscalerControlCenter
listProjectRoles
listRegisteredServicePackages
listResourceIcon
listSrxFirewallNetworks
listSrxFirewalls
listStoragePoolsMetrics
listUnmanagedInstances
listVmwareDcs
listVolumesMetrics
listVsphereStoragePolicies
listVsphereStoragePolicyCompatiblePools
listZonesMetrics
migrateNetwork
migrateSecondaryStorageData
migrateVPC
moveNetworkAclItem
moveUser
provisionCertificate
recoverVolume
registerNetscalerControlCenter
registerNetscalerServicePackage
releasePodIpAddress
removeAnnotation
removeVmwareDc
revokeCertificate
revokeTemplateDirectDownloadCertificate
runDiagnostics
scaleKubernetesCluster
startKubernetesCluster
startRollingMaintenance
stopKubernetesCluster
stopNetScalerVpx
syncStoragePool
unmanageVirtualMachine
updateAnnotationVisibility
updateImageStore
updateKubernetesSupportedVersion
updatePodManagementNetworkIpRange
updateProjectRole
updateSecurityGroup
updateSiocInfo
updateStorageCapabilities
updateVlanIpRange
updateVmwareDc
upgradeKubernetesCluster
uploadResourceIcon
uploadTemplateDirectDownloadCertificate

It's fine if some obscure APIs don't get in asap but certain new / common apis should go in :

destroyVolume
listVolumesMetrics
recoverVolume

addAnnotation
listAnnotations
removeAnnotation
updateAnnotationVisibility

addKubernetesSupportedVersion
createKubernetesCluster
deleteKubernetesCluster
deleteKubernetesSupportedVersion
getKubernetesClusterConfig
listKubernetesClusters
listKubernetesSupportedVersions
scaleKubernetesCluster
startKubernetesCluster
stopKubernetesCluster
updateKubernetesSupportedVersion
upgradeKubernetesCluster

addUserToProject
deleteUserFromProject

getUserKeys
importRole

syncStoragePool
listZonesMetrics

@davidjumani check latest main now, confirm close the issue if this is fixed.

@rhtyd updating listAPIs.json doesn't support all the APIs we need to add them to the layout file as well. So, they may still not be supported

okay, well the intension of the SDK is to not necessarily support all the APIs as APIs may keep growing - it's meant to be driven by users/usage.

Hello let me summarize the problem 💡

  1. This GO SDK API is a bit outdated, since I'm getting JSON Unmarshal errors for ACS 4.16.0 like this: json: cannot unmarshal object into Go struct field VPC.vpc.network of type string
  2. All SDK API files are auto generated from templates layout.go and generate.go ✔️
  3. SDK API generator input is listApis.json ✔️
  4. listApis.json is in turn just the output of the listApis command, which is the ACS API auto discovery plugin as per this ✔️
  5. Currently, API auto generator is broken ❌ giving me this 🤨 :
go run generate/generate.go generate/layout.go --api=generate/listApis.json
2021/12/26 19:25:22 1 API(s) failed to generate:
2021/12/26 19:25:22 GoImport failed to format:
exit status 1

Thus need to fix the generator to regenerate the SDK APIs

@tampler based on the error, it seems like goimports may not be present in $PATH. If goimports has been installed and is present in $GOPATH/bin, can you please try adding $GOPATH/bin to $PATH and verify if it fixes the error you observe during code regeneration. Thanks.

Hi @Pearl1594
Yes, the last issue with codegen was due to missing goimports. I'll update docs on this soon. Thanks for your hint!

Currently with 4.19/main:

go run generate/generate.go generate/layout.go --api=generate/listApis.json
2024/02/09 06:04:38 Api missing in layout: createTungstenFabricLogicalRouter
2024/02/09 06:04:38 Api missing in layout: addCiscoVnmcResource
2024/02/09 06:04:38 Api missing in layout: migrateVPC
2024/02/09 06:04:38 Api missing in layout: createTungstenFabricTag
2024/02/09 06:04:38 Api missing in layout: listElastistorInterface
2024/02/09 06:04:38 Api missing in layout: createSecondaryStorageSelector
2024/02/09 06:04:38 Api missing in layout: updateStorageCapabilities
2024/02/09 06:04:38 Api missing in layout: cloudianIsEnabled
2024/02/09 06:04:38 Api missing in layout: listSystemVmsUsageHistory
2024/02/09 06:04:38 Api missing in layout: createTungstenFabricManagementNetwork
2024/02/09 06:04:38 Api missing in layout: listManagementServers
2024/02/09 06:04:38 Api missing in layout: deleteObjectStoragePool
2024/02/09 06:04:38 Api missing in layout: acquirePodIpAddress
2024/02/09 06:04:38 Api missing in layout: deleteResourceIcon
2024/02/09 06:04:38 Api missing in layout: updateImageStore
2024/02/09 06:04:38 Api missing in layout: removeTungstenFabricNetworkGatewayFromLogicalRouter
2024/02/09 06:04:38 Api missing in layout: validateUserTwoFactorAuthenticationCode
2024/02/09 06:04:38 Api missing in layout: deleteTungstenFabricPolicy
2024/02/09 06:04:38 Api missing in layout: listVmwareDcVms
2024/02/09 06:04:38 Api missing in layout: updateBucket
2024/02/09 06:04:38 Api missing in layout: registerUserData
2024/02/09 06:04:38 Api missing in layout: deleteTungstenFabricApplicationPolicySet
2024/02/09 06:04:38 Api missing in layout: deleteServicePackageOffering
2024/02/09 06:04:38 Api missing in layout: uploadTemplateDirectDownloadCertificate
2024/02/09 06:04:38 Api missing in layout: deleteVnfTemplate
2024/02/09 06:04:38 Api missing in layout: createTungstenFabricPolicy
2024/02/09 06:04:38 Api missing in layout: removeVmwareDc
2024/02/09 06:04:38 Api missing in layout: issueCertificate
2024/02/09 06:04:38 Api missing in layout: createConsoleEndpoint
2024/02/09 06:04:38 Api missing in layout: moveDomain
2024/02/09 06:04:38 Api missing in layout: deleteTungstenFabricAddressGroup
2024/02/09 06:04:38 Api missing in layout: updateProjectRole
2024/02/09 06:04:38 Api missing in layout: listVMSchedule
2024/02/09 06:04:38 Api missing in layout: cancelShutdown
2024/02/09 06:04:38 Api missing in layout: createTungstenFabricPublicNetwork
2024/02/09 06:04:38 Api missing in layout: listTungstenFabricFirewallPolicy
2024/02/09 06:04:38 Api missing in layout: listImageStoreObjects
2024/02/09 06:04:38 Api missing in layout: getUploadParamsForIso
2024/02/09 06:04:38 Api missing in layout: removeTungstenFabricTag
2024/02/09 06:04:38 Api missing in layout: importVsphereStoragePolicies
2024/02/09 06:04:38 Api missing in layout: getHypervisorGuestOsNames
2024/02/09 06:04:38 Api missing in layout: addVmwareDc
2024/02/09 06:04:38 Api missing in layout: disableCiscoNexusVSM
2024/02/09 06:04:38 Api missing in layout: removeSecondaryStorageSelector
2024/02/09 06:04:38 Api missing in layout: archiveSnapshot
2024/02/09 06:04:38 Api missing in layout: removeQuarantinedIp
2024/02/09 06:04:38 Api missing in layout: deleteTungstenFabricServiceGroup
2024/02/09 06:04:38 Api missing in layout: setupUserTwoFactorAuthentication
2024/02/09 06:04:38 Api missing in layout: listResourceIcon
2024/02/09 06:04:38 Api missing in layout: listTungstenFabricFirewallRule
2024/02/09 06:04:38 Api missing in layout: generateClusterDrsPlan
2024/02/09 06:04:38 Api missing in layout: addTungstenFabricPolicyRule
2024/02/09 06:04:38 Api missing in layout: importVm
2024/02/09 06:04:38 Api missing in layout: listVsphereStoragePolicyCompatiblePools
2024/02/09 06:04:38 Api missing in layout: registerVnfTemplate
2024/02/09 06:04:38 Api missing in layout: startRollingMaintenance
2024/02/09 06:04:38 Api missing in layout: listStoragePoolObjects
2024/02/09 06:04:38 Api missing in layout: getRouterHealthCheckResults
2024/02/09 06:04:38 Api missing in layout: listCaCertificate
2024/02/09 06:04:38 Api missing in layout: listTungstenFabricPolicy
2024/02/09 06:04:38 Api missing in layout: listBuckets
2024/02/09 06:04:38 Api missing in layout: declareHostAsDegraded
2024/02/09 06:04:38 Api missing in layout: deleteTungstenFabricLogicalRouter
2024/02/09 06:04:38 Api missing in layout: revokeCertificate
2024/02/09 06:04:38 Api missing in layout: registerNetscalerControlCenter
2024/02/09 06:04:38 Api missing in layout: applyTungstenFabricTag
2024/02/09 06:04:38 Api missing in layout: importUnmanagedInstance
2024/02/09 06:04:38 Api missing in layout: copySnapshot
2024/02/09 06:04:38 Api missing in layout: updateTungstenFabricLBHealthMonitor
2024/02/09 06:04:38 Api missing in layout: deleteVMSchedule
2024/02/09 06:04:38 Api missing in layout: listQuarantinedIps
2024/02/09 06:04:38 Api missing in layout: listTungstenFabricTag
2024/02/09 06:04:38 Api missing in layout: listUnmanagedInstances
2024/02/09 06:04:38 Api missing in layout: listCiscoNexusVSMs
2024/02/09 06:04:38 Api missing in layout: releasePodIpAddress
2024/02/09 06:04:38 Api missing in layout: createTungstenFabricTagType
2024/02/09 06:04:38 Api missing in layout: deleteCiscoAsa1000vResource
2024/02/09 06:04:38 Api missing in layout: runDiagnostics
2024/02/09 06:04:38 Api missing in layout: deployNetscalerVpx
2024/02/09 06:04:38 Api missing in layout: registerNetscalerServicePackage
2024/02/09 06:04:38 Api missing in layout: updateSecondaryStorageSelector
2024/02/09 06:04:38 Api missing in layout: listCiscoAsa1000vResources
2024/02/09 06:04:38 Api missing in layout: updatePodManagementNetworkIpRange
2024/02/09 06:04:38 Api missing in layout: listVolumesUsageHistory
2024/02/09 06:04:38 Api missing in layout: createTungstenFabricApplicationPolicySet
2024/02/09 06:04:38 Api missing in layout: updateCondition
2024/02/09 06:04:38 Api missing in layout: deleteTungstenFabricFirewallRule
2024/02/09 06:04:38 Api missing in layout: listSecondaryStorageSelectors
2024/02/09 06:04:38 Api missing in layout: createSnapshotFromVMSnapshot
2024/02/09 06:04:38 Api missing in layout: listOauthProvider
2024/02/09 06:04:38 Api missing in layout: linkUserDataToTemplate
2024/02/09 06:04:38 Api missing in layout: registerOauthProvider
2024/02/09 06:04:38 Api missing in layout: listConfigurationGroups
2024/02/09 06:04:38 Api missing in layout: deployVnfAppliance
2024/02/09 06:04:38 Api missing in layout: applyTungstenFabricPolicy
2024/02/09 06:04:38 Api missing in layout: moveNetworkAclItem
2024/02/09 06:04:38 Api missing in layout: migrateResourceToAnotherSecondaryStorage
2024/02/09 06:04:38 Api missing in layout: createTungstenFabricProvider
2024/02/09 06:04:38 Api missing in layout: createProjectRole
2024/02/09 06:04:38 Api missing in layout: updateSecurityGroup
2024/02/09 06:04:38 Api missing in layout: prepareForShutdown
2024/02/09 06:04:38 Api missing in layout: listCAProviders
2024/02/09 06:04:38 Api missing in layout: createTungstenFabricFirewallPolicy
2024/02/09 06:04:38 Api missing in layout: deleteTungstenFabricTag
2024/02/09 06:04:38 Api missing in layout: deleteTungstenFabricFirewallPolicy
2024/02/09 06:04:38 Api missing in layout: synchronizeTungstenFabricData
2024/02/09 06:04:38 Api missing in layout: updateVmwareDc
2024/02/09 06:04:38 Api missing in layout: listTungstenFabricNetwork
2024/02/09 06:04:38 Api missing in layout: listVmwareDcs
2024/02/09 06:04:38 Api missing in layout: deleteCiscoNexusVSM
2024/02/09 06:04:38 Api missing in layout: deleteTungstenFabricTagType
2024/02/09 06:04:38 Api missing in layout: listTungstenFabricTagType
2024/02/09 06:04:38 Api missing in layout: revokeTemplateDirectDownloadCertificate
2024/02/09 06:04:38 Api missing in layout: deleteBucket
2024/02/09 06:04:38 Api missing in layout: assignVolume
2024/02/09 06:04:38 Api missing in layout: listTungstenFabricPolicyRule
2024/02/09 06:04:38 Api missing in layout: listVmsForImport
2024/02/09 06:04:38 Api missing in layout: listNetscalerControlCenter
2024/02/09 06:04:38 Api missing in layout: cancelHostAsDegraded
2024/02/09 06:04:38 Api missing in layout: updateQuarantinedIp
2024/02/09 06:04:38 Api missing in layout: deleteCiscoVnmcResource
2024/02/09 06:04:38 Api missing in layout: listInfrastructure
2024/02/09 06:04:38 Api missing in layout: stopNetScalerVpx
2024/02/09 06:04:38 Api missing in layout: listStoragePoolsMetrics
2024/02/09 06:04:38 Api missing in layout: listHostHAResources
2024/02/09 06:04:38 Api missing in layout: configTungstenFabricService
2024/02/09 06:04:38 Api missing in layout: enableCiscoNexusVSM
2024/02/09 06:04:38 Api missing in layout: triggerShutdown
2024/02/09 06:04:38 Api missing in layout: oauthlogin
2024/02/09 06:04:38 Api missing in layout: uploadResourceIcon
2024/02/09 06:04:38 Api missing in layout: resetUserDataForVirtualMachine
2024/02/09 06:04:38 Api missing in layout: listTungstenFabricProviders
2024/02/09 06:04:38 Api missing in layout: listVsphereStoragePolicies
2024/02/09 06:04:38 Api missing in layout: linkAccountToLdap
2024/02/09 06:04:38 Api missing in layout: deleteOauthProvider
2024/02/09 06:04:38 Api missing in layout: migrateSecondaryStorageData
2024/02/09 06:04:38 Api missing in layout: updateVMSchedule
2024/02/09 06:04:38 Api missing in layout: updateObjectStoragePool
2024/02/09 06:04:38 Api missing in layout: createTungstenFabricFirewallRule
2024/02/09 06:04:38 Api missing in layout: unmanageVirtualMachine
2024/02/09 06:04:38 Api missing in layout: deleteProjectRole
2024/02/09 06:04:38 Api missing in layout: listRegisteredServicePackages
2024/02/09 06:04:38 Api missing in layout: provisionCertificate
2024/02/09 06:04:38 Api missing in layout: reserveIpAddress
2024/02/09 06:04:38 Api missing in layout: listObjectStoragePools
2024/02/09 06:04:38 Api missing in layout: listCiscoVnmcResources
2024/02/09 06:04:38 Api missing in layout: removeTungstenFabricPolicy
2024/02/09 06:04:38 Api missing in layout: moveUser
2024/02/09 06:04:38 Api missing in layout: listTungstenFabricServiceGroup
2024/02/09 06:04:38 Api missing in layout: getLoadBalancerSslCertificate
2024/02/09 06:04:38 Api missing in layout: listUserData
2024/02/09 06:04:38 Api missing in layout: executeClusterDrsPlan
2024/02/09 06:04:38 Api missing in layout: listTungstenFabricNic
2024/02/09 06:04:38 Api missing in layout: listElastistorPool
2024/02/09 06:04:38 Api missing in layout: listTungstenFabricVm
2024/02/09 06:04:38 Api missing in layout: listUserTwoFactorAuthenticatorProviders
2024/02/09 06:04:38 Api missing in layout: listElastistorVolume
2024/02/09 06:04:38 Api missing in layout: isAccountAllowedToCreateOfferingsWithTags
2024/02/09 06:04:38 Api missing in layout: addTungstenFabricNetworkGatewayToLogicalRouter
2024/02/09 06:04:38 Api missing in layout: createManagementNetworkIpRange
2024/02/09 06:04:38 Api missing in layout: listTungstenFabricLBHealthMonitor
2024/02/09 06:04:38 Api missing in layout: listDetailOptions
2024/02/09 06:04:38 Api missing in layout: createBucket
2024/02/09 06:04:38 Api missing in layout: listProjectRoles
2024/02/09 06:04:38 Api missing in layout: getSolidFireVolumeAccessGroupIds
2024/02/09 06:04:38 Api missing in layout: listTungstenFabricLogicalRouter
2024/02/09 06:04:38 Api missing in layout: addCiscoAsa1000vResource
2024/02/09 06:04:38 Api missing in layout: deleteManagementNetworkIpRange
2024/02/09 06:04:38 Api missing in layout: migrateNetwork
2024/02/09 06:04:38 Api missing in layout: listTungstenFabricApplicationPolicySet
2024/02/09 06:04:38 Api missing in layout: listHostHAProviders
2024/02/09 06:04:38 Api missing in layout: deleteNetscalerControlCenter
2024/02/09 06:04:38 Api missing in layout: listClusterDrsPlan
2024/02/09 06:04:38 Api missing in layout: listVnfTemplates
2024/02/09 06:04:38 Api missing in layout: deleteUserData
2024/02/09 06:04:38 Api missing in layout: addObjectStoragePool
2024/02/09 06:04:38 Api missing in layout: disableHAForHost
2024/02/09 06:04:38 Api missing in layout: createVMSchedule
2024/02/09 06:04:38 Api missing in layout: updateVnfTemplate
2024/02/09 06:04:38 Api missing in layout: readyForShutdown
2024/02/09 06:04:38 Api missing in layout: updateOauthProvider
2024/02/09 06:04:38 Api missing in layout: removeTungstenFabricPolicyRule
2024/02/09 06:04:38 Api missing in layout: listTungstenFabricAddressGroup
2024/02/09 06:04:38 Api missing in layout: updateSiocInfo
2024/02/09 06:04:38 Api missing in layout: createTungstenFabricServiceGroup
2024/02/09 06:04:38 Api missing in layout: getDiagnosticsData
2024/02/09 06:04:38 Api missing in layout: verifyOAuthCodeAndGetUser
2024/02/09 06:04:38 Api missing in layout: downloadImageStoreObject
2024/02/09 06:04:38 Api missing in layout: createTungstenFabricAddressGroup