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