Documentation
¶
Index ¶
- Constants
- Variables
- func JSONMarshalWithNoHTMLEscaping(t interface{}) ([]byte, error)
- type CancelOperationParams
- type Client
- func (c *Client) CancelOperation(ctx context.Context, params CancelOperationParams) (string, error)
- func (c *Client) GetOffer(ctx context.Context, params ShowOfferParams) (*Offer, error)
- func (c *Client) GetOfferBySlot(ctx context.Context, params ShowOfferBySlotParams) (*Offer, error)
- func (c *Client) GetOfferByVersion(ctx context.Context, params ShowOfferByVersionParams) (*Offer, error)
- func (c *Client) GetOfferStatus(ctx context.Context, params ShowOfferParams) (*OfferStatus, error)
- func (c *Client) GetOperation(ctx context.Context, params GetOperationParams) (*OperationDetail, error)
- func (c *Client) GetOperationByURI(ctx context.Context, operationURI string) (*OperationDetail, error)
- func (c *Client) GoLiveWithOffer(ctx context.Context, params GoLiveParams) (string, error)
- func (c *Client) ListOffers(ctx context.Context, params ListOffersParams) ([]Offer, error)
- func (c *Client) ListOperations(ctx context.Context, params ListOperationsParams) ([]Operation, error)
- func (c *Client) ListPublishers(ctx context.Context) ([]Publisher, error)
- func (c *Client) PublishOffer(ctx context.Context, publishParams PublishOfferParams) (string, error)
- func (c *Client) PutOffer(ctx context.Context, offer *Offer) (*Offer, error)
- type ClientOption
- type CloudAvailabilityOption
- type CoreMultiplier
- type CoreVMOfferDetail
- type DeploymentModelOption
- type Entity
- type GetOperationParams
- type GoLiveParams
- type Link
- type ListOffersParams
- type ListOperationsParams
- type MarketplaceDetail
- type MiddlewareFunc
- type Offer
- type OfferDefinition
- type OfferDetail
- type OfferStatus
- type Operation
- type OperationDefinition
- type OperationDetail
- type Plan
- type PlanCoreVMDetail
- type PlanVirtualMachineDetail
- type Publish
- type PublishMetadata
- type PublishOfferParams
- type Publisher
- type PublisherDefinition
- type RestHandler
- type ShowOfferBySlotParams
- type ShowOfferByVersionParams
- type ShowOfferParams
- type SimpleTokenProvider
- type StatusMessage
- type StatusStep
- type TestDriveDetail
- type UsefulLinkDetail
- type VirtualMachineDetail
- type VirtualMachineImage
- type VirtualMachinePricing
Constants ¶
const ( // CloudPartnerResource is the AAD resource for the Cloud Partner Portal CloudPartnerResource = "https://cloudpartner.azure.com" // DefaultHost is the default host name for the Cloud Partner Portal DefaultHost = "https://cloudpartner.azure.com/" )
Variables ¶
var ( // ARMDeploymentOption is an option for the deployment model slice in CoreVM which corresponds to Azure Resource Manager ARMDeploymentOption DeploymentModelOption = "ARM" // RDFEDeploymentOption is an option for the deployment model slice in CoreVM which corresponds to Classic Azure RDFEDeploymentOption DeploymentModelOption = "RDFE" // PublicOption is an option for CloudAvailability for Azure Public Cloud PublicOption CloudAvailabilityOption = "PublicAzure" // ChinaOption is an option for CloudAvailability for Azure China Cloud ChinaOption CloudAvailabilityOption = "Mooncake" // GovCloud is an option for CloudAvailability for Azure US Government Cloud GovCloud CloudAvailabilityOption = "Fairfax" // Blackforest is an option for CloudAvailability for the German sovereign cloud Blackforest CloudAvailabilityOption = "Blackforest" )
Functions ¶
func JSONMarshalWithNoHTMLEscaping ¶ added in v0.3.2
JSONMarshalWithNoHTMLEscaping will marshal an object to json, but not escape the HTML
Types ¶
type CancelOperationParams ¶
type CancelOperationParams struct { PublisherID string OfferID string NotificationEmails string // comma separated list }
CancelOperationParams is the parameter for the cancel operation operation
type Client ¶
type Client struct { HTTPClient *http.Client Authorizer autorest.Authorizer APIVersion string Host string // contains filtered or unexported fields }
Client is the HTTP client for the Cloud Partner Portal
func New ¶
func New(apiVersion string, opts ...ClientOption) (*Client, error)
New creates a new Cloud Provider Portal client
func (*Client) CancelOperation ¶
CancelOperation cancels the currently active operation on an offer
func (*Client) GetOfferBySlot ¶
GetOfferBySlot will get an offer by publisher and offer ID and version
func (*Client) GetOfferByVersion ¶
func (c *Client) GetOfferByVersion(ctx context.Context, params ShowOfferByVersionParams) (*Offer, error)
GetOfferByVersion will get an offer by publisher and offer ID and version
func (*Client) GetOfferStatus ¶
func (c *Client) GetOfferStatus(ctx context.Context, params ShowOfferParams) (*OfferStatus, error)
GetOfferStatus gets the status of a given offer
func (*Client) GetOperation ¶
func (c *Client) GetOperation(ctx context.Context, params GetOperationParams) (*OperationDetail, error)
GetOperation returns a single operation by ID
func (*Client) GetOperationByURI ¶
func (c *Client) GetOperationByURI(ctx context.Context, operationURI string) (*OperationDetail, error)
GetOperationByURI will fetch an operation given the path to the operation
func (*Client) GoLiveWithOffer ¶
GoLiveWithOffer opens a published offer to the world, not just the preview subscriptions
func (*Client) ListOffers ¶
ListOffers will get all of the offers for a given publisher ID
func (*Client) ListOperations ¶
func (c *Client) ListOperations(ctx context.Context, params ListOperationsParams) ([]Operation, error)
ListOperations will fetch operations for a given offer
func (*Client) ListPublishers ¶
ListPublishers will get all of the publishers
func (*Client) PublishOffer ¶
func (c *Client) PublishOffer(ctx context.Context, publishParams PublishOfferParams) (string, error)
PublishOffer starts the publish process for the offer. This is a long running operation, so the method returns a uri which can be used to query the status of the operation.
type ClientOption ¶
ClientOption is a variadic optional configuration func
type CloudAvailabilityOption ¶
type CloudAvailabilityOption string
CloudAvailabilityOption provides a constrained set of available clouds
type CoreMultiplier ¶ added in v0.3.0
type CoreMultiplier struct { Currency string `json:"currency,omitempty"` Single *float32 `json:"single,omitempty"` }
CoreMultiplier specifies one price in USD for their SKU and all other prices are automatically generated
type CoreVMOfferDetail ¶
type CoreVMOfferDetail struct { LegacyOfferID string `json:"microsoft-azure-corevm.legacyOfferId,omitempty"` LegacyPublisherID string `json:"microsoft-azure-corevm.legacyPublisherId,omitempty"` Title string `json:"microsoft-azure-corevm.title,omitempty"` Summary string `json:"microsoft-azure-corevm.summary,omitempty"` Description string `json:"microsoft-azure-corevm.description,omitempty"` AllowedSubscriptions []string `json:"microsoft-azure-corevm.allowedSubscriptions,omitempty"` LeadDestination string `json:"microsoft-azure-corevm.leadDestination,omitempty"` }
CoreVMOfferDetail is the core vm structure
type DeploymentModelOption ¶
type DeploymentModelOption string
DeploymentModelOption provides a constrained set of deployment modes
type GetOperationParams ¶
GetOperationParams is the parameter for the get operations operation
type GoLiveParams ¶
type GoLiveParams struct { OfferID string PublisherID string NotificationEmails string // comma separated list }
GoLiveParams is the parameter for the go live offer operation
type ListOffersParams ¶
type ListOffersParams struct {
PublisherID string
}
ListOffersParams is the parameters for listing offers
type ListOperationsParams ¶
ListOperationsParams is the parameter for the list operations operation
type MarketplaceDetail ¶
type MarketplaceDetail struct { Title string `json:"microsoft-azure-marketplace.title,omitempty"` Summary string `json:"microsoft-azure-marketplace.summary,omitempty"` LongSummary string `json:"microsoft-azure-marketplace.longSummary,omitempty"` Description string `json:"microsoft-azure-marketplace.description,omitempty"` CSPOfferOptIn *bool `json:"microsoft-azure-marketplace.cspOfferOptIn,omitempty"` OfferMarketingURLIdentifier string `json:"microsoft-azure-marketplace.offerMarketingUrlIdentifier,omitempty"` AllowedSubscriptions []string `json:"microsoft-azure-marketplace.allowedSubscriptions,omitempty"` UsefulLinks []string `json:"microsoft-azure-marketplace.usefulLinks,omitempty"` Categories []string `json:"microsoft-azure-marketplace.categories,omitempty"` CategoryMap []map[string]interface{} `json:"microsoft-azure-marketplace.categoryMap,omitempty"` SmallLogo string `json:"microsoft-azure-marketplace.smallLogo,omitempty"` MediumLogo string `json:"microsoft-azure-marketplace.mediumLogo,omitempty"` WideLogo string `json:"microsoft-azure-marketplace.wideLogo,omitempty"` ScreenShots []string `json:"microsoft-azure-marketplace.screenshots,omitempty"` Videos []string `json:"microsoft-azure-marketplace.videos,omitempty"` LeadDestination string `json:"microsoft-azure-marketplace.leadDestination,omitempty"` PrivacyURL string `json:"microsoft-azure-marketplace.privacyURL,omitempty"` UseEnterpriseContract *bool `json:"microsoft-azure-marketplace.useEnterpriseContract,omitempty"` TermsOfUse string `json:"microsoft-azure-marketplace.termsOfUse,omitempty"` EngineeringContactName string `json:"microsoft-azure-marketplace.engineeringContactName,omitempty"` EngineeringContactEmail string `json:"microsoft-azure-marketplace.engineeringContactEmail,omitempty"` EngineeringContactPhone string `json:"microsoft-azure-marketplace.engineeringContactPhone,omitempty"` SupportContactName string `json:"microsoft-azure-marketplace.supportContactName,omitempty"` SupportContactEmail string `json:"microsoft-azure-marketplace.supportContactEmail,omitempty"` SupportContactPhone string `json:"microsoft-azure-marketplace.supportContactPhone,omitempty"` PublicAzureSupportURL string `json:"microsoft-azure-marketplace.publicAzureSupportUrl,omitempty"` FairfaxSupportURL string `json:"microsoft-azure-marketplace.fairfaxSupportUrl,omitempty"` }
MarketplaceDetail are the marketing and contact information for a marketplace offering
type MiddlewareFunc ¶
type MiddlewareFunc func(next RestHandler) RestHandler
MiddlewareFunc allows a consumer of the Client to inject handlers within the request / response pipeline
The example below adds the atom xml content type to the request, calls the next middleware and returns the result.
addAtomXMLContentType MiddlewareFunc = func(next RestHandler) RestHandler { return func(ctx context.Context, req *http.Request) (res *http.Response, e error) { if req.Method != http.MethodGet && req.Method != http.MethodHead { req.Header.Add("content-Type", "application/atom+xml;type=entry;charset=utf-8") } return next(ctx, req) } }
func IfMatches ¶
func IfMatches(etag string) MiddlewareFunc
IfMatches applies an Etag to the request if it a non-default string is present
func MatchesAll ¶ added in v0.2.3
func MatchesAll() MiddlewareFunc
MatchesAll adds an If-Match=* header to the request. More details on why can be found in https://github.com/devigned/pub/issues/22
type Offer ¶
type Offer struct { Entity TypeID string `json:"offerTypeId,omitempty"` PublisherID string `json:"publisherId,omitempty"` Status string `json:"status,omitempty"` PCMigrationStatus string `json:"pcMigrationStatus,omitempty"` IsVersionUpgradeRequest bool `json:"isvUpgradeRequest,omitempty"` Definition OfferDefinition `json:"definition,omitempty"` ChangedTime date.Time `json:"changedTime,omitempty"` Etag string }
Offer represents a Cloud Partner Portal offer
func (*Offer) GetPlanByID ¶
GetPlanByID will return the named plan if it exists in the offer or nil
func (*Offer) SetPlanByID ¶ added in v0.2.2
SetPlanByID will update the plan in the offer if it exists or append it
type OfferDefinition ¶
type OfferDefinition struct { DisplayText string `json:"displayText,omitempty"` OfferDetail *OfferDetail `json:"offer,omitempty"` Plans []Plan `json:"plans,omitempty"` }
OfferDefinition contains offer details
type OfferDetail ¶
type OfferDetail struct { VirtualMachineDetail MarketplaceDetail CoreVMOfferDetail }
OfferDetail holds the details for the marketplace offer
type OfferStatus ¶
type OfferStatus struct { Status string `json:"status,omitempty"` Messages []StatusMessage `json:"messages,omitempty"` Steps []StatusStep `json:"steps,omitempty"` PreviewLinks []Link `json:"previewLinks,omitempty"` LiveLinks []Link `json:"liveLinks,omitempty"` NotificationEmails string `json:"notificationEmails,omitempty"` }
OfferStatus is the publication status and steps required
type Operation ¶
type Operation struct { Entity OfferID string `json:"offerId,omitempty"` OfferVersion *int `json:"offerVersion,omitempty"` OfferTypeID string `json:"offerTypeId,omitempty"` PublisherID string `json:"publisherId,omitempty"` SubmissionType string `json:"submissionType,omitempty"` SubmissionState string `json:"submissionState,omitempty"` PublishingVersion *int `json:"publishingVersion,omitempty"` Slot string `json:"slot,omitempty"` Version *int `json:"version,omitempty"` Definition OperationDefinition `json:"definition,omitempty"` ChangedTime date.Time `json:"changedTime,omitempty"` }
Operation is the structure returned from list operations
type OperationDefinition ¶
type OperationDefinition struct {
Metadata map[string]interface{} `json:"metadata,omitempty"`
}
OperationDefinition provides details about the operation
type OperationDetail ¶
type OperationDetail struct { PublishingVersion *int `json:"publishingVersion,omitempty"` OfferVersion *int `json:"offerVersion,omitempty"` CancellationRequestState string `json:"cancellationRequestState,omitempty"` Status string `json:"status,omitempty"` Messages []StatusMessage `json:"messages,omitempty"` Steps []StatusStep `json:"steps,omitempty"` PreviewLinks []Link `json:"previewLinks,omitempty"` LiveLinks []Link `json:"liveLinks,omitempty"` NotificationEmails string `json:"notificationEmails,omitempty"` }
OperationDetail is what is returned when querying for a single operation
type Plan ¶
type Plan struct { ID string `json:"planId,omitempty"` Regions []string `json:"regions,omitempty"` PlanVirtualMachineDetail PlanCoreVMDetail }
Plan maps to a SKU in the marketplace. In the API it is referred to as a Plan rather than SKU as it is in the UI.
func (*Plan) GetVMImages ¶
func (p *Plan) GetVMImages() map[string]VirtualMachineImage
GetVMImages returns a map of VirtualMachineImages by version
type PlanCoreVMDetail ¶
type PlanCoreVMDetail struct { SKUTitle string `json:"microsoft-azure-corevm.skuTitle,omitempty"` SKUSummary string `json:"microsoft-azure-corevm.skuSummary,omitempty"` SKULongSummary string `json:"microsoft-azure-corevm.skuLongSummary,omitempty"` HideSKUForSolutionTemplate *bool `json:"microsoft-azure-corevm.hideSKUForSolutionTemplate,omitempty"` Hardened *bool `json:"microsoft-azure-corevm.hardened,omitempty"` DeploymentModels []DeploymentModelOption `json:"microsoft-azure-corevm.deploymentModels,omitempty"` CloudAvailability []CloudAvailabilityOption `json:"microsoft-azure-corevm.cloudAvailability,omitempty"` PricingDetailsURL string `json:"microsoft-azure-corevm.pricingDetailsUrl,omitempty"` ImageType string `json:"microsoft-azure-corevm.imageType,omitempty"` ImageVisibility *bool `json:"microsoft-azure-corevm.imageVisibility,omitempty"` Generation string `json:"microsoft-azure-corevm.generation,omitempty"` OperatingSystemFamily string `json:"microsoft-azure-corevm.operatingSystemFamily,omitempty"` OSType string `json:"microsoft-azure-corevm.osType,omitempty"` OSFriendlyName string `json:"microsoft-azure-corevm.osFriendlyName,omitempty"` RecommendedVMSizes []string `json:"microsoft-azure-corevm.recommendedVMSizes,omitempty"` SupportsHubOnOffSwitch *bool `json:"microsoft-azure-corevm.supportsHubOnOffSwitch,omitempty"` SupportsClientHub *bool `json:"microsoft-azure-corevm.supportsClientHub,omitempty"` IsPremiumThirdParty *bool `json:"microsoft-azure-corevm.isPremiumThirdParty,omitempty"` SupportsHub *bool `json:"microsoft-azure-corevm.supportsHub,omitempty"` SupportsBackup *bool `json:"microsoft-azure-corevm.supportsBackup,omitempty"` FreeTierEligible *bool `json:"microsoft-azure-corevm.freeTierEligible,omitempty"` SupportsSriov *bool `json:"microsoft-azure-corevm.supportsSriov,omitempty"` SupportsAADLogin *bool `json:"microsoft-azure-corevm.supportsAADLogin,omitempty"` DefaultImageSizeGB string `json:"microsoft-azure-corevm.defaultImageSizeGB,omitempty"` VMImages map[string]VirtualMachineImage `json:"microsoft-azure-corevm.vmImagesPublicAzure,omitempty"` SKUDescriptionPublicAzure string `json:"microsoft-azure-corevm.skuDescriptionPublicAzure,omitempty"` SKUDescriptionFairfax string `json:"microsoft-azure-corevm.skuDescriptionFairfax,omitempty"` SKUDescriptionMooncake string `json:"microsoft-azure-corevm.skuDescriptionMooncake,omitempty"` UsefulLinksPublicAzure []UsefulLinkDetail `json:"microsoft-azure-corevm.usefulLinksPublicAzure,omitempty"` UsefulLinksFairfax []UsefulLinkDetail `json:"microsoft-azure-corevm.usefulLinksFairfax"` UsefulLinksMooncake []UsefulLinkDetail `json:"microsoft-azure-corevm.usefulLinksMooncake,omitempty"` Categories []string `json:"microsoft-azure-corevm.categories,omitempty"` CategoryMap []map[string]interface{} `json:"microsoft-azure-corevm.categoryMap,omitempty"` SmallLogo string `json:"microsoft-azure-corevm.smallLogo,omitempty"` MediumLogo string `json:"microsoft-azure-corevm.mediumLogo,omitempty"` LargeLogo string `json:"microsoft-azure-corevm.largeLogo,omitempty"` WideLogo string `json:"microsoft-azure-corevm.wideLogo,omitempty"` ScreenShots []string `json:"microsoft-azure-corevm.screenshots,omitempty"` Videos []string `json:"microsoft-azure-corevm.videos,omitempty"` LeadGenerationID string `json:"microsoft-azure-corevm.leadGenerationId,omitempty"` PrivacyURL string `json:"microsoft-azure-corevm.privacyURL,omitempty"` TermsOfUseURL string `json:"microsoft-azure-corevm.termsOfUseURL,omitempty"` MigratedOffer *bool `json:"microsoft-azure-corevm.migratedOffer,omitempty"` }
PlanCoreVMDetail contains the details for a core virtual machine SKUs
type PlanVirtualMachineDetail ¶
type PlanVirtualMachineDetail struct { SKUTitle string `json:"microsoft-azure-virtualmachines.skuTitle,omitempty"` SKUSummary string `json:"microsoft-azure-virtualmachines.skuSummary,omitempty"` SKUDescription string `json:"microsoft-azure-virtualmachines.skuDescription,omitempty"` HideSKUForSolutionTemplate *bool `json:"microsoft-azure-virtualmachines.hideSKUForSolutionTemplate,omitempty"` CloudAvailability []string `json:"microsoft-azure-virtualmachines.cloudAvailability,omitempty"` SupportsAcceleratedNetworking *bool `json:"microsoft-azure-virtualmachines.supportsAcceleratedNetworking,omitempty"` VirtualMachinePricing *VirtualMachinePricing `json:"virtualMachinePricing,omitempty"` VirtualMachinePricingV2 *VirtualMachinePricing `json:"virtualMachinePricingV2,omitempty"` OperatingSystemFamily string `json:"microsoft-azure-virtualmachines.operatingSystemFamily,omitempty"` OSType string `json:"microsoft-azure-virtualmachines.osType,omitempty"` OperatingSystem string `json:"microsoft-azure-virtualmachines.operatingSystem,omitempty"` OperationSystem string `json:"microsoft-azure-virtualmachines.operationSystem,omitempty"` RecommendedVirtualMachineSizes []string `json:"microsoft-azure-virtualmachines.recommendedVMSizes,omitempty"` VMImages map[string]VirtualMachineImage `json:"microsoft-azure-virtualmachines.vmImages,omitempty"` }
PlanVirtualMachineDetail contains the details for virtual machine SKUs
type Publish ¶
type Publish struct {
Metadata PublishMetadata `json:"metadata,omitempty"`
}
Publish is the structure returned during a publish request
type PublishMetadata ¶
type PublishMetadata struct {
NotificationEmails string `json:"notification-emails,omitempty"`
}
PublishMetadata is metadata structure within a publish request
type PublishOfferParams ¶
type PublishOfferParams struct { NotificationEmails string // comma separated list OfferID string PublisherID string }
PublishOfferParams is the parameter for the publish offer operation
type Publisher ¶
type Publisher struct { Entity Definition PublisherDefinition `json:"definition,omitempty"` }
Publisher represents a Cloud Partner Portal publisher
type PublisherDefinition ¶
type PublisherDefinition struct { DisplayText string `json:"displayText,omitempty"` OfferTypeCategories []string `json:"offerTypeCategories,omitempty"` SellerID int `json:"sellerId,omitempty"` }
PublisherDefinition contains publisher details
type RestHandler ¶
RestHandler is used to transform a request and response within the http pipeline
type ShowOfferBySlotParams ¶
ShowOfferBySlotParams is the parameters for showing an offer for a given slot
type ShowOfferByVersionParams ¶
ShowOfferByVersionParams is the parameters for showing an offer by version
type ShowOfferParams ¶
ShowOfferParams is the parameters for showing an offer
type SimpleTokenProvider ¶
type SimpleTokenProvider struct{}
SimpleTokenProvider makes it easy to authorize with a string bearer token
func (SimpleTokenProvider) WithAuthorization ¶
func (s SimpleTokenProvider) WithAuthorization() autorest.PrepareDecorator
WithAuthorization will inject the AZURE_TOKEN env var as the bearer token for API auth
This is useful if you want to use a token from az cli. `AZURE_TOKEN=$(az account get-access-token --resource https://cloudpartner.azure.com --query "accessToken" -o tsv) pub publishers list`
type StatusMessage ¶
type StatusMessage struct { Message string `json:"messageHtml,omitempty"` Level string `json:"level,omitempty"` Timestamp date.Time `json:"timestamp,omitempty"` }
StatusMessage is a message associated with OfferStatus / StatusSteps
type StatusStep ¶
type StatusStep struct { EstimatedTimeFrame string `json:"estimatedTimeFrame,omitempty"` ID string `json:"id,omitempty"` StepName string `json:"stepName,omitempty"` Description string `json:"description,omitempty"` Status string `json:"status,omitempty"` Messages []StatusMessage `json:"messages,omitempty"` ProgressPercentage int `json:"progressPercentage,omitempty"` }
StatusStep is a step in the publication process
type TestDriveDetail ¶
type TestDriveDetail struct { TestDriveEnabled *bool `json:"microsoft-azure-marketplace-testdrive.enabled,omitempty"` TestDriveVideos []string `json:"microsoft-azure-marketplace-testdrive.videos,omitempty"` }
TestDriveDetail map to the provider portal's "Test Drive" settings
type UsefulLinkDetail ¶ added in v0.3.3
type UsefulLinkDetail struct { LinkTitle string `json:"linkTitle,omitempty"` LinkURL string `json:"linkUrl,omitempty"` }
UsefulLinkDetail is the structure in an PlanCoreVMDetail
type VirtualMachineDetail ¶
type VirtualMachineDetail struct { GTMMaterials string `json:"microsoft-azure-virtualmachines.gtmMaterials,omitempty"` ManagerContactName string `json:"microsoft-azure-virtualmachines.managerContactName,omitempty"` ManagerContactEmail string `json:"microsoft-azure-virtualmachines.managerContactEmail,omitempty"` ManagerContactPhone string `json:"microsoft-azure-virtualmachines.managerContactPhone,omitempty"` }
VirtualMachineDetail maps to a set of offer details starting with "microsoft-azure-virtualmachines"
type VirtualMachineImage ¶
type VirtualMachineImage struct { MediaName string `json:"mediaName,omitempty"` ShowInGui *bool `json:"showInGui,omitempty"` PublishedDate string `json:"publishedDate,omitempty"` // string b/c sometime the API returns "" Label string `json:"label,omitempty"` Description string `json:"description,omitempty"` OSVHDURL string `json:"osVhdUrl,omitempty"` }
VirtualMachineImage represents an image version
type VirtualMachinePricing ¶
type VirtualMachinePricing struct { IsBringYourOwnLicense *bool `json:"isByol,omitempty"` FreeTrialDurationInMonths *int `json:"freeTrialDurationInMonths,omitempty"` CoreMultiplier *CoreMultiplier `json:"coreMultiplier,omitempty"` }
VirtualMachinePricing is the marketplace VM pricing details