azure

package
v2.1.9 Latest Latest
Warning

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

Go to latest
Published: Apr 26, 2024 License: GPL-3.0 Imports: 5 Imported by: 4

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AccessPolicyEntry

type AccessPolicyEntry struct {
	// Application ID of the client making request on behalf of a principal
	ApplicationId string `json:"applicationId,omitempty"`

	// The object ID of a user, service principal or security group in the Azure Active Directory tenant for the vault.
	// The object ID must be unique for the list of access policies.
	ObjectId string `json:"objectId,omitempty"`

	// Permissions the identity has for keys, secrets and certificates.
	Permissions KeyVaultPermissions `json:"permissions,omitempty"`

	// The Azure Active Directory tenant ID that should be used for authenticating requests to the key vault.
	TenantId string `json:"tenantId,omitempty"`
}

An identity that have access to the key vault. All identities in the array must use the same tenant ID as the key vault's tenant ID.

type AccountImmutabilityPolicyProperties

type AccountImmutabilityPolicyProperties struct {
	AllowProtectedAppendWrites            bool                                 `json:"allowProtectedAppendWrites,omitempty"`
	ImmutabilityPeriodSinceCreationInDays int                                  `json:"immutabilityPeriodSinceCreationInDays,omitempty"`
	State                                 enums.AccountImmutabilityPolicyState `json:"state,omitempty"`
}

type Action

type Action struct {
	Type string `json:"type"`
	// Kind is missing in the MSDN, but returned and present in examples and during testing
	Kind                 string                 `json:"kind,omitempty"`
	Inputs               map[string]interface{} `json:"inputs,omitempty"`
	RunAfter             interface{}            `json:"runAfter,omitempty"`
	RuntimeConfiguration interface{}            `json:"runtimeConfiguration,omitempty"`
	OperationOptions     string                 `json:"operationOptions,omitempty"`
}

type ActiveDirectoryProperties

type ActiveDirectoryProperties struct {
	AccountType       string `json:"accountType,omitempty"`
	AzureStorageSid   string `json:"azureStorageSid,omitempty"`
	DomainGuid        string `json:"domainGuid,omitempty"`
	DomainName        string `json:"domainName,omitempty"`
	DomainSid         string `json:"domainSid,omitempty"`
	ForestName        string `json:"forestName,omitempty"`
	NetBiosDomainName string `json:"netBiosDomainName,omitempty"`
	SamAccountName    string `json:"samAccountName,omitempty"`
}

type AddIn

type AddIn struct {
	Id         uuid.UUID  `json:"id,omitempty"`
	Properties []KeyValue `json:"properties,omitempty"`
	Type       string     `json:"type,omitempty"`
}

Defines custom behavior that a consuming service can use to call an app in specific contexts.For example, applications that can render file streams may configure addIns for its "FileHandler" functionality. This will let services like Microsoft 365 call the application in the context of a document the user is working on.

type AdditionalCapabilities

type AdditionalCapabilities struct {
	// The flag that enables or disables hibernation capability on the VM.
	HibernationEnabled bool `json:"hibernationEnabled,omitempty"`

	// The flag that enables or disables a capability to have one or more managed data disks with UltraSSD_LRS storage
	// account type on the VM or VMSS. Managed disks with storage account type UltraSSD_LRS can be added to a virtual
	// machine or virtual machine scale set only if this property is enabled.
	UltraSSDEnabled bool `json:"ultraSSDEnabled,omitempty"`
}

Enables or disables a capability on the virtual machine or virtual machine scale set.

type AdditionalUnattendContent

type AdditionalUnattendContent struct {
	// The component name. Currently, the only allowable value is Microsoft-Windows-Shell-Setup.
	ComponentName string `json:"componentName,omitempty"`

	// Specifies the XML formatted content that is added to the unattend.xml file for the specified path and component.
	// The XML must be less than 4KB and must include the root element for the setting or feature that is being inserted.
	Content string `json:"content,omitempty"`

	// The pass name. Currently, the only allowable value is OobeSystem.
	PassName string `json:"passName,omitempty"`

	// Specifies the name of the setting to which the content applies.
	// Possible values are: FirstLogonCommands and AutoLogon.
	SettingName string `json:"settingName,omitempty"`
}

Specifies additional XML formatted information that can be included in the Unattend.xml file, which is used by Windows Setup. Contents are defined by setting name, component name, and the pass in which the content is applied.

type AddressEndpointConfiguration

type AddressEndpointConfiguration struct {
	Address string `json:"address,omitempty"`
}

type AlternativeSecurityId

type AlternativeSecurityId struct {
	Type             int32  `json:"type,omitempty"`
	IdentityProvider string `json:"identity_provider,omitempty"`

	// Base64Url encoded.
	Key string `json:"key,omitempty"`
}

For internal use only. This complex type will be deprecated in the future.

type ApiApplication

type ApiApplication struct {
	// When true, allows an application to use claims mapping without specifying a custom signing key.
	AcceptMappedClaims bool `json:"acceptMappedClaims,omitempty"`

	// Used for bundling consent if you have a solution that contains two parts: a client app and a custom web API app.
	// If you set the appID of the client app to this value, the user only consents once to the client app. Azure AD
	// knows that consenting to the client means implicitly consenting to the web API and automatically provisions
	// service principals for both APIs at the same time. Both the client and the web API app must be registered in the
	// same tenant.
	KnownClientApplications []uuid.UUID `json:"knownClientApplications,omitempty"`

	// The definition of the delegated permissions exposed by the web API represented by this application registration.
	// These delegated permissions may be requested by a client application, and may be granted by users or
	// administrators during consent. Delegated permissions are sometimes referred to as OAuth 2.0 scopes.
	OAuth2PermissionScopes []PermissionScope `json:"oauth2PermissionScopes,omitempty"`

	// Lists the client applications that are pre-authorized with the specified delegated permissions to access this
	// application's APIs. Users are not required to consent to any pre-authorized application (for the permissions
	// specified). However, any additional permissions not listed in preAuthorizedApplications (requested through
	// incremental consent for example) will require user consent.
	PreAuthorizedApplications []PreAuthorizedApplication `json:"preAuthorizedApplications,omitempty"`

	// Specifies the access token version expected by this resource.
	// This changes the version and format of the JWT produced independent of the endpoint or client used to request the
	// access token.
	//
	// The endpoint used, v1.0 or v2.0, is chosen by the client and only impacts the version of id_tokens. Resources
	// need to explicitly configure requestedAccessTokenVersion to indicate the supported access token format.
	//
	// Possible values for requestedAccessTokenVersion are 1, 2, or null. If the value is null, this defaults to 1,
	// which corresponds to the v1.0 endpoint.
	//
	// If signInAudience on the application is configured as AzureADandPersonalMicrosoftAccount, the value for this
	//property must be 2
	RequestedAccessTokenVersion int32 `json:"requestedAccessTokenVersion,omitempty"`
}

Specifies settings for an application that implements a web API. For more detail see https://docs.microsoft.com/en-us/graph/api/resources/apiapplication?view=graph-rest-1.0

type ApiDefinitionInfo

type ApiDefinitionInfo struct {
	Url string `json:"url,omitempty"`
}

type ApiManagementConfig

type ApiManagementConfig struct {
	Id string `json:"id,omitempty"`
}

type AppOwnerResult

type AppOwnerResult struct {
	AppId string
	Error error
	Ok    json.RawMessage
}

type AppRole

type AppRole struct {
	AllowedMemberTypes []string  `json:"allowedMemberTypes,omitempty"`
	Description        string    `json:"description,omitempty"`
	DisplayName        string    `json:"displayName,omitempty"`
	Id                 uuid.UUID `json:"id,omitempty"`
	IsEnabled          bool      `json:"isEnabled,omitempty"`
	Origin             string    `json:"origin,omitempty"`
	Value              string    `json:"value,omitempty"`
}

Represents an application role that can be requested by (and granted to) a client application, or that can be used to assign an application to users or groups in a specified role.

To add, update, or remove app roles for an application, update the application for the app or service. App roles on the application entity will be available in all tenants where the application is used. To define app roles that are only applicable in your tenant (for example, app roles representing custom roles in your instance of a multi-tenant application), you can also update the service principal for the app, to add or update app roles to the appRoles collection.

With appRoleAssignments, app roles can be assigned to users, groups, or other applications' service principals. For more detail see https://docs.microsoft.com/en-us/graph/api/resources/approle?view=graph-rest-1.0

type AppRoleAssignment

type AppRoleAssignment struct {
	AppRoleId            uuid.UUID `json:"appRoleId,omitempty"`
	CreatedDateTime      string    `json:"createdDateTime,omitempty"`
	Id                   string    `json:"id,omitempty"`
	PrincipalDisplayName string    `json:"principalDisplayName,omitempty"`
	PrincipalId          uuid.UUID `json:"principalId,omitempty"`
	PrincipalType        string    `json:"principalType,omitempty"`
	ResourceDisplayName  string    `json:"resourceDisplayName,omitempty"`
	ResourceId           string    `json:"resourceId,omitempty"`
}

Represents an application role that can be requested by (and granted to) a client application, or that can be used to assign an application to users or groups in a specified role.

