// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.
// Code generated by Microsoft (R) Go Code Generator. DO NOT EDIT.

package armquota

import "time"

// AllocatedQuotaToSubscriptionList - Quota allocated to subscriptions
type AllocatedQuotaToSubscriptionList struct {
	// List of Group Quota Limit allocated to subscriptions.
	Value []*AllocatedToSubscription
}

// AllocatedToSubscription - SubscriptionIds and quota allocated to subscriptions from the GroupQuota.
type AllocatedToSubscription struct {
	// The amount of quota allocated to this subscriptionId from the GroupQuotasEntity.
	QuotaAllocated *int64

	// An Azure subscriptionId.
	SubscriptionID *string
}

// AllocationRequestBase - The new quota request allocated to subscription.
type AllocationRequestBase struct {
	Properties *AllocationRequestBaseProperties
}

type AllocationRequestBaseProperties struct {
	// The new quota limit for the subscription. The incremental quota will be allocated from pre-approved group quota.
	Limit *int64

	// The location for which the subscription is allocated
	Region *string

	// READ-ONLY; Name of the resource provided by the resource provider. This property is already included in the request URI,
	// so it is a readonly property returned in the response.
	Name *AllocationRequestBasePropertiesName
}

// AllocationRequestBasePropertiesName - Name of the resource provided by the resource provider. This property is already
// included in the request URI, so it is a readonly property returned in the response.
type AllocationRequestBasePropertiesName struct {
	// READ-ONLY; Resource display name.
	LocalizedValue *string

	// READ-ONLY; Resource name.
	Value *string
}

