partner

package
v0.3.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 3, 2022 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

View Source
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

View Source
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

func JSONMarshalWithNoHTMLEscaping(t interface{}) ([]byte, error)

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

func (c *Client) CancelOperation(ctx context.Context, params CancelOperationParams) (string, error)

CancelOperation cancels the currently active operation on an offer

func (*Client) GetOffer

func (c *Client) GetOffer(ctx context.Context, params ShowOfferParams) (*Offer, error)

GetOffer will get an offer by publisher and offer ID

func (*Client) GetOfferBySlot

func (c *Client) GetOfferBySlot(ctx context.Context, params ShowOfferBySlotParams) (*Offer, error)

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

func (c *Client) GoLiveWithOffer(ctx context.Context, params GoLiveParams) (string, error)

GoLiveWithOffer opens a published offer to the world, not just the preview subscriptions

func (*Client) ListOffers

func (c *Client) ListOffers(ctx context.Context, params ListOffersParams) ([]Offer, error)

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

func (c *Client) ListPublishers(ctx context.Context) ([]Publisher, error)

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.

func (*Client) PutOffer

func (c *Client) PutOffer(ctx context.Context, offer *Offer) (*Offer, error)

PutOffer will PUT an offer to the API and return the offer

type ClientOption

type ClientOption func(c *Client) error

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 Entity

type Entity struct {
	ID      string `json:"id,omitempty"`
	Version int    `json:"version,omitempty"`
}

Entity is a common structure for data types in the API

type GetOperationParams

type GetOperationParams struct {
	PublisherID string
	OfferID     string
	OperationID string
}

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 Link struct {
	DisplayText string
	URI         string
}

Link is the structure of a link in an OfferStatus

type ListOffersParams

type ListOffersParams struct {
	PublisherID string
}

ListOffersParams is the parameters for listing offers

type ListOperationsParams

type ListOperationsParams struct {
	PublisherID    string
	OfferID        string
	FilteredStatus string
}

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"`
	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

func (o *Offer) GetPlanByID(planID string) *Plan

GetPlanByID will return the named plan if it exists in the offer or nil

func (*Offer) SetPlanByID added in v0.2.2

func (o *Offer) SetPlanByID(plan Plan)

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

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"`
	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

type RestHandler func(ctx context.Context, req *http.Request) (*http.Response, error)

RestHandler is used to transform a request and response within the http pipeline

type ShowOfferBySlotParams

type ShowOfferBySlotParams struct {
	PublisherID string
	OfferID     string
	SlotID      string
}

ShowOfferBySlotParams is the parameters for showing an offer for a given slot

type ShowOfferByVersionParams

type ShowOfferByVersionParams struct {
	PublisherID string
	OfferID     string
	Version     int
}

ShowOfferByVersionParams is the parameters for showing an offer by version

type ShowOfferParams

type ShowOfferParams struct {
	PublisherID string
	OfferID     string
}

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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL