// Code generated by azure-service-operator-codegen. DO NOT EDIT.
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
package arm

type Subscription_STATUS struct {
	// Id: Fully qualified resource ID for the resource. Ex -
	// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
	Id *string `json:"id,omitempty"`

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

	// Properties: Subscription contract properties.
	Properties *SubscriptionContractProperties_STATUS `json:"properties,omitempty"`

	// Type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string `json:"type,omitempty"`
}

// Subscription details.
type SubscriptionContractProperties_STATUS struct {
	// AllowTracing: Determines whether tracing is enabled
	AllowTracing *bool `json:"allowTracing,omitempty"`

	// CreatedDate: Subscription creation date. The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as specified
	// by the ISO 8601 standard.
	CreatedDate *string `json:"createdDate,omitempty"`

	// DisplayName: The name of the subscription, or null if the subscription has no name.
	DisplayName *string `json:"displayName,omitempty"`

	// EndDate: Date when subscription was cancelled or expired. The setting is for audit purposes only and the subscription is
	// not automatically cancelled. The subscription lifecycle can be managed by using the `state` property. The date conforms
	// to the following format: `yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601 standard.
	EndDate *string `json:"endDate,omitempty"`

	// ExpirationDate: Subscription expiration date. The setting is for audit purposes only and the subscription is not
	// automatically expired. The subscription lifecycle can be managed by using the `state` property. The date conforms to the
	// following format: `yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601 standard.
	ExpirationDate *string `json:"expirationDate,omitempty"`

	// NotificationDate: Upcoming subscription expiration notification date. The date conforms to the following format:
	// `yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601 standard.
	NotificationDate *string `json:"notificationDate,omitempty"`

	// OwnerId: The user resource identifier of the subscription owner. The value is a valid relative URL in the format of
	// /users/{userId} where {userId} is a user identifier.
	OwnerId *string `json:"ownerId,omitempty"`

	// Scope: Scope like /products/{productId} or /apis or /apis/{apiId}.
	Scope *string `json:"scope,omitempty"`

	// StartDate: Subscription activation date. The setting is for audit purposes only and the subscription is not
	// automatically activated. The subscription lifecycle can be managed by using the `state` property. The date conforms to
	// the following format: `yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601 standard.
	StartDate *string `json:"startDate,omitempty"`

	// State: Subscription state. Possible states are * active – the subscription is active, * suspended – the subscription
	// is blocked, and the subscriber cannot call any APIs of the product, * submitted – the subscription request has been
	// made by the developer, but has not yet been approved or rejected, * rejected – the subscription request has been
	// denied by an administrator, * cancelled – the subscription has been cancelled by the developer or administrator, *
	// expired – the subscription reached its expiration date and was deactivated.
	State *SubscriptionContractProperties_State_STATUS `json:"state,omitempty"`

	// StateComment: Optional subscription comment added by an administrator when the state is changed to the 'rejected'.
	StateComment *string `json:"stateComment,omitempty"`
}

type SubscriptionContractProperties_State_STATUS string

const (
	SubscriptionContractProperties_State_STATUS_Active    = SubscriptionContractProperties_State_STATUS("active")
	SubscriptionContractProperties_State_STATUS_Cancelled = SubscriptionContractProperties_State_STATUS("cancelled")
	SubscriptionContractProperties_State_STATUS_Expired   = SubscriptionContractProperties_State_STATUS("expired")
	SubscriptionContractProperties_State_STATUS_Rejected  = SubscriptionContractProperties_State_STATUS("rejected")
	SubscriptionContractProperties_State_STATUS_Submitted = SubscriptionContractProperties_State_STATUS("submitted")
	SubscriptionContractProperties_State_STATUS_Suspended = SubscriptionContractProperties_State_STATUS("suspended")
)

// Mapping from string to SubscriptionContractProperties_State_STATUS
var subscriptionContractProperties_State_STATUS_Values = map[string]SubscriptionContractProperties_State_STATUS{
	"active":    SubscriptionContractProperties_State_STATUS_Active,
	"cancelled": SubscriptionContractProperties_State_STATUS_Cancelled,
	"expired":   SubscriptionContractProperties_State_STATUS_Expired,
	"rejected":  SubscriptionContractProperties_State_STATUS_Rejected,
	"submitted": SubscriptionContractProperties_State_STATUS_Submitted,
	"suspended": SubscriptionContractProperties_State_STATUS_Suspended,
}