// AllocationRequestStatus - The subscription quota allocation status.
type AllocationRequestStatus struct {
	Properties *AllocationRequestStatusProperties

	// READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

// AllocationRequestStatusList - List of QuotaAllocation Request Status
type AllocationRequestStatusList struct {
	// REQUIRED; The QuotaAllocationRequestStatus items on this page
	Value []*AllocationRequestStatus

	// The link to the next page of items
	NextLink *string
}

type AllocationRequestStatusProperties struct {
	// The new quota request allocated to subscription.
	RequestedResource *AllocationRequestBase

	// READ-ONLY; Details of the failure.
	FaultCode *string

	// READ-ONLY; Request status.
	ProvisioningState *RequestState

	// READ-ONLY; The request submission time. The date conforms to the following format specified by the ISO 8601 standard: yyyy-MM-ddTHH:mm:ssZ
	RequestSubmitTime *time.Time
}

// CurrentQuotaLimitBase - Quota limit.
type CurrentQuotaLimitBase struct {
	// Quota properties for the specified resource, based on the API called, Quotas or Usages.
	Properties *Properties

	// READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

// CurrentUsagesBase - Resource usage.
type CurrentUsagesBase struct {
	// Usage properties for the specified resource.
	Properties *UsagesProperties

	// READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

// GroupQuotaDetailsName - Name of the resource provided by the resource provider. This property is already included in the
// request URI, so it is a readonly property returned in the response.
type GroupQuotaDetailsName struct {
	// READ-ONLY; Resource display name.
	LocalizedValue *string

	// READ-ONLY; Resource name.
	Value *string
}

// GroupQuotaLimit - Group Quota limit.
type GroupQuotaLimit struct {
	// Group Quota properties for the specified resource.
	Properties *GroupQuotaLimitProperties
}

// GroupQuotaLimitList - List of Group Quota Limit details.
type GroupQuotaLimitList struct {
	Properties *GroupQuotaLimitListProperties

	// READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

type GroupQuotaLimitListProperties struct {
	// List of Group Quota Limit details.
	Value []*GroupQuotaLimit

	// READ-ONLY; The URL to use for getting the next set of results.
	NextLink *string

	// READ-ONLY; Request status.
	ProvisioningState *RequestState
}

// GroupQuotaLimitProperties - Group Quota properties for the specified resource.
type GroupQuotaLimitProperties struct {
	// Any comment related to quota request.
	Comment *string

	// The current Group Quota Limit at the parentId level.
	Limit *int64

	// The resource name, such as SKU name.
	ResourceName *string

	// READ-ONLY; Quota allocated to subscriptions
	AllocatedToSubscriptions *AllocatedQuotaToSubscriptionList

	// READ-ONLY; The available Group Quota Limit at the MG level. This Group quota can be allocated to subscription(s).
	AvailableLimit *int64

	// READ-ONLY; Name of the resource provided by the resource provider. This property is already included in the request URI,
	// so it is a readonly property returned in the response.
	Name *GroupQuotaDetailsName

	// READ-ONLY; The usages units, such as Count and Bytes. When requesting quota, use the **unit** value returned in the GET
	// response in the request body of your PUT operation.
	Unit *string
}

// GroupQuotaList - List of Group Quotas at MG level.
type GroupQuotaList struct {
	// REQUIRED; The GroupQuotasEntity items on this page
	Value []*GroupQuotasEntity

	// The link to the next page of items
	NextLink *string
}

// GroupQuotaRequestBase - The new GroupQuota limit requested.
type GroupQuotaRequestBase struct {
	Properties *GroupQuotaRequestBaseProperties
}

type GroupQuotaRequestBaseProperties struct {
	// GroupQuota Request comments and details for request. This is optional paramter to provide more details related to the requested
	// resource.
	Comments *string

	// The new quota limit for the subscription. The incremental quota will be allocated from pre-approved group quota.
	Limit *int64

	// Location/Azure region for the quota requested for resource.
	Region *string

	// READ-ONLY; Name of the resource provided by the resource provider. This property is already included in the request URI,
	// so it is a readonly property returned in the response.
	Name *GroupQuotaRequestBasePropertiesName
}

// GroupQuotaRequestBasePropertiesName - Name of the resource provided by the resource provider. This property is already
// included in the request URI, so it is a readonly property returned in the response.
type GroupQuotaRequestBasePropertiesName struct {
	// READ-ONLY; Resource display name.
	LocalizedValue *string

	// READ-ONLY; Resource name.
	Value *string
}

// GroupQuotaSubscriptionID - This represents a Azure subscriptionId that is associated with a GroupQuotasEntity.
type GroupQuotaSubscriptionID struct {
	Properties *GroupQuotaSubscriptionIDProperties

	// READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

// GroupQuotaSubscriptionIDList - List of GroupQuotaSubscriptionIds
type GroupQuotaSubscriptionIDList struct {
	// REQUIRED; The GroupQuotaSubscriptionId items on this page
	Value []*GroupQuotaSubscriptionID

	// The link to the next page of items
	NextLink *string
}

type GroupQuotaSubscriptionIDProperties struct {
	// An Azure subscriptionId.
	SubscriptionID *string

	// READ-ONLY; Status of this subscriptionId being associated with the GroupQuotasEntity.
	ProvisioningState *RequestState
}

// GroupQuotaSubscriptionRequestStatus - The new quota limit request status.
type GroupQuotaSubscriptionRequestStatus struct {
	Properties *GroupQuotaSubscriptionRequestStatusProperties

	// READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

// GroupQuotaSubscriptionRequestStatusList - List of GroupQuotaSubscriptionRequests Status
type GroupQuotaSubscriptionRequestStatusList struct {
	// REQUIRED; The GroupQuotaSubscriptionRequestStatus items on this page
	Value []*GroupQuotaSubscriptionRequestStatus

	// The link to the next page of items
	NextLink *string
}

type GroupQuotaSubscriptionRequestStatusProperties struct {
	// The request submission time. The date conforms to the following format specified by the ISO 8601 standard: yyyy-MM-ddTHH:mm:ssZ
	RequestSubmitTime *time.Time

	// The subscription Id
	SubscriptionID *string

	// READ-ONLY; Status of this subscriptionId being associated with the GroupQuotasEntity.
	ProvisioningState *RequestState
}

// GroupQuotaUsagesBase - Resource details with usages and GroupQuota.
type GroupQuotaUsagesBase struct {
	// Quota/limits for the resource.
	Limit *int64

	// Name of the resource provided by the resource provider. This property is already included in the request URI, so it is
	// a readonly property returned in the response.
	Name *GroupQuotaUsagesBaseName

	// Usages for the resource.
	Usages *int64

	// READ-ONLY; Representing the units of the usage quota. Possible values are: Count, Bytes, Seconds, Percent, CountPerSecond,
	// BytesPerSecond. Based on - https://armwiki.azurewebsites.net/api_contracts/UsagesAPIContract.html?q=usages . Different
	// RPs may have different units, Count, type as int64 should work for most of the integer values.
	Unit *string
}

// GroupQuotaUsagesBaseName - Name of the resource provided by the resource provider. This property is already included in
// the request URI, so it is a readonly property returned in the response.
type GroupQuotaUsagesBaseName struct {
	// Resource name.
	Value *string

	// READ-ONLY; Resource display name.
	LocalizedValue *string
}

// GroupQuotasEnforcementStatus - The GroupQuota Enforcement status for a Azure Location/Region.
type GroupQuotasEnforcementStatus struct {
	Properties *GroupQuotasEnforcementStatusProperties

	// READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

type GroupQuotasEnforcementStatusProperties struct {
	// Is the GroupQuota Enforcement enabled for the Azure region.
	EnforcementEnabled *EnforcementState

	// READ-ONLY; The name of the group that is enforced.
	EnforcedGroupName *string

	// READ-ONLY; Details of the failure.
	FaultCode *string

	// READ-ONLY; Request status.
	ProvisioningState *RequestState
}

// GroupQuotasEntity - Properties and filters for ShareQuota. The request parameter is optional, if there are no filters specified.
type GroupQuotasEntity struct {
	// Properties
	Properties *GroupQuotasEntityProperties

	// READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

// GroupQuotasEntityPatch - Properties and filters for ShareQuota. The request parameter is optional, if there are no filters
// specified.
type GroupQuotasEntityPatch struct {
	// Properties
	Properties *GroupQuotasEntityPatchProperties

	// READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

// GroupQuotasEntityPatchProperties - Properties
type GroupQuotasEntityPatchProperties struct {
	// Display name of the GroupQuota entity.
	DisplayName *string

	// READ-ONLY; Provisioning state of the operation.
	ProvisioningState *RequestState
}

// GroupQuotasEntityProperties - Properties
type GroupQuotasEntityProperties struct {
	// Display name of the GroupQuota entity.
	DisplayName *string

	// READ-ONLY; Type of the group.
	GroupType *GroupType

	// READ-ONLY; Provisioning state of the operation.
	ProvisioningState *RequestState
}

// LimitJSONObject - LimitJson abstract class.
type LimitJSONObject struct {
	// REQUIRED; The limit object type.
	LimitObjectType *LimitType
}

// GetLimitJSONObject implements the LimitJSONObjectClassification interface for type LimitJSONObject.
func (l *LimitJSONObject) GetLimitJSONObject() *LimitJSONObject { return l }

// LimitObject - The resource quota limit value.
type LimitObject struct {
	// CONSTANT; The limit object type.
	// Field has constant value LimitTypeLimitValue, any specified value is ignored.
	LimitObjectType *LimitType

	// REQUIRED; The quota/limit value
	Value *int32

	// The quota or usages limit types.
	LimitType *QuotaLimitTypes
}

// GetLimitJSONObject implements the LimitJSONObjectClassification interface for type LimitObject.
func (l *LimitObject) GetLimitJSONObject() *LimitJSONObject {
	return &LimitJSONObject{
		LimitObjectType: l.LimitObjectType,
	}
}

// Limits - Quota limits.
type Limits struct {
	// REQUIRED; The CurrentQuotaLimitBase items on this page
	Value []*CurrentQuotaLimitBase

	// The link to the next page of items
	NextLink *string
}

type OperationDisplay struct {
	// Operation description.
	Description *string

	// Operation name.
	Operation *string

	// Provider name.
	Provider *string

	// Resource name.
	Resource *string
}

// OperationList - The paginated list of connected cluster API operations.
type OperationList struct {
	// REQUIRED; The list of connected cluster API operations.
	Value []*OperationResponse

	// The link to fetch the next page of connected cluster API operations.
	NextLink *string
}

type OperationResponse struct {
	Display *OperationDisplay
	Name    *string
	Origin  *string
}

// Properties - Quota properties for the specified resource.
type Properties struct {
	// Resource quota limit properties.
	Limit LimitJSONObjectClassification

	// Resource name provided by the resource provider. Use this property name when requesting quota.
	Name *ResourceName

	// Additional properties for the specific resource provider.
	Properties any

	// The name of the resource type. Optional field.
	ResourceType *string

	// READ-ONLY; States if quota can be requested for this resource.
	IsQuotaApplicable *bool

	// READ-ONLY; The time period over which the quota usage values are summarized. For example:
	// *P1D (per one day)
	// *PT1M (per one minute)
	// *PT1S (per one second).
	// This parameter is optional because, for some resources like compute, the period is irrelevant.
	QuotaPeriod *string

	// READ-ONLY; The quota units, such as Count and Bytes. When requesting quota, use the **unit** value returned in the GET
	// response in the request body of your PUT operation.
	Unit *string
}

// RequestDetails - List of quota requests with details.
type RequestDetails struct {
	// Quota request details.
	Properties *RequestProperties

	// READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

// RequestDetailsList - Quota request information.
type RequestDetailsList struct {
	// REQUIRED; The QuotaRequestDetails items on this page
	Value []*RequestDetails

	// The link to the next page of items
	NextLink *string
}

// RequestProperties - Quota request properties.
type RequestProperties struct {
	// Error details of the quota request.
	Error *ServiceErrorDetail

	// Quota request details.
	Value []*SubRequest

	// READ-ONLY; User-friendly status message.
	Message *string

	// READ-ONLY; The quota request status.
	ProvisioningState *QuotaRequestState

	// READ-ONLY; The quota request submission time. The date conforms to the following format specified by the ISO 8601 standard:
	// yyyy-MM-ddTHH:mm:ssZ
	RequestSubmitTime *time.Time
}

// ResourceName - Name of the resource provided by the resource Provider. When requesting quota, use this property name.
type ResourceName struct {
	// Resource name.
	Value *string

	// READ-ONLY; Resource display name.
	LocalizedValue *string
}

// ResourceUsageList - List of resource usages and quotas for GroupQuota.
type ResourceUsageList struct {
	// REQUIRED; The ResourceUsages items on this page
	Value []*ResourceUsages

	// The link to the next page of items
	NextLink *string
}

// ResourceUsages - Resource details with usages and GroupQuota.
type ResourceUsages struct {
	// Resource details with usages and GroupQuota.
	Properties *GroupQuotaUsagesBase

	// READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

// ServiceErrorDetail - Error details.
type ServiceErrorDetail struct {
	// READ-ONLY; Error code.
	Code *string

	// READ-ONLY; Error message.
	Message *string
}

// SubRequest - Request property.
type SubRequest struct {
	// Resource quota limit properties.
	Limit LimitJSONObjectClassification

	// Resource name.
	Name *ResourceName

	// Quota limit units, such as Count and Bytes. When requesting quota, use the **unit** value returned in the GET response
	// in the request body of your PUT operation.
	Unit *string

	// READ-ONLY; User-friendly status message.
	Message *string

	// READ-ONLY; The quota request status.
	ProvisioningState *QuotaRequestState

	// READ-ONLY; Resource type for which the quota properties were requested.
	ResourceType *string

	// READ-ONLY; Quota request ID.
	SubRequestID *string
}

// SubmittedResourceRequestStatus - Status of a single GroupQuota request.
type SubmittedResourceRequestStatus struct {
	Properties *SubmittedResourceRequestStatusProperties

	// READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

// SubmittedResourceRequestStatusList - Share Quota Entity list.
type SubmittedResourceRequestStatusList struct {
	// REQUIRED; The SubmittedResourceRequestStatus items on this page
	Value []*SubmittedResourceRequestStatus

	// The link to the next page of items
	NextLink *string
}

type SubmittedResourceRequestStatusProperties struct {
	// Requested Resource.
	RequestedResource *GroupQuotaRequestBase

	// READ-ONLY; Details of the failure.
	FaultCode *string

	// READ-ONLY; Request status.
	ProvisioningState *RequestState

	// READ-ONLY; The request submission time. The date conforms to the following format specified by the ISO 8601 standard: yyyy-MM-ddTHH:mm:ssZ
	RequestSubmitTime *time.Time
}

// SubscriptionQuotaAllocations - Quota allocated to a subscription for the specific Resource Provider, Location, ResourceName.
// This will include the GroupQuota and total quota allocated to the subscription. Only the Group quota allocated to the subscription
// can be allocated back to the MG Group Quota.
type SubscriptionQuotaAllocations struct {
	// Quota properties for the specified resource.
	Properties *SubscriptionQuotaAllocationsProperties
}

// SubscriptionQuotaAllocationsList - Subscription quota list.
type SubscriptionQuotaAllocationsList struct {
	Properties *SubscriptionQuotaAllocationsListProperties

	// READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
	ID *string

	// READ-ONLY; The name of the resource
	Name *string

	// READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData

	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string
}

type SubscriptionQuotaAllocationsListProperties struct {
	// Subscription quota list.
	Value []*SubscriptionQuotaAllocations

	// READ-ONLY; The URL to use for getting the next set of results.
	NextLink *string

	// READ-ONLY; Request status.
	ProvisioningState *RequestState
}

// SubscriptionQuotaAllocationsProperties - Quota properties for the specified resource.
type SubscriptionQuotaAllocationsProperties struct {
	// The total quota limit for the subscription.
	Limit *int64

	// The resource name, such as SKU name.
	ResourceName *string

	// READ-ONLY; Name of the resource provided by the resource provider. This property is already included in the request URI,
	// so it is a readonly property returned in the response.
	Name *SubscriptionQuotaDetailsName

	// READ-ONLY; The shareable quota for the subscription.
	ShareableQuota *int64
}

// SubscriptionQuotaDetailsName - Name of the resource provided by the resource provider. This property is already included
// in the request URI, so it is a readonly property returned in the response.
type SubscriptionQuotaDetailsName struct {
	// READ-ONLY; Resource display name.
	LocalizedValue *string

	// READ-ONLY; Resource name.
	Value *string
}

// SystemData - Metadata pertaining to creation and last modification of the resource.
type SystemData struct {
	// The timestamp of resource creation (UTC).
	CreatedAt *time.Time

	// The identity that created the resource.
	CreatedBy *string

	// The type of identity that created the resource.
	CreatedByType *CreatedByType

	// The timestamp of resource last modification (UTC)
	LastModifiedAt *time.Time

	// The identity that last modified the resource.
	LastModifiedBy *string

	// The type of identity that last modified the resource.
	LastModifiedByType *CreatedByType
}

// UsagesLimits - Quota limits.
type UsagesLimits struct {
	// REQUIRED; The CurrentUsagesBase items on this page
	Value []*CurrentUsagesBase

	// The link to the next page of items
	NextLink *string
}

// UsagesObject - The resource usages value.
type UsagesObject struct {
	// REQUIRED; The usages value.
	Value *int32

	// The quota or usages limit types.
	UsagesType *UsagesTypes
}

// UsagesProperties - Usage properties for the specified resource.
type UsagesProperties struct {
	// Resource name provided by the resource provider. Use this property name when requesting quota.
	Name *ResourceName

	// Additional properties for the specific resource provider.
	Properties any

	// The name of the resource type. Optional field.
	ResourceType *string

	// The quota limit properties for this resource.
	Usages *UsagesObject

	// READ-ONLY; States if quota can be requested for this resource.
	IsQuotaApplicable *bool

	// READ-ONLY; The time period for the summary of the quota usage values. For example:
	// *P1D (per one day)
	// *PT1M (per one minute)
	// *PT1S (per one second).
	// This parameter is optional because it is not relevant for all resources such as compute.
	QuotaPeriod *string

	// READ-ONLY; The units for the quota usage, such as Count and Bytes. When requesting quota, use the **unit** value returned
	// in the GET response in the request body of your PUT operation.
	Unit *string
}