An app role assignment is a relationship between the assigned principal (a user, a group, or a service principal), a resource application (the app's service principal) and an app role defined on the resource application.

With appRoleAssignments, app roles can be assigned to users, groups, or other applications' service principals. For more detail see https://docs.microsoft.com/en-us/graph/api/resources/approleassignment?view=graph-rest-1.0

type AppRoleAssignmentList

type AppRoleAssignmentList struct {
	Count    int                 `json:"@odata.count,omitempty"`    // The total count of all results
	NextLink string              `json:"@odata.nextLink,omitempty"` // The URL to use for getting the next set of values.
	Context  string              `json:"@odata.context,omitempty"`
	Value    []AppRoleAssignment `json:"value"` // A list of role assignments.
}

type AppRoleAssignmentResult

type AppRoleAssignmentResult struct {
	Error error
	Ok    AppRoleAssignment
}

type AppScope

type AppScope struct {
	Entity

	// Provides the display name of the app-specific resource represented by the app scope.
	// Provided for display purposes since appScopeId is often an immutable, non-human-readable id.
	// Read-only.
	DisplayName string `json:"display_name,omitempty"`

	// Describes the type of app-specific resource represented by the app scope.
	// Provided for display purposes, so a user interface can convey to the user the kind of app specific resource
	// represented by the app scope.
	// Read-only.
	Type string `json:"type,omitempty"`
}

The scope of a role assignment determines the set of resources for which the principal has been granted access. An app scope is a scope defined and understood by a specific application, unlike directory scopes which are shared scopes stored in the directory and understood by multiple applications.

This may be in both the following principal and scope scenarios:

A single principal and a single scope
Multiple principals and multiple scopes.

type Application

type Application struct {
	DirectoryObject

	// Defines custom behavior that a consuming service can use to call an app in specific contexts.
	// For example, applications that can render file streams may set the addIns property for its "FileHandler"
	// functionality. This will let services like Office 365 call the application in the context of a document the user
	// is working on.
	AddIns []AddIn `json:"addIns,omitempty"`

	// Specifies settings for an application that implements a web API.
	Api ApiApplication `json:"api,omitempty"`

	// The unique identifier for the application that is assigned to an application by Azure AD. Not nullable. Read-only.
	AppId string `json:"appId,omitempty"`

	// Unique identifier of the applicationTemplate.
	ApplicationTemplateId string `json:"applicationTemplateId,omitempty"`

	// The collection of roles assigned to the application.
	// With app role assignments, these roles can be assigned to users, groups, or service principals associated with
	// other applications. Not nullable.
	AppRoles []AppRole `json:"appRoles,omitempty"`

	// The date and time the application was registered.
	// The DateTimeOffset type represents date and time information using ISO 8601 format and is always in UTC time.
	// For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only.
	//
	// Supports $filter (eq, ne, NOT, ge, le, in) and $orderBy.
	CreatedDateTime string `json:"createdDateTime,omitempty"`

	// The date and time the application was deleted. The DateTimeOffset type represents date and time information using
	// ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
	// Read-only.
	DeletedDateTime string `json:"deletedDateTime,omitempty"`

	// An optional description of the application.
	// Supports $filter (eq, ne, NOT, ge, le, startsWith) and $search.
	Description string `json:"description,omitempty"`

	// Specifies whether Microsoft has disabled the registered application.
	// Possible values are: null (default value), NotDisabled, and DisabledDueToViolationOfServicesAgreement
	// (reasons may include suspicious, abusive, or malicious activity, or a violation of the Microsoft Services
	// Agreement).
	DisabledByMicrosoftStatus string `json:"disabledByMicrosoftStatus,omitempty"`

	// The display name for the application.
	// Supports $filter (eq, ne, NOT, ge, le, in, startsWith), $search, and $orderBy.
	DisplayName string `json:"displayName,omitempty"`

	// Configures the groups claim issued in a user or OAuth 2.0 access token that the application expects.
	// To set this attribute, use one of the following valid string values:
	// - None
	// - SecurityGroup (for security groups and Azure AD roles)
	// - All (this gets all of the security groups, distribution groups, and Azure AD directory roles that the signed-in user is a member of)
	GroupMembershipClaims string `json:"groupMembershipClaims,omitempty"`

	// The URIs that identify the application within its Azure AD tenant, or within a verified custom domain if the
	// application is multi-tenant. For more information see Application Objects and Service Principal Objects.
	// The any operator is required for filter expressions on multi-valued properties.
	// Not nullable.
	// Supports $filter (eq, ne, ge, le, startsWith).
	IdentifierUris []string `json:"identifierUris,omitempty"`

	// Basic profile information of the application such as app's marketing, support, terms of service and privacy
	// statement URLs. The terms of service and privacy statement are surfaced to users through the user consent
	// experience. For more info, see How to: Add Terms of service and privacy statement for registered Azure AD apps.
	// Supports $filter (eq, ne, NOT, ge, le).
	Info InformationalUrl `json:"info,omitempty"`

	// Specifies whether this application supports device authentication without a user.
	// The default is false.
	IsDeviceOnlyAuthSupported bool `json:"isDeviceOnlyAuthSupported,omitempty"`

	// Specifies the fallback application type as public client, such as an installed application running on a mobile
	// device.
	// The default value is false which means the fallback application type is confidential client such as a web app.
	// There are certain scenarios where Azure AD cannot determine the client application type. For example, the ROPC
	// flow where it is configured without specifying a redirect URI. In those cases Azure AD interprets the application
	// type based on the value of this property.
	IsFallbackPublicClient bool `json:"isFallbackPublicClient,omitempty"`

	// The collection of key credentials associated with the application.
	// Not nullable.
	// Supports $filter (eq, NOT, ge, le).
	KeyCredentials []KeyCredential `json:"keyCredentials,omitempty"`

	// Base64Url encoded.
	Logo string `json:"logo,omitempty"`

	// Notes relevant for the management of the application.
	Notes string `json:"notes,omitempty"`

	// Specifies whether, as part of OAuth 2.0 token requests, Azure AD allows POST requests, as opposed to GET requests.
	// The default is false, which specifies that only GET requests are allowed.
	OAuth2RequiredPostResponse bool `json:"oauth2RequiredPostResponse,omitempty"`

	// Application developers can configure optional claims in their Azure AD applications to specify the claims that
	// are sent to their application by the Microsoft security token service.
	// For more information, see How to: Provide optional claims to your app.
	OptionalClaims OptionalClaims `json:"optionalClaims,omitempty"`

	// Specifies parental control settings for an application.
	ParentalControlSettings ParentalControlSettings `json:"parentalControlSettings,omitempty"`

	// The collection of password credentials associated with the application. Not nullable.
	PasswordCredentials []PasswordCredential `json:"passwordCredentials,omitempty"`

	// Specifies settings for installed clients such as desktop or mobile devices.
	PublicClient PublicClientApplication `json:"publicClient,omitempty"`

	// The verified publisher domain for the application. Read-only.
	// For more information, see How to: Configure an application's publisher domain.
	// Supports $filter (eq, ne, ge, le, startsWith).
	PublisherDomain string `json:"publisherDomain,omitempty"`

	// Specifies the resources that the application needs to access.
	// This property also specifies the set of delegated permissions and application roles that it needs for each of
	// those resources. This configuration of access to the required resources drives the consent experience. No more
	// than 50 resource services (APIs) can be configured. Beginning mid-October 2021, the total number of required
	// permissions must not exceed 400. Not nullable.
	RequiredResourceAccess []RequiredResourceAccess `json:"requiredResourceAccess,omitempty"`

	// Specifies the Microsoft accounts that are supported for the current application.
	// The possible values are: AzureADMyOrg, AzureADMultipleOrgs, AzureADandPersonalMicrosoftAccount (default), and
	// PersonalMicrosoftAccount. See more in the table below.
	SignInAudience string `json:"signInAudience,omitempty"`

	// Specifies settings for a single-page application, including sign out URLs and redirect URIs for authorization
	// codes and access tokens.
	SPA SPAApplication `json:"spa,omitempty"`

	// Custom strings that can be used to categorize and identify the application. Not nullable.
	Tags []string `json:"tags,omitempty"`

	// Specifies the keyId of a public key from the keyCredentials collection.
	// When configured, Azure AD encrypts all the tokens it emits by using the key this property points to. The
	// application code that receives the encrypted token must use the matching private key to decrypt the token before
	// it can be used for the signed-in user.
	TokenEncryptionKeyId string `json:"tokenEncryptionKeyId,omitempty"`

	// Specifies the verified publisher of the application.
	VerifiedPublisher VerifiedPublisher `json:"verifiedPublisher,omitempty"`

	// Specifies settings for a web application.
	Web WebApplication `json:"web,omitempty"`
}

Represents an application. Any application that outsources authentication to Azure Active Directory (Azure AD) must be registered in a directory. Application registration involves telling Azure AD about your application, including the URL where it's located, the URL to send replies after authentication, the URI to identify your application, and more. For more detail see https://docs.microsoft.com/en-us/graph/api/resources/application?view=graph-rest-1.0

type ApplicationList

type ApplicationList struct {
	Count    int           `json:"@odata.count,omitempty"`    // The total count of all results
	NextLink string        `json:"@odata.nextLink,omitempty"` // The URL to use for getting the next set of values.
	Value    []Application `json:"value"`                     // A list of applications.
}

type ApplicationProfile

type ApplicationProfile struct {
	// Specifies the gallery applications that should be made available to the VM/VMSS
	GalleryApplications []VMGalleryApplication `json:"galleryApplications,omitempty"`
}

Contains the list of gallery applications that should be made available to the VM/VMSS.

type ApplicationResult

type ApplicationResult struct {
	Error error
	Ok    Application
}

type AssignedLabel

type AssignedLabel struct {
	// The unique identifier of the label.
	LabelId string `json:"labelId,omitempty"`

	// The display name of the label. Read-only.
	DisplayName string `json:"displayName,omitempty"`
}

Represents a sensitivity label assigned to a Microsoft 365 group. Sensitivity labels allow administrators to enforce specific group settings on a group by assigning a classification to the group (such as Confidential, Highly Confidential or General). Sensitivity labels are published by administrators in Microsoft 365 Security & Compliance Center as part of Microsoft Information Protection capabilities. For more detail see https://docs.microsoft.com/en-us/graph/api/resources/assignedlabel?view=graph-rest-1.0

type AssignedLicense

type AssignedLicense struct {
	// A collection of the unique identifiers for plans that have been disabled.
	DisabledPlans []uuid.UUID `json:"disabledPlans,omitempty"`

	// The unique identifier for the SKU.
	SkuId uuid.UUID `json:"skuId,omitempty"`
}

Represents a license assigned to a user.

type AssignedPlan

type AssignedPlan struct {
	// The date and time at which the plan was assigned using ISO 8601 format.
	AssignedDateTime string `json:"assignedDateTime,omitempty"`

	// Condition of the capability assignment.
	CapabilityStatus enums.CapabiltyStatus `json:"capabilityStatus,omitempty"`

	// The name of the service.
	Service string `json:"service,omitempty"`

	// A GUID that identifies the service plan.
	ServicePlanId uuid.UUID `json:"servicePlanId,omitempty"`
}

Represents a plan assigned to user and organization entities.

type AutoHealActions

type AutoHealActions struct {
	ActionType              enums.AutoHealActionType `json:"actionType,omitempty"`
	CustomAction            AutoHealCustomAction     `json:"customAction,omitempty"`
	MinProcessExecutionTime string                   `json:"minProcessExecutionTime,omitempty"`
}

type AutoHealCustomAction

type AutoHealCustomAction struct {
	Exe        string `json:"exe,omitempty"`
	Parameters string `json:"parameters,omitempty"`
}

type AutoHealRules

type AutoHealRules struct {
	Actions  AutoHealActions  `json:"actions,omitempty"`
	Triggers AutoHealTriggers `json:"triggers,omitempty"`
}

type AutoHealTriggers

type AutoHealTriggers struct {
	PrivateBytesInKB     int                            `json:"privateBytesInKB,omitempty"`
	Requests             RequestsBasedTrigger           `json:"requests,omitempty"`
	SlowRequests         SlowRequestsBasedTrigger       `json:"slowRequests,omitempty"`
	SlowRequestsWithPath []SlowRequestsBasedTrigger     `json:"slowRequestsWithPath,omitempty"`
	StatusCodes          []StatusCodesBasedTrigger      `json:"statusCodes,omitempty"`
	StatusCodesRange     []StatusCodesRangeBasedTrigger `json:"statusCodesRange,omitempty"`
}

type AutomaticRepliesSetting

type AutomaticRepliesSetting struct {
	// The set of audience external to the signed-in user's organization who will receive the {@link
	// ExternalReplyMessage}.
	ExternalAudience enums.ExternalAudienceScope `json:"externalAudience,omitempty"`

	// The automatic reply to send to the specified eternal audience.
	ExternalReplyMessage string `json:"externalReplyMessage,omitempty"`

	// The automatic reply to send to the audience internal to the signed-in user's organization.
	InternalReplyMessage string `json:"internalReplyMessage,omitempty"`

	// The date and time that automatic replies are set to end.
	ScheduledEndDateTime DateTimeTimeZone `json:"scheduledEndDateTime,omitempty"`

	// The date and time that automatic replies are set to begin.
	ScheduledStartDateTime DateTimeTimeZone `json:"scheduledStartDateTime,omitempty"`

	// Configuration status for automatic replies.
	Status enums.AutoReplyStatus `json:"status,omitempty"`
}

Configuration settings to automatically notify the sender of an incoming email with a message from the signed-in user.

type AutomationAccount

type AutomationAccount struct {
	Entity

	Etag       string                      `json:"etag,omitempty"`
	Identity   ManagedIdentity             `json:"identity,omitempty"`
	Location   string                      `json:"location,omitempty"`
	Name       string                      `json:"name,omitempty"`
	Properties AutomationAccountProperties `json:"properties,omitempty"`
	SystemData AutomationAccountSystemData `json:"systemData,omitempty"`
	Tags       map[string]string           `json:"tags,omitempty"`
	Type       string                      `json:"type,omitempty"`
}

Mapped according to https://docs.microsoft.com/en-us/rest/api/automation/automation-account/get?tabs=HTTP#automationaccount

func (AutomationAccount) ResourceGroupId

func (s AutomationAccount) ResourceGroupId() string

func (AutomationAccount) ResourceGroupName

func (s AutomationAccount) ResourceGroupName() string

type AutomationAccountEncryptionProperties

type AutomationAccountEncryptionProperties struct {
	Identity           ManagedIdentity               `json:"identity,omitempty"`
	KeySource          enums.EncryptionKeySourceType `json:"keySource,omitempty"`
	KeyVaultProperties KeyVaultProperties            `json:"keyVaultProperties,omitempty"`
}

type AutomationAccountList

type AutomationAccountList struct {
	NextLink string              `json:"nextLink,omitempty"` // The URL to use for getting the next set of values.
	Value    []AutomationAccount `json:"value"`              // A list of automation accounts.
}

type AutomationAccountProperties

type AutomationAccountProperties struct {
	AutomationHybridServiceUrl string                                `json:"automationHybridServiceUrl,omitempty"`
	CreationTime               string                                `json:"creationTime,omitempty"`
	Description                string                                `json:"description,omitempty"`
	DisableLocalAuth           bool                                  `json:"disableLocalAuth,omitempty"`
	Encryption                 AutomationAccountEncryptionProperties `json:"encryption,omitempty"`
	LastModifiedBy             string                                `json:"lastModifiedBy,omitempty"`
	LastModifiedTime           string                                `json:"lastModifiedTime,omitempty"`
	PrivateEndpointConnections []PrivateEndpointConnection           `json:"privateEndpointConnections,omitempty"`
	PublicNetworkAccess        bool                                  `json:"publicNetworkAccess,omitempty"`
	Sku                        Sku                                   `json:"sku,omitempty"`
	State                      enums.AutomationAccountState          `json:"state,omitempty"`
}

type AutomationAccountResult

type AutomationAccountResult struct {
	SubscriptionId string
	Error          error
	Ok             AutomationAccount
}

type AutomationAccountSystemData

type AutomationAccountSystemData struct {
	CreatedAt          string                              `json:"createdAt,omitempty"`
	CreatedBy          string                              `json:"createdBy,omitempty"`
	CreatedByType      enums.AutomationAccountIdentityType `json:"createdByType,omitempty"`
	LastModifiedAt     string                              `json:"lastModifiedAt,omitempty"`
	LastModifiedBy     string                              `json:"lastModifiedBy,omitempty"`
	LastModifiedByType enums.AutomationAccountIdentityType `json:"lastModifiedByType,omitempty"`
}

type AvailablePatchSummary

type AvailablePatchSummary struct {
	// The activity ID of the operation that produced this result. It is used to correlate across CRP and extension logs.
	AssessmentActivityId string `json:"assessmentActivityId,omitempty"`

	// The number of critical or security patches that have been detected as available and not yet installed.
	CriticalAndSecurityPatchCount int `json:"criticalAndSecurityPatchCount,omitempty"`

	// The errors that were encountered during execution of the operation. The details array contains the list of them.
	Error ODataError `json:"error,omitempty"`

	// The UTC timestamp when the operation began.
	LastModifiedTime string `json:"lastModifiedTime,omitempty"`

	// The number of all available patches excluding critical and security.
	OtherPatchCount int `json:"otherPatchCount,omitempty"`

	// The overall reboot status of the VM. It will be true when partially installed patches require a reboot to
	// complete installation but the reboot has not yet occurred.
	RebootPending bool `json:"rebootPending,omitempty"`

	// The UTC timestamp when the operation began.
	StartTime string `json:"startTime,omitempty"`

	// The overall success or failure status of the operation. It remains "InProgress" until the operation completes.
	// At that point it will become "Unknown", "Failed", "Succeeded", or "CompletedWithWarnings."
	Status enums.PatchStatus `json:"status,omitempty"`
}

Describes the properties of a virtual machine instance view for available patch summary.

type AzureFilesIdentityBasedAuthentication

type AzureFilesIdentityBasedAuthentication struct {
	ActiveDirectoryProperties ActiveDirectoryProperties     `json:"activeDirectoryProperties,omitempty"`
	DefaultSharePermission    enums.DefaultSharePermission  `json:"defaultSharePermission,omitempty"`
	DirectoryServiceOptions   enums.DirectoryServiceOptions `json:"directoryServiceOptions,omitempty"`
}

type AzureStorageInfoValue

type AzureStorageInfoValue struct {
	AccessKey   string                  `json:"accessKey,omitempty"`
	AccountName string                  `json:"accountName,omitempty"`
	MountPath   string                  `json:"mountPath,omitempty"`
	ShareName   string                  `json:"shareName,omitempty"`
	State       enums.AzureStorageState `json:"state,omitempty"`
	Type        enums.AzureStorageType  `json:"type,omitempty"`
}

type BillingProfile

type BillingProfile struct {

	// Specifies the maximum price you are willing to pay for a Azure Spot VM/VMSS. This price is in US Dollars.
	// This price will be compared with the current Azure Spot price for the VM size. Also, the prices are compared at
	// the time of create/update of Azure Spot VM/VMSS and the operation will only succeed if the maxPrice is greater
	// than the current Azure Spot price.
	//
	// The maxPrice will also be used for evicting a Azure Spot VM/VMSS if the current Azure Spot price goes beyond the
	// maxPrice after creation of VM/VMSS.
	//
	// Possible values are:
	// - Any decimal value greater than zero. Example: 0.01538
	// -1 – indicates default price to be up-to on-demand.
	//
	// You can set the maxPrice to -1 to indicate that the Azure Spot VM/VMSS should not be evicted for price reasons.
	// Also, the default max price is -1 if it is not provided by you.
	//
	// Minimum api-version: 2019-03-01.
	MaxPrice float64 `json:"maxPrice,omitempty"`
}

Specifies the billing related details of a Azure Spot VM or VMSS.

type BlobRestoreParameters

type BlobRestoreParameters struct {
	BlobRanges    []BlobRestoreRange `json:"blobRanges,omitempty"`
	TimeToRestore string             `json:"timeToRestore,omitempty"`
}

type BlobRestoreRange

type BlobRestoreRange struct {
	EndRange   string `json:"endRange,omitempty"`
	StartRange string `json:"startRange,omitempty"`
}

type BlobRestoreStatus

type BlobRestoreStatus struct {
	FailureReason string                          `json:"failureReason,omitempty"`
	Parameters    BlobRestoreParameters           `json:"parameters,omitempty"`
	RestoreId     string                          `json:"restoreId,omitempty"`
	Status        enums.BlobRestoreProgressStatus `json:"status,omitempty"`
}

type BootDiagnotics

type BootDiagnotics struct {
	// Whether boot diagnostics should be enabled on the virtual machine.
	Enabled bool `json:"enabled,omitempty"`

	// Uri of the storage account to use for placing the console output and screenshot.
	// If storageUri is not specified while enabling boot diagnostics, managed storage will be used.
	StorageUri string `json:"storageUri,omitempty"`
}

type BootDiagnoticsInstanceView

type BootDiagnoticsInstanceView struct {
	// The console screenshot blob URI.
	// NOTE: This will not be set if boot diagnostics is currently enabled with managed storage.
	ConsoleScreenshotBlobUri string `json:"consoleScreenshotBlobUri,omitempty"`

	// The serial console log blob Uri.
	// NOTE: This will not be set if boot diagnostics is currently enabled with managed storage.
	SerialConsoleLogBlobUri string `json:"serialConsoleLogBlobUri,omitempty"`

	// The boot diagnostics status information for the VM.
	// NOTE: It will be set only if there are errors encountered in enabling boot diagnostics.
	Status InstanceViewStatus `json:"status,omitempty"`
}

The instance view of a virtual machine boot diagnostics.

type CapacityReservationProfile

type CapacityReservationProfile struct {
	// Specifies the capacity reservation group resource id that should be used for allocating the virtual machine or
	// scaleset vm instances provided enough capacity has been reserved. Please refer to
	// https://aka.ms/CapacityReservation for more details.
	CapacityReservationGroup SubResource `json:"capacityReservationGroup,omitempty"`
}

The parameters of a capacity reservation profile.

type CloningInfo

type CloningInfo struct {
	AppSettingsOverrides      interface{} `json:"appSettingsOverrides,omitempty"`
	CloneCustomHostNames      bool        `json:"cloneCustomHostNames,omitempty"`
	CloneSourceControl        bool        `json:"cloneSourceControl,omitempty"`
	ConfigureLoadBalancing    bool        `json:"configureLoadBalancing,omitempty"`
	CorrelationId             string      `json:"correlationId,omitempty"`
	HostingEnvironment        string      `json:"hostingEnvironment,omitempty"`
	Overwrite                 bool        `json:"overwrite,omitempty"`
	SourceWebAppId            string      `json:"sourceWebAppId,omitempty"`
	SourceWebAppLocation      string      `json:"sourceWebAppLocation,omitempty"`
	TrafficManagerProfileId   string      `json:"trafficManagerProfileId,omitempty"`
	TrafficManagerProfileName string      `json:"trafficManagerProfileName,omitempty"`
}

type Condition

type Condition struct {
	Expression string `json:"expression,omitempty"`
}

type ConnStringInfo

type ConnStringInfo struct {
	ConnectionString string                     `json:"connectionString,omitempty"`
	Name             string                     `json:"name,omitempty"`
	Type             enums.ConnectionStringType `json:"type,omitempty"`
}

type ConnectionItemProperties

type ConnectionItemProperties struct {
	//Properties of the private endpoint object.
	PrivateEndpoint PrivateEndpoint `json:"privateEndpoint,omitempty"`

	// Approval state of the private link connection.
	PrivateLinkServiceConnectionState PrivateLinkServiceConnectionState `json:"privateLinkServiceConnectionState,omitempty"`

	// Provisioning state of the private endpoint connection.
	ProvisioningState enums.EndpointProvisioningState `json:"provisioningState,omitempty"`
}

type ContainerRegistry

type ContainerRegistry struct {
	Entity

	Identity ManagedIdentity   `json:"identity,omitempty"`
	Location string            `json:"location,omitempty"`
	Name     string            `json:"name,omitempty"`
	Tags     map[string]string `json:"tags,omitempty"`
	Type     string            `json:"type,omitempty"`
}

Mapped according to https://learn.microsoft.com/en-us/rest/api/containerregistry/registries/get?tabs=HTTP#registry

func (ContainerRegistry) ResourceGroupId

func (s ContainerRegistry) ResourceGroupId() string

func (ContainerRegistry) ResourceGroupName

func (s ContainerRegistry) ResourceGroupName() string

type ContainerRegistryList

type ContainerRegistryList struct {
	NextLink string              `json:"nextLink,omitempty"` // The URL to use for getting the next set of values.
	Value    []ContainerRegistry `json:"value"`              // A list of container registries.
}

type ContainerRegistryResult

type ContainerRegistryResult struct {
	SubscriptionId string
	Error          error
	Ok             ContainerRegistry
}

type CorsSettings

type CorsSettings struct {
	AllowedOrigins     []string `json:"allowedOrigins,omitempty"`
	SupportCredentials bool     `json:"supportCredentials,omitempty"`
}

type DataDisk

type DataDisk struct {
	// Specifies the caching requirements.
	// Possible values are:
	// None
	// ReadOnly
	// ReadWrite
	//
	// Default: None for Standard storage. ReadOnly for Premium storage
	Caching string `json:"caching,omitempty"`

	// Specifies how the virtual machine should be created.
	// Possible values are:
	// Attach - This value is used when you are using a specialized disk to create the virtual machine.
	// FromImage - This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you also use the plan element previously described.
	CreateOption string `json:"createOption,omitempty"`

	// Specifies whether data disk should be deleted or detached upon VM deletion.
	// Possible values:
	// Delete - If this value is used, the data disk is deleted when VM is deleted.
	// Detach - If this value is used, the data disk is retained after VM is deleted.
	// The default value is set to detach
	DeleteOption string `json:"deleteOption,omitempty"`

	// Specifies the detach behavior to be used while detaching a disk or which is already in the process of detachment
	// from the virtual machine.
	// Supported values: ForceDetach
	//
	// ForceDetach is applicable only for managed data disks. If a previous detachment attempt of the data disk did not
	// complete due to an unexpected failure from the virtual machine and the disk is still not released then use
	// force-detach as a last resort option to detach the disk forcibly from the VM. All writes might not have been
	// flushed when using this detach behavior.
	//
	// This feature is still in preview mode and is not supported for VirtualMachineScaleSet. To force-detach a data disk
	// update toBeDetached to 'true' along with setting detachOption: 'ForceDetach'.
	DetachOption string `json:"detachOption,omitempty"`

	// Specifies the Read-Write IOPS for the managed disk when StorageAccountType is UltraSSD_LRS.
	// Returned only for VirtualMachine ScaleSet VM disks. Can be updated only via updates to the
	// VirtualMachine Scale Set.
	DiskIOPSReadWrite int `json:"diskIOPSReadWrite,omitempty"`

	// Specifies the bandwidth in MB per second for the managed disk when StorageAccountType is UltraSSD_LRS.
	// Returned only for VirtualMachine ScaleSet VM disks. Can be updated only via updates to the
	// VirtualMachine Scale Set.
	DiskMBpsReadWrite int `json:"diskMBpsReadWrite,omitempty"`

	// Specifies the size of an empty data disk in gigabytes.
	// This element can be used to overwrite the size of the disk in a virtual machine image.
	// This value cannot be larger than 1023 GB
	DiskSizeGB int `json:"diskSizeGB,omitempty"`

	// The source user image virtual hard disk. The virtual hard disk will be copied before being attached to the
	// virtual machine. If SourceImage is provided, the destination virtual hard drive must not exist.
	Image VirtualHardDisk `json:"image,omitempty"`

	// Specifies the logical unit number of the data disk.
	// This value is used to identify data disks within the VM and therefore must be unique for each data disk attached
	// to a VM.
	Lun int `json:"lun,omitempty"`

	// The managed disk parameters.
	ManagedDisk ManagedDiskParameters `json:"managedDisk,omitempty"`

	// The disk name.
	Name string `json:"name,omitempty"`

	// Specifies whether the data disk is in process of detachment from the VirtualMachine/VirtualMachineScaleset.
	ToBeDetached bool `json:"toBeDetached,omitempty"`

	// The virtual hard disk.
	Vhd VirtualHardDisk `json:"vhd,omitempty"`

	// Specifies whether writeAccelerator should be enabled or disabled on the disk.
	WriteAcceleratorEnabled bool `json:"writeAcceleratorEnabled,omitempty"`
}

Describes a data disk.

type DateTimeTimeZone

type DateTimeTimeZone struct {
	// A single point of time in a combined date and time representation `{date}T{time}
	DateTime string `json:"dateTime,omitempty"`

	// Represents a time zone
	TimeZone string `json:"timeZone,omitempty"`
}

Describes the date, time and time zone of a point in time.

type Definition

type Definition struct {
	Schema string `json:"$schema,omitempty"`
	// Certain actions can be nested, have different elements based on the name(key) of given action - Condition is an example
	// Actions        map[string]Action       `json:"actions,omitempty"`
	Actions        map[string]interface{}  `json:"actions,omitempty"`
	ContentVersion string                  `json:"contentVersion,omitempty"`
	Outputs        map[string]Output       `json:"outputs,omitempty"`
	Parameters     map[string]Parameter    `json:"parameters,omitempty"`
	StaticResults  map[string]StaticResult `json:"staticResults,omitempty"`
	Triggers       map[string]Trigger      `json:"triggers,omitempty"`
}

type DescendantInfo

type DescendantInfo struct {
	// The fully qualified ID for the descendant.
	//
	// For example:
	// - /providers/Microsoft.Management/managementGroups/0000000-0000-0000-0000-000000000000
	// - /subscriptions/0000000-0000-0000-0000-000000000000
	Id string `json:"id,omitempty"`

	// The name of the descendant.
	//
	// For example:
	// - 00000000-0000-0000-0000-000000000000
	Name string `json:"name,omitempty"`

	// The properties of the management group descendant.
	Properties DescendantInfoProperties `json:"properties,omitempty"`

	// The type of the resource.
	//
	// For example:
	// - Microsoft.Management/managementGroups
	// - /subscriptions
	Type string `json:"type,omitempty"`
}

DescendantInfo is a management group descendant.

type DescendantInfoList

type DescendantInfoList struct {
	NextLink string           `json:"nextLink,omitempty"` // The URL to use for getting the next set of values.
	Value    []DescendantInfo `json:"value"`              // A list of management group descendants.
}

type DescendantInfoProperties

type DescendantInfoProperties struct {
	// The friendly name of the management group.
	DisplayName string `json:"display_name,omitempty"`

	// The properties of the parent management group.
	Parent DescendantParentGroupInfo `json:"parent,omitempty"`
}

DescendantInfoProperties describes the properties of the management group descendant.

type DescendantInfoResult

type DescendantInfoResult struct {
	Error error
	Ok    DescendantInfo
}

type DescendantParentGroupInfo

type DescendantParentGroupInfo struct {
	// The fully qualified ID for the parent management group.
	//
	// For example:
	// - /providers/Microsoft.Management/managementGroups/0000000-0000-0000-0000-000000000000
	Id string `json:"id,omitempty"`
}

The properties of the parent management group.

type Device

type Device struct {
	DirectoryObject

	// true if the account is enabled; otherwise, false. Required. Default is true.
	// Supports $filter (eq, ne, NOT, in).
	// Only callers in Global Administrator and Cloud Device Administrator roles can set this property.
	AccountEnabled bool `json:"accountEnabled,omitempty"`

	// For internal use only. Not nullable. Supports $filter (eq, NOT, ge, le).
	AlternativeSecurityIds []AlternativeSecurityId `json:"alternativeSecurityIds,omitempty"`

	// The timestamp type represents date and time information using ISO 8601 format and is always in UTC time.
	// For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only.
	// Supports $filter (eq, ne, NOT, ge, le) and $orderBy.
	ApproximateLastSignInDateTime string `json:"approximateLastSignInDateTime,omitempty"`

	// The timestamp when the device is no longer deemed compliant.
	// The timestamp type represents date and time information using ISO 8601 format and is always in UTC time.
	// For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only.
	ComplianceExpirationDateTime string `json:"complianceExpirationDateTime,omitempty"`

	// Unique identifier set by Azure Device Registration Service at the time of registration.
	// Supports $filter (eq, ne, NOT, startsWith).
	DeviceId string `json:"deviceId,omitempty"`

	// For internal use only. Set to null.
	DeviceMetadata string `json:"deviceMetadata,omitempty"`

	// For internal use only.
	DeviceVersion int32 `json:"deviceVersion,omitempty"`

	// The display name for the device.
	// Required.
	// Supports $filter (eq, ne, NOT, ge, le, in, startsWith), $search, and $orderBy.
	DisplayName string `json:"displayName,omitempty"`

	// Contains extension attributes 1-15 for the device.
	// The individual extension attributes are not selectable.
	// These properties are mastered in cloud and can be set during creation or update of a device object in Azure AD.
	// Supports $filter (eq, NOT, startsWith).
	ExtensionAttributes OnPremisesExtensionAttributes `json:"onPremisesExtensionAttributes,omitempty"`

	// true if the device complies with Mobile Device Management (MDM) policies; otherwise, false.
	// Read-only.
	// This can only be updated by Intune for any device OS type or by an approved MDM app for Windows OS devices.
	// Supports $filter (eq, ne, NOT).
	IsCompliant bool `json:"isCompliant,omitempty"`

	// true if the device is managed by a Mobile Device Management (MDM) app; otherwise, false.
	// This can only be updated by Intune for any device OS type or by an approved MDM app for Windows OS devices.
	// Supports $filter (eq, ne, NOT).
	IsManaged bool `json:"isManaged,omitempty"`

	// Manufacturer of the device.
	// Read-only.
	Manufacturer string `json:"manufacturer,omitempty"`

	// Application identifier used to register device into MDM.
	// Read-only.
	// Supports $filter (eq, ne, NOT, startsWith).
	MdmAppId string `json:"mdmAppId,omitempty"`

	// Model of the device.
	// Read-only.
	Model string `json:"model,omitempty"`

	// The last time at which the object was synced with the on-premises directory.
	// The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time.
	// For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z Read-only.
	// Supports $filter (eq, ne, NOT, ge, le, in).
	OnPremisesLastSyncDateTime string `json:"onPremisesLastSyncDateTime,omitempty"`

	// true if this object is synced from an on-premises directory; false if this object was originally synced from an
	// on-premises directory but is no longer synced; null if this object has never been synced from an on-premises
	// directory (default).
	// Read-only.
	// Supports $filter (eq, ne, NOT, in).
	OnPremisesSyncEnabled bool `json:"onPremisesSyncEnabled,omitempty"`

	// The type of operating system on the device.
	// Required.
	// Supports $filter (eq, ne, NOT, ge, le, startsWith).
	OperatingSystem string `json:"operatingSystem,omitempty"`

	// The version of the operating system on the device.
	// Required.
	// Supports $filter (eq, ne, NOT, ge, le, startsWith).
	OperatingSystemVersion string `json:"operatingSystemVersion,omitempty"`

	// For internal use only.
	// Not nullable.
	// Supports $filter (eq, NOT, ge, le, startsWith).
	PhysicalIds []string `json:"physicalIds,omitempty"`

	// The profile type of the device.
	ProfileType enums.DeviceProfile `json:"profileType,omitempty"`

	// List of labels applied to the device by the system.
	SystemLabels []string `json:"systemLabels,omitempty"`

	// Type of trust for the joined device.
	// Read-only.
	TrustType enums.TrustType `json:"trustType,omitempty"`
}

Represents a device registered in the organization. Devices are created in the cloud using the Device Registration Service or by Intune. They're used by conditional access policies for multi-factor authentication. These devices can range from desktop and laptop machines to phones and tablets. For more detail see https://docs.microsoft.com/en-us/graph/api/resources/device?view=graph-rest-1.0

type DeviceList

type DeviceList struct {
	Count    int      `json:"@odata.count,omitempty"`    // The total count of all results
	NextLink string   `json:"@odata.nextLink,omitempty"` // The URL to use for getting the next set of values.
	Value    []Device `json:"value"`                     // A list of devices.
}

type DeviceRegisteredOwnerResult

type DeviceRegisteredOwnerResult struct {
	DeviceId string
	Error    error
	Ok       json.RawMessage
}

type DeviceResult

type DeviceResult struct {
	Error error
	Ok    Device
}

type DiagnosticsProfile

type DiagnosticsProfile struct {
	// Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM
	// status. You can easily view the output of your console log. Azure also enables you to see a screenshot of the VM
	// from the hypervisor.
	BootDiagnotics BootDiagnotics `json:"bootDiagnotics,omitempty"`
}

Specifies the boot diagnostic settings state. Minimum api-version: 2015-06-15.

type DiffDiskSettings

type DiffDiskSettings struct {
	// Specifies the ephemeral disk settings for operating system disk.
	Option string `json:"option,omitempty"`

	// Specifies the ephemeral disk placement for operating system disk.
	// Possible values are:
	// - CacheDisk
	// - ResourceDisk
	//
	// Default: CacheDisk if one is configured for the VM size otherwise ResourceDisk is used.
	// Refer to VM size documentation for Windows VM at https://docs.microsoft.com/azure/virtual-machines/windows/sizes
	// and Linux VM at https://docs.microsoft.com/azure/virtual-machines/linux/sizes to check which VM sizes exposes a
	// cache disk.
	Placement string `json:"placement,omitempty"`
}

Describes the parameters of ephemeral disk settings that can be specified for operating system disk. NOTE: The ephemeral disk settings can only be specified for managed disk.

type DirectoryObject

type DirectoryObject struct {
	// The unique identifier for the object.
	// Note: The value is often but not exclusively a GUID (UUID v4 variant 2)
	//
	// Key
	// Read-only
	// Supports `filter` (eq,ne,NOT,in)
	Id string `json:"id"`

	Type string `json:"@odata.type,omitempty"`
}

Represents an Azure Active Directory object. The directoryObject type is the base type for many other directory entity types.

type DirectoryObjectList

type DirectoryObjectList struct {
	Count    int               `json:"@odata.count,omitempty"`    // The total count of all results
	NextLink string            `json:"@odata.nextLink,omitempty"` // The URL to use for getting the next set of values.
	Value    []json.RawMessage `json:"value"`                     // A list of various Azure AD directory objects.
}

type DiskEncryptionSetParameters

type DiskEncryptionSetParameters struct {
	// Resource ID.
	Id string `json:"id,omitempty"`
}

Describes the parameter of customer managed disk encryption set resource id that can be specified for disk. NOTE: The disk encryption set resource id can only be specified for managed disk. Please refer https://aka.ms/mdssewithcmkoverview for more details.

type DiskEncryptionSettings

type DiskEncryptionSettings struct {
	// Specifies the location of the disk encryption key, which is a Key Vault Secret.
	DiskEncryptionKey KeyVaultSecretReference `json:"diskEncryptionKey,omitempty"`

	// Specifies whether disk encryption should be enabled on the virtual machine.
	Enabled bool `json:"enabled,omitempty"`

	// Specifies the location of the key encryption key in Key Vault.
	KeyEncryptionKey KeyVaultKeyReference `json:"keyEncryptionKey,omitempty"`
}

Describes an encryption setting for a disk

type DiskInstanceView

type DiskInstanceView struct {
	// Specifies the encryption settings for the OS Disk.
	// Minimum api-version: 2015-06-15
	EncryptionSettings []DiskEncryptionSettings `json:"encryptionSettings,omitempty"`

	// The disk name.
	Name string `json:"name,omitempty"`

	// The resource status information.
	Statuses []InstanceViewStatus `json:"statuses,omitempty"`
}

The instance view of the disk.

type EmployeeOrgData

type EmployeeOrgData struct {
	// The name of the division in which the user works.
	//
	// Returned only on `$select`
	// Supports `$filter`
	Division string `json:"division,omitempty"`

	// The cost center assoicated with the user.
	//
	// Returned only on `$select`
	// Supports `$filter`
	CostCenter string `json:"costCenter,omitempty"`
}

Represents organization data associated with a user.

type EncryptionService

type EncryptionService struct {
	Enabled         bool                    `json:"enabled,omitempty"`
	KeyType         enums.EncryptionKeyType `json:"keyType,omitempty"`
	LastEnabledTime string                  `json:"lastEnabledTime,omitempty"`
}

type EncryptionServices

type EncryptionServices struct {
	Blob  EncryptionService `json:"blob,omitempty"`
	File  EncryptionService `json:"file,omitempty"`
	Queue EncryptionService `json:"queue,omitempty"`
	Table EncryptionService `json:"table,omitempty"`
}

type EndpointConfiguration

type EndpointConfiguration struct {
	LogicApp  LogicAppEndpointConfiguration `json:"logicapp,omitempty"`
	Connector LogicAppEndpointConfiguration `json:"connector,omitempty"`
}

type Endpoints

type Endpoints struct {
	Blob               string                           `json:"blob,omitempty"`
	DFS                string                           `json:"dfs,omitempty"`
	File               string                           `json:"file,omitempty"`
	InternetEndpoints  StorageAccountInternetEndpoints  `json:"internetEndpoints,omitempty"`
	MicrosoftEndpoints StorageAccountMicrosoftEndpoints `json:"microsoftEndpoints,omitempty"`
	Queue              string                           `json:"queue,omitempty"`
	Table              string                           `json:"table,omitempty"`
	Web                string                           `json:"web,omitempty"`
}

type Entity

type Entity struct {
	Id string `json:"id"`
}

type ErrorAdditionalInfo

type ErrorAdditionalInfo struct {
	Info map[string]string `json:"info,omitempty"`
	Type string            `json:"type,omitempty"`
}

type ErrorResponse

type ErrorResponse struct {
	Error ODataError `json:"error"`
}

type Experiments

type Experiments struct {
	RampUpRules []RampUpRule `json:"rampUpRules,omitempty"`
}

type ExtendedLocation

type ExtendedLocation struct {
	Name string `json:"name,omitempty"`
	Type string `json:"type,omitempty"`
}

type FunctionApp

type FunctionApp struct {
	Entity

	ExtendedLocation ExtendedLocation      `json:"extendedLocation,omitempty"`
	Identity         ManagedIdentity       `json:"identity,omitempty"`
	Kind             string                `json:"kind,omitempty"`
	Location         string                `json:"location,omitempty"`
	Name             string                `json:"name,omitempty"`
	Properties       FunctionAppProperties `json:"properties,omitempty"`
	Tags             map[string]string     `json:"tags,omitempty"`
	Type             string                `json:"type,omitempty"`
}

func (FunctionApp) ResourceGroupId

func (s FunctionApp) ResourceGroupId() string

func (FunctionApp) ResourceGroupName

func (s FunctionApp) ResourceGroupName() string

type FunctionAppList

type FunctionAppList struct {
	NextLink string        `json:"nextLink,omitempty"` // The URL to use for getting the next set of values.
	Value    []FunctionApp `json:"value"`              // A list of function apps
}

type FunctionAppProperties

type FunctionAppProperties struct {
	AvailabilityState           enums.SiteAvailabilityState `json:"availabilityState,omitempty"`
	ClientAffinityEnabled       bool                        `json:"clientAffinityEnabled,omitempty"`
	ClientCertEnabled           bool                        `json:"clientCertEnabled,omitempty"`
	ClientCertExclusionPaths    string                      `json:"clientCertExclusionPaths,omitempty"`
	ClientCertMode              enums.ClientCertMode        `json:"clientCertMode,omitempty"`
	CloningInfo                 CloningInfo                 `json:"cloningInfo,omitempty"`
	ContainerSize               int                         `json:"containerSize,omitempty"`
	CustomDomainVerificationId  string                      `json:"customDomainVerificationId,omitempty"`
	DailyMemoryTimeQuota        int                         `json:"dailyMemoryTimeQuota,omitempty"`
	DefaultHostName             string                      `json:"defaultHostName,omitempty"`
	Enabled                     bool                        `json:"enabled,omitempty"`
	EnabledHostnames            []string                    `json:"enabledHostnames,omitempty"`
	HostingEnvironmentProfile   HostingEnvironmentProfile   `json:"hostingEnvironmentProfile,omitempty"`
	Hostnames                   []string                    `json:"hostNames,omitempty"`
	HostNamesDisabled           bool                        `json:"hostNamesDisabled,omitempty"`
	HostNameSslStates           []HostNameSslState          `json:"hostNameSslStates,omitempty"`
	HttpsOnly                   bool                        `json:"httpsOnly,omitempty"`
	HyperV                      bool                        `json:"hyperV,omitempty"`
	InProgressOperationId       string                      `json:"inProgressOperationId,omitempty"`
	IsDefaultContainer          bool                        `json:"isDefaultContainer,omitempty"`
	IsXenon                     bool                        `json:"isXenon,omitempty"`
	KeyVaultReferenceIdentity   string                      `json:"keyVaultReferenceIdentity,omitempty"`
	LastModifiedTimeUTC         string                      `json:"lastModifiedTimeUtc,omitempty"`
	MaxNumberOfWorkers          int                         `json:"maxNumberOfWorkers,omitempty"`
	OutboundIpAddresses         string                      `json:"outboundIpAddresses,omitempty"`
	PossibleOutboundIpAddresses string                      `json:"possibleOutboundIpAddresses,omitempty"`
	PublicNetworkAccess         string                      `json:"publicNetworkAccess,omitempty"`
	RedundancyMode              enums.RedundancyMode        `json:"redundancyMode,omitempty"`
	RepositorySiteName          string                      `json:"repositorySiteName,omitempty"`
	Reserved                    bool                        `json:"reserved,omitempty"`
	ResourceGroup               string                      `json:"resourceGroup,omitempty"`
	ScmSiteAlsoStopped          bool                        `json:"scmSiteAlsoStopped,omitempty"`
	ServerFarmId                string                      `json:"serverFarmId,omitempty"`
	SiteConfig                  SiteConfig                  `json:"siteConfig,omitempty"`
	SlotSwapStatus              SlotSwapStatus              `json:",omitempty"`
	State                       string                      `json:"state,omitempty"`
	StorageAccountRequired      bool                        `json:"storageAccountRequired,omitempty"`
	SuspendedTill               string                      `json:"suspendedTill,omitempty"`
	TargetSwapSlot              string                      `json:"targetSwapSlot,omitempty"`
	TrafficManagerHostNames     []string                    `json:"trafficManagerHostNames,omitempty"`
	UsageState                  enums.UsageState            `json:"usageState,omitempty"`
	VirtualNetworkSubnetId      string                      `json:"virtualNetworkSubnetId,omitempty"`
	VnetContentShareEnabled     bool                        `json:"vnetContentShareEnabled,omitempty"`
	VnetImagePullEnabled        bool                        `json:"vnetImagePullEnabled,omitempty"`
	VnetRouteAllEnabled         bool                        `json:"vnetRouteAllEnabled,omitempty"`

	// Following elements have been found in testing within the returned object, but not present in the official documentation
	AdminEnabled                bool   `json:"adminEnabled,omitempty"`
	ComputeMode                 string `json:"computeMode,omitempty"`
	ContainerAllocationSubnet   string `json:"containerAllocationSubnet,omitempty"`
	ContentAvailabilityState    string `json:"contentAvailabilityState,omitempty"`
	FtpsHostName                string `json:"ftpsHostName,omitempty"`
	FtpUsername                 string `json:"ftpUsername,omitempty"`
	InboundIPAddress            string `json:"inboundIpAddress,omitempty"`
	Kind                        string `json:"kind,omitempty"`
	Name                        string `json:"name,omitempty"`
	PossibleInboundIpAddresses  string `json:"possibleInboundIpAddresses,omitempty"`
	PrivateEndpointConnections  string `json:"privateEndpointConnections,omitempty"`
	RuntimeAvailabilityState    string `json:"runtimeAvailabilityState,omitempty"`
	SelfLink                    string `json:"selfLink,omitempty"`
	StorageRecoveryDefaultState string `json:"storageRecoveryDefaultState,omitempty"`
}

type FunctionAppResult

type FunctionAppResult struct {
	SubscriptionId string
	Error          error
	Ok             FunctionApp
}

type GeoReplicationStats

type GeoReplicationStats struct {
	CanFailover  bool                       `json:"canFailover,omitempty"`
	LastSyncTime string                     `json:"lastSyncTime,omitempty"`
	Status       enums.GeoReplicationStatus `json:"status,omitempty"`
}

type Group

type Group struct {
	DirectoryObject

	// Indicates if people external to the organization can send messages to the group.
	// Default value is false.
	// Returned only on $select for GET /groups/{ID}
	AllowExternalSenders bool `json:"allowExternalSenders,omitempty"`

	// The list of sensitivity label pairs (label ID, label name) associated with a Microsoft 365 group.
	// Returned only on $select.
	// Read-only.
	AssignedLabels []AssignedLabel `json:"assignedLabels,omitempty"`

	// The licenses that are assigned to the group.
	// Returned only on $select.
	// Supports $filter (eq)
	// Read-only.
	AssignedLicenses []AssignedLicense `json:"assignedLicenses,omitempty"`

	// Indicates if new members added to the group will be auto-subscribed to receive email notifications.
	// You can set this property in a PATCH request for the group; do not set it in the initial POST request that
	// creates the group.
	// Default value is false.
	// Returned only on $select for GET /groups/{ID}
	AutoSubscribeNewMembers bool `json:"autoSubscribeNewMembers,omitempty"`

	// Describes a classification for the group (such as low, medium or high business impact).
	// Valid values for this property are defined by creating a ClassificationList setting value, based on the template
	// definition.
	// Returned by default.
	// Supports $filter (eq, ne, NOT, ge, le, startsWith)
	Classification string `json:"classification,omitempty"`

	// Timestamp of when the group was created.
	// The value cannot be modified and is automatically populated when the group is created. The Timestamp type
	// represents date and time information using ISO 8601 format and is always in UTC time.
	// For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
	// Returned by default.
	// Supports $filter (eq, ne, NOT, ge, le, in).
	// Read-only.
	CreatedDateTime string `json:"createdDateTime,omitempty"`

	// For some Azure Active Directory objects (user, group, application), if the object is deleted, it is first
	// logically deleted, and this property is updated with the date and time when the object was deleted. Otherwise,
	// this property is null. If the object is restored, this property is updated to null.
	DeletedDateTime string `json:"deletedDateTime,omitempty"`

	// An optional description for the group.
	// Returned by default.
	// Supports $filter (eq, ne, NOT, ge, le, startsWith) and $search.
	Description string `json:"description,omitempty"`

	// The display name for the group.
	// This property is required when a group is created and cannot be cleared during updates.
	// Returned by default.
	// Supports $filter (eq, ne, NOT, ge, le, in, startsWith), $search, and $orderBy.
	DisplayName string `json:"displayName,omitempty"`

	// Timestamp of when the group is set to expire. The value cannot be modified and is automatically populated when
	// the group is created. The Timestamp type represents date and time information using ISO 8601 format and is always
	// in UTC time.
	// For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
	// Returned by default.
	// Supports $filter (eq, ne, NOT, ge, le, in).
	// Read-only.
	ExpirationDateTime string `json:"expirationDateTime,omitempty"`

	// Specifies the group type and its membership.
	// If the collection contains Unified, the group is a Microsoft 365 group; otherwise, it's either a security group
	// or distribution group. For details, see groups overview.
	// If the collection includes DynamicMembership, the group has dynamic membership; otherwise, membership is static.
	// Returned by default.
	// Supports $filter (eq, NOT).
	GroupTypes []string `json:"groupTypes,omitempty"`

	// Indicates whether there are members in this group that have license errors from its group-based license
	// assignment.
	// This property is never returned on a GET operation.
	// You can use it as a $filter argument to get groups that have members with license errors (that is, filter for
	// this property being true)
	// Supports $filter (eq).
	HasMembersWithLicenseErrors bool `json:"hasMembersWithLicenseErrors,omitempty"`

	// True if the group is not displayed in certain parts of the Outlook UI: the Address Book, address lists for
	// selecting message recipients, and the Browse Groups dialog for searching groups; otherwise, false.
	// Default value is false.
	// Returned only on $select for GET /groups/{ID}
	HideFromAddressLists bool `json:"hideFromAddressLists,omitempty"`

	// True if the group is not displayed in Outlook clients, such as Outlook for Windows and Outlook on the web;
	// otherwise, false.
	// Default value is false.
	// Returned only on $select for GET /groups/{ID}
	HideFromOutlookClients bool `json:"hideFromOutlookClients,omitempty"`

	// Indicates whether this group can be assigned to an Azure Active Directory role or not.
	// Optional.
	// This property can only be set while creating the group and is immutable. If set to true, the securityEnabled
	// property must also be set to true and the group cannot be a dynamic group (that is, groupTypes cannot contain
	// DynamicMembership). Only callers in Global administrator and Privileged role administrator roles can set this
	// property. The caller must be assigned the RoleManagement.ReadWrite.Directory permission to set this property or
	// update the membership of such groups. For more, see Using a group to manage Azure AD role assignments
	// Returned by default.
	// Supports $filter (eq, ne, NOT).
	IsAssignableToRole bool `json:"isAssignableToRole,omitempty"`

	// Indicates whether the signed-in user is subscribed to receive email conversations.
	// Default value is true.
	// Returned only on $select for GET /groups/{ID}
	IsSubscribedByMail bool `json:"isSubscribedByMail,omitempty"`

	// Indicates status of the group license assignment to all members of the group.
	// Default value is false.
	// Read-only.
	// Returned only on $select.
	LicenseProcessingState enums.LicenseProcessingState `json:"licenseProcessingState,omitempty"`

	// The SMTP address for the group, for example, "serviceadmins@contoso.onmicrosoft.com".
	// Returned by default.
	// Read-only.
	// Supports $filter (eq, ne, NOT, ge, le, in, startsWith).
	Mail string `json:"mail,omitempty"`

	// Specifies whether the group is mail-enabled.
	// Required.
	// Returned by default.
	// Supports $filter (eq, ne, NOT).
	MailEnabled bool `json:"mailEnabled,omitempty"`

	// The mail alias for the group, unique in the organization.
	// Maximum length is 64 characters.
	// This property can contain only characters in the ASCII character set 0 - 127 except: @ () \ [] " ; : . <> , SPACE
	// Required.
	// Returned by default.
	// Supports $filter (eq, ne, NOT, ge, le, in, startsWith).
	MailNickname string `json:"mailNickname,omitempty"`

	// The rule that determines members for this group if the group is a dynamic group (groupTypes contains
	// DynamicMembership). For more information about the syntax of the membership rule, see Membership Rules syntax.
	// Returned by default.
	// Supports $filter (eq, ne, NOT, ge, le, startsWith).
	MembershipRule string `json:"membershipRule,omitempty"`

	// Indicates whether the dynamic membership processing is on or paused.
	// Returned by default.
	// Supports $filter (eq, ne, NOT, in).
	MembershipRuleProcessingState enums.RuleProcessingState `json:"membershipRuleProcessingState,omitempty"`

	// Indicates the last time at which the group was synced with the on-premises directory.
	// The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time.
	// For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
	// Returned by default.
	// Read-only.
	// Supports $filter (eq, ne, NOT, ge, le, in).
	OnPremisesLastSyncDateTime string `json:"onPremisesLastSyncDateTime,omitempty"`

	// Errors when using Microsoft synchronization product during provisioning.
	// Returned by default.
	// Supports $filter (eq, NOT).
	OnPremisesProvisioningErrors []OnPremisesProvisioningError `json:"onPremisesProvisioningErrors,omitempty"`

	// Contains the on-premises SAM account name synchronized from the on-premises directory.
	// The property is only populated for customers who are synchronizing their on-premises directory to Azure Active
	// Directory via Azure AD Connect.
	// Returned by default.
	// Supports $filter (eq, ne, NOT, ge, le, in, startsWith).
	// Read-only.
	OnPremisesSamAccountName string `json:"onPremisesSamAccountName,omitempty"`

	// Contains the on-premises security identifier (SID) for the group that was synchronized from on-premises to the
	// cloud.
	// Returned by default.
	// Supports $filter on null values.
	// Read-only.
	OnPremisesSecurityIdentifier string `json:"onPremisesSecurityIdentifier,omitempty"`

	// true if this group is synced from an on-premises directory; false if this group was originally synced from an
	// on-premises directory but is no longer synced; null if this object has never been synced from an on-premises
	// directory (default).
	// Returned by default.
	// Read-only.
	// Supports $filter (eq, ne, NOT, in).
	OnPremisesSyncEnabled bool `json:"onPremisesSyncEnabled,omitempty"`

	// The preferred data location for the Microsoft 365 group.
	// By default, the group inherits the group creator's preferred data location. To set this property, the calling
	// user must be assigned one of the following Azure AD roles:
	// - Global Administrator
	// - User Account Administrator
	// - Directory Writer
	// - Exchange Administrator
	// - SharePoint Administrator
	//
	// Nullable.
	// Returned by default.
	PreferredDataLocation string `json:"preferredDataLocation,omitempty"`

	// The preferred language for a Microsoft 365 group.
	// Should follow ISO 639-1 Code; for example en-US.
	// Returned by default.
	// Supports $filter (eq, ne, NOT, ge, le, in, startsWith).
	PreferredLanguage string `json:"preferredLanguage,omitempty"`

	// Email addresses for the group that direct to the same group mailbox.
	// For example: ["SMTP: bob@contoso.com", "smtp: bob@sales.contoso.com"].
	// The any operator is required to filter expressions on multi-valued properties.
	// Returned by default.
	// Read-only.
	// Not nullable.
	// Supports $filter (eq, NOT, ge, le, startsWith).
	ProxyAddresses []string `json:"proxyAddresses,omitempty"`

	// Timestamp of when the group was last renewed.
	// This cannot be modified directly and is only updated via the renew service action.
	// The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time.
	// For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
	// Returned by default.
	// Supports $filter (eq, ne, NOT, ge, le, in).
	// Read-only.
	RenewedDateTime string `json:"renewedDateTime,omitempty"`

	// Specifies the group behaviors that can be set for a Microsoft 365 group during creation.
	// This can be set only as part of creation (POST).
	ResourceBehaviorOptions []enums.ResourceBehavior `json:"resourceBehaviorOptions,omitempty"`

	// Specifies the group resources that are provisioned as part of Microsoft 365 group creation, that are not normally
	// part of default group creation.
	ResourceProvisioningOptions []enums.ResourceProvisioning `json:"resourceProvisioningOptions,omitempty"`

	// Specifies whether the group is a security group.
	// Required.
	// Returned by default.
	// Supports $filter (eq, ne, NOT, in).
	SecurityEnabled bool `json:"securityEnabled,omitempty"`

	// Security identifier of the group, used in Windows scenarios.
	// Returned by default.
	SecurityIdentifier string `json:"securityIdentifier,omitempty"`

	// Specifies a Microsoft 365 group's color theme. Possible values are Teal, Purple, Green, Blue, Pink, Orange or Red
	Theme string `json:"theme,omitempty"`

	// Count of conversations that have received new posts since the signed-in user last visited the group.
	// Returned only on $select for GET /groups/{ID}
	UnseenCount int32 `json:"unseenCount,omitempty"`

	// Specifies the group join policy and group content visibility for groups.
	// Possible values are: Private, Public, or Hiddenmembership.
	// Hiddenmembership can be set only for Microsoft 365 groups, when the groups are created.
	// It can't be updated later. Other values of visibility can be updated after group creation.
	// If visibility value is not specified during group creation on Microsoft Graph, a security group is created as
	// Private by default and Microsoft 365 group is Public. Groups assignable to roles are always Private.
	// Returned by default.
	// Nullable.
	Visibility enums.GroupVisibility `json:"visibility,omitempty"`
}

Represents an Azure Active Directory (Azure AD) group, which can be a Microsoft 365 group, or a security group. For more detail see https://docs.microsoft.com/en-us/graph/api/resources/group?view=graph-rest-1.0

type GroupList

type GroupList struct {
	Count    int     `json:"@odata.count,omitempty"`    // The total count of all results
	NextLink string  `json:"@odata.nextLink,omitempty"` // The URL to use for getting the next set of values.
	Value    []Group `json:"value"`                     // A list of groups.
}

type GroupOwnerResult

type GroupOwnerResult struct {
	Error   error
	GroupId string
	Ok      json.RawMessage
}

type GroupResult

type GroupResult struct {
	Error error
	Ok    Group
}

type HandlerMapping

type HandlerMapping struct {
	Arguments       string `json:"arguments,omitempty"`
	Extension       string `json:"extension,omitempty"`
	ScriptProcessor string `json:"scriptProcessor,omitempty"`
}

type HardwareProfile

type HardwareProfile struct {

	// Specifies the size of the virtual machine.
	//
	// Recommended way to get the list of available sizes is using the API:
	// - List all available virtual machine sizes in an availability set
	// - List all available virtual machine sizes in a region
	// - List all available virtual machine sizes for resizing.
	//
	// For more information about virtual machine sizes, see Sizes for virtual machines.
	//
	// The available VM sizes depend on region and availability set.
	VMSize string `json:"vmSize,omitempty"`

	// Specifies the properties for customizing the size of the virtual machine. Minimum api-version: 2021-07-01.
	//
	// This feature is still in preview mode and is not supported for VirtualMachineScaleSet.
	// Please follow the instructions in VM Customization for more details.
	VMSizeProperties VMSizeProperties `json:"vmSizeProperties,omitempty"`
}

Specifies the hardware settings for the virtual machine.

type HostNameSslState

type HostNameSslState struct {
	HostType   enums.HostType `json:"hostType,omitempty"`
	Name       string         `json:"name,omitempty"`
	SSLState   enums.SslState `json:"sslState,omitempty"`
	Thumbprint string         `json:"thumbprint,omitempty"`
	ToUpdate   bool           `json:"toUpdate,omitempty"`
	VirtualIP  string         `json:"virtualIP,omitempty"`
}

type HostingEnvironmentProfile

type HostingEnvironmentProfile struct {
	Id   string `json:"id,omitempty"`
	Name string `json:"name,omitempty"`
	Type string `json:"type,omitempty"`
}

type IPRule

type IPRule struct {
	// An IPv4 address range in CIDR notation, such as '124.56.78.91' (simple IP address)
	// or '124.56.78.0/24' (all addresses that start with 124.56.78).
	Value string `json:"value,omitempty"`
}

A rule governing the accessibility of a vault from a specific ip address or ip range.

type ImageReference

type ImageReference struct {
	// Specifies in decimal numbers, the version of platform image or marketplace image used to create the virtual
	// machine. This readonly field differs from 'version', only if the value specified in 'version' field is 'latest'.
	ExactVersion string `json:"exactVersion,omitempty"`

	// Resource ID.
	Id string `json:"id,omitempty"`

	// Specifies the offer of the platform image or marketplace image used to create the virtual machine.
	Offer string `json:"offer,omitempty"`

	// The image publisher
	Publisher string `json:"publisher,omitempty"`

	// Specified the shared gallery image unique id for vm deployment.
	// This can be fetched from shared gallery image GET call.
	SharedGalleryImageId string `json:"sharedGalleryImageId,omitempty"`

	// The image SKU.
	Sku string `json:"sku,omitempty"`

	// Specifies the version of the platform image or marketplace image used to create the virtual machine.
	// The allowed formats are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers.
	// Specify 'latest' to use the latest version of an image available at deploy time. Even if you use 'latest',
	// the VM image will not automatically update after deploy time even if a new version becomes available.
	Version string `json:"version,omitempty"`
}

Specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This element is required when you want to use a platform image, marketplace image, or virtual machine image, but is not used in other creation operations. NOTE: Image reference publisher and offer can only be set when you create the scale set.

type ImmutabilityPolicy

type ImmutabilityPolicy struct {
	Etag          string                       `json:"etag,omitempty"`
	Properties    ImmutabilityPolicyProperties `json:"properties,omitempty"`
	UpdateHistory ImmutablePolicyUpdateHistory `json:"updateHistory,omitempty"`
}

type ImmutabilityPolicyProperties

type ImmutabilityPolicyProperties struct {
	AllowProtectedAppendWrites            bool                          `json:"allowProtectedAppendWrites,omitempty"`
	AllowProtectedAppendWritesAll         bool                          `json:"allowProtectedAppendWritesAll,omitempty"`
	ImmutabilityPeriodSinceCreationInDays int                           `json:"immutabilityPeriodSinceCreationInDays,omitempty"`
	State                                 enums.ImmutabilityPolicyState `json:"updateHistory,omitempty"`
}

type ImmutablePolicyUpdateHistory

type ImmutablePolicyUpdateHistory struct {
	AllowProtectedAppendWrites            bool                               `json:"allowProtectedAppendWrites,omitempty"`
	AllowProtectedAppendWritesAll         bool                               `json:"allowProtectedAppendWritesAll,omitempty"`
	ImmutabilityPeriodSinceCreationInDays int                                `json:"immutabilityPeriodSinceCreationInDays,omitempty"`
	ObjectIdentifier                      string                             `json:"objectIdentifier,omitempty"`
	TenantId                              string                             `json:"tenantId,omitempty"`
	Timestamp                             string                             `json:"timestamp,omitempty"`
	Update                                enums.ImmutabilityPolicyUpdateType `json:"update,omitempty"`
	Upn                                   string                             `json:"upn,omitempty"`
}

type ImmutableStorageAccount

type ImmutableStorageAccount struct {
	Enabled            bool                                `json:"enabled,omitempty"`
	ImmutabilityPolicy AccountImmutabilityPolicyProperties `json:"immutabilityPolicy,omitempty"`
}

type ImmutableStorageWithVersioning

type ImmutableStorageWithVersioning struct {
	Enabled        bool                 `json:"enabled,omitempty"`
	MigrationState enums.MigrationState `json:"migrationState,omitempty"`
	TimeStamp      string               `json:"timeStamp,omitempty"`
}

type ImplicitGrantSettings

type ImplicitGrantSettings struct {
	// Specifies whether this web application can request an ID token using the OAuth 2.0 implicit flow.
	EnableIdTokenIssuance bool `json:"enableIdTokenIssuance,omitempty"`

	// Specifies whether this web application can request an access token using the OAuth 2.0 implicit flow.
	EnableAccessTokenIssuance bool `json:"enableAccessTokenIssuance,omitempty"`
}

Specifies whether this web application can request tokens using the OAuth 2.0 implicit flow. Separate properties are available to request ID and access tokens as part of the implicit flow. To enable implicit flow, at least one of the following properties must be set to true.

type InformationalUrl

type InformationalUrl struct {
	// CDN URL to the application's logo, Read-only.
	LogoUrl string `json:"logoUrl,omitempty"`

	// Link to the application's marketing page. For example, https://www.contoso.com/app/marketing
	MarketingUrl string `json:"marketingUrl,omitempty"`

	// Link to the application's privacy statement. For example, https://www.contoso.com/app/privacy
	PrivacyStatementUrl string `json:"privacyStatementUrl,omitempty"`

	// Link to the application's support page. For example, https://www.contoso.com/app/support
	SupportUrl string `json:"supportUrl,omitempty"`

	// Link to the application's terms of service statement. For example, https://www.contoso.com/app/termsofservice
	TermsOfServiceUrl string `json:"termsOfServiceUrl,omitempty"`
}

Basic profile information of the application. For more detail see https://docs.microsoft.com/en-us/graph/api/resources/informationalurl?view=graph-rest-1.0

type InstanceViewStatus

type InstanceViewStatus struct {
	// The status code.
	Code string `json:"code,omitempty"`

	// The short localizable label for the status.
	DisplayStatus string `json:"displayStatus,omitempty"`

	// The level code.
	Level enums.StatusLevel `json:"level,omitempty"`

	// The detailed status message, including for alerts and error messages.
	Message string `json:"message,omitempty"`

	// The time of the status.
	Time string `json:"time,omitempty"`
}

type IpSecurityRestriction

type IpSecurityRestriction struct {
	Action               string            `json:"action,omitempty"`
	Description          string            `json:"description,omitempty"`
	Headers              interface{}       `json:"headers,omitempty"`
	IpAddress            string            `json:"ipAddress,omitempty"`
	Name                 string            `json:"name,omitempty"`
	Priority             int               `json:"priority,omitempty"`
	SubnetMask           string            `json:"subnetMask,omitempty"`
	SubnetTrafficTag     int               `json:"subnetTrafficTag,omitempty"`
	Tag                  enums.IpFilterTag `json:"tag,omitempty"`
	VnetSubnetResourceId string            `json:"vnetSubnetResourceId,omitempty"`
	VnetTrafficTag       int               `json:"vnetTrafficTag,omitempty"`
}

type KeyCredential

type KeyCredential struct {
	// Custom key identifier
	// Base64Url encoded.
	CustomKeyIdentifier string `json:"customKeyIdentifier,omitempty"`

	// Friendly name for the key.
	// Optional.
	DisplayName string `json:"displayName,omitempty"`

	// The date and time at which the credential expires.
	// The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time.
	// For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
	EndDateTime string `json:"endDateTime,omitempty"`

	// The certificate's raw data in byte array converted to Base64 string;
	// For example, [System.Convert]::ToBase64String($Cert.GetRawCertData()).
	// Base64Url encoded.
	Key []byte `json:"key,omitempty"`

	// The unique identifier (GUID) for the key.
	KeyId uuid.UUID `json:"keyId,omitempty"`

	// The date and time at which the credential becomes valid.The Timestamp type represents date and time information
	// using ISO 8601 format and is always in UTC time.
	// For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
	StartDateTime string `json:"startDateTime,omitempty"`

	// The type of key credential; for example, Symmetric.
	Type string `json:"type,omitempty"`

	// A string that describes the purpose for which the key can be used; for example, Verify.
	Usage string `json:"usage,omitempty"`
}

Contains a key credential associated with an application. For more detail see https://docs.microsoft.com/en-us/graph/api/resources/keycredential?view=graph-rest-1.0

type KeyValue

type KeyValue struct {
	Key   string `json:"key,omitempty"`
	Value string `json:"value,omitempty"`
}

type KeyVault

type KeyVault struct {
	Entity

	// Azure location of the key vault resource.
	Location string `json:"location,omitempty"`

	// Name of the key vault resource.
	Name string `json:"name,omitempty"`

	// Properties of the vault
	Properties VaultProperties `json:"properties,omitempty"`

	// Tags assigned to the key vault resource.
	Tags map[string]string `json:"tags,omitempty"`

	// Resource type.
	Type string `json:"type,omitempty"`
}

Resource information with extended details.

func (KeyVault) ResourceGroupId

func (s KeyVault) ResourceGroupId() string

func (KeyVault) ResourceGroupName

func (s KeyVault) ResourceGroupName() string

type KeyVaultKeyReference

type KeyVaultKeyReference struct {
	// The URL referencing a key encryption key in Key Vault.
	KeyUrl string `json:"keyUrl,omitempty"`

	// The relative URL of the Key Vault containing the key.
	SourceVault SubResource `json:"sourceVault,omitempty"`
}

Describes a reference to a Key Vault Key

type KeyVaultList

type KeyVaultList struct {
	NextLink string     `json:"nextLink,omitempty"` // The URL to use for getting the next set of values.
	Value    []KeyVault `json:"value"`              // A list of key vaults.
}

type KeyVaultPermissions

type KeyVaultPermissions struct {
	// Permissions to certificates
	Certificates []string `json:"certificates,omitempty"`

	// Permissions to keys
	Keys []string `json:"keys,omitempty"`

	// Permissions to secrets
	Secrets []string `json:"secrets,omitempty"`

	// Permissions to storage accounts
	Storage []string `json:"storage,omitempty"`
}

Permissions the identity has for keys, secrets, certificates and storage.

type KeyVaultProperties

type KeyVaultProperties struct {
	CurrentVersionedKeyExpirationTimestamp string `json:"currentVersionedKeyExpirationTimestamp,omitempty"`
	CurrentVersionedKeyIdentifier          string `json:"currentVersionedKeyIdentifier,omitempty"`
	KeyName                                string `json:"keyName,omitempty"`
	KeyVersion                             string `json:"keyVersion,omitempty"`
	KeyvaultUri                            string `json:"keyvaultUri,omitempty"`
	LastKeyRotationTimestamp               string `json:"lastKeyRotationTimestamp,omitempty"`
}

type KeyVaultResult

type KeyVaultResult struct {
	SubscriptionId string
	Error          error
	Ok             KeyVault
}

type KeyVaultSecretReference

type KeyVaultSecretReference struct {
	// The URL referencing a secret in a Key Vault.
	SecretUrl string `json:"secretUrl,omitempty"`

	// The relative URL of the Key Vault containing the secret.
	SourceVault SubResource `json:"sourceVault,omitempty"`
}

Describes a reference to a Key Vault Secret.

type LastPatchInstallationSummary

type LastPatchInstallationSummary struct {
	// The errors that were encountered during execution of the operation. The details array contains the list of them.
	Error ODataError `json:"error,omitempty"`

	// The number of all available patches but excluded explicitly by a customer-specified exclusion list match.
	ExcludedPatchCount int `json:"excludedPatchCount,omitempty"`

	// The count of patches that failed installation.
	FailedPatchCount int `json:"failedPatchCount,omitempty"`

	// The activity ID of the operation that produced this result. It is used to correlate across CRP and extension logs.
	InstallationActivityId string `json:"installationActivityId,omitempty"`

	// The count of patches that successfully installed.
	InstalledPatchCount int `json:"installedPatchCount,omitempty"`

	// The UTC timestamp when the operation began.
	LastModifiedTime string `json:"lastModifiedTime,omitempty"`

	// Describes whether the operation ran out of time before it completed all its intended actions.
	MaintenanceWindowExceeded bool `json:"maintenanceWindowExceeded,omitempty"`

	// The number of all available patches but not going to be installed because it didn't match a classification or
	// inclusion list entry.
	NotSelectedPatchCount int `json:"notSelectedPatchCount,omitempty"`

	// The number of all available patches expected to be installed over the course of the patch installation operation.
	PendingPatchCount int `json:"pendingPatchCount,omitempty"`

	// The UTC timestamp when the operation began.
	StartTime string `json:"startTime,omitempty"`

	// The overall success or failure status of the operation. It remains "InProgress" until the operation completes.
	// At that point it will become "Unknown", "Failed", "Succeeded", or "CompletedWithWarnings."
	Status enums.PatchStatus `json:"status,omitempty"`
}

Describes the properties of the last installed patch summary.

type LegalHoldProperties

type LegalHoldProperties struct {
	HasLegalHold                 bool                         `json:"hasLegalHold,omitempty"`
	ProtectedAppendWritesHistory ProtectedAppendWritesHistory `json:"protectedAppendWritesHistory,omitempty"`
	Tags                         []TagProperty                `json:"tags,omitempty"`
}

type LicenseAssignmentState

type LicenseAssignmentState struct {
	// The id of the group that assigns this license. If direct-assigned this field will be null.
	//
	// Read-only
	AssignedByGroup string `json:"assignedByGroup,omitempty"`

	// The service plans that are disabled in this assignment.
	//
	// Read-only
	DisabledPlans string `json:"disabledPlans,omitempty"`

	// License assignment failure error.
	Error enums.LicenseError `json:"error,omitempty"`

	// The unique identifier for the SKU
	//
	// Read-only
	SkuId string `json:"skuId,omitempty"`

	// Indicates the current state of this assignment.
	//
	// Read-only
	State enums.LicenseState `json:"state,omitempty"`
}

Provides details about license assignments to a user.

type LinuxConfiguration

type LinuxConfiguration struct {
	// Specifies whether password authentication should be disabled.
	DisablePasswordAuthentication bool `json:"disablePasswordAuthentication,omitempty"`

	// [Preview Feature] Specifies settings related to VM Guest Patching on Linux.
	PatchSettings LinuxPatchSettings `json:"patchSettings,omitempty"`

	// Indicates whether virtual machine agent should be provisioned on the virtual machine.
	// When this property is not specified in the request body, default behavior is to set it to true. This will ensure
	// that VM Agent is installed on the VM so that extensions can be added to the VM later.
	ProvisionVMAgent bool `json:"provisionVMAgent,omitempty"`

	// Specifies the ssh key configuration for a Linux OS.
	Ssh SshConfiguration `json:"ssh,omitempty"`
}

Specifies the Linux operating system settings on the virtual machine. For a list of supported Linux distributions, see Linux on Azure-Endorsed Distributions.

type LinuxPatchSettings

type LinuxPatchSettings struct {
	// Specifies the mode of VM Guest Patch Assessment for the IaaS virtual machine.
	// Possible values are:
	// ImageDefault - You control the timing of patch assessments on a virtual machine.
	// AutomaticByPlatform - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true.
	AssessmentMode string `json:"assessmentMode,omitempty"`

	// Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible.
	// Possible values are:
	// ImageDefault - The virtual machine's default patching configuration is used.
	// AutomaticByPlatform - The virtual machine will be automatically updated by the platform. The property provisionVMAgent must be true
	PatchMode string `json:"patchMode,omitempty"`
}

Specifies settings related to VM Guest Patching on Linux.

type LocaleInfo

type LocaleInfo struct {
	// A locale code for the user, which includes the user's perferred language and country/region as defined
	// in ISO 639-1 and ISO 3166-1 alpha-2. E.g. "en-us"
	Locale string `json:"locale,omitempty"`

	// A name representing the user's locale in natural language. E.g. "English (United States)"
	DisplayName string `json:"displayName,omitempty"`
}

type LogicApp

type LogicApp struct {
	Entity

	Identity   ManagedIdentity    `json:"identity,omitempty"`
	Location   string             `json:"location,omitempty"`
	Name       string             `json:"name,omitempty"`
	Properties LogicAppProperties `json:"properties,omitempty"`
	Tags       map[string]string  `json:"tags,omitempty"`
	Type       string             `json:"type,omitempty"`
}

func (LogicApp) ResourceGroupId

func (s LogicApp) ResourceGroupId() string

func (LogicApp) ResourceGroupName

func (s LogicApp) ResourceGroupName() string

type LogicAppEndpointConfiguration

type LogicAppEndpointConfiguration struct {
	OutgoingIpAddresses       []AddressEndpointConfiguration `json:"outgoingIpAddresses,omitempty"`
	AccessEndpointIpAddresses []AddressEndpointConfiguration `json:"accessEndpointIpAddresses,omitempty"`
}

type LogicAppList

type LogicAppList struct {
	NextLink string     `json:"nextLink,omitempty"` // The URL to use for getting the next set of values.
	Value    []LogicApp `json:"value"`              // A list of logic apps.
}

type LogicAppParameter

type LogicAppParameter struct {
	Description string `json:"description,omitempty"`
	//Metadata - marked as object in MSDN, however no other description available - in testing was not able to return a value here
	Metadata interface{}         `json:"metadata,omitempty"`
	Type     enums.ParameterType `json:"type,omitempty"`
	Value    interface{}         `json:"value,omitempty"`
}

func (LogicAppParameter) GetValue

func (s LogicAppParameter) GetValue() interface{}

type LogicAppProperties

type LogicAppProperties struct {
	AccessEndpoint     string            `json:"accessEndpoint,omitempty"`
	ChangedTime        string            `json:"changedTime,omitempty"`
	CreatedTime        string            `json:"createdTime,omitempty"`
	Definition         Definition        `json:"definition,omitempty"`
	IntegrationAccount ResourceReference `json:"integrationAccount,omitempty"`
	// Note: in testing this does not get populated, instead the parameters are listed within the definition
	Parameters        map[string]LogicAppParameter    `json:"parameters,omitempty"`
	ProvisioningState enums.LogicAppProvisioningState `json:"provisioningState,omitempty"`
	Sku               LogicAppSku                     `json:"sku,omitempty"`
	State             enums.LogicAppState             `json:"state,omitempty"`
	Version           string                          `json:"version,omitempty"`

	// This does not appear in the documentation, however, it gets populated in the response
	EndpointConfiguration EndpointConfiguration `json:"endpointsConfiguration,omitempty"`
}

type LogicAppResult

type LogicAppResult struct {
	SubscriptionId string
	Error          error
	Ok             LogicApp
}

type LogicAppSku

type LogicAppSku struct {
	Name enums.SkuName     `json:"name,omitempty"`
	Plan ResourceReference `json:"plan,omitempty"`
}

type MailboxSettings

type MailboxSettings struct {
	// Folder ID of an archive folder for the user.
	ArchiveFolder string `json:"archiveFolder,omitempty"`

	// Configuration settings to automatically notify the sender of an incoming email with a message from the signed-in
	// user.
	AutomaticRepliesSetting AutomaticRepliesSetting `json:"automaticRepliesSetting,omitempty"`

	// The date format for the user's mailbox.
	DateFormat string `json:"dateFormat,omitempty"`

	// If the user has a calendar delegate, this specifies whether the delegate, mailbox owner, or both receive meeting
	// messages and meeting responses.
	DelegateMeetingMessageDeliveryOptions enums.MessageDeliveryOptions `json:"delegateMeetingMessageDeliveryOptions,omitempty"`

	// The locale information for the user, including the preferred language and country/region.
	Language LocaleInfo `json:"language,omitempty"`

	// The time format for the user's mailbox.
	TimeFormat string `json:"timeFormat,omitempty"`

	// The default time zone for the user's mailbox.
	TimeZone string `json:"timeZone,omitempty"`

	// The days of the week and hours in a specific time zone that the user works.
	WorkingHours WorkingHours `json:"workingHours,omitempty"`
}

type MaintenanceRedeployStatus

type MaintenanceRedeployStatus struct {
	// True if customer is allowed to perform maintenance.
	IsCustomerInitiatedMaintenanceAllowed bool `json:"isCustomerInitiatedMaintenanceAllowed,omitempty"`

	// Message returned for the last maintenance operation.
	LastOperationMessage string `json:"lastOperationMessage,omitempty"`

	// The last maintenance operation result code.
	LastOperationResultCode enums.MaintenanceOperationCode `json:"lastOperationResultCode,omitempty"`

	// End time for the maintenance window.
	MaintenanceWindowEndTime string `json:"maintenanceWindowEndTime,omitempty"`

	// Start time for the maintenance window.
	MaintenanceWindowStartTime string `json:"maintenanceWindowStartTime,omitempty"`

	// End time for the pre maintenance window.
	PreMaintenanceWindowEndTime string `json:"preMaintenanceWindowEndTime,omitempty"`

	// Start time for the pre maintenance window.
	PreMaintenanceWindowStartTime string `json:"preMaintenanceWindowStartTime,omitempty"`
}

Maintenance operations status.

type ManagedByTenant

type ManagedByTenant struct {
	// The tenant ID of the managing tenant.
	TenantId uuid.UUID `json:"tenantId,omitempty"`
}

Information about a tenant managing the subscription.

type ManagedCluster

type ManagedCluster struct {
	Entity

	ExtendedLocation ExtendedLocation         `json:"extendedLocation,omitempty"`
	Identity         ManagedIdentity          `json:"identity,omitempty"`
	Properties       ManagedClusterProperties `json:"properties,omitempty"`
	Location         string                   `json:"location,omitempty"`
	Name             string                   `json:"name,omitempty"`
	Plan             Plan                     `json:"plan,omitempty"`
	Tags             map[string]string        `json:"tags,omitempty"`
	Type             string                   `json:"type,omitempty"`
	Zones            []string                 `json:"zones,omitempty"`
}

func (ManagedCluster) ResourceGroupId

func (s ManagedCluster) ResourceGroupId() string

func (ManagedCluster) ResourceGroupName

func (s ManagedCluster) ResourceGroupName() string

type ManagedClusterList

type ManagedClusterList struct {
	NextLink string           `json:"nextLink,omitempty"` // The URL to use for getting the next set of values.
	Value    []ManagedCluster `json:"value"`              // A list of managed clusters.
}

type ManagedClusterProperties

type ManagedClusterProperties struct {
	// The name of the AzureRM Resource Group the Managed Cluster's Virtual Machine Scale Set resides
	NodeResourceGroup string `json:"nodeResourceGroup,omitempty"`
}

Properties of the vault

type ManagedClusterResult

type ManagedClusterResult struct {
	SubscriptionId string
	Error          error
	Ok             ManagedCluster
}

type ManagedDiskParameters

type ManagedDiskParameters struct {
	// Specifies the customer managed disk encryption set resource id for the managed disk.
	DiskEncryptionSet DiskEncryptionSetParameters `json:"diskEncryptionSet,omitempty"`

	// Resource ID.
	Id string `json:"id,omitempty"`

	// Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks,
	// it cannot be used with OS Disk.
	StorageAccountType enums.StorageType `json:"storageAccountType,omitempty"`
}

The parameters of a managed disk.

type ManagedIdentity

type ManagedIdentity struct {
	// The principal id of the managed identity. The property will only be provided for a system assigned
	// identity.
	PrincipalId string `json:"principalId,omitempty"`

	// The tenant id associated with the managed identity. This property will only be provided for a system assigned
	// identity.
	TenantId string `json:"tenantId,omitempty"`

	// The type of identity used.
	Type enums.Identity `json:"type,omitempty"`

	// The list of user identities associated with the Managed identity. The user identity dictionary key references will be
	// ARM resource ids in the form:
	// '/subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'
	UserAssignedIdentities map[string]UserAssignedIdentity `json:"userAssignedIdentities,omitempty"`
}

Managed identity.

type ManagementGroup

type ManagementGroup struct {
	Entity

	// The name of the management group. E.g. 00000000-0000-0000-0000-000000000000
	Name string `json:"name,omitempty"`

	// The properties of the management group.
	Properties ManagementGroupProperties `json:"properties,omitempty"`

	// The type of resource: "Microsoft.Management/managementGroups"
	Type string `json:"type,omitempty"`
}

type ManagementGroupChildInfo

type ManagementGroupChildInfo struct {
	Children    []ManagementGroupChildInfo `json:"children,omitempty"`
	DisplayName string                     `json:"displayName,omitempty"`
	Id          string                     `json:"id,omitempty"`
	Name        string                     `json:"name,omitempty"`
	Type        string                     `json:"type,omitempty"`
}

The child information of a management group.

type ManagementGroupDetails

type ManagementGroupDetails struct {
	Parent      ParentGroupInfo              `json:"parent,omitempty"`
	Path        []ManagementGroupPathElement `json:"path,omitempty"`
	UpdatedBy   string                       `json:"updatedBy,omitempty"`
	UpdatedTime string                       `json:"updatedTime,omitempty"`
	Version     int                          `json:"version,omitempty"`
}

type ManagementGroupList

type ManagementGroupList struct {
	NextLink string            `json:"nextLink,omitempty"` // The URL to use for getting the next set of values.
	Value    []ManagementGroup `json:"value"`              // A list of tenants.
}

type ManagementGroupPathElement

type ManagementGroupPathElement struct {
	DisplayName string `json:"displayName,omitempty"`
	Name        string `json:"name,omitempty"`
}

type ManagementGroupProperties

type ManagementGroupProperties struct {
	// The list of children.
	Children []ManagementGroupChildInfo `json:"children,omitempty"`

	// The details of the management group.
	Details ManagementGroupDetails `json:"details,omitempty"`

	// The friendly name of the management group.
	DisplayName string `json:"displayName,omitempty"`

	// The Azure AD Tenant ID associated with the management group. E.g. 00000000-0000-0000-0000-000000000000
	TenantId string `json:"tenantId,omitempty"`
}

The properties of the management group.

type ManagementGroupResult

type ManagementGroupResult struct {
	Error error
	Ok    ManagementGroup
}

type MemberObjectList

type MemberObjectList struct {
	Count    int               `json:"@odata.count,omitempty"`    // The total count of all results
	NextLink string            `json:"@odata.nextLink,omitempty"` // The URL to use for getting the next set of values.
	Context  string            `json:"@odata.context,omitempty"`
	Value    []json.RawMessage `json:"value"`
}

type MemberObjectResult

type MemberObjectResult struct {
	ParentId   string
	ParentType string
	Error      error
	Ok         json.RawMessage
}

type Metadata

type Metadata struct {
	Description interface{} `json:"description,omitempty"`
}

type NameValuePair

type NameValuePair struct {
	Name  string `json:"name,omitempty"`
	Value string `json:"value,omitempty"`
}

type NetworkInterfaceReference

type NetworkInterfaceReference struct {
	// Resource ID.
	Id string `json:"id,omitempty"`

	Properties NetworkInterfaceReferenceProperties `json:"properties,omitempty"`
}

Describes a network interface reference.

type NetworkInterfaceReferenceProperties

type NetworkInterfaceReferenceProperties struct {
	// Specify what happens to the network interface when the VM is deleted.
	DeleteOption enums.VMDeleteOption `json:"deleteOption,omitempty"`

	// Specifies the primary network interface in case the virtual machine has more than 1 network interface.
	Primary bool `json:"primary,omitempty"`
}

type NetworkProfile

type NetworkProfile struct {
	// Specifies the Microsoft.Network API version used when creating networking resources in the Network Interface
	// Configurations.
	NetworkApiVersion string `json:"networkApiVersion,omitempty"`

	// Specifies the networking configurations that will be used to create the virtual machine networking resources.
	NetworkInterfaceConfigurations []VirtualMachineNetworkInterfaceConfiguration `json:"networkInterfaceConfigurations,omitempty"`

	// Specifies the list of resource Ids for the network interfaces associated with the virtual machine.
	NetworkInterfaces []NetworkInterfaceReference `json:"networkInterfaces,omitempty"`
}

Specifies the network interfaces or the networking configuration of the virtual machine.

type NetworkRuleSet

type NetworkRuleSet struct {
	// Tells what traffic can bypass network rules. This can be 'AzureServices' or 'None'.
	// If not specified the default is 'AzureServices'.
	Bypass enums.BypassOption `json:"bypass,omitempty"`

	// The default action when no rule from ipRules and from virtualNetworkRules match.
	// This is only used after the bypass property has been evaluated.
	DefaultAction enums.NetworkAction `json:"defaultAction,omitempty"`

	// The list of IP address rules.
	IPRules []IPRule `json:"ipRules,omitempty"`

	// The list of virtual network rules.
	VirtualNetworkRules []VirtualNetworkRule `json:"virtualNetworkRules,omitempty"`
}

A set of rules governing the network accessibility of a vault.

type ODataError

type ODataError struct {
	AdditionalInfo []ErrorAdditionalInfo `json:"additionalInfo,omitempty"`
	Code           string                `json:"code"`
	Details        []ODataError          `json:"details,omitempty"`
	Message        string                `json:"message"`
	InnerError     *ODataError           `json:"innererror,omitempty"`
	Target         string                `json:"target,omitempty"`
}

type OSDisk

type OSDisk struct {
	// Specifies the caching requirements.
	// Possible values are:
	// None
	// ReadOnly
	// ReadWrite
	//
	// Default: None for Standard storage. ReadOnly for Premium storage.
	Caching string `json:"caching,omitempty"`

	// Specifies how the virtual machine should be created.
	// Possible values are:
	// Attach - This value is used when you are using a specialized disk to create the virtual machine.
	// FromImage - This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you also use the plan element previously described.
	CreateOption string `json:"createOption,omitempty"`

	// Specifies whether data disk should be deleted or detached upon VM deletion.
	// Possible values:
	// Delete - If this value is used, the data disk is deleted when VM is deleted.
	// Detach - If this value is used, the data disk is retained after VM is deleted.
	// The default value is set to detach. For an ephemeral OS Disk, the default value is set to Delete. User cannot change the delete option for ephemeral OS Disk.
	DeleteOption string `json:"deleteOption,omitempty"`

	// Specifies the ephemeral Disk Settings for the operating system disk used by the virtual machine.
	DiffDiskSettings DiffDiskSettings `json:"diffDiskSettings,omitempty"`

	// Specifies the size of an empty data disk in gigabytes.
	// This element can be used to overwrite the size of the disk in a virtual machine image.
	// This value cannot be larger than 1023 GB
	DiskSizeGB int `json:"diskSizeGB,omitempty"`

	// Specifies the encryption settings for the OS Disk.
	// Minimum api-version: 2015-06-15
	EncryptionSettings DiskEncryptionSettings `json:"encryptionSettings,omitempty"`

	// The source user image virtual hard disk. The virtual hard disk will be copied before being attached to the
	// virtual machine. If SourceImage is provided, the destination virtual hard drive must not exist.
	Image VirtualHardDisk `json:"image,omitempty"`

	// The managed disk parameters.
	ManagedDisk ManagedDiskParameters `json:"managedDisk,omitempty"`

	// The disk name.
	Name string `json:"name,omitempty"`

	// This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD.
	// Possible values are:
	// - Windows
	// - Linux
	OSType string `json:"osType,omitempty"`

	// The virtual hard disk.
	Vhd VirtualHardDisk `json:"vhd,omitempty"`

	// Specifies whether writeAccelerator should be enabled or disabled on the disk.
	WriteAcceleratorEnabled bool `json:"writeAcceleratorEnabled,omitempty"`
}

Specifies information about the operating system disk used by the virtual machine. For more information about disks, see About disks and VHDs for Azure virtual machines.

type OSProfile

type OSProfile struct {
	// Specifies the password of the administrator account.
	// Minimum-length (Windows): 8 characters
	// Minimum-length (Linux): 6 characters
	// Max-length (Windows): 123 characters
	// Max-length (Linux): 72 characters
	// Complexity requirements: 3 out of 4 conditions below need to be fulfilled
	// Has lower characters
	// Has upper characters
	// Has a digit
	// Has a special character (Regex match [\W_])
	// Disallowed values: "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!"
	// For resetting the password, see How to reset the Remote Desktop service or its login password in a Windows VM
	// For resetting root password, see Manage users, SSH, and check or repair disks on Azure Linux VMs using the VMAccess Extension
	AdminPassword string `json:"adminPassword,omitempty,omitempty"`

	// Specifies the name of the administrator account.
	// This property cannot be updated after the VM is created.
	// Windows-only restriction: Cannot end in "."
	// Disallowed values: "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5".
	// Minimum-length (Linux): 1 character
	// Max-length (Linux): 64 characters
	// Max-length (Windows): 20 characters.
	AdminUsername string `json:"adminUsername,omitempty,omitempty"`

	// Specifies whether extension operations should be allowed on the virtual machine.
	// This may only be set to False when no extensions are present on the virtual machine.
	AllowExtensionOperations bool `json:"allowExtensionOperations,omitempty,omitempty"`

	// Specifies the host OS name of the virtual machine.
	// This name cannot be updated after the VM is created.
	// Max-length (Windows): 15 characters
	// Max-length (Linux): 64 characters.
	// For naming conventions and restrictions see Azure infrastructure services implementation guidelines.
	ComputerName string `json:"computerName,omitempty,omitempty"`

	// Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes.
	// Note: Do not pass any secrets or passwords in customData property
	// This property cannot be updated after the VM is created.
	// customData is passed to the VM to be saved as a file, for more information see Custom Data on Azure VMs
	// For using cloud-init for your Linux VM, see Using cloud-init to customize a Linux VM during creation
	CustomData string `json:"customData,omitempty,omitempty"`

	// Specifies the Linux operating system settings on the virtual machine.
	// For a list of supported Linux distributions, see Linux on Azure-Endorsed Distributions.
	LinuxConfiguration LinuxConfiguration `json:"linuxConfiguration,omitempty,omitempty"`

	// Specifies whether the guest provision signal is required to infer provision success of the virtual machine.
	// Note: This property is for private testing only, and all customers must not set the property to false.
	RequireGuestProvisionSignal bool `json:"requireGuestProvisionSignal,omitempty,omitempty"`

	// Specifies set of certificates that should be installed onto the virtual machine. To install certificates on a
	// virtual machine it is recommended to use the Azure Key Vault virtual machine extension for Linux or the
	// Azure Key Vault virtual machine extension for Windows.
	Secrets []VaultSecretGroup `json:"secrets,omitempty,omitempty"`

	// Specifies Windows operating system settings on the virtual machine.
	WindowsConfiguration WindowsConfiguration `json:"windowsConfiguration,omitempty,omitempty"`
}

Specifies the operating system settings for the virtual machine. Some of the settings cannot be changed once VM is provisioned.

type ObjectIdentity

type ObjectIdentity struct {
	// Specifies the user sign-in types in your directory.
	// Federated represents a unique identifier for a user from an issuer, that can be in any format chosen by the
	// issuer.
	// Setting or updating a UserPrincipalName identity will update the value of the userPrincipalName property on the
	// user object. The validations performed on the userPrincipalName property on the user object, for example,
	// verified domains and acceptable characters, will be performed when setting or updating a UserPrincipalName
	// identity.
	// Additional validation is enforced on issuerAssignedId when the sign-in type is set to Email or UserName.
	// This property can also be set to any custom string; use string(SignInType) or enums.signintype(someValue) to
	// convert appropriately.
	SignInType enums.SigninType `json:"signInType,omitempty"`

	// Specifies the issuer of the identity.
	// **Notes:**
	// * For local accounts where {@link SignInType} is not `federated`, the value is the local B2C tenant default domain
	//   name.
	// * For external users from other Azure AD organizations, this will be the domain of the federated organization.
	//
	// Supports `$filter` w/ 512 character limit.
	Issuer string `json:"issuer,omitempty"`

	// Specifies the unique identifier assigned to the user by the issuer. The combination of issuer and
	// issuerAssignedId must be unique within the organization.
	// For more detail, see https://docs.microsoft.com/en-us/graph/api/resources/objectidentity?view=graph-rest-1.0
	//
	// Supports `$filter` w/ 100 character limit
	IssuerAssignedId string `json:"issuerAssignedId,omitempty"`
}

Represents an identity used to sign in to a user account. An identity can be provided by Microsoft (a.k.a. local account), by organizations, or by 3rd party identity providers such as Facebook or Google that are tied to a user account. Note: For `$filter` both {@link Issuer} and {@link IssuerAssignedId} must be supplied. For more detail, see https://docs.microsoft.com/en-us/graph/api/resources/objectidentity?view=graph-rest-1.0

type OnPremisesExtensionAttributes

type OnPremisesExtensionAttributes struct {
	ExtensionAttribute1  string `json:"extensionAttribute1,omitempty"`
	ExtensionAttribute2  string `json:"extensionAttribute2,omitempty"`
	ExtensionAttribute3  string `json:"extensionAttribute3,omitempty"`
	ExtensionAttribute4  string `json:"extensionAttribute4,omitempty"`
	ExtensionAttribute5  string `json:"extensionAttribute5,omitempty"`
	ExtensionAttribute6  string `json:"extensionAttribute6,omitempty"`
	ExtensionAttribute7  string `json:"extensionAttribute7,omitempty"`
	ExtensionAttribute8  string `json:"extensionAttribute8,omitempty"`
	ExtensionAttribute9  string `json:"extensionAttribute9,omitempty"`
	ExtensionAttribute10 string `json:"extensionAttribute10,omitempty"`
	ExtensionAttribute11 string `json:"extensionAttribute11,omitempty"`
	ExtensionAttribute12 string `json:"extensionAttribute12,omitempty"`
	ExtensionAttribute13 string `json:"extensionAttribute13,omitempty"`
	ExtensionAttribute14 string `json:"extensionAttribute14,omitempty"`
	ExtensionAttribute15 string `json:"extensionAttribute15,omitempty"`
}

The return type of the onPremisesExtensionAttributes property of the user object and extensionAttributes property of the device object. Returns fifteen custom extension attribute properties.

On the user entity and for an onPremisesSyncEnabled user, the source of authority for this set of properties is the on-premises Active Directory which is synchronized to Azure AD, and is read-only. For a cloud-only user (where onPremisesSyncEnabled is false), these properties can be set during creation or update. If a cloud-only user was previously synced from on-premises Active Directory, these properties cannot be managed via the Microsoft Graph API. Instead, they can be managed through the Exchange Admin Center or the Exchange Online V2 module in PowerShell.

The extensionAttributes property of the device entity is managed only in Azure AD during device creation or update. Note: These extension attributes are also known as Exchange custom attributes 1-15.

type OnPremisesProvisioningError

type OnPremisesProvisioningError struct {
	// Category of the provisioning error. Note: Currently, there is only one possible value.
	// Possible value: PropertyConflict - indicates a property value is not unique. Other objects contain the same value
	// for the property.
	Category string `json:"category,omitempty"`

	// The date and time at which the error occurred.
	OccurredDateTime string `json:"occurredDateTime,omitempty"`

	// Name of the directory property causing the error. Current possible values: UserPrincipalName or ProxyAddress.
	PropertyCausingError string `json:"propertyCausingError,omitempty"`

	// Value of the property causing the error.
	Value string `json:"value,omitempty"`
}

Represents directory synchronization errors for the user, group and orgContact resources when synchronizing on-premises directories to Azure Active Directory.

type OptionalClaim

type OptionalClaim struct {
	// Additional properties of the claim. If a property exists in this collection, it modifies the behavior of the
	// optional claim specified in the name property.
	AdditionalProperties []string `json:"additionalProperties,omitempty"`

	// If the value is true, the claim specified by the client is necessary to ensure a smooth authorization experience
	// for the specific task requested by the end user. The default value is false.
	Essential bool `json:"essential,omitempty"`

	// The name of the optional claim.
	Name string `json:"name,omitempty"`

	// The source (directory object) of the claim.
	// There are predefined claims and user-defined claims from extension properties. If the source value is null, the
	// claim is a predefined optional claim. If the source value is user, the value in the name property is the
	// extension property from the user object.
	Source string `json:"source,omitempty"`
}

Contains an optional claim associated with an application . The idToken, accessToken, and saml2Token properties of the optionalClaims resource is a collection of optionalClaim. If supported by a specific claim, you can also modify the behavior of the optionalClaim using the additionalProperties property. For more detail see https://docs.microsoft.com/en-us/graph/api/resources/optionalclaim?view=graph-rest-1.0

type OptionalClaims

type OptionalClaims struct {
	// The optional claims returned in the JWT ID token.
	IdToken []OptionalClaim `json:"idToken,omitempty"`

	// The optional claims returned in the JWT access token.
	AccessToken []OptionalClaim `json:"accessToken,omitempty"`

	// The optional claims returned in the SAML token.
	Saml2Token []OptionalClaim `json:"saml2Token,omitempty"`
}

Declares the optional claims requested by an application. An application can configure optional claims to be returned in each of three types of tokens (ID token, access token, SAML 2 token) it can receive from the security token service. An application can configure a different set of optional claims to be returned in each token type.

Application developers can configure optional claims in their Azure AD apps to specify which claims they want in tokens sent to their application by the Microsoft security token service. For more detail see https://docs.microsoft.com/en-us/graph/api/resources/optionalclaims?view=graph-rest-1.0

type Organization

type Organization struct {
	DirectoryObject

	// The collection of service plans associated with the tenant
	AssignedPlans []AssignedPlan `json:"assignedPlans,omitempty"`

	// Telephone number for the organization. Although this is a string collection, only one number can be set for this
	// property.
	BusinessPhones []string `json:"businessPhones,omitempty"`

	// City name of the address for the organization.
	City string `json:"city,omitempty"`

	// Country or region name of the address for the organization.
	Country string `json:"country,omitempty"`

	// Country or region abbreviation for the organization in ISO 3166-2 format.
	CountryLetterCode string `json:"countryLetterCode,omitempty"`

	// Timestamp of when the organization was created. The value cannot be modified and is automatically populated when
	// the organization is created. The Timestamp type represents date and time information using ISO 8601 format and is
	// always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
	//
	// Read-only.
	CreatedDateTime string `json:"createdDateTime,omitempty"`

	// Represents date and time of when the Azure AD tenant was deleted using ISO 8601 format and is always in UTC time.
	// For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
	//
	// Read-only.
	DeletedDateTime string `json:"deletedDateTime,omitempty"`

	// The display name for the tenant.
	DisplayName string `json:"displayName,omitempty"`

	// `true` if organization is Multi-Geo enabled; false if organization is not Multi-Geo enabled;
	//
	// null (default).
	// Read-only.
	IsMultipleDataLocationsForServicesEnabled bool `json:"isMultipleDataLocationsForServicesEnabled,omitempty"`

	MarketingNotificationEmails []string `json:"marketingNotificationEmails,omitempty"`

	// The time and date at which the tenant was last synced with the on-premises directory.
	// The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time.
	// For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
	//
	// Read-only.
	OnPremisesLastSyncDateTime string `json:"onPremisesLastSyncDateTime,omitempty"`

	// `true` if this object is synced from an on-premises directory;
	// `false` if this object was originally synced from an on-premises directory but is no longer synced.
	// `null` if this object has never been synced from an on-premises directory (default).
	OnPremisesSyncEnabled *bool `json:"onPremisesSyncEnabled,omitempty"`

	// Postal code of the address for the organization.
	PostalCode string `json:"postalCode,omitempty"`

	// The preferred language for the organization.
	// Should follow ISO 639-1 Code; for example, `en`.
	PreferredLanguage string `json:"preferredLanguage,omitempty"`

	// The privacy profile of an organization.
	PrivacyProfile PrivacyProfile `json:"privacyProfile,omitempty"`

	ProvisionedPlans []ProvisionedPlan `json:"provisionedPlans,omitempty"`

	SecurityComplianceNotificationMails []string `json:"securityComplianceNotificationMails,omitempty"`

	SecurityComplianceNotificationPhones []string `json:"securityComplianceNotificationPhones,omitempty"`

	// State name of the address for the organization
	State string `json:"state,omitempty"`

	// Street name of the address for the organization.
	Street string `json:"streetAddress,omitempty"`

	TechnicalNotificationMails []string `json:"technicalNotificationMails,omitempty"`

	// The tenant type. Only available for 'Home' TenantCategory
	TenantType string `json:"tenantType,omitempty"`

	// The collection of domains associated with this tenant.
	VerifiedDomains []VerifiedDomain `json:"verifiedDomains,omitempty"`
}

Represents the Azure Active Directory tenant that the user or application is signed in to

func (Organization) ToTenant

func (s Organization) ToTenant() Tenant

type OrganizationList

type OrganizationList struct {
	Count    int            `json:"@odata.count,omitempty"`    // The total count of all results
	NextLink string         `json:"@odata.nextLink,omitempty"` // The URL to use for getting the next set of values.
	Value    []Organization `json:"value"`                     // A list of organizations.
}

type Output

type Output struct {
	Type string `json:"type,omitempty"`
	// Type of this is based on above Type
	Value interface{} `json:"value,omitempty"`
}

type Parameter

type Parameter struct {
	Type          string        `json:"type,omitempty"`
	DefaultValue  interface{}   `json:"defaultValue,omitempty"`
	AllowedValues []interface{} `json:"allowedValues,omitempty"`
	Metadata      Metadata      `json:"metadata,omitempty"`
}

type ParentGroupInfo

type ParentGroupInfo struct {
	DisplayName string `json:"displayName,omitempty"`
	Id          string `json:"id,omitempty"`
	Name        string `json:"name,omitempty"`
}

type ParentalControlSettings

type ParentalControlSettings struct {
	// Specifies the ISO 3166 country codes for which access to the application will be blocked for minors.
	CountriesBlockedForMinors []string `json:"countriesBlockedForMinors,omitempty"`
	// Specifies the legal age group rule that applies to users of the app.
	LegalAgeGroupRule enums.LegalAgeGroupRule `json:"legalAgeGroupRule,omitempty"`
}

Specifies parental control settings for an application. These settings control the consent experience. For more detail see https://docs.microsoft.com/en-us/graph/api/resources/parentalcontrolsettings?view=graph-rest-1.0

type PasswordCredential

type PasswordCredential struct {
	// Friendly name for the password. Optional.
	DisplayName string `json:"displayName,omitempty"`

	// The date and time at which the password expires represented using ISO 8601 format and is always in UTC time.
	// For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Optional.
	EndDateTime string `json:"endDateTime,omitempty"`

	// Contains the first three characters of the password. Read-only.
	Hint string `json:"hint,omitempty"`

	// The unique identifier for the password.
	KeyId uuid.UUID `json:"keyId,omitempty"`

	// Read-only; Contains the strong passwords generated by Azure AD that are 16-64 characters in length.
	// The generated password value is only returned during the initial POST request to addPassword. There is no way to
	// retrieve this password in the future.
	SecretText string `json:"secretText,omitempty"`

	// The date and time at which the password becomes valid. The Timestamp type represents date and time information
	// using ISO 8601 format and is always in UTC time.
	// For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Optional.
	StartDateTime string `json:"startDateTime,omitempty"`
}

Represents a password credential associated with an application or a service principal. For more detail see https://docs.microsoft.com/en-us/graph/api/resources/passwordcredential?view=graph-rest-1.0

type PasswordProfile

type PasswordProfile struct {
	// true if the user must change her password on the next login; otherwise false. If not set, default is false.
	// NOTE: For Azure B2C tenants, set to false and instead use custom policies and user flows to force password reset
	// at first sign in.
	ForceChangePasswordNextSignIn bool `json:"forceChangePasswordNextSignIn,omitempty"`

	// If true, at next sign-in, the user must perform a multi-factor authentication (MFA) before being forced to change
	// their password. The behavior is identical to forceChangePasswordNextSignIn except that the user is required to
	// first perform a multi-factor authentication before password change. After a password change, this property will
	// be automatically reset to false. If not set, default is false.
	ForceChangePasswordNextSignInWithMfa bool `json:"forceChangePasswordNextSignInWithMfa,omitempty"`

	// The password for the user. This property is required when a user is created.
	// It can be updated, but the user will be required to change the password on the next login.
	// The password must satisfy minimum requirements as specified by the user’s passwordPolicies property.
	// By default, a strong password is required.
	Password string `json:"password,omitempty"`
}

Contains the password profile associated with a user.

type PermissionScope

type PermissionScope struct {
	// A description of the delegated permissions, intended to be read by an administrator granting the permission on
	// behalf of all users. This text appears in tenant-wide admin consent experiences.
	AdminConsentDescription string `json:"adminConsentDescription,omitempty"`

	// The permission's title, intended to be read by an administrator granting the permission on behalf of all users.
	AdminConsentDisplayName string `json:"adminConsentDisplayName,omitempty"`

	// Unique delegated permission identifier inside the collection of delegated permissions defined for a resource
	// application.
	Id uuid.UUID `json:"id,omitempty"`

	// When creating or updating a permission, this property must be set to true (which is the default). To delete a
	// permission, this property must first be set to false. At that point, in a subsequent call, the permission may be
	// removed.
	IsEnabled bool `json:"isEnabled,omitempty"`

	// Specifies whether this delegated permission should be considered safe for non-admin users to consent to on behalf
	// of themselves, or whether an administrator should be required for consent to the permissions. This will be the
	// default behavior, but each customer can choose to customize the behavior in their organization (by allowing,
	// restricting or limiting user consent to this delegated permission.)
	Type string `json:"type,omitempty"`

	// A description of the delegated permissions, intended to be read by a user granting the permission on their own
	// behalf. This text appears in consent experiences where the user is consenting only on behalf of themselves.
	UserConsentDescription string `json:"userConsentDescription,omitempty"`

	// A title for the permission, intended to be read by a user granting the permission on their own behalf. This text
	// appears in consent experiences where the user is consenting only on behalf of themselves.
	UserConsentDisplayName string `json:"userConsentDisplayName,omitempty"`

	// Specifies the value to include in the scp (scope) claim in access tokens.
	// Must not exceed 120 characters in length.
	// Allowed characters are : ! # $ % & ' ( ) * + , - . / : ; < = > ? @ [ ] ^ + _ ` { | } ~, as well as characters in
	// the ranges 0-9, A-Z and a-z.
	// Any other character, including the space character, are not allowed.
	// May not begin with ..
	Value string `json:"value,omitempty"`
}

Represents the definition of a delegated permission.

Delegated permissions can be requested by client applications needing an access token to the API which defined the permissions. Delegated permissions can be requested dynamically, using the scopes parameter in an authorization request to the Microsoft identity platform, or statically, through the requiredResourceAccess collection on the application object. For more detail see https://docs.microsoft.com/en-us/graph/api/resources/permissionscope?view=graph-rest-1.0

type Plan

type Plan struct {
	// The plan ID.
	Name string `json:"name,omitempty"`

	// Specifies the product of the image from the marketplace. This is the same value as Offer under the imageReference
	// element.
	Product string `json:"product,omitempty"`

	// The promotion code.
	PromotionCode string `json:"promotionCode,omitempty"`

	// The publisher ID.
	Publisher string `json:"publisher,omitempty"`
}

Specifies information about the marketplace image used to create the virtual machine. This element is only used for marketplace images. Before you can use a marketplace image from an API, you must enable the image for programmatic use. In the Azure portal, find the marketplace image that you want to use and then click Want to deploy programmatically, Get Started ->. Enter any required information and then click Save.

type PreAuthorizedApplication

type PreAuthorizedApplication struct {
	// The unique identifier for the application.
	AppId string `json:"appId,omitempty"`
	// The unique identifiers for the OAuth2PermissionScopes the application requires.
	PermissionIds []string `json:"permissionIds,omitempty"`
	// The unique identifiers for the OAuth2PermissionScopes the application requires.
	DelegatedPermissionIds []string `json:"delegatedPermissionIds,omitempty"`
}

Lists the client applications that are pre-authorized with the specified permissions to access this application's APIs. Users are not required to consent to any pre-authorized application (for the permissions specified). However, any additional permissions not listed in preAuthorizedApplications (requested through incremental consent for example) will require user consent.

type PrivacyProfile

type PrivacyProfile struct {
	// A valid smtp email address for the privacy statement contact.
	// Not required.
	ContactEmail string `json:"contactEmail,omitempty"`

	// The URL that directs to the company's privacy statement.
	// A valid URL format that begins with http:// or https://.
	// Maximum length is 255 characters.
	// Not required.
	StatementUrl string `json:"statementUrl,omitempty"`
}

Represents a company's privacy profile, which includes a privacy statement URL and a contact person for questions regarding the privacy statement.

type PrivateEndpoint

type PrivateEndpoint struct {
	// Full identifier of the private endpoint resource.
	Id string `json:"id,omitempty"`
}

type PrivateEndpointConnection

type PrivateEndpointConnection struct {
	Entity

	Name string `json:"name,omitempty"`
	Type string `json:"type,omitempty"`

	Properties PrivateEndpointConnectionProperties `json:"properties,omitempty"`
}

Private endpoint connection item.

type PrivateEndpointConnectionItem

type PrivateEndpointConnectionItem struct {
	// Modified whenever there is a change in the state of private endpoint connection.
	Etag string `json:"etag,omitempty"`

	// Id of private endpoint connection.
	Id string `json:"id,omitempty"`

	Properties ConnectionItemProperties `json:"properties,omitempty"`
}

Private endpoint connection item.

type PrivateEndpointConnectionProperties

type PrivateEndpointConnectionProperties struct {
	GroupIds                          []string                                  `json:"groupIds,omitempty"`
	PrivateEndpoint                   Entity                                    `json:"privateEndpoint,omitempty"`
	PrivateLinkServiceConnectionState PrivateLinkServiceConnectionStateProperty `json:"privateLinkServiceConnectionState,omitempty"`
}

Private endpoint connection item.

type PrivateEndpointConnectionResource

type PrivateEndpointConnectionResource struct {
	Id         string                   `json:"id,omitempty"`
	Name       string                   `json:"name,omitempty"`
	Properties ConnectionItemProperties `json:"properties,omitempty"`
	Type       string                   `json:"type,omitempty"`
}

Private endpoint connection item.

type PrivateLinkServiceConnectionState

type PrivateLinkServiceConnectionState struct {
	// A message indicating if changes on the service provider require any updates on the consumer.
	ActionsRequired string `json:"actionsRequired,omitempty"`

	// The reason for approval or rejection.
	Description string `json:"description,omitempty"`

	// Indicates whether the connection has been approved, rejected or removed by the key vault owner.
	Status enums.EndpointConnectionStatus `json:"status,omitempty"`
}

An object that represents the approval state of the private link connection.

type PrivateLinkServiceConnectionStateProperty

type PrivateLinkServiceConnectionStateProperty struct {
	ActionsRequired string `json:"actionsRequired,omitempty"`
	Description     string `json:"description,omitempty"`
	Status          string `json:"status,omitempty"`
}

type ProtectedAppendWritesHistory

type ProtectedAppendWritesHistory struct {
	AllowProtectedAppendWritesAll bool   `json:"allowProtectedAppendWritesAll,omitempty"`
	Timestamp                     string `json:"timestamp,omitempty"`
}

type ProvisionedPlan

type ProvisionedPlan struct {
	// For example, “Enabled”.
	CapabilityStatus string `json:"capabilityStatus,omitempty"`

	// For example, “Success”.
	ProvisioningStatus string `json:"provisioningStatus,omitempty"`

	// The name of the service; for example, “AccessControlS2S”
	Service string `json:"service,omitempty"`
}

type PublicClientApplication

type PublicClientApplication struct {
	// Specifies the URLs where user tokens are sent for sign-in, or the redirect URIs where OAuth 2.0 authorization
	// codes and access tokens are sent.
	RedirectUris []string `json:"redirectUris,omitempty"`
}

Specifies settings for non-web app or non-web API (for example, mobile or other public clients such as an installed application running on a desktop device).

type PushSettings

type PushSettings struct {
	Id         string                 `json:"id,omitempty"`
	Kind       string                 `json:"kind,omitempty"`
	Name       string                 `json:"name,omitempty"`
	Properties PushSettingsProperties `json:"properties,omitempty"`
	Type       string                 `json:"type,omitempty"`
}

type PushSettingsProperties

type PushSettingsProperties struct {
	DynamicTagsJson   string `json:"dynamicTagsJson,omitempty"`
	IsPushEnabled     bool   `json:"isPushEnabled,omitempty"`
	TagWhitelistJson  string `json:"tagWhitelistJson,omitempty"`
	TagsRequiringAuth string `json:"tagsRequiringAuth,omitempty"`
}

type RampUpRule

type RampUpRule struct {
	ActionHostName            string `json:"actionHostName,omitempty"`
	ChangeDecisionCallbackUrl string `json:"changeDecisionCallbackUrl,omitempty"`
	ChangeIntervalInMinutes   int    `json:"changeIntervalInMinutes,omitempty"`
	ChangeStep                int    `json:"changeStep,omitempty"`
	MaxReroutePercentage      int    `json:"maxReroutePercentage,omitempty"`
	MinReroutePercentage      int    `json:"minReroutePercentage,omitempty"`
	Name                      string `json:"name,omitempty"`
	ReroutePercentage         int    `json:"reroutePercentage,omitempty"`
}

type Recurrence

type Recurrence struct {
	Frequency string `json:"frequency,omitempty"`
	Interval  int    `json:"interval,omitempty"`
}

type RequestsBasedTrigger

type RequestsBasedTrigger struct {
	Count        int    `json:"count,omitempty"`
	TimeInterval string `json:"timeinterval,omitempty"`
}

type RequiredResourceAccess

type RequiredResourceAccess struct {
	// The list of OAuth2.0 permission scopes and app roles that the application requires from the specified resource.
	ResourceAccess []ResourceAccess `json:"resourceAccess,omitempty"`

	// The unique identifier for the resource that the application requires access to. This should be equal to the
	// {@link AppId} declared on the target resource application.
	ResourceAppId string `json:"resourceAppId,omitempty"`
}

Specifies the set of OAuth 2.0 permission scopes and app roles under the specified resource that an application requires access to. The application may request the specified OAuth 2.0 permission scopes or app roles through the requiredResourceAccess property.

type ResourceAccess

type ResourceAccess struct {
	// The unique identifier for one of the OAuth2PermissionScopes or AppRole instances that the resource application
	// exposes.
	Id uuid.UUID `json:"id,omitempty"`

	// Specifies whether the {@link Id} property references an OAuth2PermissionScope or AppRole.
	Type enums.AccessType `json:"type,omitempty"`
}

Object used to specify an OAuth 2.0 permission scope or an app role that an application requires.

type ResourceGroup

type ResourceGroup struct {
	Entity

	// The location of the resource group. It cannot be changed after the resource group has been created. It must be
	// one of the supported Azure locations.
	Location string `json:"location,omitempty"`

	// The ID of the resource that manages this resource group.
	ManagedBy string `json:"managedBy,omitempty"`

	// The name of the resource group.
	Name string `json:"name,omitempty"`

	// The resource group properties.
	Properties ResourceGroupProperties `json:"properties,omitempty"`

	// The tags attached to the resource group.
	Tags map[string]string `json:"tags,omitempty"`

	// The type of the resource group.
	Type string `json:"type,omitempty"`
}

type ResourceGroupList

type ResourceGroupList struct {
	NextLink string          `json:"nextLink,omitempty"` // The URL to use for getting the next set of values.
	Value    []ResourceGroup `json:"value"`              // A list of tenants.
}

type ResourceGroupProperties

type ResourceGroupProperties struct {
	ProvisioningState string `json:"provisioningState,omitempty"`
}

type ResourceGroupResult

type ResourceGroupResult struct {
	SubscriptionId string
	Error          error
	Ok             ResourceGroup
}

type ResourceReference

type ResourceReference struct {
	Entity

	Name string `json:"name,omitempty"`
	Type string `json:"type,omitempty"`
}

type Response

type Response struct {
	Context  string            `json:"@odata.context,omitempty"`
	Count    int               `json:"@odata.count,omitempty"`
	NextLink string            `json:"@odata.nextLink,omitempty"`
	Value    []json.RawMessage `json:"value"`
}

type ResultOutput

type ResultOutput struct {
	Headers    map[string]string `json:"headers,omitempty"`
	StatusCode string            `json:"statusCode,omitempty"`
}

type Role

type Role struct {
	DirectoryObject

	// The description for the role. Read-only when isBuiltIn is true.
	Description string `json:"description,omitempty"`

	// The display name for the role.
	//
	// Read-only when isBuiltIn is true
	// Required
	// Supports $filter (eq, in).
	DisplayName string `json:"displayName,omitempty"`

	// Flag indicating whether the role definition is part of the default set included in
	// Azure Active Directory (Azure AD) or a custom definition.
	//
	// Read-only
	// Supports $filter (eq, in)
	IsBuiltIn bool `json:"isBuiltIn,omitempty"`

	// Flag indicating whether the role is enabled for assignment.
	// If false the role is not available for assignment.
	//
	// Read-only when isBuiltIn is true
	IsEnabled bool `json:"isEnabled,omitempty"`

	// List of the scopes or permissions the role definition applies to.
	// Currently only `/` is supported.
	//
	// Read-only when isBuiltIn is true
	// Note: DO NOT USE. This will be deprecated soon. Attach scope to role assignment.
	ResourceScopes []string `json:"resourceScopes,omitempty"`

	// List of permissions included in the role.
	//
	// Read-only when isBuiltIn is true
	// Required
	RolePermissions []RolePermission `json:"rolePermissions,omitempty"`

	// Custom template identifier that can be set when isBuiltIn is false but is read-only when isBuiltIn is true.
	// This identifier is typically used if one needs an identifier to be the same across different directories.
	TemplateId string `json:"templateId,omitempty"`

	// Indicates version of the role definition.
	//
	// Read-only when isBuiltIn is true
	Version string `json:"version,omitempty"`
}

A role definition is a collection of permissions in Azure Active Directory (Azure AD) listing the operations that can be performed and the resources against which they can performed.

type RoleAssignment

type RoleAssignment struct {
	// The role assignment ID.
	Id string `json:"id,omitempty"`

	// The role assignment name.
	Name string `json:"name,omitempty"`

	// The role assignment type.
	Type string `json:"type,omitempty"`

	// Role assignment properties
	Properties RoleAssignmentPropertiesWithScope `json:"properties,omitempty"`
}

func (RoleAssignment) GetPrincipalId

func (s RoleAssignment) GetPrincipalId() string

type RoleAssignmentList

type RoleAssignmentList struct {
	// The URL to use for getting the next set of results.
	NextLink string `json:"nextLink,omitempty"`

	// The role assignment list.
	Value []RoleAssignment `json:"value"`
}

type RoleAssignmentPropertiesWithScope

type RoleAssignmentPropertiesWithScope struct {
	// The principal ID.
	PrincipalId string `json:"principalId,omitempty"`

	// The role definition ID.
	RoleDefinitionId string `json:"roleDefinitionId,omitempty"`

	// The role assignment scope.
	Scope string `json:"scope,omitempty"`
}

type RoleAssignmentResult

type RoleAssignmentResult struct {
	ParentId string
	Error    error
	Ok       RoleAssignment
}

type RoleList

type RoleList struct {
	Count    int    `json:"@odata.count,omitempty"`    // The total count of all results
	NextLink string `json:"@odata.nextLink,omitempty"` // The URL to use for getting the next set of values.
	Value    []Role `json:"value"`                     // A list of roles.
}

type RolePermission

type RolePermission struct {
	// Set of tasks that can be performed on a resource.
	//
	// Required
	AllowedResourceActions []string `json:"allowedResourceActions,omitempty"`

	// Optional constraints that must be met for the permission to be effective.
	Condition string `json:"condition,omitempty"`

	// Set of tasks that may not be performed on a resource.
	// Not yet supported by MS Graph API.
	ExcludedResourceActions []string `json:"excludedResourceActions,omitempty"`
}

Represents a collection of allowed resource actions and the conditions that must be met for the action to be allowed. Resource actions are tasks that can be performed on a resource. For example, an application resource may support create, update, delete, and reset password actions.

type RoleResult

type RoleResult struct {
	Error error
	Ok    Role
}

type RoutingPreference

type RoutingPreference struct {
	PublishInternetEndpoints  bool                `json:"publishInternetEndpoints,omitempty"`
	PublishMicrosoftEndpoints bool                `json:"publishMicrosoftEndpoints,omitempty"`
	RoutingChoice             enums.RoutingChoice `json:"routingChoice,omitempty"`
}

type SPAApplication

type SPAApplication struct {
	// Specifies the URLs where user tokens are sent for sign-in, or the redirect URIs where OAuth 2.0 authorization
	// codes and access tokens are sent.
	RedirectUris []string `json:"redirectUris,omitempty"`
}

Specifies settings for a single-page application.

type SamlSingleSignOnSettings

type SamlSingleSignOnSettings struct {
	// The relative URI the service provider would redirect to after completion of the single sign-on flow.
	RelayState string `json:"relayState,omitempty"`
}

Represents a container for settings related to SAML single sign-on.

type SasPolicy

type SasPolicy struct {

	//according to the documentation, this can only be the string "Log"
	ExpirationAction    string `json:"expirationAction,omitempty"`
	SasExpirationPeriod string `json:"sasExpirationPeriod,omitempty"`
}

type ScheduledEventsProfile

type ScheduledEventsProfile struct {
	// Specifies Terminate Scheduled Event related configurations.
	TerminateNotificationProfile TerminateNotificationProfile `json:"terminateNotificationProfile,omitempty"`
}

type SecurityProfile

type SecurityProfile struct {
	// This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine
	// or virtual machine scale set. This will enable the encryption for all the disks including Resource/Temp disk at
	// host itself.
	// Default: The Encryption at host will be disabled unless this property is set to true for the resource.
	EncryptionAtHost bool `json:"encryptionAtHost,omitempty"`

	// Specifies the SecurityType of the virtual machine. It is set as TrustedLaunch to enable UefiSettings.
	// Default: UefiSettings will not be enabled unless this property is set as TrustedLaunch.
	SecurityType string `json:"securityType,omitempty"`

	// Specifies the security settings like secure boot and vTPM used while creating the virtual machine.
	// Minimum api-version: 2020-12-01
	UefiSettings UefiSettings `json:"uefiSettings,omitempty"`
}

Specifies the Security profile settings for the virtual machine or virtual machine scale set.

type ServicePrincipal

type ServicePrincipal struct {
	DirectoryObject

	// true if the service principal account is enabled; otherwise, false.
	// Supports $filter (eq, ne, NOT, in).
	AccountEnabled bool `json:"accountEnabled,omitempty"`

	// Defines custom behavior that a consuming service can use to call an app in specific contexts.
	// For example, applications that can render file streams may set the addIns property for its "FileHandler"
	// functionality. This will let services like Microsoft 365 call the application in the context of a document the
	// user is working on.
	AddIns []AddIn `json:"addIns,omitempty"`

	// Used to retrieve service principals by subscription, identify resource group and full resource ids for managed
	// identities.
	// Supports $filter (eq, NOT, ge, le, startsWith).
	AlternativeNames []string `json:"alternativeNames,omitempty"`

	// The description exposed by the associated application.
	AppDescription string `json:"appDescription,omitempty"`

	// The display name exposed by the associated application.
	AppDisplayName string `json:"appDisplayName,omitempty"`

	// The unique identifier for the associated application (its appId property).
	AppId string `json:"appId,omitempty"`

	// Unique identifier of the applicationTemplate that the servicePrincipal was created from.
	// Read-only.
	// Supports $filter (eq, ne, NOT, startsWith).
	ApplicationTemplateId string `json:"applicationTemplateId,omitempty"`

	// Contains the tenant id where the application is registered.
	// This is applicable only to service principals backed by applications.
	// Supports $filter (eq, ne, NOT, ge, le).
	AppOwnerOrganizationId string `json:"appOwnerOrganizationId,omitempty"`

	// Specifies whether users or other service principals need to be granted an app role assignment for this service
	// principal before users can sign in or apps can get tokens.
	// The default value is false.
	// Not nullable.
	// Supports $filter (eq, ne, NOT).
	AppRoleAssignmentRequired bool `json:"appRoleAssignmentRequired,omitempty"`

	// The roles exposed by the application which this service principal represents.
	// For more information see the appRoles property definition on the application entity.
	// Not nullable.
	AppRoles []AppRole `json:"appRoles,omitempty"`

	// The date and time the service principal was deleted.
	// Read-only.
	DeletedDateTime string `json:"deletedDateTime,omitempty"`

	// Free text field to provide an internal end-user facing description of the service principal.
	// End-user portals such MyApps will display the application description in this field.
	// The maximum allowed size is 1024 characters.
	// Supports $filter (eq, ne, NOT, ge, le, startsWith) and $search.
	Description string `json:"description,omitempty"`

	// Specifies whether Microsoft has disabled the registered application.
	// Possible values are: null (default value), NotDisabled, and DisabledDueToViolationOfServicesAgreement
	// (reasons may include suspicious, abusive, or malicious activity, or a violation of the Microsoft Services
	// Agreement).
	// Supports $filter (eq, ne, NOT).
	DisabledByMicrosoftStatus string `json:"disabledByMicrosoftStatus,omitempty"`

	// The display name for the service principal.
	// Supports $filter (eq, ne, NOT, ge, le, in, startsWith), $search, and $orderBy.
	DisplayName string `json:"displayName,omitempty"`

	// Home page or landing page of the application.
	Homepage string `json:"homepage,omitempty"`

	// Basic profile information of the acquired application such as app's marketing, support, terms of service and
	// privacy statement URLs. The terms of service and privacy statement are surfaced to users through the user consent
	// experience.
	// Supports $filter (eq, ne, NOT, ge, le).
	Info InformationalUrl `json:"info,omitempty"`

	// The collection of key credentials associated with the service principal.
	// Not nullable.
	// Supports $filter (eq, NOT, ge, le).
	KeyCredentials []KeyCredential `json:"keyCredentials,omitempty"`

	// Specifies the URL where the service provider redirects the user to Azure AD to authenticate.
	// Azure AD uses the URL to launch the application from Microsoft 365 or the Azure AD My Apps. When blank, Azure AD
	// performs IDP-initiated sign-on for applications configured with SAML-based single sign-on. The user launches the
	// application from Microsoft 365, the Azure AD My Apps, or the Azure AD SSO URL.
	LoginUrl string `json:"loginUrl,omitempty"`

	// Specifies the URL that will be used by Microsoft's authorization service to logout an user using OpenId Connect
	// front-channel, back-channel or SAML logout protocols.
	LogoutUrl string `json:"logoutUrl,omitempty"`

	// Free text field to capture information about the service principal, typically used for operational purposes.
	// Maximum allowed size is 1024 characters.
	Notes string `json:"notes,omitempty"`

	// Specifies the list of email addresses where Azure AD sends a notification when the active certificate is near the
	// expiration date. This is only for the certificates used to sign the SAML token issued for Azure AD Gallery
	// applications.
	NotificationEmailAddresses []string `json:"notificationEmailAddresses,omitempty"`

	// The delegated permissions exposed by the application.
	OAuth2PermissionScopes []PermissionScope `json:"oauth2PermissionScopes,omitempty"`

	// The collection of password credentials associated with the application.
	// Not nullable.
	PasswordCredentials []PasswordCredential `json:"passwordCredentials,omitempty"`

	// Specifies the single sign-on mode configured for this application.
	// Azure AD uses the preferred single sign-on mode to launch the application from Microsoft 365 or the Azure AD My Apps.
	// The supported values are password, saml, notSupported, and oidc.
	PreferredSingleSignOnMode string `json:"preferredSingleSignOnMode,omitempty"`

	// The URLs that user tokens are sent to for sign in with the associated application, or the redirect URIs that
	// OAuth 2.0 authorization codes and access tokens are sent to for the associated application.
	// Not nullable.
	ReplyUrls []string `json:"replyUrls,omitempty"`

	// The collection for settings related to saml single sign-on.
	SamlSingleSignOnSettings SamlSingleSignOnSettings `json:"samlSingleSignOnSettings,omitempty"`

	// Contains the list of identifiersUris, copied over from the associated application.
	// Additional values can be added to hybrid applications.
	// These values can be used to identify the permissions exposed by this app within Azure AD.
	// For example, Client apps can specify a resource URI which is based on the values of this property to acquire an
	// access token, which is the URI returned in the “aud” claim.
	// The any operator is required for filter expressions on multi-valued properties.
	// Not nullable.
	// Supports $filter (eq, NOT, ge, le, startsWith).
	ServicePrincipalNames []string `json:"servicePrincipalNames,omitempty"`

	// Identifies whether the service principal represents an application, a managed identity, or a legacy application.
	// This is set by Azure AD internally.
	ServicePrincipalType enums.ServicePrincipalType `json:"servicePrincipalType,omitempty"`

	// Specifies the Microsoft accounts that are supported for the current application.
	// Read-only.
	SignInAudience enums.SigninAudience `json:"signInAudience,omitempty"`

	// Custom strings that can be used to categorize and identify the service principal. Not nullable.
	// Supports $filter (eq, NOT, ge, le, startsWith).
	Tags []string `json:"tags,omitempty"`

	// Specifies the keyId of a public key from the keyCredentials collection.
	// When configured, Azure AD issues tokens for this application encrypted using the key specified by this property.
	// The application code that receives the encrypted token must use the matching private key to decrypt the token
	// before it can be used for the signed-in user.
	TokenEncryptionKeyId string `json:"tokenEncryptionKeyId,omitempty"`

	// Specifies the verified publisher of the application which this service principal represents.
	VerifiedPublisher VerifiedPublisher `json:"verifiedPublisher,omitempty"`
}

Represents an instance of an application in a directory. For more detail see https://docs.microsoft.com/en-us/graph/api/resources/serviceprincipal?view=graph-rest-1.0

type ServicePrincipalList

type ServicePrincipalList struct {
	Count    int                `json:"@odata.count,omitempty"`    // The total count of all results
	NextLink string             `json:"@odata.nextLink,omitempty"` // The URL to use for getting the next set of values.
	Value    []ServicePrincipal `json:"value"`                     // A list of ServicePrincipals.
}

type ServicePrincipalOwnerResult

type ServicePrincipalOwnerResult struct {
	Error              error
	ServicePrincipalId string
	Ok                 json.RawMessage
}

type ServicePrincipalResult

type ServicePrincipalResult struct {
	Error error
	Ok    ServicePrincipal
}

type SiteConfig

type SiteConfig struct {
	AcrUseManagedIdentityCreds             bool                             `json:"acrUseManagedIdentityCreds,omitempty"`
	AcrUserManagedIdentityID               string                           `json:"acrUserManagedIdentityID,omitempty"`
	AlwaysOn                               bool                             `json:"alwaysOn,omitempty"`
	ApiDefinition                          ApiDefinitionInfo                `json:"apiDefinition,omitempty"`
	ApiManagementConfig                    ApiManagementConfig              `json:"apiManagementConfig,omitempty"`
	AppCommandLine                         string                           `json:"appCommandLine,omitempty"`
	AppSettings                            []NameValuePair                  `json:"appSettings,omitempty"`
	AutoHealEnabled                        bool                             `json:"autoHealEnabled,omitempty"`
	AutoHealRules                          string                           `json:"autoHealRules,omitempty"`
	AutoSwapSlotName                       string                           `json:"autoSwapSlotName,omitempty"`
	AzureStorageAccounts                   map[string]AzureStorageInfoValue `json:"azureStorageAccounts,omitempty"`
	ConnectionStrings                      []ConnStringInfo                 `json:"connectionStrings,omitempty"`
	Cors                                   CorsSettings                     `json:"cors,omitempty"`
	DefaultDocuments                       []string                         `json:"defaultDocuments,omitempty"`
	DetailedErrorLoggingEnabled            bool                             `json:"detailedErrorLoggingEnabled,omitempty"`
	DocumentRoot                           string                           `json:"documentRoot,omitempty"`
	Experiments                            Experiments                      `json:"experiments,omitempty"`
	FtpsState                              enums.FtpsState                  `json:"ftpsState,omitempty"`
	FunctionAppScaleLimit                  int                              `json:"functionAppScaleLimit,omitempty"`
	FunctionsRuntimeScaleMonitoringEnabled bool                             `json:"functionsRuntimeScaleMonitoringEnabled,omitempty"`
	HandlerMappings                        []HandlerMapping                 `json:"handlerMappings,omitempty"`
	HealthCheckPath                        string                           `json:"healthCheckPath,omitempty"`
	Http20Enabled                          bool                             `json:"http20Enabled,omitempty"`
	HttpLoggingEnabled                     bool                             `json:"httpLoggingEnabled,omitempty"`
	IpSecurityRestrictions                 []IpSecurityRestriction          `json:"ipSecurityRestrictions,omitempty"`
	JavaContainer                          string                           `json:"javaContainer,omitempty"`
	JavaContainerVersion                   string                           `json:"javaContainerVersion,omitempty"`
	JavaVersion                            string                           `json:"javaVersion,omitempty"`
	KeyVaultReferenceIdentity              string                           `json:"keyVaultReferenceIdentity,omitempty"`
	Limits                                 SiteLimits                       `json:"limits,omitempty"`
	LinuxFxVersion                         string                           `json:"linuxFxVersion,omitempty"`
	LoadBalancing                          enums.SiteLoadBalancing          `json:"loadBalancing,omitempty"`
	LocalMySqlEnabled                      bool                             `json:"localMySqlEnabled,omitempty"`
	LogsDirectorySizeLimit                 int                              `json:"logsDirectorySizeLimit,omitempty"`
	MachineKey                             SiteMachineKey                   `json:"machineKey,omitempty"`
	ManagedPipelineMode                    enums.ManagedPipelineMode        `json:"managedPipelineMode,omitempty"`
	ManagedServiceIdentityId               int                              `json:"managedServiceIdentityId,omitempty"`
	MinTlsVersion                          enums.SupportedTlsVersions       `json:"minTlsVersion,omitempty"`
	MinimumElasticInstanceCount            int                              `json:"minimumElasticInstanceCount,omitempty"`
	NetFrameworkVersion                    string                           `json:"netFrameworkVersion,omitempty"`
	NodeVersion                            string                           `json:"nodeVersion,omitempty"`
	NumberOfWorkers                        int                              `json:"numberOfWorkers,omitempty"`
	PhpVersion                             string                           `json:"phpVersion,omitempty"`
	PowerShellVersion                      string                           `json:"powerShellVersion,omitempty"`
	PreWarmedInstanceCount                 int                              `json:"preWarmedInstanceCount,omitempty"`
	PublicNetworkAccess                    string                           `json:"publicNetworkAccess,omitempty"`
	PublishingUsername                     string                           `json:"publishingUsername,omitempty"`
	Push                                   PushSettings                     `json:"push,omitempty"`
	PythonVersion                          string                           `json:"pythonVersion,omitempty"`
	RemoteDebuggingEnabled                 bool                             `json:"remoteDebuggingEnabled,omitempty"`
	RemoteDebuggingVersion                 string                           `json:"remoteDebuggingVersion,omitempty"`
	RequestTracingEnabled                  bool                             `json:"requestTracingEnabled,omitempty"`
	RequestTracingExpirationTime           string                           `json:"requestTracingExpirationTime,omitempty"`
	ScmIpSecurityRestrictions              []IpSecurityRestriction          `json:"scmIpSecurityRestrictions,omitempty"`
	ScmIpSecurityRestrictionsUseMain       bool                             `json:"scmIpSecurityRestrictionsUseMain,omitempty"`
	ScmMinTlsVersion                       enums.SupportedTlsVersions       `json:"scmMinTlsVersion,omitempty"`
	ScmType                                enums.ScmType                    `json:"scmType,omitempty"`
	TracingOptions                         string                           `json:"tracingOptions,omitempty"`
	Use32BitWorkerProcess                  bool                             `json:"use32BitWorkerProcess,omitempty"`
	VirtualApplications                    []VirtualApplication             `json:"virtualApplications,omitempty"`
	VnetName                               string                           `json:"vnetName,omitempty"`
	VnetPrivatePortsCount                  int                              `json:"vnetPrivatePortsCount,omitempty"`
	VnetRouteAllEnabled                    bool                             `json:"vnetRouteAllEnabled,omitempty"`
	WebSocketsEnabled                      bool                             `json:"webSocketsEnabled,omitempty"`
	WebsiteTimeZone                        string                           `json:"websiteTimeZone,omitempty"`
	WindowsFxVersion                       string                           `json:"windowsFxVersion,omitempty"`
	XManagedServiceIdentityId              int                              `json:"xManagedServiceIdentityId,omitempty"`

	//Following ones have been found in testing, but not present in the documentation
	AntivirusScanEnabled                   bool        `json:"antivirusScanEnabled,omitempty"`
	AzureMonitorLogCategories              interface{} `json:"azureMonitorLogCategories,omitempty"`
	CustomAppPoolIdentityAdminState        interface{} `json:"customAppPoolIdentityAdminState,omitempty"`
	CustomAppPoolIdentityTenantState       interface{} `json:"customAppPoolIdentityTenantState,omitempty"`
	ElasticWebAppScaleLimit                interface{} `json:"elasticWebAppScaleLimit,omitempty"`
	FileChangeAuditEnabled                 bool        `json:"fileChangeAuditEnabled,omitempty"`
	Http20ProxyFlag                        interface{} `json:"http20ProxyFlag,omitempty"`
	IpSecurityRestrictionsDefaultAction    interface{} `json:"ipSecurityRestrictionsDefaultAction,omitempty"`
	Metadata                               interface{} `json:"metadata,omitempty"`
	MinTlsCipherSuite                      interface{} `json:"minTlsCipherSuite,omitempty"`
	PublishingPassword                     interface{} `json:"publishingPassword,omitempty"`
	RoutingRules                           interface{} `json:"routingRules,omitempty"`
	RuntimeADUser                          interface{} `json:"runtimeADUser,omitempty"`
	RuntimeADUserPassword                  interface{} `json:"runtimeADUserPassword,omitempty"`
	ScmIpSecurityRestrictionsDefaultAction interface{} `json:"scmIpSecurityRestrictionsDefaultAction,omitempty"`
	SitePort                               interface{} `json:"sitePort,omitempty"`
	StorageType                            interface{} `json:"storageType,omitempty"`
	SupportedTlsCipherSuites               interface{} `json:"supportedTlsCipherSuites,omitempty"`
	WinAuthAdminState                      interface{} `json:"winAuthAdminState,omitempty"`
	WinAuthTenantState                     interface{} `json:"winAuthTenantState,omitempty"`
}

type SiteLimits

type SiteLimits struct {
	MaxDiskSizeInMb  int `json:"maxDiskSizeInMb,omitempty"`
	MaxMemoryInMb    int `json:"maxMemoryInMb,omitempty"`
	MaxPercentageCpu int `json:"maxPercentageCpu,omitempty"`
}

type SiteMachineKey

type SiteMachineKey struct {
	Decryption    string `json:"decryption,omitempty"`
	DecryptionKey string `json:"decryptionKey,omitempty"`
	Validation    string `json:"validation,omitempty"`
	ValidationKey string `json:"validationKey,omitempty"`
}

type Sku

type Sku struct {
	// The SKU family name. Only available option is "A"
	Family string `json:"family,omitempty"`

	// SKU name to specify whether the key vault is a standard vault or a premium vault.
	Name enums.VaultSku `json:"name,omitempty"`
}

SKU details

type SlotSwapStatus

type SlotSwapStatus struct {
	DestinationSlotName string `json:"destinationSlotName,omitempty"`
	SourceSlotName      string `json:"sourceSlotName,omitempty"`
	TimestampUtc        string `json:"timestampUtc,omitempty"`
}

type SlowRequestsBasedTrigger

type SlowRequestsBasedTrigger struct {
	Count        int    `json:"count,omitempty"`
	Path         string `json:"path,omitempty"`
	TimeInterval string `json:"timeInterval,omitempty"`
	TimeTaken    string `json:"timeTaken,omitempty"`
}

type SshConfiguration

type SshConfiguration struct {
	// The list of SSH public keys used to authenticate with linux based VMs.
	PublicKeys []SshPublicKey `json:"publicKeys,omitempty"`
}

SSH configuration for Linux based VMs running on Azure.

type SshPublicKey

type SshPublicKey struct {
	// SSH public key certificate used to authenticate with the VM through ssh.
	// The key needs to be at least 2048-bit and in ssh-rsa format.
	// For creating ssh keys, see [Create SSH keys on Linux and Mac for Linux VMs in Azure](https://docs.microsoft.com/azure/virtual-machines/linux/create-ssh-keys-detailed).
	KeyData string `json:"keyData,omitempty"`

	// Specifies the full path on the created VM where ssh public key is stored.
	// If the file already exists, the specified key is appended to the file. Example: /home/user/.ssh/authorized_keys
	Path string `json:"path,omitempty"`
}

Contains information about SSH certificate public key and the path on the Linux VM where the public key is placed.

type StaticResult

type StaticResult struct {
	Outputs ResultOutput `json:"outputs,omitempty"`
	Status  string       `json:"status,omitempty"`
}

type StatusCodesBasedTrigger

type StatusCodesBasedTrigger struct {
	Count        int    `json:"count,omitempty"`
	Path         string `json:"path,omitempty"`
	Status       int    `json:"status,omitempty"`
	SubStatus    int    `json:"subStatus,omitempty"`
	TimeInterval string `json:"timeInterval,omitempty"`
	Win32Status  int    `json:"win32Status,omitempty"`
}

type StatusCodesRangeBasedTrigger

type StatusCodesRangeBasedTrigger struct {
	Count        int    `json:"count,omitempty"`
	Path         string `json:"path,omitempty"`
	StatusCodes  string `json:"statusCodes,omitempty"`
	TimeInterval string `json:"timeInterval,omitempty"`
}

type StorageAccount

type StorageAccount struct {
	Entity

	ExtendedLocation ExtendedLocation         `json:"extendedLocation,omitempty"`
	Identity         ManagedIdentity          `json:"identity,omitempty"`
	Kind             string                   `json:"kind,omitempty"`
	Location         string                   `json:"location,omitempty"`
	Name             string                   `json:"name,omitempty"`
	Properties       StorageAccountProperties `json:"properties,omitempty"`
	Sku              Sku                      `json:"sku,omitempty"`
	Tags             map[string]string        `json:"tags,omitempty"`
	Type             string                   `json:"type,omitempty"`
}

func (StorageAccount) ResourceGroupId

func (s StorageAccount) ResourceGroupId() string

func (StorageAccount) ResourceGroupName

func (s StorageAccount) ResourceGroupName() string

type StorageAccountCustomDomain

type StorageAccountCustomDomain struct {
	Name             string `json:"name,omitempty"`
	UseSubDomainName bool   `json:"useSubDomainName,omitempty"`
}

type StorageAccountEncryptionIdentity

type StorageAccountEncryptionIdentity struct {
	FederatedIdentityClientId string `json:"federatedIdentityClientId,omitempty"`
	UserAssignedIdentity      string `json:"userAssignedIdentity,omitempty"`
}

type StorageAccountEncryptionProperties

type StorageAccountEncryptionProperties struct {
	Identity                        StorageAccountEncryptionIdentity `json:"identity,omitempty"`
	KeySource                       enums.EncryptionKeySourceType    `json:"keySource,omitempty"`
	Keyvaultproperties              KeyVaultProperties               `json:"keyvaultproperties,omitempty"`
	RequireInfrastructureEncryption bool                             `json:"requireInfrastructureEncryption,omitempty"`
	Services                        EncryptionServices               `json:"services,omitempty"`
}

type StorageAccountInternetEndpoints

type StorageAccountInternetEndpoints struct {
	Blob string `json:"blob,omitempty"`
	DFS  string `json:"dfs,omitempty"`
	File string `json:"file,omitempty"`
	Web  string `json:"web,omitempty"`
}

type StorageAccountKeyCreationTime

type StorageAccountKeyCreationTime struct {
	Key1 string `json:"key1,omitempty"`
	Key2 string `json:"key2,omitempty"`
}

type StorageAccountKeyPolicy

type StorageAccountKeyPolicy struct {
	KeyExpirationPeriodInDays int `json:"keyExpirationPeriodInDays,omitempty"`
}

type StorageAccountLargeFileSharesState

type StorageAccountLargeFileSharesState struct {
}

type StorageAccountList

type StorageAccountList struct {
	NextLink string           `json:"nextLink,omitempty"` // The URL to use for getting the next set of values.
	Value    []StorageAccount `json:"value"`              // A list of storage accounts.
}

type StorageAccountMicrosoftEndpoints

type StorageAccountMicrosoftEndpoints struct {
	Blob  string `json:"blob,omitempty"`
	DFS   string `json:"dfs,omitempty"`
	File  string `json:"file,omitempty"`
	Queue string `json:"queue,omitempty"`
	Table string `json:"table,omitempty"`
	Web   string `json:"web,omitempty"`
}

type StorageAccountProperties

type StorageAccountProperties struct {
	AccessTier                            enums.StorageAccountAccessTier        `json:"accessTier,omitempty"`
	AllowBlobPublicAccess                 bool                                  `json:"allowBlobPublicAccess,omitempty"`
	AllowCrossTenantReplication           bool                                  `json:"allowCrossTenantReplication,omitempty"`
	AllowSharedKeyAccess                  bool                                  `json:"allowSharedKeyAccess,omitempty"`
	AllowedCopyScope                      enums.AllowedCopyScope                `json:"allowedCopyScope,omitempty"`
	AzureFilesIdentityBasedAuthentication AzureFilesIdentityBasedAuthentication `json:"azureFilesIdentityBasedAuthentication,omitempty"`
	BlobRestoreStatus                     BlobRestoreStatus                     `json:"blobRestoreStatus,omitempty"`
	CreationTime                          string                                `json:"creationTime,omitempty"`
	CustomDomain                          StorageAccountCustomDomain            `json:"customDomain,omitempty"`
	DefaultToOAuthAuthentication          bool                                  `json:"defaultToOAuthAuthentication,omitempty"`
	DnsEndpointType                       enums.DnsEndpointType                 `json:"dnsEndpointType,omitempty"`
	Encryption                            StorageAccountEncryptionProperties    `json:"encryption,omitempty"`
	FailoverInProgress                    bool                                  `json:"failoverInProgress,omitempty"`
	GeoReplicationStats                   GeoReplicationStats                   `json:"geoReplicationStats,omitempty"`
	ImmutableStorageWithVersioning        ImmutableStorageAccount               `json:"immutableStorageWithVersioning,omitempty"`
	IsHnsEnabled                          bool                                  `json:"isHnsEnabled,omitempty"`
	IsLocalUserEnabled                    bool                                  `json:"isLocalUserEnabled,omitempty"`
	IsNfsV3Enabled                        bool                                  `json:"isNfsV3Enabled,omitempty"`
	IsSftpEnabled                         bool                                  `json:"isSftpEnabled,omitempty"`
	KeyCreationTime                       StorageAccountKeyCreationTime         `json:"keyCreationTime,omitempty"`
	KeyPolicy                             StorageAccountKeyPolicy               `json:"keyPolicy,omitempty"`
	LargeFileSharesState                  enums.GenericEnabledDisabled          `json:"largeFileSharesState,omitempty"`
	LastGeoFailoverTime                   string                                `json:"lastGeoFailoverTime,omitempty"`
	MinimumTlsVersion                     enums.MinimumTlsVersion               `json:"minimumTlsVersion,omitempty"`
	NetworkAcls                           NetworkRuleSet                        `json:"networkAcls,omitempty"`
	PrimaryEndpoints                      Endpoints                             `json:"primaryEndpoints,omitempty"`
	PrimaryLocation                       string                                `json:"primaryLocation,omitempty"`
	PrivateEndpointConnections            []PrivateEndpointConnection           `json:"privateEndpointConnections"`
	ProvisioningState                     enums.ProvisioningState               `json:"provisioningState,omitempty"`
	PublicNetworkAccess                   enums.GenericEnabledDisabled          `json:"availabilitySet,omitempty"`
	RoutingPreference                     RoutingPreference                     `json:"routingPreference,omitempty"`
	SasPolicy                             SasPolicy                             `json:"sasPolicy,omitempty"`
	SecondaryEndpoints                    Endpoints                             `json:"secondaryEndpoints,omitempty"`
	SecondaryLocation                     string                                `json:"secondaryLocation,omitempty"`
	StatusOfPrimary                       enums.AccountStatus                   `json:"statusOfPrimary,omitempty"`
	StatusOfSecondary                     enums.AccountStatus                   `json:"statusOfSecondary,omitempty"`
	StorageAccountSkuConversionStatus     StorageAccountSkuConversionStatus     `json:"storageAccountSkuConversionStatus,omitempty"`

	SupportsHttpsTrafficOnly bool `json:"supportsHttpsTrafficOnly,omitempty"`
}

type StorageAccountResult

type StorageAccountResult struct {
	SubscriptionId string
	Error          error
	Ok             StorageAccount
}

type StorageAccountSkuConversionStatus

type StorageAccountSkuConversionStatus struct {
	EndTime             string                    `json:"endTime,omitempty"`
	SkuConversionStatus enums.SkuConversionStatus `json:"skuConversionStatus,omitempty"`
	StartTime           string                    `json:"startTime,omitempty"`
	TargetSkuName       enums.SkuName             `json:"targetSkuName,omitempty"`
}

type StorageContainer

type StorageContainer struct {
	Entity

	Type       string                     `json:"type,omitempty"`
	Name       string                     `json:"name,omitempty"`
	Etag       string                     `json:"etag,omitempty"`
	Properties StorageContainerProperties `json:"properties,omitempty"`
}

func (StorageContainer) ResourceGroupId

func (s StorageContainer) ResourceGroupId() string

func (StorageContainer) ResourceGroupName

func (s StorageContainer) ResourceGroupName() string

func (StorageContainer) StorageAccountId

func (s StorageContainer) StorageAccountId() string

func (StorageContainer) StorageAccountName

func (s StorageContainer) StorageAccountName() string

type StorageContainerList

type StorageContainerList struct {
	NextLink string             `json:"nextLink,omitempty"` // The URL to use for getting the next set of values.
	Value    []StorageContainer `json:"value"`              // A list of storage containers.
}

type StorageContainerProperties

type StorageContainerProperties struct {
	DefaultEncryptionScope         string                         `json:"defaultEncryptionScope,omitempty"`
	Deleted                        bool                           `json:"deleted,omitempty"`
	DeletedTime                    string                         `json:"deletedTime,omitempty"`
	DenyEncryptionScopeOverride    bool                           `json:"denyEncryptionScopeOverride,omitempty"`
	EnableNfsV3AllSquash           bool                           `json:"enableNfsV3AllSquash,omitempty"`
	EnableNfsV3RootSquash          bool                           `json:"enableNfsV3RootSquash,omitempty"`
	HasImmutabilityPolicy          bool                           `json:"hasImmutabilityPolicy,omitempty"`
	HasLegalHold                   bool                           `json:"hasLegalHold,omitempty"`
	ImmutabilityPolicy             ImmutabilityPolicy             `json:"immutabilityPolicy,omitempty"`
	ImmutableStorageWithVersioning ImmutableStorageWithVersioning `json:"immutableStorageWithVersioning,omitempty"`
	LastModifiedTime               string                         `json:"lastModifiedTime,omitempty"`
	LeaseDuration                  enums.LeaseDuration            `json:"leaseDuration,omitempty"`
	LeaseState                     enums.LeaseState               `json:"leaseState,omitempty"`
	LeaseStatus                    enums.LeaseStatus              `json:"leaseStatus,omitempty"`
	LegalHold                      LegalHoldProperties            `json:"legalHold,omitempty"`
	Metadata                       interface{}                    `json:"metadata,omitempty"`
	PublicAccess                   enums.PublicAccess             `json:"publicAccess,omitempty"`
	RemainingRetentionDays         int                            `json:"remainingRetentionDays,omitempty"`
	Version                        string                         `json:"version,omitempty"`
}

type StorageContainerResult

type StorageContainerResult struct {
	SubscriptionId string
	Error          error
	Ok             StorageContainer
}

type StorageProfile

type StorageProfile struct {
	// Specifies the parameters that are used to add a data disk to a virtual machine.
	// For more information about disks, see About disks and VHDs for Azure virtual machines.
	DataDisks []DataDisk `json:"dataDisks,omitempty"`

	// Specifies information about the image to use. You can specify information about platform images, marketplace
	// images, or virtual machine images. This element is required when you want to use a platform image, marketplace
	// image, or virtual machine image, but is not used in other creation operations.
	ImageReference ImageReference `json:"imageReference,omitempty"`

	// Specifies information about the operating system disk used by the virtual machine.
	// For more information about disks, see About disks and VHDs for Azure virtual machines.
	OSDisk OSDisk `json:"osDisk,omitempty"`
}

Specifies the storage settings for the virtual machine disks.

type SubResource

type SubResource struct {
	// The resource ID.
	Id string `json:"id,omitempty"`
}

type Subscription

type Subscription struct {
	Entity

	// The authorization source of the request. Valid values are one or more combinations of Legacy, RoleBased,
	// Bypassed, Direct and Management. For example, 'Legacy, RoleBased'.
	AuthorizationSource string `json:"authorizationSource,omitempty"`

	// The subscription display name.
	DisplayName string `json:"displayName,omitempty"`

	// A list of tenants managing the subscription.
	ManagedByTenants []ManagedByTenant `json:"managedByTenants,omitempty"`

	// The subscription state.
	State enums.SubscriptionState `json:"state,omitempty"`

	// The subscription ID.
	SubscriptionId string `json:"subscriptionId,omitempty"`

	// The subscription policies.
	SubscriptionPolicies SubscriptionPolicies `json:"subscriptionPolicies,omitempty"`

	// The tags attached to the subscription.
	Tags map[string]string `json:"tags,omitempty"`

	// The subscription tenant ID.
	TenantId string `json:"tenantId,omitempty"`
}

type SubscriptionList

type SubscriptionList struct {
	NextLink string         `json:"nextLink,omitempty"` // The URL to use for getting the next set of values.
	Value    []Subscription `json:"value"`              // A list of subscriptions.
}

type SubscriptionPolicies

type SubscriptionPolicies struct {
	// The subscription location placement ID. The ID indicates which regions are visible for a subscription.
	// For example, a subscription with a location placement Id of Public_2014-09-01 has access to Azure public regions.
	LocationPlacementId string `json:"locationPlacementId,omitempty"`

	// The subscription quota ID.
	QuotaId string `json:"quotaId,omitempty"`

	// The subscription spending limit.
	SpendingLimit enums.SpendingLimit `json:"spendingLimit,omitempty"`
}

Subscription Policies

type SubscriptionResult

type SubscriptionResult struct {
	Error error
	Ok    Subscription
}

type TagProperty

type TagProperty struct {
	ObjectIdentifier string `json:"objectIdentifier,omitempty"`
	Tag              string `json:"tag,omitempty"`
	TenantId         string `json:"tenantId,omitempty"`
	Timestamp        string `json:"timestamp,omitempty"`
	Upn              string `json:"upn,omitempty"`
}

type Tenant

type Tenant struct {
	Country               string               `json:"country,omitempty"`               // Country/region name of the address for the tenant.
	CountryCode           string               `json:"countryCode,omitempty"`           // Country/region abbreviation for the tenant.
	DefaultDomain         string               `json:"defaultDomain,omitempty"`         // The default domain for the tenant.
	DisplayName           string               `json:"displayName,omitempty"`           // The display name of the tenant.
	Domains               []string             `json:"domains,omitempty"`               // The list of domains for the tenant
	Id                    string               `json:"id,omitempty"`                    // The fully qualified ID of the tenant. E.g. "/tenants/00000000-0000-0000-0000-000000000000"
	TenantBrandingLogoUrl string               `json:"tenantBrandingLogoUrl,omitempty"` // The tenant's branding logo URL. Only available for 'Home' TenantCategory
	TenantCategory        enums.TenantCategory `json:"tenantCategory,omitempty"`        // The category of the tenant.
	TenantId              string               `json:"tenantId,omitempty"`              // Then tenant ID. E.g. "00000000-0000-0000-0000-000000000000"
	TenantType            string               `json:"tenantType,omitempty"`            // The tenant type. Only available for 'Home' TenantCategory
}

type TenantList

type TenantList struct {
	NextLink string   `json:"nextLink,omitempty"` // The URL to use for getting the next set of values.
	Value    []Tenant `json:"value"`              // A list of tenants.
}

type TenantResult

type TenantResult struct {
	Error error
	Ok    Tenant
}

type TerminateNotificationProfile

type TerminateNotificationProfile struct {
	// Specifies whether the Terminate Scheduled event is enabled or disabled.
	Enable bool `json:"enable,omitempty"`

	// Configurable length of time a Virtual Machine being deleted will have to potentially approve the
	// Terminate Scheduled Event before the event is auto approved (timed out).
	// The configuration must be specified in ISO 8601 format, the default value is 5 minutes (PT5M)
	NotBeforeTimeout string `json:"notBeforeTimeout,omitempty"`
}

type TimeZoneBase

type TimeZoneBase struct {
	// The name of the time zone.
	Name string `json:"name,omitempty"`
}

type Trigger

type Trigger struct {
	Type string `json:"type,omitempty"`
	// Kind is missing in the MSDN, but returned and present in examples and during testing
	Kind string `json:"kind,omitempty"`
	// Inputs is a custom element based on the type of trigger
	Inputs     interface{} `json:"inputs,omitempty"`
	Recurrence Recurrence  `json:"recurrence,omitempty"`
	Conditions []Condition `json:"conditions,omitempty"`
	// Runtime configuration is a custom element based on the type of trigger
	RuntimeConfiguration interface{} `json:"runtimeConfiguration,omitempty"`
	SplitOn              string      `json:"splitOn,omitempty"`
	OperationOptions     string      `json:"operationOptions,omitempty"`
}

type UefiSettings

type UefiSettings struct {
	// Specifies whether secure boot should be enabled on the virtual machine.
	SecureBootEnabled bool `json:"secureBootEnabled,omitempty"`

	// Specifies whether vTPM should be enabled on the virtual machine.
	VTpmEnabled bool `json:"vTpmEnabled,omitempty"`
}

Specifies the security settings like secure boot and vTPM used while creating the virtual machine. Minimum api-version: 2020-12-01

type UnifiedRoleAssignment

type UnifiedRoleAssignment struct {
	Entity

	// Identifier of the role definition the assignment is for.
	// Read only.
	// Supports $filer (eq, in).
	RoleDefinitionId string `json:"roleDefinitionId,omitempty"`

	// Identifier of the principal to which the assignment is granted.
	// Supports $filter (eq, in).
	PrincipalId string `json:"principalId,omitempty"`

	// Identifier of the directory object representing the scope of the assignment.
	// Either this property or appScopeId is required.
	// The scope of an assignment determines the set of resources for which the principal has been granted access.
	// Directory scopes are shared scopes stored in the directory that are understood by multiple applications.
	//
	// Use / for tenant-wide scope.
	// Use appScopeId to limit the scope to an application only.
	//
	// Supports $filter (eq, in).
	DirectoryScopeId string `json:"directoryScopeId,omitempty"`

	// Identifier of the resource representing the scope of the assignment.
	ResourceScope string `json:"resourceScope,omitempty"`

	// Identifier of the app-specific scope when the assignment scope is app-specific.
	// Either this property or directoryScopeId is required.
	// App scopes are scopes that are defined and understood by this application only.
	//
	// Use / for tenant-wide app scopes.
	// Use directoryScopeId to limit the scope to particular directory objects, for example, administrative units.
	//
	// Supports $filter (eq, in).
	AppScopeId string `json:"appScopeId,omitempty"`

	// Referencing the assigned principal.
	// Read-only.
	// Supports $expand.
	Principal json.RawMessage `json:"principal,omitempty"`

	// The roleDefinition the assignment is for.
	// Supports $expand. roleDefinition.Id will be auto expanded.
	RoleDefinition UnifiedRoleDefinition `json:"roleDefinition,omitempty"`

	// The directory object that is the scope of the assignment.
	// Read-only.
	// Supports $expand.
	DirectoryScope Application `json:"directoryScope,omitempty"`

	// Read-only property with details of the app specific scope when the assignment scope is app specific.
	// Containment entity.
	// Supports $expand.
	AppScope AppScope `json:"appScope,omitempty"`
}

type UnifiedRoleAssignmentList

type UnifiedRoleAssignmentList struct {
	Count    int                     `json:"@odata.count,omitempty"`    // The total count of all results
	NextLink string                  `json:"@odata.nextLink,omitempty"` // The URL to use for getting the next set of values.
	Value    []UnifiedRoleAssignment `json:"value"`                     // A list of role assignments.
}

type UnifiedRoleAssignmentResult

type UnifiedRoleAssignmentResult struct {
	Error error
	Ok    UnifiedRoleAssignment
}

type UnifiedRoleDefinition

type UnifiedRoleDefinition struct {
	Entity

	// The description for the unifiedRoleDefinition.
	// Read-only when isBuiltIn is true.
	Description string `json:"description,omitempty"`

	// The display name for the unifiedRoleDefinition.
	// Read-only when isBuiltIn is true.
	// Required.
	// Supports $filter (eq, in).
	DisplayName string `json:"displayName,omitempty"`

	// Flag indicating whether the role definition is part of the default set included in
	// Azure Active Directory (Azure AD) or a custom definition.
	// Read-only.
	// Supports $filter (eq, in).
	IsBuiltIn bool `json:"isBuiltIn,omitempty"`

	// Flag indicating whether the role is enabled for assignment.
	// If false the role is not available for assignment.
	// Read-only when isBuiltIn is true.
	IsEnabled bool `json:"isEnabled,omitempty"`

	// List of the scopes or permissions the role definition applies to.
	// Currently only / is supported.
	// Read-only when isBuiltIn is true.
	// DO NOT USE. This will be deprecated soon. Attach scope to role assignment.
	ResourceScopes []string `json:"resourceScopes,omitempty"`

	// List of permissions included in the role.
	// Read-only when isBuiltIn is true.
	// Required.
	RolePermisions []UnifiedRolePermission `json:"rolePermisions,omitempty"`

	// Custom template identifier that can be set when isBuiltIn is false but is read-only when isBuiltIn is true.
	// This identifier is typically used if one needs an identifier to be the same across different directories.
	TemplateId string `json:"templateId,omitempty"`

	// Indicates version of the role definition.
	// Read-only when isBuiltIn is true.
	Version string `json:"version,omitempty"`
}

type UnifiedRolePermission

type UnifiedRolePermission struct {
	// Set of tasks that can be performed on a resource.
	// Required.
	//
	// The following is the schema for resource actions:
	// <Namespace>/<Entity>/<PropertySet>/<Action>
	//
	// For example: microsoft.directory/applications/credentials/update.
	//
	// * Namespace - The services that exposes the task. For example, all tasks in Azure Active Directory use the namespace microsoft.directory.
	// * Entity - The logical features or components exposed by the service in Microsoft Graph. For example, applications, servicePrincipals, or groups.
	// * PropertySet - The specific properties or aspects of the entity for which access is being granted. For example, microsoft.directory/applications/authentication/read grants the ability to read the reply URL, logout URL, and implicit flow property on the application object in Azure AD. The following are reserved names for common property sets:
	//		* allProperties - Designates all properties of the entity, including privileged properties. Examples include microsoft.directory/applications/allProperties/read and microsoft.directory/applications/allProperties/update.
	//		* basic - Designates common read properties but excludes privileged ones. For example, microsoft.directory/applications/basic/update includes the ability to update standard properties like display name.
	//		* standard - Designates common update properties but excludes privileged ones. For example, microsoft.directory/applications/standard/read.
	// * Actions - The operations being granted. In most circumstances, permissions should be expressed in terms of CRUD or allTasks. Actions include:
	//		* Create - The ability to create a new instance of the entity.
	//		* Read - The ability to read a given property set (including allProperties).
	//		* Update - The ability to update a given property set (including allProperties).
	//		* Delete - The ability to delete a given entity.
	//		* AllTasks - Represents all CRUD operations (create, read, update, and delete).
	AllowedResourceActions []string `json:"allowedResourceActions,omitempty"`

	// Optional constraints that must be met for the permission to be effective.
	//
	// Conditions define constraints that must be met. For example, a requirement that the principal be an owner of the
	// target resource. The following are the supported conditions:
	//
	// Self: "@Subject.objectId == @Resource.objectId"
	// Owner: "@Subject.objectId Any_of @Resource.owners"
	//
	// The following is an example of a role permission with a condition that the principal be the owner of the target
	// resource:
	//
	//	"rolePermissions": [
	// 	        {
	// 	            "allowedResourceActions": [
	// 	                "microsoft.directory/applications/basic/update",
	// 	                "microsoft.directory/applications/credentials/update"
	// 	            ],
	// 	            "condition":  "@Subject.objectId Any_of @Resource.owners"
	// 	        }
	// 	]
	Condition string `json:"condition,omitempty"`

	// Set of tasks tat may not be performed on a resource. Not yet supported.
	// See AllowedResourceActions for more information.
	ExcludedResourceActions []string `json:"excludedResourceActions,omitempty"`
}

Represents a collection of allowed resource actions and the conditions that must be met for the action to be allowed. Resource actions are tasks that can be performed on a resource. For example, an application resource may support create, update, delete, and reset password actions.

type User

type User struct {
	DirectoryObject

	// A freeform text entry field for the user to describe themselves.
	//
	// Returned only on `$select`
	AboutMe string `json:"aboutMe,omitempty"`

	// `true` if the account is enabled; otherwise `false`. This property is required when a user is created.
	//
	// Returned only on `$select`
	// Supports `$filter` (eq,ne,NOT,in)
	AccountEnabled bool `json:"accountEnabled,omitempty"`

	// Sets the age group of the user.
	//
	// Allowed values: `null`, `minor`, `notAdult` and `adult`
	// Returned only on `$select`
	// Supports `$filter` (eq,ne,NOT,in)
	AgeGroup enums.AgeGroup `json:"ageGroup,omitempty"`

	// The licenses that are assigned to the user, including inherited (group-based) licenses.
	//
	// Not nullable
	// Returned only on `$select`
	// Supports `$filter` (eq, NOT)
	AssignedLicenses []AssignedLicense `json:"assignedLicenses,omitempty"`

	// The plans that are assigned to the user.
	//
	// Read-Only
	// Not Nullable
	// Returned only on `$select`
	// Supports `$filter` (eq, NOT)
	AssignedPlans []AssignedPlan `json:"assignedPlans,omitempty"`

	// The birthday of the user using ISO 8601 format.
	//
	// Returned only on `$select`
	Birthday string `json:"birthday,omitempty"`

	// The telephone numbers for the user.
	// Note: Although this is a string collection, only one number can be set for this property.
	//
	// Read-only for users synced from on-premises directory
	// Supports `$filter` (eq, NOT)
	BusinessPhones []string `json:"businessPhones,omitempty"`

	// The city in which the user is located.
	//
	// Max length is 128 characters
	// Returned only on `$select`
	// Supports `$filter` (eq,ne,NOT,ge,le,in,startsWith)
	City string `json:"city,omitempty"`

	// The company name which the user is associated. Useful for describing a company for an external user.
	//
	// Max length is 64 characters
	// Returned only on `$select`
	// Supports `$filter` (eq,ne,NOT,ge,le,in,startsWith)
	CompanyName string `json:"companyName,omitempty"`

	// Sets whether conset has been obtained for minors.
	//
	// Returned only on `$select`
	// Supports `$filter` (eq,ne,NOT,in)
	ConsentProvidedForMinor enums.ConsentForMinor `json:"consentProvidedForMinor,omitempty"`

	// The country/region in which the user is located.
	//
	// Max length is 128 characters
	// Returned only on `$select`
	// Supports `$filter` (eq,ne,NOT,ge,le,in,startsWith)
	Country string `json:"country,omitempty"`

	// The created date of the user object.
	//
	// Read-only
	// Returned only on `$select`
	// Supports `$filter` (eq,ne,NOT,ge,le,in)
	CreatedDateTime string `json:"createdDateTime,omitempty"`

	// Indicates the method through which the user account was created.
	//
	// Read-only
	// Returned only on `$select`
	// Supports `$filter` (eq,ne,NOT,in)
	CreationType enums.CreationType `json:"creationType,omitempty"`

	// The date and time the user was deleted.
	//
	// Returned only on `$select`
	// Supports `$filter` (eq,ne,NOT,ge,le,in)
	DeletedDateTime string `json:"deletedDateTime,omitempty"`

	// The name for the department in which the user works.
	//
	// Max length is 64 characters
	// Returned only on `$select`
	// Supports `$filter` (eq,ne,NOT,ge,le,in)
	Department string `json:"department,omitempty"`

	// The name displayed in the address book for the user. This is usually the combination of the user's first name,
	// middle initial and last name. Required on creation and cannot be cleared during updates.
	//
	// Max length is 256 characters
	// Supports `$filter` (eq,ne,NOT,ge,le,in,startsWith), `$orderBy` and `$search`
	DisplayName string `json:"displayName,omitempty"`

	// The data and time the user was hired or will start work in case of a future hire.
	//
	// Returned only on `$select`
	// Supports `$filter` (eq,ne,NOT,ge,le,in)
	EmployeeHireDate string `json:"employeeHireDate,omitempty"`

	// The employee identifier assigned to the user bu the organization.
	//
	// Returned only on `$select`
	// Supports `filter` (eq,ne,NOT,ge,le,in,startsWith)
	EmployeeId string `json:"employeeId,omitempty"`

	// Represents organization data (e.g. division and costCenter) associated with a user.
	//
	// Returned only in `$select`
	// Supports `$filter` (eq,ne,NOT,ge,le,in)
	EmployeeOrgData EmployeeOrgData `json:"employeeOrgData,omitempty"`

	// Captures enterprise worker type.
	//
	// Returned only on `$select`
	// Supports `$filter` (eq,ne,NOT,ge,le,in,startsWith)
	EmployeeType string `json:"employeeType,omitempty"`

	// For an external user invited to the tenant, this represents the invited user's invitation status.
	//
	// Returned only on `$select`
	// Supports `$filter` (eq,ne,NOT,in)
	ExternalUserState enums.ExternalUserState `json:"externalUserState,omitempty"`

	// Shows the timestamp for the latest change to the {@link ExternalUserState} property.
	//
	// Returned only on `$select`
	// Supports `$filter` (eq,ne,NOT,in)
	ExternalUserStateChangeDateTime string `json:"externalUserStateChangeDateTime,omitempty"`

	// The fax number of the user.
	//
	// Returned only on `$select`
	// Supports `$filter` (eq,ne,NOT,ge,le,in,startsWith)
	FaxNumber string `json:"faxNumber,omitempty"`

	// The given name (first name) of the user.
	//
	// Max length is 64 characters
	// Supports `$filter` (eq,ne,NOT,ge,le,in,startsWith)
	GivenName string `json:"givenName,omitempty"`

	// The hire date of the user using ISO 8601 format.
	// Note: This property is specific to SharePoint Online. Use {@link EmployeeHireDate} to set or update.
	//
	// Returned only on `$select`
	HireDate string `json:"hireDate,omitempty"`

	// Represents the identities that can be used to sign in to this user account.
	//
	// Returned only on `$select`
	// Supports `$filter` (eq) only where the SignInType is not `userPrincipalName`
	Identities []ObjectIdentity `json:"identities,omitempty"`

	// The instant message voice over IP (VOIP) session initiation protocol (SIP) addresses for this user.
	//
	// Read-only
	// Returned only on `$select`
	// Supports `$filter` (eq,ne,NOT,ge,le,startsWith)
	ImAddresses []string `json:"imAddresses,omitempty"`

	// A list for the user to describe their interests.
	//
	// Returned only on `$select`
	Interests []string `json:"interests,omitempty"`

	// The user's job title.
	//
	// Max length is 128 characters
	// Supports `$filter` (eq,ne,NOT,ge,le,in,startsWith)
	JobTitle string `json:"jobTitle,omitempty"`

	// The time when this Azure AD user last changed their password or when their password was created using ISO 8601
	// format in UTC time.
	//
	// Returned only on `$select`
	LastPasswordChangeDateTime string `json:"lastPasswordChangeDateTime,omitempty"`

	// Used by enterprise applications to determine the legal age group of the user.
	//
	// Returned only on `$select`
	LegalAgeGroupClassification enums.LegalAgeGroup `json:"legalAgeGroupClassification,omitempty"`

	// State of license assignments for this user.
	//
	// Read-only
	// Returned only on `$select`
	LicenseAssignmentStates []LicenseAssignmentState `json:"licenseAssignmentStates,omitempty"`

	// The SMTP address for the user.
	//
	// Supports `$filter` (eq,ne,NOT,ge,le,in,startsWith,endsWith)
	Mail string `json:"mail,omitempty"`

	// Settings for the primary mailbox of the signed-in user.
	//
	// Returned only on `$select`
	MailboxSettings MailboxSettings `json:"mailboxSettings,omitempty"`

	// The mail alias for the user.
	//
	// Max length is 64 characters
	// Returned only on `$select`
	// Supports `$filter` (eq,ne,NOT,ge,le,in,startsWith)
	MailNickname string `json:"mailNickname,omitempty"`

	// The primary cellular telephone number for the user. Read-only for users synced from on-premises directory.
	// Maximum length is 64 characters.
	// Returned by default.
	// Supports $filter (eq, ne, NOT, ge, le, in, startsWith).
	MobilePhone string `json:"mobilePhone,omitempty"`

	// The URL for the user's personal site.
	// Returned only on $select.
	MySite string `json:"mySite,omitempty"`

	// The office location in the user's place of business.
	// Returned by default.
	// Supports $filter (eq, ne, NOT, ge, le, in, startsWith).
	OfficeLocation string `json:"officeLocation,omitempty"`

	// Contains the on-premises Active Directory distinguished name or DN. The property is only populated for customers
	// who are synchronizing their on-premises directory to Azure Active Directory via Azure AD Connect.
	// Read-only.
	// Returned only on $select.
	OnPremisesDistinguishedName string `json:"onPremisesDistinguishedName,omitempty"`

	// Contains the on-premises domainFQDN, also called dnsDomainName synchronized from the on-premises directory.
	// The property is only populated for customers who are synchronizing their on-premises directory to Azure Active
	// Directory via Azure AD Connect.
	// Read-only.
	// Returned only on $select.
	OnPremisesDomainName string `json:"onPremisesDomainName,omitempty"`

	// Contains extensionAttributes 1-15 for the user
	// Note that the individual extension attributes are neither selectable nor filterable.
	// For an onPremisesSyncEnabled user, the source of authority for this set of properties is the on-premises and is
	// read-only.
	// For a cloud-only user (where onPremisesSyncEnabled is false), these properties may be set during creation or
	// update. These extension attributes are also known as Exchange custom attributes 1-15.
	// Returned only on $select. Supports $filter (eq, NOT, ge, le, in).
	OnPremisesExtensionAttributes OnPremisesExtensionAttributes `json:"onPremisesExtensionAttributes,omitempty"`

	// This property is used to associate an on-premises Active Directory user account to their Azure AD user object.
	// This property must be specified when creating a new user account in the Graph if you are using a federated domain
	// for the user's userPrincipalName (UPN) property.
	// NOTE: The $ and _ characters cannot be used when specifying this property.
	// Returned only on $select.
	// Supports $filter (eq, ne, NOT, ge, le, in)
	OnPremisesImmutableId string `json:"onPremisesImmutableId,omitempty"`

	// Indicates the last time at which the object was synced with the on-premises directory;
	// The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time.
	// For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
	// Read-only.
	// Returned only on $select.
	// Supports $filter (eq, ne, NOT, ge, le, in).
	OnPremisesLastSyncDateTime string `json:"onPremisesLastSyncDateTime,omitempty"`

	// Errors when using Microsoft synchronization product during provisioning.
	// Returned only on $select. Supports $filter (eq, NOT, ge, le).
	OnPremisesProvisioningErrors []OnPremisesProvisioningError `json:"onPremisesProvisioningErrors,omitempty"`

	// Contains the on-premises samAccountName synchronized from the on-premises directory.
	// The property is only populated for customers who are synchronizing their on-premises directory to Azure Active
	// Directory via Azure AD Connect.
	// Read-only.
	// Returned only on $select.
	// Supports $filter (eq, ne, NOT, ge, le, in, startsWith).
	OnPremisesSamAccountName string `json:"onPremisesSamAccountName,omitempty"`

	// Contains the on-premises security identifier (SID) for the user that was synchronized from on-premises to the
	// cloud.
	// Read-only.
	// Returned only on $select.
	OnPremisesSecurityIdentifier string `json:"onPremisesSecurityIdentifier,omitempty"`

	// true if this object is synced from an on-premises directory; false if this object was originally synced from an
	// on-premises directory but is no longer synced; null if this object has never been synced from an on-premises
	// directory (default).
	// Read-only.
	// Returned only on $select.
	// Supports $filter (eq, ne, NOT, in).
	OnPremisesSyncEnabled bool `json:"onPremisesSyncEnabled,omitempty"`

	// Contains the on-premises userPrincipalName synchronized from the on-premises directory.
	// The property is only populated for customers who are synchronizing their on-premises directory to Azure Active
	// Directory via Azure AD Connect.
	// Read-only.
	// Returned only on $select.
	// Supports $filter (eq, ne, NOT, ge, le, in, startsWith).
	OnPremisesUserPrincipalName string `json:"onPremisesUserPrincipalName,omitempty"`

	// A list of additional email addresses for the user; for example: ["bob@contoso.com", "Robert@fabrikam.com"].
	// NOTE: This property cannot contain accent characters.
	// Returned only on $select.
	// Supports $filter (eq, NOT, ge, le, in, startsWith).
	OtherMails []string `json:"otherMails,omitempty"`

	// Specifies password policies for the user. This value is an enumeration with one possible value being
	// DisableStrongPassword, which allows weaker passwords than the default policy to be specified.
	// DisablePasswordExpiration can also be specified.
	// The two may be specified together; for example: DisablePasswordExpiration, DisableStrongPassword.
	// Returned only on $select.
	// Supports $filter (ne, NOT).
	PasswordPolicies string `json:"passwordPolicies,omitempty"`

	// Specifies the password profile for the user.
	// The profile contains the user’s password. This property is required when a user is created. The password in the
	// profile must satisfy minimum requirements as specified by the passwordPolicies property. By default, a strong
	// password is required.
	//
	// NOTE: For Azure B2C tenants, the forceChangePasswordNextSignIn property should be set to false and instead use
	// custom policies and user flows to force password reset at first logon. See Force password reset at first logon.
	//
	// Returned only on $select.
	// Supports $filter (eq, ne, NOT, in).
	PasswordProfile PasswordProfile `json:"passwordProfile,omitempty"`

	// A list for the user to enumerate their past projects.
	// Returned only on $select.
	PastProjects []string `json:"pastProjects,omitempty"`

	// The postal code for the user's postal address. The postal code is specific to the user's country/region. In the
	// United States of America, this attribute contains the ZIP code.
	// Maximum length is 40 characters.
	// Returned only on $select.
	// Supports $filter (eq, ne, NOT, ge, le, in, startsWith).
	PostalCode string `json:"postalCode,omitempty"`

	// The preferred data location for the user.
	PreferredDataLocation string `json:"preferredDataLocation,omitempty"`

	// The preferred language for the user. Should follow ISO 639-1 Code; for example en-US.
	// Returned by default.
	// Supports $filter (eq, ne, NOT, ge, le, in, startsWith)
	PreferredName string `json:"preferredName,omitempty"`

	// The plans that are provisioned for the user.
	// Read-only.
	// Not nullable.
	// Returned only on $select.
	// Supports $filter (eq, NOT, ge, le).
	ProvisionedPlans []ProvisionedPlan `json:"provisionedPlans,omitempty"`

	// For example: ["SMTP: bob@contoso.com", "smtp: bob@sales.contoso.com"].
	// For Azure AD B2C accounts, this property has a limit of ten unique addresses.
	// Read-only,
	// Not nullable.
	// Returned only on $select.
	// Supports $filter (eq, NOT, ge, le, startsWith).
	ProxyAddresses []string `json:"proxyAddresses,omitempty"`

	// Any refresh tokens or sessions tokens (session cookies) issued before this time are invalid, and applications
	// will get an error when using an invalid refresh or sessions token to acquire a delegated access token (to access
	// APIs such as Microsoft Graph). If this happens, the application will need to acquire a new refresh token by
	// making a request to the authorize endpoint.
	// Returned only on $select.
	// Read-only.
	RefreshTokensValidFromDateTime string `json:"refreshTokensValidFromDateTime,omitempty"`

	// A list for the user to enumerate their responsibilities.
	// Returned only on $select
	Responsibilities []string `json:"responsibilities,omitempty"`

	// A list for the user to enumerate the schools they have attended.
	// Returned only on $select.
	Schools []string `json:"schools,omitempty"`

	// true if the Outlook global address list should contain this user, otherwise false. If not set, this will be
	// treated as true. For users invited through the invitation manager, this property will be set to false.
	// Returned only on $select.
	// Supports $filter (eq, ne, NOT, in).
	ShowInAddressList bool `json:"showInAddressList,omitempty"`

	// A list for the user to enumerate their skills.
	// Returned only on $select.
	Skills []string `json:"skills,omitempty"`

	// Any refresh tokens or sessions tokens (session cookies) issued before this time are invalid, and applications
	// will get an error when using an invalid refresh or sessions token to acquire a delegated access token (to access
	// APIs such as Microsoft Graph). If this happens, the application will need to acquire a new refresh token by
	// making a request to the authorize endpoint.
	// Read-only.
	// Returned only on $select.
	SignInSessionsValidFromDateTime string `json:"signInSessionsValidFromDateTime,omitempty"`

	// The state or province in the user's address.
	// Maximum length is 128 characters.
	// Returned only on $select.
	// Supports $filter (eq, ne, NOT, ge, le, in, startsWith).
	State string `json:"state,omitempty"`

	// The street address of the user's place of business.
	// Maximum length is 1024 characters.
	// Returned only on $select.
	// Supports $filter (eq, ne, NOT, ge, le, in, startsWith).
	StreetAddress string `json:"streetAddress,omitempty"`

	// The user's surname (family name or last name). Maximum length is 64 characters.
	// Returned by default.
	// Supports $filter (eq, ne, NOT, ge, le, in, startsWith).
	Surname string `json:"surname,omitempty"`

	// A two letter country code (ISO standard 3166). Required for users that will be assigned licenses due to legal
	// requirement to check for availability of services in countries. Examples include: US, JP, and GB.
	// Not nullable.
	// Returned only on $select.
	// Supports $filter (eq, ne, NOT, ge, le, in, startsWith).
	UsageLocation string `json:"usageLocation,omitempty"`

	// The user principal name (UPN) of the user.
	// The UPN is an Internet-style login name for the user based on the Internet standard RFC 822. By convention, this
	// should map to the user's email name. The general format is alias@domain, where domain must be present in the
	// tenant's collection of verified domains. This property is required when a user is created. The verified domains
	// for the tenant can be accessed from the verifiedDomains property of organization.
	//
	// NOTE: This property cannot contain accent characters.
	//
	// Returned by default.
	// Supports $filter (eq, ne, NOT, ge, le, in, startsWith, endsWith) and $orderBy.
	UserPrincipalName string `json:"userPrincipalName,omitempty"`

	// A string value that can be used to classify user types in your directory, such as Member and Guest.
	// Returned only on $select.
	// Supports $filter (eq, ne, NOT, in).
	UserType string `json:"userType,omitempty"`
}

Represents an Azure Active Directory user account.

type UserAssignedIdentity

type UserAssignedIdentity struct {
	ClientId    string `json:"clientId,omitempty"`
	PrincipalId string `json:"principalId,omitempty"`
}

type UserList

type UserList struct {
	Count    int    `json:"@odata.count,omitempty"`    // The total count of all results
	NextLink string `json:"@odata.nextLink,omitempty"` // The URL to use for getting the next set of values.
	Value    []User `json:"value"`                     // A list of users.
}

type UserResult

type UserResult struct {
	Error error
	Ok    User
}

type VMExtensionProperties

type VMExtensionProperties struct {
	// Indicates whether the extension should use a newer minor version if one is available at deployment time.
	// Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property
	// set to true.
	AutoUpgradeMinorVersion bool `json:"autoUpgradeMinorVersion,omitempty"`

	// Indicates whether the extension should be automatically upgraded by the platform if there is a newer version of
	// the extension available.
	EnabledAutomaticUpgrade bool `json:"enabledAutomaticUpgrade,omitempty"`

	// How the extension handler should be forced to update even if the extension configuration has not changed.
	ForceUpdateTag string `json:"forceUpdateTag,omitempty"`

	// The virtual machine extension instance view.
	InstanceView VirtualMachineExtensionInstanceView `json:"instanceView,omitempty"`

	// The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at
	// all.
	ProtectedSettings map[string]string `json:"protectedSettings,omitempty"`

	// The provisioning state, which only appears in the response.
	ProvisioningState string `json:"provisioningState,omitempty"`

	// The name of the extension handler publisher.
	Publisher string `json:"publisher,omitempty"`

	// Json formatted public settings for the extension.
	Settings map[string]string `json:"settings,omitempty"`

	// Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not
	// connecting to the VM will not be suppressed regardless of this value).
	// The default is false.
	SuppressFailures bool `json:"suppressFailures,omitempty"`

	// Specifies the type of the extension; an example is "CustomScriptExtension".
	Type string `json:"type,omitempty"`

	// Specifies the version of the script handler.
	TypeHandlerVersion string `json:"typeHandlerVersion,omitempty"`
}

type VMGalleryApplication

type VMGalleryApplication struct {
	// Optional, Specifies the uri to an azure blob that will replace the default configuration for the package if
	// provided.
	ConfigurationReference string `json:"configurationReference,omitempty"`

	// Optional, Specifies the order in which the packages have to be installed.
	Order int `json:"order,omitempty"`

	// Specifies the GalleryApplicationVersion resource id on the form of
	// /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{application}/versions/{version}
	PackageReferenceId string `json:"packageReferenceId,omitempty"`

	// Optional, Specifies a passthrough value for more generic context.
	Tags string `json:"tags,omitempty"`
}

Specifies the required information to reference a compute gallery application version.

type VMIPConfigProperties

type VMIPConfigProperties struct {
	// Specifies an array of references to backend address pools of application gateways. A virtual machine can
	// reference backend address pools of multiple application gateways. Multiple virtual machines cannot use the same
	// application gateway.
	ApplicationGatewayBackendAddressPools []SubResource `json:"applicationGatewayBackendAddressPools,omitempty"`

	// Specifies an array of references to application security group.
	ApplicationSecurityGroups []SubResource `json:"applicationSecurityGroups,omitempty"`

	// Specifies an array of references to backend address pools of load balancers. A virtual machine can reference
	// backend address pools of one public and one internal load balancer. [Multiple virtual machines cannot use the
	// same basic sku load balancer].
	LoadBalancerBackendAddressPools []SubResource `json:"loadBalancerBackendAddressPools,omitempty"`

	// Specifies the primary network interface in case the virtual machine has more than 1 network interface.
	Primary bool `json:"primary,omitempty"`

	// Available from Api-Version 2017-03-30 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6.
	// Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.
	PrivateIPAddressVersion string `json:"privateIpAddressVersion,omitempty"`

	// The publicIPAddressConfiguration.
	PublicIPAddressConfiguration VMPublicIPConfig `json:"publicIpAddressConfiguration,omitempty"`

	// Specifies the identifier of the subnet.
	Subnet SubResource `json:"subnet,omitempty"`
}

type VMIPTag

type VMIPTag struct {
	// IP tag type. Example: FirstPartyUsage.
	IPTagType string `json:"ipTagType,omitempty"`

	// IP tag associated with the public IP. Example: SQL, Storage etc.
	Tag string `json:"tag,omitempty"`
}

Contains the IP tag associated with the public IP address.

type VMNetworkInterfaceConfigurationProperties

type VMNetworkInterfaceConfigurationProperties struct {
	// Specify what happens to the network interface when the VM is deleted.
	DeleteOption enums.VMDeleteOption `json:"deleteOption,omitempty"`

	// The dns settings to be applied on the network interfaces.
	DNSSettings VMNetworkInterfaceDNSSettings `json:"dnsSettings,omitempty"`

	// The DSCP resource to be applied to the network interfaces.
	DSCPConfiguration SubResource `json:"dscpConfiguration,omitempty"`

	// Specifies whether the network interface is accelerated networking-enabled.
	EnabledAcceleratedNetworking bool `json:"enabledAcceleratedNetworking,omitempty"`

	// Specifies whether the network is FPGA networking-enabled
	EnableFpga bool `json:"enableFpga,omitempty"`

	// Whether IP forwarding is enabled on this NIC.
	EnableIPForwarding bool `json:"enableIPForwarding,omitempty"`

	// Specifies the IP configurations of the network interface.
	IPConfigurations []VMNetworkInterfaceIPConfig `json:"ipConfigurations,omitempty"`

	// The network security group.
	NetworkSecurityGroup SubResource `json:"networkSecurityGroup,omitempty"`

	// Specifies the primary network interface in case the virtual machine has more than one.
	Primary bool `json:"primary,omitempty"`
}

type VMNetworkInterfaceDNSSettings

type VMNetworkInterfaceDNSSettings struct {
	// List of DNS server IP addresses
	DNSServers []string `json:"dnsServers,omitempty"`
}

Describes a virtual machine network configuration's DNS settings.

type VMNetworkInterfaceIPConfig

type VMNetworkInterfaceIPConfig struct {
	Properties VMIPConfigProperties `json:"properties,omitempty"`
}

Describes a virtual machine network profile's IP configuration.

type VMPublicIPConfig

type VMPublicIPConfig struct {
	// The public IP address configuration name.
	Name string `json:"name,omitempty"`

	Properties VMPublicIPConfigProperties `json:"properties,omitempty"`

	// Describes the public IP Sku
	Sku VMPublicIPSku `json:"sku,omitempty"`
}

Describes a virtual machines IP Configuration's PublicIPAddress configuration.

type VMPublicIPConfigProperties

type VMPublicIPConfigProperties struct {
	// Specify what happens to the public IP address when the VM is deleted.
	DeleteOption enums.VMDeleteOption `json:"deleteOption,omitempty"`

	// The dns settings to be applied on the publicIP addresses.
	DNSSettings VMPublicIPDNSSettings `json:"dnsSettings,omitempty"`

	// The idle timeout of the public IP address.
	IdleTimeoutInMinutes int `json:"idleTimeoutInMinutes,omitempty"`

	// The list of IP tags associated with the public IP address.
	IPTags []VMIPTag `json:"ipTags,omitempty"`

	// Available from Api-Version 2019-07-01 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6.
	// Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.
	PublicIPAddressVersion string `json:"publicIpAddressVersion,omitempty"`

	// Specify the public IP allocation type.
	PublicIPAllocationMethod enums.IPAllocationMethod `json:"publicIpAllocationMethod,omitempty"`
}

type VMPublicIPDNSSettings

type VMPublicIPDNSSettings struct {
	// The Domain name label prefix of the PublicIPAddress resources that will be created. The generated name label is
	// the concatenation of the domain name label and vm network profile unique ID.
	DomainNameLabel string `json:"domainNameLabel,omitempty"`
}

Describes a virtual machines network configuration's DNS settings.

type VMPublicIPSku

type VMPublicIPSku struct {
	// Specify the public IP sku name.
	Name enums.IPSku `json:"name,omitempty"`

	// Specify the public IP sky tier.
	Tier enums.IPSkuTier `json:"tier,omitempty"`
}

Describes the public IP Sku

type VMScaleSet

type VMScaleSet struct {
	Entity

	ExtendedLocation ExtendedLocation  `json:"extendedLocation,omitempty"`
	Identity         ManagedIdentity   `json:"identity,omitempty"`
	Location         string            `json:"location,omitempty"`
	Name             string            `json:"name,omitempty"`
	Plan             Plan              `json:"plan,omitempty"`
	Tags             map[string]string `json:"tags,omitempty"`
	Type             string            `json:"type,omitempty"`
	Zones            []string          `json:"zones,omitempty"`
}

func (VMScaleSet) ResourceGroupId

func (s VMScaleSet) ResourceGroupId() string

func (VMScaleSet) ResourceGroupName

func (s VMScaleSet) ResourceGroupName() string

type VMScaleSetList

type VMScaleSetList struct {
	NextLink string       `json:"nextLink,omitempty"` // The URL to use for getting the next set of values.
	Value    []VMScaleSet `json:"value"`              // A list of virtual machine scale sets.
}

type VMScaleSetResult

type VMScaleSetResult struct {
	SubscriptionId string
	Error          error
	Ok             VMScaleSet
}

type VMSizeProperties

type VMSizeProperties struct {
	// Specifies the number of vCPUs available for the VM.
	// When this property is not specified in the request body the default behavior is to set it to the value of vCPUs
	// available for that VM size exposed in api response of List all available virtual machine sizes in a region.
	VCPUsAvailable int `json:"vCPUsAvailable,omitempty"`

	// Specifies the vCPU to physical core ratio.
	// When this property is not specified in the request body the default behavior is set to the value of vCPUsPerCore
	// for the VM Size exposed in api response of List all available virtual machine sizes in a region.
	// Setting this property to 1 also means that hyper-threading is disabled.
	VCPUsPerCore int `json:"vCPUsPerCore,omitempty"`
}

Specifies VM Size Property settings on the virtual machine.

type VaultCertificate

type VaultCertificate struct {
	// For Windows VMs, specifies the certificate store on the Virtual Machine to which the certificate should be added.
	// The specified certificate store is implicitly in the LocalMachine account.
	// For Linux VMs, the certificate file is placed under the /var/lib/waagent directory, with the file name
	// <UppercaseThumbprint>.crt for the X509 certificate file and <UppercaseThumbprint>.prv for private key.
	// Both of these files are .pem formatted.
	CertificateStore string `json:"certificateStore,omitempty"`

	// This is the URL of a certificate that has been uploaded to Key Vault as a secret.
	// For adding a secret to the Key Vault, see Add a key or secret to the key vault. In this case, your certificate
	// needs to be It is the Base64 encoding of the following JSON Object which is encoded in UTF-8:
	//
	// “`json
	// {
	//   "data":"",
	//   "dataType":"pfx",
	//   "password":""
	// }
	// “`
	//
	// To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine
	// extension for Linux or the Azure Key Vault virtual machine extension for Windows.
	CertificateUrl string `json:"certificateUrl,omitempty"`
}

Describes a single certificate reference in a Key Vault, and where the certificate should reside on the VM.

type VaultProperties

type VaultProperties struct {
	// An array of 0 to 1024 identities that have access to the key vault. All identities in the array must use the same
	// tenant ID as the key vault's tenant ID. When createMode is set to recover, access policies are not required.
	// Otherwise, access policies are required.
	AccessPolicies []AccessPolicyEntry `json:"accessPolicies,omitempty"`

	// The vault's create mode to indicate whether the vault need to be recovered or not.
	CreateMode enums.CreateMode `json:"createMode,omitempty"`

	// Property specifying whether protection against purge is enabled for this vault.
	// Setting this property to true activates protection against purge for this vault and its content - only the
	// Key Vault service may initiate a hard, irrecoverable deletion.
	// The setting is effective only if soft delete is also enabled.
	// Enabling this functionality is irreversible - that is, the property does not accept false as its value.
	EnablePurgeProtection bool `json:"enablePurgeProtection,omitempty"`

	// Property that controls how data actions are authorized.
	// When true, the key vault will use Role Based Access Control (RBAC) for authorization of data actions, and the
	// access policies specified in vault properties will be ignored. When false, the key vault will use the access
	// policies specified in vault properties, and any policy stored on Azure Resource Manager will be ignored. If null
	// or not specified, the vault is created with the default value of false.
	// Note that management actions are always authorized with RBAC.
	EnableRbacAuthorization bool `json:"enableRbacAuthorization,omitempty"`

	// Property to specify whether the 'soft delete' functionality is enabled for this key vault.
	// If it's not set to any value(true or false) when creating new key vault, it will be set to true by default.
	// Once set to true, it cannot be reverted to false.
	EnableSoftDelete bool `json:"enableSoftDelete,omitempty"`

	// Property to specify whether Azure Virtual Machines are permitted to retrieve certificates stored as secrets from
	// the key vault.
	EnabledForDeployment bool `json:"enabledForDeployment,omitempty"`

	// Property to specify whether Azure Disk Encryption is permitted to retrieve secrets from the vault and unwrap keys.
	EnabledForDiskEncryption bool `json:"enabledForDiskEncryption,omitempty"`

	// Property to specify whether Azure Resource Manager is permitted to retrieve secrets from the key vault.
	EnabledForTemplateDeployment bool `json:"enabledForTemplateDeployment,omitempty"`

	// The resource ID of HSM Pool.
	HsmPoolResourceId string `json:"hsmPoolResourceId,omitempty"`

	// Rules governing the accessibility of the key vault from specific network locations.
	NetworkAcls NetworkRuleSet `json:"networkAcls,omitempty"`

	// List of private endpoint connections associated with the key vault.
	PrivateEndpointConnections []PrivateEndpointConnectionItem `json:"privateEndpointConnections,omitempty"`

	// Provisioning state of the vault.
	ProvisioningState enums.VaultProvisioningState `json:"provisioningState,omitempty"`

	// SKU details
	Sku Sku `json:"sku,omitempty"`

	// softDelete data retention days. It accepts >=7 and <=90.
	SoftDeleteRetentionInDays int `json:"softDeleteRetentionInDays,omitempty"`

	// The Azure Active Directory tenant ID that should be used for authenticating requests to the key vault.
	TenantId string `json:"tenantId,omitempty"`

	// The URI of the vault for performing operations on keys and secrets. This property is readonly.
	VaultUri string `json:"vaultUri,omitempty"`
}

Properties of the vault

type VaultSecretGroup

type VaultSecretGroup struct {
	// The relative URL of the Key Vault containing all of the certificates in VaultCertificates.
	SourceVault SubResource `json:"sourceVault,omitempty"`

	// The list of key vault references in SourceVault which contain certificates.
	VaultCertificates []VaultCertificate `json:"vaultCertificates,omitempty"`
}

Describes a set of certificates which are all in the same Key Vault.

type VerifiedDomain

type VerifiedDomain struct {
	// For example, "Email", "OfficeCommunicationsOnline".
	Capabilities string `json:"capabilities,omitempty"`

	// `true` if this is the default domain associated with the tenant; otherwise, `false`.
	IsDefault bool `json:"isDefault,omitempty"`

	// `true` if this is the initial domain associated with the tenant; otherwise, `false`.
	IsInitial bool `json:"isInitial,omitempty"`

	// The domain name; for example, “contoso.onmicrosoft.com”.
	Name string `json:"name,omitempty"`

	// For example, "Managed".
	Type string `json:"type,omitempty"`
}

Specifies a domain for a tenant.

type VerifiedPublisher

type VerifiedPublisher struct {
	// The verified publisher name from the app publisher's Partner Center account.
	DisplayName string `json:"displayName,omitempty"`

	// The ID of the verified publisher from the app publisher's Partner Center account.
	VerifiedPublisherId string `json:"verifiedPublisherId,omitempty"`

	// The timestamp when the verified publisher was first added or most recently updated.
	AddedDateTime string `json:"addedDateTime,omitempty"`
}

Represents the verified publisher of the application. For more detail see https://docs.microsoft.com/en-us/graph/api/resources/verifiedpublisher?view=graph-rest-1.0

type VirtualApplication

type VirtualApplication struct {
	PhysicalPath       string             `json:"physicalPath,omitempty"`
	PreloadEnabled     bool               `json:"preloadEnabled,omitempty"`
	VirtualDirectories []VirtualDirectory `json:"virtualDirectories,omitempty"`
	VirtualPath        string             `json:"virtualPath,omitempty"`
}

type VirtualDirectory

type VirtualDirectory struct {
	PhysicalPath string `json:"physicalPath,omitempty"`
	VirtualPath  string `json:"virtualPath,omitempty"`
}

type VirtualHardDisk

type VirtualHardDisk struct {
	Uri string `json:"uri,omitempty"`
}

Describes the uri of a disk.

type VirtualMachine

type VirtualMachine struct {
	Entity

	ExtendedLocation ExtendedLocation          `json:"extendedLocation,omitempty"`
	Identity         ManagedIdentity           `json:"identity,omitempty"`
	Location         string                    `json:"location,omitempty"`
	Name             string                    `json:"name,omitempty"`
	Plan             Plan                      `json:"plan,omitempty"`
	Properties       VirtualMachineProperties  `json:"properties,omitempty"`
	Resources        []VirtualMachineExtension `json:"resources,omitempty"`
	Tags             map[string]string         `json:"tags,omitempty"`
	Type             string                    `json:"type,omitempty"`
	Zones            []string                  `json:"zones,omitempty"`
}

func (VirtualMachine) ResourceGroupId

func (s VirtualMachine) ResourceGroupId() string

func (VirtualMachine) ResourceGroupName

func (s VirtualMachine) ResourceGroupName() string

type VirtualMachineAgentInstanceView

type VirtualMachineAgentInstanceView struct {
	// The virtual machine extension handler instance view.
	ExtensionHandlers []VirtualMachineExtensionHandlerInstanceView `json:"extensionHandlers,omitempty"`

	// The resource status information.
	Statuses []InstanceViewStatus `json:"statuses,omitempty"`

	// The VM Agent full version.
	VMAgentVersion string `json:"vmAgentVersion,omitempty"`
}

The instance view of the the VM Agent running on the virtual machine.

type VirtualMachineExtension

type VirtualMachineExtension struct {
	// Resource ID.
	Id string `json:"id,omitempty"`

	// Resource location.
	Location string `json:"location,omitempty"`

	// Resource name.
	Name string `json:"name,omitempty"`

	Properties VMExtensionProperties `json:"properties,omitempty"`

	// Resource tags.
	Tags map[string]string `json:"tags,omitempty"`

	// Resource type.
	Type string `json:"type,omitempty"`
}

Describes a Virtual Machine Extension.

type VirtualMachineExtensionHandlerInstanceView

type VirtualMachineExtensionHandlerInstanceView struct {
	// The extension handler status.
	Status InstanceViewStatus `json:"status,omitempty"`

	// Specifies the type of the extension; an example is "CustomScriptExtension".
	Type string `json:"type,omitempty"`

	// Specifies the version of the script handler.
	TypeHandlerVersion string `json:"typeHandlerVersion,omitempty"`
}

The instance view of a virtual machine extension handler.

type VirtualMachineExtensionInstanceView

type VirtualMachineExtensionInstanceView struct {
	// The virtual machine extension name.
	Name string `json:"name,omitempty"`

	// The resource status information.
	Statuses []InstanceViewStatus `json:"statuses,omitempty"`

	// The resource status information.
	Substatuses []InstanceViewStatus `json:"substatuses,omitempty"`

	// Specifies the type of the extension; e.g. "CustomScriptExtension"
	Type string `json:"type,omitempty"`

	// Specifies the version of the script handler.
	TypeHandlerVersion string `json:"typeHandlerVersion,omitempty"`
}

The instance view of a virtual machine extension.

type VirtualMachineHealthStatus

type VirtualMachineHealthStatus struct {
	// The health status information for the VM.
	Status InstanceViewStatus `json:"status,omitempty"`
}

The health status of the VM.

type VirtualMachineIdentity

type VirtualMachineIdentity ManagedIdentity

Deprecated, use ManagedIdentity

type VirtualMachineInstanceView

type VirtualMachineInstanceView struct {
	// Resource id of the dedicated host, on which the virtual machine is allocated through automatic placement, when
	// the virtual machine is associated with a dedicated host group that has automatic placement enabled.
	// Minimum api-version: 2020-06-01.
	AssignedHost string `json:"assignedHost,omitempty"`

	// Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM
	// status.
	// You can easily view the output of your console log.
	// Azure also enables you to see a screenshot of the VM from the hypervisor.
	BootDiagnotics BootDiagnoticsInstanceView `json:"bootDiagnotics,omitempty"`

	// The computer name assigned to the virtual machine.
	ComputerName string `json:"computerName,omitempty"`

	// The virtual machine disk information.
	Disks []DiskInstanceView `json:"disks,omitempty"`

	// The extensions information.
	Extensions []VirtualMachineExtensionInstanceView `json:"extensions,omitempty"`

	// Specifies the HyperVGeneration Type associated with a resource.
	HyperVGeneration enums.HyperVGeneration `json:"hyperVGeneration,omitempty"`

	// The Maintenance Operation status on the virtual machine.
	MaintenanceRedeployStatus MaintenanceRedeployStatus `json:"maintenanceRedeployStatus,omitempty"`

	// The Operating System running on the virtual machine.
	OSName string `json:"osName,omitempty"`

	// The version of Operating System running on the virtual machine.
	OSVersion string `json:"osVersion,omitempty"`

	// [Preview Feature] The status of the virtual machine patch operations.
	PatchStatus VirtualMachinePatchStatus `json:"patchStatus,omitempty"`

	// Specifies the fault domain of the virtual machine.
	PlatformFaultDomain int `json:"platformFaultDomain,omitempty"`

	// Specifies the update domain of the virtual machine.
	PlatformUpdateDomain int `json:"platformUpdateDomain,omitempty"`

	// The remote desktop certificate thumbprint.
	RDPThumbPrint string `json:"rdpThumbPrint,omitempty"`

	// The resource status information.
	Statuses []InstanceViewStatus `json:"statuses,omitempty"`

	// The VM Agent running on the virtual machine.
	VMAgent VirtualMachineAgentInstanceView `json:"vmAgent,omitempty"`

	// The health status for the VM.
	VMHealth VirtualMachineHealthStatus `json:"vmHealth,omitempty"`
}

The instance view of a virtual machine.

type VirtualMachineList

type VirtualMachineList struct {
	NextLink string           `json:"nextLink,omitempty"` // The URL to use for getting the next set of values.
	Value    []VirtualMachine `json:"value"`              // A list of virtual machines.
}

type VirtualMachineNetworkInterfaceConfiguration

type VirtualMachineNetworkInterfaceConfiguration struct {
	// The network interface configuration name.
	Name string `json:"name,omitempty"`

	Properties VMNetworkInterfaceConfigurationProperties `json:"properties,omitempty"`
}

Describes a virtual machine network interface configuration.

type VirtualMachinePatchStatus

type VirtualMachinePatchStatus struct {
	// The available patch summary of the latest assessment operation for the virtual machine.
	AvailablePatchSummary AvailablePatchSummary `json:"availablePatchSummary,omitempty"`

	// The enablement status of the specified patchMode.
	ConfigurationStatuses []InstanceViewStatus `json:"configurationStatuses,omitempty"`

	// The installation summary of the latest installation operation for the virtual machine.
	LastPatchInstallationSummary LastPatchInstallationSummary `json:"lastPatchInstallationSummary,omitempty"`
}

The status ov virtual machine patch operations.

type VirtualMachineProperties

type VirtualMachineProperties struct {
	AdditionalCapabilities  AdditionalCapabilities     `json:"additionalCapabilities,omitempty"`
	ApplicationProfile      ApplicationProfile         `json:"applicationProfile,omitempty"`
	AvailabilitySet         SubResource                `json:"availabilitySet,omitempty"`
	BillingProfile          BillingProfile             `json:"billingProfile,omitempty"`
	CapacityReservation     CapacityReservationProfile `json:"capacityReservation,omitempty"`
	DiagnosticsProfile      DiagnosticsProfile         `json:"diagnosticsProfile,omitempty"`
	EvictionPolicy          enums.VMEvictionPolicy     `json:"evictionPolicy,omitempty"`
	ExtensionsTimeBudget    string                     `json:"extensionsTimeBudget,omitempty"`
	HardwareProfile         HardwareProfile            `json:"hardwareProfile,omitempty"`
	Host                    SubResource                `json:"host,omitempty"`
	HostGroup               SubResource                `json:"hostGroup,omitempty"`
	InstanceView            VirtualMachineInstanceView `json:"instanceView,omitempty"`
	LicenseType             string                     `json:"licenseType,omitempty"`
	NetworkProfile          NetworkProfile             `json:"networkProfile,omitempty"`
	OSProfile               OSProfile                  `json:"osProfile,omitempty"`
	PlatformFaultDomain     int                        `json:"platformFaultDomain,omitempty"`
	Priority                enums.VMPriority           `json:"priority,omitempty"`
	ProvisioningState       string                     `json:"provisioningState,omitempty"`
	ProximityPlacementGroup SubResource                `json:"proximityPlacementGroup,omitempty"`
	ScheduledEventsProfile  ScheduledEventsProfile     `json:"scheduledEventsProfile,omitempty"`
	SecurityProfile         SecurityProfile            `json:"securityProfile,omitempty"`
	StorageProfile          StorageProfile             `json:"storageProfile,omitempty"`
	UserData                string                     `json:"userData,omitempty"`
	VirtualMachineScaleSet  SubResource                `json:"virtualMachineScaleSet,omitempty"`
	VMId                    string                     `json:"vmId,omitempty"`
}

type VirtualMachineResult

type VirtualMachineResult struct {
	SubscriptionId string
	Error          error
	Ok             VirtualMachine
}

type VirtualNetworkRule

type VirtualNetworkRule struct {
	// Full resource id of a vnet subnet, such as
	// '/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/subnet1'.
	Id string `json:"id,omitempty"`

	// Property to specify whether NRP will ignore the check if parent subnet has serviceEndpoints configured.
	IgnoreMissingVnetServiceEndpoint bool `json:"ignoreMissingVnetServiceEndpoint,omitempty"`
}

A rule governing the accessibility of a vault from a specific virtual network.

type WebApp

type WebApp struct {
	Entity

	Identity ManagedIdentity   `json:"identity,omitempty"`
	Kind     string            `json:"kind,omitempty"`
	Location string            `json:"location,omitempty"`
	Name     string            `json:"name,omitempty"`
	Tags     map[string]string `json:"tags,omitempty"`
	Type     string            `json:"type,omitempty"`
}

Mapped according to https://learn.microsoft.com/en-us/rest/api/appservice/web-apps/get#site

func (WebApp) ResourceGroupId

func (s WebApp) ResourceGroupId() string

func (WebApp) ResourceGroupName

func (s WebApp) ResourceGroupName() string

type WebAppList

type WebAppList struct {
	NextLink string   `json:"nextLink,omitempty"` // The URL to use for getting the next set of values.
	Value    []WebApp `json:"value"`              // A list of web apps.
}

type WebAppResult

type WebAppResult struct {
	SubscriptionId string
	Error          error
	Ok             WebApp
}

type WebApplication

type WebApplication struct {
	// Home page or landing page of the application.
	HomePageUrl string `json:"homePageUrl,omitempty"`

	// Specifies whether this web application can request tokens using the OAuth 2.0 implicit flow.
	ImplicitGrantSettings ImplicitGrantSettings `json:"implicitGrantSettings,omitempty"`

	// Specifies the URL that will be used by Microsoft's authorization service to logout a user using front-channel,
	// back-channel or SAML logout protocols.
	LogoutUrl string `json:"logoutUrl,omitempty"`

	// Specifies the URLs where user tokens are sent for sign-in, or the redirect URIs where OAuth 2.0 authorization
	// codes and access tokens are sent.
	RedirectUris []string `json:"redirectUris,omitempty"`
}

Specifies settings for a web application.

type WinRMConfiguration

type WinRMConfiguration struct {
	// The list of Windows Remote Management listeners.
	Listeners []WinRMListener `json:"listeners,omitempty"`
}

Describes Windows Remote Management configuration of the VM.

type WinRMListener

type WinRMListener struct {
	// This is the URL of a certificate that has been uploaded to Key Vault as a secret.
	// For adding a secret to the Key Vault, see Add a key or secret to the key vault. In this case, your certificate
	// needs to be It is the Base64 encoding of the following JSON Object which is encoded in UTF-8:
	//
	// “`json
	// {
	//   "data":"",
	//   "dataType":"pfx",
	//   "password":""
	// }
	// “`
	// To install certificates on a virtual machine it is recommended to use the Azure Key Vault virtual machine
	// extension for Linux or the Azure Key Vault virtual machine extension for Windows.
	CertificateUrl string `json:"certificateUrl,omitempty"`

	// Specifies the protocol of WinRM listener.
	// Possible values are:
	// - http
	// - https
	Protocol string `json:"protocol,omitempty"`
}

Describes Protocol and thumbprint of Windows Remote Management listener.

type WindowsConfiguration

type WindowsConfiguration struct {
	// Specifies additional base-64 encoded XML formatted information that can be included in the Unattend.xml file,
	// which is used by Windows Setup.
	AdditionalUnattendContent []AdditionalUnattendContent `json:"additionalUnattendContent,omitempty"`

	// Indicates whether Automatic Updates is enabled for the Windows virtual machine. Default value is true.
	// For virtual machine scale sets, this property can be updated and updates will take effect on OS reprovisioning.
	EnableAutomaticUpdates bool `json:"enableAutomaticUpdates,omitempty"`

	// [Preview Feature] Specifies settings related to VM Guest Patching on Windows.
	PatchSettings WindowsPatchSettings `json:"patchSettings,omitempty"`

	// Indicates whether virtual machine agent should be provisioned on the virtual machine.
	// When this property is not specified in the request body, default behavior is to set it to true. This will ensure
	// that VM Agent is installed on the VM so that extensions can be added to the VM later.
	ProvisionVMAgent bool `json:"provisionVMAgent,omitempty"`

	// Specifies the time zone of the virtual machine. e.g. "Pacific Standard Time"
	TimeZone string `json:"timeZone,omitempty"`

	// Specifies the Windows Remote Management listeners. This enables remote Windows PowerShell.
	WinRM WinRMConfiguration `json:"winRM,omitempty"`
}

Specifies Windows operating system settings on the virtual machine.

type WindowsPatchSettings

type WindowsPatchSettings struct {
	// Specifies the mode of VM Guest patch assessment for the IaaS virtual machine.
	// Possible values are:
	// ImageDefault - You control the timing of patch assessments on a virtual machine.
	// AutomaticByPlatform - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true.
	AssessmentMode string `json:"assessmentMode,omitempty"`

	// Enables customers to patch their Azure VMs without requiring a reboot.
	// For enableHotpatching, the 'provisionVMAgent' must be set to true and 'patchMode' must be set to 'AutomaticByPlatform'.
	EnableHotpatching bool `json:"enableHotpatching,omitempty"`

	// Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine
	// scale set with OrchestrationMode as Flexible.
	// Possible values are:
	// Manual - You control the application of patches to a virtual machine. You do this by applying patches manually inside the VM. In this mode, automatic updates are disabled; the property WindowsConfiguration.enableAutomaticUpdates must be false
	// AutomaticByOS - The virtual machine will automatically be updated by the OS. The property WindowsConfiguration.enableAutomaticUpdates must be true.
	// AutomaticByPlatform - the virtual machine will automatically updated by the platform. The properties provisionVMAgent and WindowsConfiguration.enableAutomaticUpdates must be true
	PatchMode string `json:"patchMode,omitempty"`
}

Specifies settings related to VM Guest Patching on Windows.

type WorkingHours

type WorkingHours struct {
	// The days of the week on which the user works.
	DaysOfWeek []enums.DayOfWeek `json:"daysOfWeek,omitempty"`

	// The time of the day that the user starts working.
	StartTime string `json:"startTime,omitempty"`

	// The time of the day that the user stops working.
	EndTime string `json:"endTime,omitempty"`

	// The time zone to which the working hours apply.
	TimeZone TimeZoneBase `json:"timeZoneBase,omitempty"`
}

Source Files

Jump to

Keyboard shortcuts

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