// 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 armoracledatabase

import "time"

// ActivationLinks - Activation Links model
type ActivationLinks struct {
	// READ-ONLY; Existing Cloud Account Activation Link
	ExistingCloudAccountActivationLink *string

	// READ-ONLY; New Cloud Account Activation Link
	NewCloudAccountActivationLink *string
}

// AddRemoveDbNode - Add/Remove (Virtual Machine) DbNode model
type AddRemoveDbNode struct {
	// REQUIRED; Db servers ocids
	DbServers []*string
}

// AllConnectionStringType - The connection string profile to allow clients to group, filter and select connection string
// values based on structured metadata.
type AllConnectionStringType struct {
	// The High database service provides the highest level of resources to each SQL statement resulting in the highest performance,
	// but supports the fewest number of concurrent SQL statements.
	High *string

	// The Low database service provides the least level of resources to each SQL statement, but supports the most number of concurrent
	// SQL statements.
	Low *string

	// The Medium database service provides a lower level of resources to each SQL statement potentially resulting a lower level
	// of performance, but supports more concurrent SQL statements.
	Medium *string
}

// ApexDetailsType - Information about Oracle APEX Application Development.
type ApexDetailsType struct {
	// The Oracle APEX Application Development version.
	ApexVersion *string

	// The Oracle REST Data Services (ORDS) version.
	OrdsVersion *string
}

// AutonomousDatabase - Autonomous Database resource model.
type AutonomousDatabase struct {
	// REQUIRED; The geo-location where the resource lives
	Location *string

	// The resource-specific properties for this resource.
	Properties AutonomousDatabaseBasePropertiesClassification

	// Resource tags.
	Tags map[string]*string

	// 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
}

// AutonomousDatabaseBackup resource definition
type AutonomousDatabaseBackup struct {
	// The resource-specific properties for this resource.
	Properties *AutonomousDatabaseBackupProperties

	// 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
}

// AutonomousDatabaseBackupListResult - The response of a AutonomousDatabaseBackup list operation.
type AutonomousDatabaseBackupListResult struct {
	// REQUIRED; The AutonomousDatabaseBackup items on this page
	Value []*AutonomousDatabaseBackup

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

// AutonomousDatabaseBackupProperties - AutonomousDatabaseBackup resource model
type AutonomousDatabaseBackupProperties struct {
	// The user-friendly name for the backup. The name does not have to be unique.
	DisplayName *string

	// Retention period, in days
	RetentionPeriodInDays *int32

	// READ-ONLY; The OCID of the Autonomous Database.
	AutonomousDatabaseOcid *string

	// READ-ONLY; The type of backup.
	BackupType *AutonomousDatabaseBackupType

	// READ-ONLY; The size of the database in terabytes at the time the backup was taken.
	DatabaseSizeInTbs *float64

	// READ-ONLY; A valid Oracle Database version for Autonomous Database.
	DbVersion *string

	// READ-ONLY; Indicates whether the backup is user-initiated or automatic.
	IsAutomatic *bool

	// READ-ONLY; Indicates whether the backup can be used to restore the associated Autonomous Database.
	IsRestorable *bool

	// READ-ONLY; Additional information about the current lifecycle state.
	LifecycleDetails *string

	// READ-ONLY; The current state of the backup.
	LifecycleState *AutonomousDatabaseBackupLifecycleState

	// READ-ONLY; The OCID of the Autonomous Database backup.
	Ocid *string

	// READ-ONLY; Azure resource provisioning state.
	ProvisioningState *AzureResourceProvisioningState

	// READ-ONLY; The backup size in terabytes (TB).
	SizeInTbs *float64

	// READ-ONLY; Timestamp until when the backup will be available.
	TimeAvailableTil *time.Time

	// READ-ONLY; The date and time the backup completed.
	TimeEnded *string

	// READ-ONLY; The date and time the backup started.
	TimeStarted *string
}

// AutonomousDatabaseBackupUpdate - The type used for update operations of the AutonomousDatabaseBackup.
type AutonomousDatabaseBackupUpdate struct {
	// The resource-specific properties for this resource.
	Properties *AutonomousDatabaseBackupUpdateProperties
}

// AutonomousDatabaseBackupUpdateProperties - The updatable properties of the AutonomousDatabaseBackup.
type AutonomousDatabaseBackupUpdateProperties struct {
	// Retention period, in days
	RetentionPeriodInDays *int32
}

// AutonomousDatabaseBaseProperties - Autonomous Database base resource model.
type AutonomousDatabaseBaseProperties struct {
	// REQUIRED; Database type to be created.
	DataBaseType *DataBaseType

	// Admin password.
	AdminPassword *string

	// Autonomous Database ID
	AutonomousDatabaseID *string

	// The maintenance schedule type of the Autonomous Database Serverless.
	AutonomousMaintenanceScheduleType *AutonomousMaintenanceScheduleType

	// Retention period, in days, for long-term backups
	BackupRetentionPeriodInDays *int32

	// The number of CPU cores to be made available to the database.
	CPUCoreCount *int32

	// The character set for the autonomous database.
	CharacterSet *string

	// The compute amount (CPUs) available to the database.
	ComputeCount *float32

	// The compute model of the Autonomous Database.
	ComputeModel *ComputeModel

	// Customer Contacts.
	CustomerContacts []*CustomerContact

	// The size, in gigabytes, of the data volume that will be created and attached to the database.
	DataStorageSizeInGbs *int32

	// The quantity of data in the database, in terabytes.
	DataStorageSizeInTbs *int32

	// The Oracle Database Edition that applies to the Autonomous databases.
	DatabaseEdition *DatabaseEditionType

	// A valid Oracle Database version for Autonomous Database.
	DbVersion *string

	// The Autonomous Database workload type
	DbWorkload *WorkloadType

	// The user-friendly name for the Autonomous Database.
	DisplayName *string

	// Indicates if auto scaling is enabled for the Autonomous Database CPU core count.
	IsAutoScalingEnabled *bool

	// Indicates if auto scaling is enabled for the Autonomous Database storage.
	IsAutoScalingForStorageEnabled *bool

	// Indicates whether the Autonomous Database has local or called in-region Data Guard enabled.
	IsLocalDataGuardEnabled *bool

	// Specifies if the Autonomous Database requires mTLS connections.
	IsMtlsConnectionRequired *bool

	// Specifies if the Autonomous Database preview version is being provisioned.
	IsPreviewVersionWithServiceTermsAccepted *bool

	// The Oracle license model that applies to the Oracle Autonomous Database. The default is LICENSE_INCLUDED.
	LicenseModel *LicenseModel

	// Parameter that allows users to select an acceptable maximum data loss limit in seconds, up to which Automatic Failover
	// will be triggered when necessary for a Local Autonomous Data Guard
	LocalAdgAutoFailoverMaxDataLossLimit *int32

	// Details for the long-term backup schedule.
	LongTermBackupSchedule *LongTermBackUpScheduleDetails

	// The character set for the Autonomous Database.
	NcharacterSet *string

	// Indicates the Autonomous Database mode.
	OpenMode *OpenModeType

	// The Azure resource ID of the Disaster Recovery peer database, which is located in a different region from the current peer
	// database.
	PeerDbID *string

	// The Autonomous Database permission level.
	PermissionLevel *PermissionLevelType

	// The private endpoint Ip address for the resource.
	PrivateEndpointIP *string

	// The resource's private endpoint label.
	PrivateEndpointLabel *string

	// The Data Guard role of the Autonomous Container Database or Autonomous Database, if Autonomous Data Guard is enabled.
	Role *RoleType

	// The list of scheduled operations.
	ScheduledOperationsList []*ScheduledOperationsType

	// Client subnet
	SubnetID *string

	// VNET for network connectivity
	VnetID *string

	// The client IP access control list (ACL). This is an array of CIDR notations and/or IP addresses. Values should be separate
	// strings, separated by commas. Example: ['1.1.1.1','1.1.1.0/24','1.1.2.25']
	WhitelistedIPs []*string

	// READ-ONLY; The current amount of storage in use for user and system data, in terabytes (TB).
	ActualUsedDataStorageSizeInTbs *float64

	// READ-ONLY; The amount of storage currently allocated for the database tables and billed for, rounded up.
	AllocatedStorageSizeInTbs *float64

	// READ-ONLY; Information about Oracle APEX Application Development.
	ApexDetails *ApexDetailsType

	// READ-ONLY; List of Oracle Database versions available for a database upgrade. If there are no version upgrades available,
	// this list is empty.
	AvailableUpgradeVersions []*string

	// READ-ONLY; The connection string used to connect to the Autonomous Database.
	ConnectionStrings *ConnectionStringType

	// READ-ONLY; The URLs for accessing Oracle Application Express (APEX) and SQL Developer Web with a browser from a Compute
	// instance within your VCN or that has a direct connection to your VCN.
	ConnectionUrls *ConnectionURLType

	// READ-ONLY; Status of the Data Safe registration for this Autonomous Database.
	DataSafeStatus *DataSafeStatusType

	// READ-ONLY; Indicates the number of seconds of data loss for a Data Guard failover.
	FailedDataRecoveryInSeconds *int32

	// READ-ONLY; The area assigned to In-Memory tables in Autonomous Database.
	InMemoryAreaInGbs *int32

	// READ-ONLY; Indicates if the Autonomous Database version is a preview version.
	IsPreview *bool

	// READ-ONLY; Indicates whether the Autonomous Database has Cross Region Data Guard enabled.
	IsRemoteDataGuardEnabled *bool

	// READ-ONLY; Additional information about the current lifecycle state.
	LifecycleDetails *string

	// READ-ONLY; Views lifecycleState
	LifecycleState *AutonomousDatabaseLifecycleState

	// READ-ONLY; Indicates the local disaster recovery (DR) type of the Autonomous Database Serverless instance.Autonomous Data
	// Guard (ADG) DR type provides business critical DR with a faster recovery time objective (RTO) during failover or switchover.Backup-based
	// DR type provides lower cost DR with a slower RTO during failover or switchover.
	LocalDisasterRecoveryType *DisasterRecoveryType

	// READ-ONLY; Local Autonomous Disaster Recovery standby database details.
	LocalStandbyDb *AutonomousDatabaseStandbySummary

	// READ-ONLY; The amount of memory (in GBs) enabled per ECPU or OCPU.
	MemoryPerOracleComputeUnitInGbs *int32

	// READ-ONLY; The date and time when the next long-term backup would be created.
	NextLongTermBackupTimeStamp *time.Time

	// READ-ONLY; HTTPS link to OCI resources exposed to Azure Customer via Azure Interface.
	OciURL *string

	// READ-ONLY; Database ocid
	Ocid *string

	// READ-ONLY; Status of Operations Insights for this Autonomous Database.
	OperationsInsightsStatus *OperationsInsightsStatusType

	// READ-ONLY; The list of Azure resource IDs of standby databases located in Autonomous Data Guard remote regions that are
	// associated with the source database. Note that for Autonomous Database Serverless instances, standby databases located
	// in the same region as the source primary database do not have Azure IDs.
	PeerDbIDs []*string

	// READ-ONLY; The private endpoint for the resource.
	PrivateEndpoint *string

	// READ-ONLY; An array of CPU values that an Autonomous Database can be scaled to.
	ProvisionableCpus []*int32

	// READ-ONLY; Azure resource provisioning state.
	ProvisioningState *AzureResourceProvisioningState

	// READ-ONLY; Indicates remote disaster recovery configuration
	RemoteDisasterRecoveryConfiguration *DisasterRecoveryConfigurationDetails

	// READ-ONLY; The SQL Web Developer URL for the Oracle Autonomous Database.
	SQLWebDeveloperURL *string

	// READ-ONLY; The URL of the Service Console for the Autonomous Database.
	ServiceConsoleURL *string

	// READ-ONLY; The list of regions that support the creation of an Autonomous Database clone or an Autonomous Data Guard standby
	// database.
	SupportedRegionsToCloneTo []*string

	// READ-ONLY; The date and time that the database was created.
	TimeCreated *time.Time

	// READ-ONLY; The date and time the Autonomous Data Guard role was switched for the Autonomous Database.
	TimeDataGuardRoleChanged *string

	// READ-ONLY; The date and time the Always Free database will be automatically deleted because of inactivity.
	TimeDeletionOfFreeAutonomousDatabase *string

	// READ-ONLY; The date and time the Disaster Recovery role was switched for the standby Autonomous Database.
	TimeDisasterRecoveryRoleChanged *time.Time

	// READ-ONLY; The date and time that Autonomous Data Guard was enabled for an Autonomous Database where the standby was provisioned
	// in the same region as the primary database.
	TimeLocalDataGuardEnabled *string

	// READ-ONLY; The date and time when maintenance will begin.
	TimeMaintenanceBegin *time.Time

	// READ-ONLY; The date and time when maintenance will end.
	TimeMaintenanceEnd *time.Time

	// READ-ONLY; The timestamp of the last failover operation.
	TimeOfLastFailover *string

	// READ-ONLY; The date and time when last refresh happened.
	TimeOfLastRefresh *string

	// READ-ONLY; The refresh point timestamp (UTC).
	TimeOfLastRefreshPoint *string

	// READ-ONLY; The timestamp of the last switchover operation for the Autonomous Database.
	TimeOfLastSwitchover *string

	// READ-ONLY; The date and time the Always Free database will be stopped because of inactivity.
	TimeReclamationOfFreeAutonomousDatabase *string

	// READ-ONLY; The storage space consumed by Autonomous Database in GBs.
	UsedDataStorageSizeInGbs *int32

	// READ-ONLY; The amount of storage that has been used, in terabytes.
	UsedDataStorageSizeInTbs *int32
}

// GetAutonomousDatabaseBaseProperties implements the AutonomousDatabaseBasePropertiesClassification interface for type AutonomousDatabaseBaseProperties.
func (a *AutonomousDatabaseBaseProperties) GetAutonomousDatabaseBaseProperties() *AutonomousDatabaseBaseProperties {
	return a
}

// AutonomousDatabaseCharacterSets resource definition
type AutonomousDatabaseCharacterSet struct {
	// The resource-specific properties for this resource.
	Properties *AutonomousDatabaseCharacterSetProperties

	// 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
}

// AutonomousDatabaseCharacterSetListResult - The response of a AutonomousDatabaseCharacterSet list operation.
type AutonomousDatabaseCharacterSetListResult struct {
	// REQUIRED; The AutonomousDatabaseCharacterSet items on this page
	Value []*AutonomousDatabaseCharacterSet

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

// AutonomousDatabaseCharacterSetProperties - AutonomousDatabaseCharacterSet resource model
type AutonomousDatabaseCharacterSetProperties struct {
	// REQUIRED; The Oracle Autonomous Database supported character sets.
	CharacterSet *string
}

// AutonomousDatabaseCloneProperties - Autonomous Database clone resource model.
type AutonomousDatabaseCloneProperties struct {
	// REQUIRED; The Autonomous Database clone type.
	CloneType *CloneType

	// CONSTANT; Database type to be created.
	// Field has constant value DataBaseTypeClone, any specified value is ignored.
	DataBaseType *DataBaseType

	// REQUIRED; The Azure resource ID of the Autonomous Database that was cloned to create the current Autonomous Database.
	SourceID *string

	// Admin password.
	AdminPassword *string

	// Autonomous Database ID
	AutonomousDatabaseID *string

	// The maintenance schedule type of the Autonomous Database Serverless.
	AutonomousMaintenanceScheduleType *AutonomousMaintenanceScheduleType

	// Retention period, in days, for long-term backups
	BackupRetentionPeriodInDays *int32

	// The number of CPU cores to be made available to the database.
	CPUCoreCount *int32

	// The character set for the autonomous database.
	CharacterSet *string

	// The compute amount (CPUs) available to the database.
	ComputeCount *float32

	// The compute model of the Autonomous Database.
	ComputeModel *ComputeModel

	// Customer Contacts.
	CustomerContacts []*CustomerContact

	// The size, in gigabytes, of the data volume that will be created and attached to the database.
	DataStorageSizeInGbs *int32

	// The quantity of data in the database, in terabytes.
	DataStorageSizeInTbs *int32

	// The Oracle Database Edition that applies to the Autonomous databases.
	DatabaseEdition *DatabaseEditionType

	// A valid Oracle Database version for Autonomous Database.
	DbVersion *string

	// The Autonomous Database workload type
	DbWorkload *WorkloadType

	// The user-friendly name for the Autonomous Database.
	DisplayName *string

	// Indicates if auto scaling is enabled for the Autonomous Database CPU core count.
	IsAutoScalingEnabled *bool

	// Indicates if auto scaling is enabled for the Autonomous Database storage.
	IsAutoScalingForStorageEnabled *bool

	// Indicates whether the Autonomous Database has local or called in-region Data Guard enabled.
	IsLocalDataGuardEnabled *bool

	// Specifies if the Autonomous Database requires mTLS connections.
	IsMtlsConnectionRequired *bool

	// Specifies if the Autonomous Database preview version is being provisioned.
	IsPreviewVersionWithServiceTermsAccepted *bool

	// The Oracle license model that applies to the Oracle Autonomous Database. The default is LICENSE_INCLUDED.
	LicenseModel *LicenseModel

	// Parameter that allows users to select an acceptable maximum data loss limit in seconds, up to which Automatic Failover
	// will be triggered when necessary for a Local Autonomous Data Guard
	LocalAdgAutoFailoverMaxDataLossLimit *int32

	// Details for the long-term backup schedule.
	LongTermBackupSchedule *LongTermBackUpScheduleDetails

	// The character set for the Autonomous Database.
	NcharacterSet *string

	// Indicates the Autonomous Database mode.
	OpenMode *OpenModeType

	// The Azure resource ID of the Disaster Recovery peer database, which is located in a different region from the current peer
	// database.
	PeerDbID *string

	// The Autonomous Database permission level.
	PermissionLevel *PermissionLevelType

	// The private endpoint Ip address for the resource.
	PrivateEndpointIP *string

	// The resource's private endpoint label.
	PrivateEndpointLabel *string

	// The refresh mode of the clone.
	RefreshableModel *RefreshableModelType

	// The Data Guard role of the Autonomous Container Database or Autonomous Database, if Autonomous Data Guard is enabled.
	Role *RoleType

	// The list of scheduled operations.
	ScheduledOperationsList []*ScheduledOperationsType

	// The source of the database.
	Source *SourceType

	// Client subnet
	SubnetID *string

	// The time and date as an RFC3339 formatted string, e.g., 2022-01-01T12:00:00.000Z, to set the limit for a refreshable clone
	// to be reconnected to its source database.
	TimeUntilReconnectCloneEnabled *string

	// VNET for network connectivity
	VnetID *string

	// The client IP access control list (ACL). This is an array of CIDR notations and/or IP addresses. Values should be separate
	// strings, separated by commas. Example: ['1.1.1.1','1.1.1.0/24','1.1.2.25']
	WhitelistedIPs []*string

	// READ-ONLY; The current amount of storage in use for user and system data, in terabytes (TB).
	ActualUsedDataStorageSizeInTbs *float64

	// READ-ONLY; The amount of storage currently allocated for the database tables and billed for, rounded up.
	AllocatedStorageSizeInTbs *float64

	// READ-ONLY; Information about Oracle APEX Application Development.
	ApexDetails *ApexDetailsType

	// READ-ONLY; List of Oracle Database versions available for a database upgrade. If there are no version upgrades available,
	// this list is empty.
	AvailableUpgradeVersions []*string

	// READ-ONLY; The connection string used to connect to the Autonomous Database.
	ConnectionStrings *ConnectionStringType

	// READ-ONLY; The URLs for accessing Oracle Application Express (APEX) and SQL Developer Web with a browser from a Compute
	// instance within your VCN or that has a direct connection to your VCN.
	ConnectionUrls *ConnectionURLType

	// READ-ONLY; Status of the Data Safe registration for this Autonomous Database.
	DataSafeStatus *DataSafeStatusType

	// READ-ONLY; Indicates the number of seconds of data loss for a Data Guard failover.
	FailedDataRecoveryInSeconds *int32

	// READ-ONLY; The area assigned to In-Memory tables in Autonomous Database.
	InMemoryAreaInGbs *int32

	// READ-ONLY; Indicates if the Autonomous Database version is a preview version.
	IsPreview *bool

	// READ-ONLY; Indicates if the refreshable clone can be reconnected to its source database.
	IsReconnectCloneEnabled *bool

	// READ-ONLY; Indicates if the Autonomous Database is a refreshable clone.
	IsRefreshableClone *bool

	// READ-ONLY; Indicates whether the Autonomous Database has Cross Region Data Guard enabled.
	IsRemoteDataGuardEnabled *bool

	// READ-ONLY; Additional information about the current lifecycle state.
	LifecycleDetails *string

	// READ-ONLY; Views lifecycleState
	LifecycleState *AutonomousDatabaseLifecycleState

	// READ-ONLY; Indicates the local disaster recovery (DR) type of the Autonomous Database Serverless instance.Autonomous Data
	// Guard (ADG) DR type provides business critical DR with a faster recovery time objective (RTO) during failover or switchover.Backup-based
	// DR type provides lower cost DR with a slower RTO during failover or switchover.
	LocalDisasterRecoveryType *DisasterRecoveryType

	// READ-ONLY; Local Autonomous Disaster Recovery standby database details.
	LocalStandbyDb *AutonomousDatabaseStandbySummary

	// READ-ONLY; The amount of memory (in GBs) enabled per ECPU or OCPU.
	MemoryPerOracleComputeUnitInGbs *int32

	// READ-ONLY; The date and time when the next long-term backup would be created.
	NextLongTermBackupTimeStamp *time.Time

	// READ-ONLY; HTTPS link to OCI resources exposed to Azure Customer via Azure Interface.
	OciURL *string

	// READ-ONLY; Database ocid
	Ocid *string

	// READ-ONLY; Status of Operations Insights for this Autonomous Database.
	OperationsInsightsStatus *OperationsInsightsStatusType

	// READ-ONLY; The list of Azure resource IDs of standby databases located in Autonomous Data Guard remote regions that are
	// associated with the source database. Note that for Autonomous Database Serverless instances, standby databases located
	// in the same region as the source primary database do not have Azure IDs.
	PeerDbIDs []*string

	// READ-ONLY; The private endpoint for the resource.
	PrivateEndpoint *string

	// READ-ONLY; An array of CPU values that an Autonomous Database can be scaled to.
	ProvisionableCpus []*int32

	// READ-ONLY; Azure resource provisioning state.
	ProvisioningState *AzureResourceProvisioningState

	// READ-ONLY; The refresh status of the clone.
	RefreshableStatus *RefreshableStatusType

	// READ-ONLY; Indicates remote disaster recovery configuration
	RemoteDisasterRecoveryConfiguration *DisasterRecoveryConfigurationDetails

	// READ-ONLY; The SQL Web Developer URL for the Oracle Autonomous Database.
	SQLWebDeveloperURL *string

	// READ-ONLY; The URL of the Service Console for the Autonomous Database.
	ServiceConsoleURL *string

	// READ-ONLY; The list of regions that support the creation of an Autonomous Database clone or an Autonomous Data Guard standby
	// database.
	SupportedRegionsToCloneTo []*string

	// READ-ONLY; The date and time that the database was created.
	TimeCreated *time.Time

	// READ-ONLY; The date and time the Autonomous Data Guard role was switched for the Autonomous Database.
	TimeDataGuardRoleChanged *string

	// READ-ONLY; The date and time the Always Free database will be automatically deleted because of inactivity.
	TimeDeletionOfFreeAutonomousDatabase *string

	// READ-ONLY; The date and time the Disaster Recovery role was switched for the standby Autonomous Database.
	TimeDisasterRecoveryRoleChanged *time.Time

	// READ-ONLY; The date and time that Autonomous Data Guard was enabled for an Autonomous Database where the standby was provisioned
	// in the same region as the primary database.
	TimeLocalDataGuardEnabled *string

	// READ-ONLY; The date and time when maintenance will begin.
	TimeMaintenanceBegin *time.Time

	// READ-ONLY; The date and time when maintenance will end.
	TimeMaintenanceEnd *time.Time

	// READ-ONLY; The timestamp of the last failover operation.
	TimeOfLastFailover *string

	// READ-ONLY; The date and time when last refresh happened.
	TimeOfLastRefresh *string

	// READ-ONLY; The refresh point timestamp (UTC).
	TimeOfLastRefreshPoint *string

	// READ-ONLY; The timestamp of the last switchover operation for the Autonomous Database.
	TimeOfLastSwitchover *string

	// READ-ONLY; The date and time the Always Free database will be stopped because of inactivity.
	TimeReclamationOfFreeAutonomousDatabase *string

	// READ-ONLY; The storage space consumed by Autonomous Database in GBs.
	UsedDataStorageSizeInGbs *int32

	// READ-ONLY; The amount of storage that has been used, in terabytes.
	UsedDataStorageSizeInTbs *int32
}

// GetAutonomousDatabaseBaseProperties implements the AutonomousDatabaseBasePropertiesClassification interface for type AutonomousDatabaseCloneProperties.
func (a *AutonomousDatabaseCloneProperties) GetAutonomousDatabaseBaseProperties() *AutonomousDatabaseBaseProperties {
	return &AutonomousDatabaseBaseProperties{
		ActualUsedDataStorageSizeInTbs:           a.ActualUsedDataStorageSizeInTbs,
		AdminPassword:                            a.AdminPassword,
		AllocatedStorageSizeInTbs:                a.AllocatedStorageSizeInTbs,
		ApexDetails:                              a.ApexDetails,
		AutonomousDatabaseID:                     a.AutonomousDatabaseID,
		AutonomousMaintenanceScheduleType:        a.AutonomousMaintenanceScheduleType,
		AvailableUpgradeVersions:                 a.AvailableUpgradeVersions,
		BackupRetentionPeriodInDays:              a.BackupRetentionPeriodInDays,
		CPUCoreCount:                             a.CPUCoreCount,
		CharacterSet:                             a.CharacterSet,
		ComputeCount:                             a.ComputeCount,
		ComputeModel:                             a.ComputeModel,
		ConnectionStrings:                        a.ConnectionStrings,
		ConnectionUrls:                           a.ConnectionUrls,
		CustomerContacts:                         a.CustomerContacts,
		DataBaseType:                             a.DataBaseType,
		DataSafeStatus:                           a.DataSafeStatus,
		DataStorageSizeInGbs:                     a.DataStorageSizeInGbs,
		DataStorageSizeInTbs:                     a.DataStorageSizeInTbs,
		DatabaseEdition:                          a.DatabaseEdition,
		DbVersion:                                a.DbVersion,
		DbWorkload:                               a.DbWorkload,
		DisplayName:                              a.DisplayName,
		FailedDataRecoveryInSeconds:              a.FailedDataRecoveryInSeconds,
		InMemoryAreaInGbs:                        a.InMemoryAreaInGbs,
		IsAutoScalingEnabled:                     a.IsAutoScalingEnabled,
		IsAutoScalingForStorageEnabled:           a.IsAutoScalingForStorageEnabled,
		IsLocalDataGuardEnabled:                  a.IsLocalDataGuardEnabled,
		IsMtlsConnectionRequired:                 a.IsMtlsConnectionRequired,
		IsPreview:                                a.IsPreview,
		IsPreviewVersionWithServiceTermsAccepted: a.IsPreviewVersionWithServiceTermsAccepted,
		IsRemoteDataGuardEnabled:                 a.IsRemoteDataGuardEnabled,
		LicenseModel:                             a.LicenseModel,
		LifecycleDetails:                         a.LifecycleDetails,
		LifecycleState:                           a.LifecycleState,
		LocalAdgAutoFailoverMaxDataLossLimit:     a.LocalAdgAutoFailoverMaxDataLossLimit,
		LocalDisasterRecoveryType:                a.LocalDisasterRecoveryType,
		LocalStandbyDb:                           a.LocalStandbyDb,
		LongTermBackupSchedule:                   a.LongTermBackupSchedule,
		MemoryPerOracleComputeUnitInGbs:          a.MemoryPerOracleComputeUnitInGbs,
		NcharacterSet:                            a.NcharacterSet,
		NextLongTermBackupTimeStamp:              a.NextLongTermBackupTimeStamp,
		OciURL:                                   a.OciURL,
		Ocid:                                     a.Ocid,
		OpenMode:                                 a.OpenMode,
		OperationsInsightsStatus:                 a.OperationsInsightsStatus,
		PeerDbID:                                 a.PeerDbID,
		PeerDbIDs:                                a.PeerDbIDs,
		PermissionLevel:                          a.PermissionLevel,
		PrivateEndpoint:                          a.PrivateEndpoint,
		PrivateEndpointIP:                        a.PrivateEndpointIP,
		PrivateEndpointLabel:                     a.PrivateEndpointLabel,
		ProvisionableCpus:                        a.ProvisionableCpus,
		ProvisioningState:                        a.ProvisioningState,
		RemoteDisasterRecoveryConfiguration:      a.RemoteDisasterRecoveryConfiguration,
		Role:                                     a.Role,
		SQLWebDeveloperURL:                       a.SQLWebDeveloperURL,
		ScheduledOperationsList:                  a.ScheduledOperationsList,
		ServiceConsoleURL:                        a.ServiceConsoleURL,
		SubnetID:                                 a.SubnetID,
		SupportedRegionsToCloneTo:                a.SupportedRegionsToCloneTo,
		TimeCreated:                              a.TimeCreated,
		TimeDataGuardRoleChanged:                 a.TimeDataGuardRoleChanged,
		TimeDeletionOfFreeAutonomousDatabase:     a.TimeDeletionOfFreeAutonomousDatabase,
		TimeDisasterRecoveryRoleChanged:          a.TimeDisasterRecoveryRoleChanged,
		TimeLocalDataGuardEnabled:                a.TimeLocalDataGuardEnabled,
		TimeMaintenanceBegin:                     a.TimeMaintenanceBegin,
		TimeMaintenanceEnd:                       a.TimeMaintenanceEnd,
		TimeOfLastFailover:                       a.TimeOfLastFailover,
		TimeOfLastRefresh:                        a.TimeOfLastRefresh,
		TimeOfLastRefreshPoint:                   a.TimeOfLastRefreshPoint,
		TimeOfLastSwitchover:                     a.TimeOfLastSwitchover,
		TimeReclamationOfFreeAutonomousDatabase:  a.TimeReclamationOfFreeAutonomousDatabase,
		UsedDataStorageSizeInGbs:                 a.UsedDataStorageSizeInGbs,
		UsedDataStorageSizeInTbs:                 a.UsedDataStorageSizeInTbs,
		VnetID:                                   a.VnetID,
		WhitelistedIPs:                           a.WhitelistedIPs,
	}
}

// AutonomousDatabaseCrossRegionDisasterRecoveryProperties - Autonomous Database Cross Region Disaster Recovery resource model.
type AutonomousDatabaseCrossRegionDisasterRecoveryProperties struct {
	// CONSTANT; Database type to be created.
	// Field has constant value DataBaseTypeCrossRegionDisasterRecovery, any specified value is ignored.
	DataBaseType *DataBaseType

	// REQUIRED; Indicates the cross-region disaster recovery (DR) type of the standby Autonomous Database Serverless instance.
	// Autonomous Data Guard (ADG) DR type provides business critical DR with a faster recovery time objective (RTO) during failover
	// or switchover. Backup-based DR type provides lower cost DR with a slower RTO during failover or switchover.
	RemoteDisasterRecoveryType *DisasterRecoveryType

	// CONSTANT; The source of the database.
	// Field has constant value SourceTypeCrossRegionDisasterRecovery, any specified value is ignored.
	Source *SourceType

	// REQUIRED; The Azure ID of the source Autonomous Database that will be used to create a new peer database for the DR association.
	SourceID *string

	// Admin password.
	AdminPassword *string

	// Autonomous Database ID
	AutonomousDatabaseID *string

	// The maintenance schedule type of the Autonomous Database Serverless.
	AutonomousMaintenanceScheduleType *AutonomousMaintenanceScheduleType

	// Retention period, in days, for long-term backups
	BackupRetentionPeriodInDays *int32

	// The number of CPU cores to be made available to the database.
	CPUCoreCount *int32

	// The character set for the autonomous database.
	CharacterSet *string

	// The compute amount (CPUs) available to the database.
	ComputeCount *float32

	// The compute model of the Autonomous Database.
	ComputeModel *ComputeModel

	// Customer Contacts.
	CustomerContacts []*CustomerContact

	// The size, in gigabytes, of the data volume that will be created and attached to the database.
	DataStorageSizeInGbs *int32

	// The quantity of data in the database, in terabytes.
	DataStorageSizeInTbs *int32

	// The Oracle Database Edition that applies to the Autonomous databases.
	DatabaseEdition *DatabaseEditionType

	// A valid Oracle Database version for Autonomous Database.
	DbVersion *string

	// The Autonomous Database workload type
	DbWorkload *WorkloadType

	// The user-friendly name for the Autonomous Database.
	DisplayName *string

	// Indicates if auto scaling is enabled for the Autonomous Database CPU core count.
	IsAutoScalingEnabled *bool

	// Indicates if auto scaling is enabled for the Autonomous Database storage.
	IsAutoScalingForStorageEnabled *bool

	// Indicates whether the Autonomous Database has local or called in-region Data Guard enabled.
	IsLocalDataGuardEnabled *bool

	// Specifies if the Autonomous Database requires mTLS connections.
	IsMtlsConnectionRequired *bool

	// Specifies if the Autonomous Database preview version is being provisioned.
	IsPreviewVersionWithServiceTermsAccepted *bool

	// If true, 7 days worth of backups are replicated across regions for Cross-Region ADB or Backup-Based DR between Primary
	// and Standby. If false, the backups taken on the Primary are not replicated to the Standby database.
	IsReplicateAutomaticBackups *bool

	// The Oracle license model that applies to the Oracle Autonomous Database. The default is LICENSE_INCLUDED.
	LicenseModel *LicenseModel

	// Parameter that allows users to select an acceptable maximum data loss limit in seconds, up to which Automatic Failover
	// will be triggered when necessary for a Local Autonomous Data Guard
	LocalAdgAutoFailoverMaxDataLossLimit *int32

	// Details for the long-term backup schedule.
	LongTermBackupSchedule *LongTermBackUpScheduleDetails

	// The character set for the Autonomous Database.
	NcharacterSet *string

	// Indicates the Autonomous Database mode.
	OpenMode *OpenModeType

	// The Azure resource ID of the Disaster Recovery peer database, which is located in a different region from the current peer
	// database.
	PeerDbID *string

	// The Autonomous Database permission level.
	PermissionLevel *PermissionLevelType

	// The private endpoint Ip address for the resource.
	PrivateEndpointIP *string

	// The resource's private endpoint label.
	PrivateEndpointLabel *string

	// The Data Guard role of the Autonomous Container Database or Autonomous Database, if Autonomous Data Guard is enabled.
	Role *RoleType

	// The list of scheduled operations.
	ScheduledOperationsList []*ScheduledOperationsType

	// The name of the region where source Autonomous Database exists.
	SourceLocation *string

	// The source database ocid
	SourceOcid *string

	// Client subnet
	SubnetID *string

	// VNET for network connectivity
	VnetID *string

	// The client IP access control list (ACL). This is an array of CIDR notations and/or IP addresses. Values should be separate
	// strings, separated by commas. Example: ['1.1.1.1','1.1.1.0/24','1.1.2.25']
	WhitelistedIPs []*string

	// READ-ONLY; The current amount of storage in use for user and system data, in terabytes (TB).
	ActualUsedDataStorageSizeInTbs *float64

	// READ-ONLY; The amount of storage currently allocated for the database tables and billed for, rounded up.
	AllocatedStorageSizeInTbs *float64

	// READ-ONLY; Information about Oracle APEX Application Development.
	ApexDetails *ApexDetailsType

	// READ-ONLY; List of Oracle Database versions available for a database upgrade. If there are no version upgrades available,
	// this list is empty.
	AvailableUpgradeVersions []*string

	// READ-ONLY; The connection string used to connect to the Autonomous Database.
	ConnectionStrings *ConnectionStringType

	// READ-ONLY; The URLs for accessing Oracle Application Express (APEX) and SQL Developer Web with a browser from a Compute
	// instance within your VCN or that has a direct connection to your VCN.
	ConnectionUrls *ConnectionURLType

	// READ-ONLY; Status of the Data Safe registration for this Autonomous Database.
	DataSafeStatus *DataSafeStatusType

	// READ-ONLY; Indicates the number of seconds of data loss for a Data Guard failover.
	FailedDataRecoveryInSeconds *int32

	// READ-ONLY; The area assigned to In-Memory tables in Autonomous Database.
	InMemoryAreaInGbs *int32

	// READ-ONLY; Indicates if the Autonomous Database version is a preview version.
	IsPreview *bool

	// READ-ONLY; Indicates whether the Autonomous Database has Cross Region Data Guard enabled.
	IsRemoteDataGuardEnabled *bool

	// READ-ONLY; Additional information about the current lifecycle state.
	LifecycleDetails *string

	// READ-ONLY; Views lifecycleState
	LifecycleState *AutonomousDatabaseLifecycleState

	// READ-ONLY; Indicates the local disaster recovery (DR) type of the Autonomous Database Serverless instance.Autonomous Data
	// Guard (ADG) DR type provides business critical DR with a faster recovery time objective (RTO) during failover or switchover.Backup-based
	// DR type provides lower cost DR with a slower RTO during failover or switchover.
	LocalDisasterRecoveryType *DisasterRecoveryType

	// READ-ONLY; Local Autonomous Disaster Recovery standby database details.
	LocalStandbyDb *AutonomousDatabaseStandbySummary

	// READ-ONLY; The amount of memory (in GBs) enabled per ECPU or OCPU.
	MemoryPerOracleComputeUnitInGbs *int32

	// READ-ONLY; The date and time when the next long-term backup would be created.
	NextLongTermBackupTimeStamp *time.Time

	// READ-ONLY; HTTPS link to OCI resources exposed to Azure Customer via Azure Interface.
	OciURL *string

	// READ-ONLY; Database ocid
	Ocid *string

	// READ-ONLY; Status of Operations Insights for this Autonomous Database.
	OperationsInsightsStatus *OperationsInsightsStatusType

	// READ-ONLY; The list of Azure resource IDs of standby databases located in Autonomous Data Guard remote regions that are
	// associated with the source database. Note that for Autonomous Database Serverless instances, standby databases located
	// in the same region as the source primary database do not have Azure IDs.
	PeerDbIDs []*string

	// READ-ONLY; The private endpoint for the resource.
	PrivateEndpoint *string

	// READ-ONLY; An array of CPU values that an Autonomous Database can be scaled to.
	ProvisionableCpus []*int32

	// READ-ONLY; Azure resource provisioning state.
	ProvisioningState *AzureResourceProvisioningState

	// READ-ONLY; Indicates remote disaster recovery configuration
	RemoteDisasterRecoveryConfiguration *DisasterRecoveryConfigurationDetails

	// READ-ONLY; The SQL Web Developer URL for the Oracle Autonomous Database.
	SQLWebDeveloperURL *string

	// READ-ONLY; The URL of the Service Console for the Autonomous Database.
	ServiceConsoleURL *string

	// READ-ONLY; The list of regions that support the creation of an Autonomous Database clone or an Autonomous Data Guard standby
	// database.
	SupportedRegionsToCloneTo []*string

	// READ-ONLY; The date and time that the database was created.
	TimeCreated *time.Time

	// READ-ONLY; The date and time the Autonomous Data Guard role was switched for the Autonomous Database.
	TimeDataGuardRoleChanged *string

	// READ-ONLY; The date and time the Always Free database will be automatically deleted because of inactivity.
	TimeDeletionOfFreeAutonomousDatabase *string

	// READ-ONLY; The date and time the Disaster Recovery role was switched for the standby Autonomous Database.
	TimeDisasterRecoveryRoleChanged *time.Time

	// READ-ONLY; The date and time that Autonomous Data Guard was enabled for an Autonomous Database where the standby was provisioned
	// in the same region as the primary database.
	TimeLocalDataGuardEnabled *string

	// READ-ONLY; The date and time when maintenance will begin.
	TimeMaintenanceBegin *time.Time

	// READ-ONLY; The date and time when maintenance will end.
	TimeMaintenanceEnd *time.Time

	// READ-ONLY; The timestamp of the last failover operation.
	TimeOfLastFailover *string

	// READ-ONLY; The date and time when last refresh happened.
	TimeOfLastRefresh *string

	// READ-ONLY; The refresh point timestamp (UTC).
	TimeOfLastRefreshPoint *string

	// READ-ONLY; The timestamp of the last switchover operation for the Autonomous Database.
	TimeOfLastSwitchover *string

	// READ-ONLY; The date and time the Always Free database will be stopped because of inactivity.
	TimeReclamationOfFreeAutonomousDatabase *string

	// READ-ONLY; The storage space consumed by Autonomous Database in GBs.
	UsedDataStorageSizeInGbs *int32

	// READ-ONLY; The amount of storage that has been used, in terabytes.
	UsedDataStorageSizeInTbs *int32
}

// GetAutonomousDatabaseBaseProperties implements the AutonomousDatabaseBasePropertiesClassification interface for type AutonomousDatabaseCrossRegionDisasterRecoveryProperties.
func (a *AutonomousDatabaseCrossRegionDisasterRecoveryProperties) GetAutonomousDatabaseBaseProperties() *AutonomousDatabaseBaseProperties {
	return &AutonomousDatabaseBaseProperties{
		ActualUsedDataStorageSizeInTbs:           a.ActualUsedDataStorageSizeInTbs,
		AdminPassword:                            a.AdminPassword,
		AllocatedStorageSizeInTbs:                a.AllocatedStorageSizeInTbs,
		ApexDetails:                              a.ApexDetails,
		AutonomousDatabaseID:                     a.AutonomousDatabaseID,
		AutonomousMaintenanceScheduleType:        a.AutonomousMaintenanceScheduleType,
		AvailableUpgradeVersions:                 a.AvailableUpgradeVersions,
		BackupRetentionPeriodInDays:              a.BackupRetentionPeriodInDays,
		CPUCoreCount:                             a.CPUCoreCount,
		CharacterSet:                             a.CharacterSet,
		ComputeCount:                             a.ComputeCount,
		ComputeModel:                             a.ComputeModel,
		ConnectionStrings:                        a.ConnectionStrings,
		ConnectionUrls:                           a.ConnectionUrls,
		CustomerContacts:                         a.CustomerContacts,
		DataBaseType:                             a.DataBaseType,
		DataSafeStatus:                           a.DataSafeStatus,
		DataStorageSizeInGbs:                     a.DataStorageSizeInGbs,
		DataStorageSizeInTbs:                     a.DataStorageSizeInTbs,
		DatabaseEdition:                          a.DatabaseEdition,
		DbVersion:                                a.DbVersion,
		DbWorkload:                               a.DbWorkload,
		DisplayName:                              a.DisplayName,
		FailedDataRecoveryInSeconds:              a.FailedDataRecoveryInSeconds,
		InMemoryAreaInGbs:                        a.InMemoryAreaInGbs,
		IsAutoScalingEnabled:                     a.IsAutoScalingEnabled,
		IsAutoScalingForStorageEnabled:           a.IsAutoScalingForStorageEnabled,
		IsLocalDataGuardEnabled:                  a.IsLocalDataGuardEnabled,
		IsMtlsConnectionRequired:                 a.IsMtlsConnectionRequired,
		IsPreview:                                a.IsPreview,
		IsPreviewVersionWithServiceTermsAccepted: a.IsPreviewVersionWithServiceTermsAccepted,
		IsRemoteDataGuardEnabled:                 a.IsRemoteDataGuardEnabled,
		LicenseModel:                             a.LicenseModel,
		LifecycleDetails:                         a.LifecycleDetails,
		LifecycleState:                           a.LifecycleState,
		LocalAdgAutoFailoverMaxDataLossLimit:     a.LocalAdgAutoFailoverMaxDataLossLimit,
		LocalDisasterRecoveryType:                a.LocalDisasterRecoveryType,
		LocalStandbyDb:                           a.LocalStandbyDb,
		LongTermBackupSchedule:                   a.LongTermBackupSchedule,
		MemoryPerOracleComputeUnitInGbs:          a.MemoryPerOracleComputeUnitInGbs,
		NcharacterSet:                            a.NcharacterSet,
		NextLongTermBackupTimeStamp:              a.NextLongTermBackupTimeStamp,
		OciURL:                                   a.OciURL,
		Ocid:                                     a.Ocid,
		OpenMode:                                 a.OpenMode,
		OperationsInsightsStatus:                 a.OperationsInsightsStatus,
		PeerDbID:                                 a.PeerDbID,
		PeerDbIDs:                                a.PeerDbIDs,
		PermissionLevel:                          a.PermissionLevel,
		PrivateEndpoint:                          a.PrivateEndpoint,
		PrivateEndpointIP:                        a.PrivateEndpointIP,
		PrivateEndpointLabel:                     a.PrivateEndpointLabel,
		ProvisionableCpus:                        a.ProvisionableCpus,
		ProvisioningState:                        a.ProvisioningState,
		RemoteDisasterRecoveryConfiguration:      a.RemoteDisasterRecoveryConfiguration,
		Role:                                     a.Role,
		SQLWebDeveloperURL:                       a.SQLWebDeveloperURL,
		ScheduledOperationsList:                  a.ScheduledOperationsList,
		ServiceConsoleURL:                        a.ServiceConsoleURL,
		SubnetID:                                 a.SubnetID,
		SupportedRegionsToCloneTo:                a.SupportedRegionsToCloneTo,
		TimeCreated:                              a.TimeCreated,
		TimeDataGuardRoleChanged:                 a.TimeDataGuardRoleChanged,
		TimeDeletionOfFreeAutonomousDatabase:     a.TimeDeletionOfFreeAutonomousDatabase,
		TimeDisasterRecoveryRoleChanged:          a.TimeDisasterRecoveryRoleChanged,
		TimeLocalDataGuardEnabled:                a.TimeLocalDataGuardEnabled,
		TimeMaintenanceBegin:                     a.TimeMaintenanceBegin,
		TimeMaintenanceEnd:                       a.TimeMaintenanceEnd,
		TimeOfLastFailover:                       a.TimeOfLastFailover,
		TimeOfLastRefresh:                        a.TimeOfLastRefresh,
		TimeOfLastRefreshPoint:                   a.TimeOfLastRefreshPoint,
		TimeOfLastSwitchover:                     a.TimeOfLastSwitchover,
		TimeReclamationOfFreeAutonomousDatabase:  a.TimeReclamationOfFreeAutonomousDatabase,
		UsedDataStorageSizeInGbs:                 a.UsedDataStorageSizeInGbs,
		UsedDataStorageSizeInTbs:                 a.UsedDataStorageSizeInTbs,
		VnetID:                                   a.VnetID,
		WhitelistedIPs:                           a.WhitelistedIPs,
	}
}

// AutonomousDatabaseFromBackupTimestampProperties - Autonomous Database From Backup Timestamp resource model.
type AutonomousDatabaseFromBackupTimestampProperties struct {
	// REQUIRED; The Autonomous Database clone type.
	CloneType *CloneType

	// CONSTANT; Database type to be created.
	// Field has constant value DataBaseTypeCloneFromBackupTimestamp, any specified value is ignored.
	DataBaseType *DataBaseType

	// CONSTANT; The source of the database.
	// Field has constant value SourceTypeBackupFromTimestamp, any specified value is ignored.
	Source *SourceType

	// REQUIRED; The ID of the source Autonomous Database that you will clone to create a new Autonomous Database.
	SourceID *string

	// Admin password.
	AdminPassword *string

	// Autonomous Database ID
	AutonomousDatabaseID *string

	// The maintenance schedule type of the Autonomous Database Serverless.
	AutonomousMaintenanceScheduleType *AutonomousMaintenanceScheduleType

	// Retention period, in days, for long-term backups
	BackupRetentionPeriodInDays *int32

	// The number of CPU cores to be made available to the database.
	CPUCoreCount *int32

	// The character set for the autonomous database.
	CharacterSet *string

	// The compute amount (CPUs) available to the database.
	ComputeCount *float32

	// The compute model of the Autonomous Database.
	ComputeModel *ComputeModel

	// Customer Contacts.
	CustomerContacts []*CustomerContact

	// The size, in gigabytes, of the data volume that will be created and attached to the database.
	DataStorageSizeInGbs *int32

	// The quantity of data in the database, in terabytes.
	DataStorageSizeInTbs *int32

	// The Oracle Database Edition that applies to the Autonomous databases.
	DatabaseEdition *DatabaseEditionType

	// A valid Oracle Database version for Autonomous Database.
	DbVersion *string

	// The Autonomous Database workload type
	DbWorkload *WorkloadType

	// The user-friendly name for the Autonomous Database.
	DisplayName *string

	// Indicates if auto scaling is enabled for the Autonomous Database CPU core count.
	IsAutoScalingEnabled *bool

	// Indicates if auto scaling is enabled for the Autonomous Database storage.
	IsAutoScalingForStorageEnabled *bool

	// Indicates whether the Autonomous Database has local or called in-region Data Guard enabled.
	IsLocalDataGuardEnabled *bool

	// Specifies if the Autonomous Database requires mTLS connections.
	IsMtlsConnectionRequired *bool

	// Specifies if the Autonomous Database preview version is being provisioned.
	IsPreviewVersionWithServiceTermsAccepted *bool

	// The Oracle license model that applies to the Oracle Autonomous Database. The default is LICENSE_INCLUDED.
	LicenseModel *LicenseModel

	// Parameter that allows users to select an acceptable maximum data loss limit in seconds, up to which Automatic Failover
	// will be triggered when necessary for a Local Autonomous Data Guard
	LocalAdgAutoFailoverMaxDataLossLimit *int32

	// Details for the long-term backup schedule.
	LongTermBackupSchedule *LongTermBackUpScheduleDetails

	// The character set for the Autonomous Database.
	NcharacterSet *string

	// Indicates the Autonomous Database mode.
	OpenMode *OpenModeType

	// The Azure resource ID of the Disaster Recovery peer database, which is located in a different region from the current peer
	// database.
	PeerDbID *string

	// The Autonomous Database permission level.
	PermissionLevel *PermissionLevelType

	// The private endpoint Ip address for the resource.
	PrivateEndpointIP *string

	// The resource's private endpoint label.
	PrivateEndpointLabel *string

	// The Data Guard role of the Autonomous Container Database or Autonomous Database, if Autonomous Data Guard is enabled.
	Role *RoleType

	// The list of scheduled operations.
	ScheduledOperationsList []*ScheduledOperationsType

	// Client subnet
	SubnetID *string

	// The timestamp specified for the point-in-time clone of the source Autonomous Database. The timestamp must be in the past.
	Timestamp *time.Time

	// Clone from latest available backup timestamp.
	UseLatestAvailableBackupTimeStamp *bool

	// VNET for network connectivity
	VnetID *string

	// The client IP access control list (ACL). This is an array of CIDR notations and/or IP addresses. Values should be separate
	// strings, separated by commas. Example: ['1.1.1.1','1.1.1.0/24','1.1.2.25']
	WhitelistedIPs []*string

	// READ-ONLY; The current amount of storage in use for user and system data, in terabytes (TB).
	ActualUsedDataStorageSizeInTbs *float64

	// READ-ONLY; The amount of storage currently allocated for the database tables and billed for, rounded up.
	AllocatedStorageSizeInTbs *float64

	// READ-ONLY; Information about Oracle APEX Application Development.
	ApexDetails *ApexDetailsType

	// READ-ONLY; List of Oracle Database versions available for a database upgrade. If there are no version upgrades available,
	// this list is empty.
	AvailableUpgradeVersions []*string

	// READ-ONLY; The connection string used to connect to the Autonomous Database.
	ConnectionStrings *ConnectionStringType

	// READ-ONLY; The URLs for accessing Oracle Application Express (APEX) and SQL Developer Web with a browser from a Compute
	// instance within your VCN or that has a direct connection to your VCN.
	ConnectionUrls *ConnectionURLType

	// READ-ONLY; Status of the Data Safe registration for this Autonomous Database.
	DataSafeStatus *DataSafeStatusType

	// READ-ONLY; Indicates the number of seconds of data loss for a Data Guard failover.
	FailedDataRecoveryInSeconds *int32

	// READ-ONLY; The area assigned to In-Memory tables in Autonomous Database.
	InMemoryAreaInGbs *int32

	// READ-ONLY; Indicates if the Autonomous Database version is a preview version.
	IsPreview *bool

	// READ-ONLY; Indicates whether the Autonomous Database has Cross Region Data Guard enabled.
	IsRemoteDataGuardEnabled *bool

	// READ-ONLY; Additional information about the current lifecycle state.
	LifecycleDetails *string

	// READ-ONLY; Views lifecycleState
	LifecycleState *AutonomousDatabaseLifecycleState

	// READ-ONLY; Indicates the local disaster recovery (DR) type of the Autonomous Database Serverless instance.Autonomous Data
	// Guard (ADG) DR type provides business critical DR with a faster recovery time objective (RTO) during failover or switchover.Backup-based
	// DR type provides lower cost DR with a slower RTO during failover or switchover.
	LocalDisasterRecoveryType *DisasterRecoveryType

	// READ-ONLY; Local Autonomous Disaster Recovery standby database details.
	LocalStandbyDb *AutonomousDatabaseStandbySummary

	// READ-ONLY; The amount of memory (in GBs) enabled per ECPU or OCPU.
	MemoryPerOracleComputeUnitInGbs *int32

	// READ-ONLY; The date and time when the next long-term backup would be created.
	NextLongTermBackupTimeStamp *time.Time

	// READ-ONLY; HTTPS link to OCI resources exposed to Azure Customer via Azure Interface.
	OciURL *string

	// READ-ONLY; Database ocid
	Ocid *string

	// READ-ONLY; Status of Operations Insights for this Autonomous Database.
	OperationsInsightsStatus *OperationsInsightsStatusType

	// READ-ONLY; The list of Azure resource IDs of standby databases located in Autonomous Data Guard remote regions that are
	// associated with the source database. Note that for Autonomous Database Serverless instances, standby databases located
	// in the same region as the source primary database do not have Azure IDs.
	PeerDbIDs []*string

	// READ-ONLY; The private endpoint for the resource.
	PrivateEndpoint *string

	// READ-ONLY; An array of CPU values that an Autonomous Database can be scaled to.
	ProvisionableCpus []*int32

	// READ-ONLY; Azure resource provisioning state.
	ProvisioningState *AzureResourceProvisioningState

	// READ-ONLY; Indicates remote disaster recovery configuration
	RemoteDisasterRecoveryConfiguration *DisasterRecoveryConfigurationDetails

	// READ-ONLY; The SQL Web Developer URL for the Oracle Autonomous Database.
	SQLWebDeveloperURL *string

	// READ-ONLY; The URL of the Service Console for the Autonomous Database.
	ServiceConsoleURL *string

	// READ-ONLY; The list of regions that support the creation of an Autonomous Database clone or an Autonomous Data Guard standby
	// database.
	SupportedRegionsToCloneTo []*string

	// READ-ONLY; The date and time that the database was created.
	TimeCreated *time.Time

	// READ-ONLY; The date and time the Autonomous Data Guard role was switched for the Autonomous Database.
	TimeDataGuardRoleChanged *string

	// READ-ONLY; The date and time the Always Free database will be automatically deleted because of inactivity.
	TimeDeletionOfFreeAutonomousDatabase *string

	// READ-ONLY; The date and time the Disaster Recovery role was switched for the standby Autonomous Database.
	TimeDisasterRecoveryRoleChanged *time.Time

	// READ-ONLY; The date and time that Autonomous Data Guard was enabled for an Autonomous Database where the standby was provisioned
	// in the same region as the primary database.
	TimeLocalDataGuardEnabled *string

	// READ-ONLY; The date and time when maintenance will begin.
	TimeMaintenanceBegin *time.Time

	// READ-ONLY; The date and time when maintenance will end.
	TimeMaintenanceEnd *time.Time

	// READ-ONLY; The timestamp of the last failover operation.
	TimeOfLastFailover *string

	// READ-ONLY; The date and time when last refresh happened.
	TimeOfLastRefresh *string

	// READ-ONLY; The refresh point timestamp (UTC).
	TimeOfLastRefreshPoint *string

	// READ-ONLY; The timestamp of the last switchover operation for the Autonomous Database.
	TimeOfLastSwitchover *string

	// READ-ONLY; The date and time the Always Free database will be stopped because of inactivity.
	TimeReclamationOfFreeAutonomousDatabase *string

	// READ-ONLY; The storage space consumed by Autonomous Database in GBs.
	UsedDataStorageSizeInGbs *int32

	// READ-ONLY; The amount of storage that has been used, in terabytes.
	UsedDataStorageSizeInTbs *int32
}

// GetAutonomousDatabaseBaseProperties implements the AutonomousDatabaseBasePropertiesClassification interface for type AutonomousDatabaseFromBackupTimestampProperties.
func (a *AutonomousDatabaseFromBackupTimestampProperties) GetAutonomousDatabaseBaseProperties() *AutonomousDatabaseBaseProperties {
	return &AutonomousDatabaseBaseProperties{
		ActualUsedDataStorageSizeInTbs:           a.ActualUsedDataStorageSizeInTbs,
		AdminPassword:                            a.AdminPassword,
		AllocatedStorageSizeInTbs:                a.AllocatedStorageSizeInTbs,
		ApexDetails:                              a.ApexDetails,
		AutonomousDatabaseID:                     a.AutonomousDatabaseID,
		AutonomousMaintenanceScheduleType:        a.AutonomousMaintenanceScheduleType,
		AvailableUpgradeVersions:                 a.AvailableUpgradeVersions,
		BackupRetentionPeriodInDays:              a.BackupRetentionPeriodInDays,
		CPUCoreCount:                             a.CPUCoreCount,
		CharacterSet:                             a.CharacterSet,
		ComputeCount:                             a.ComputeCount,
		ComputeModel:                             a.ComputeModel,
		ConnectionStrings:                        a.ConnectionStrings,
		ConnectionUrls:                           a.ConnectionUrls,
		CustomerContacts:                         a.CustomerContacts,
		DataBaseType:                             a.DataBaseType,
		DataSafeStatus:                           a.DataSafeStatus,
		DataStorageSizeInGbs:                     a.DataStorageSizeInGbs,
		DataStorageSizeInTbs:                     a.DataStorageSizeInTbs,
		DatabaseEdition:                          a.DatabaseEdition,
		DbVersion:                                a.DbVersion,
		DbWorkload:                               a.DbWorkload,
		DisplayName:                              a.DisplayName,
		FailedDataRecoveryInSeconds:              a.FailedDataRecoveryInSeconds,
		InMemoryAreaInGbs:                        a.InMemoryAreaInGbs,
		IsAutoScalingEnabled:                     a.IsAutoScalingEnabled,
		IsAutoScalingForStorageEnabled:           a.IsAutoScalingForStorageEnabled,
		IsLocalDataGuardEnabled:                  a.IsLocalDataGuardEnabled,
		IsMtlsConnectionRequired:                 a.IsMtlsConnectionRequired,
		IsPreview:                                a.IsPreview,
		IsPreviewVersionWithServiceTermsAccepted: a.IsPreviewVersionWithServiceTermsAccepted,
		IsRemoteDataGuardEnabled:                 a.IsRemoteDataGuardEnabled,
		LicenseModel:                             a.LicenseModel,
		LifecycleDetails:                         a.LifecycleDetails,
		LifecycleState:                           a.LifecycleState,
		LocalAdgAutoFailoverMaxDataLossLimit:     a.LocalAdgAutoFailoverMaxDataLossLimit,
		LocalDisasterRecoveryType:                a.LocalDisasterRecoveryType,
		LocalStandbyDb:                           a.LocalStandbyDb,
		LongTermBackupSchedule:                   a.LongTermBackupSchedule,
		MemoryPerOracleComputeUnitInGbs:          a.MemoryPerOracleComputeUnitInGbs,
		NcharacterSet:                            a.NcharacterSet,
		NextLongTermBackupTimeStamp:              a.NextLongTermBackupTimeStamp,
		OciURL:                                   a.OciURL,
		Ocid:                                     a.Ocid,
		OpenMode:                                 a.OpenMode,
		OperationsInsightsStatus:                 a.OperationsInsightsStatus,
		PeerDbID:                                 a.PeerDbID,
		PeerDbIDs:                                a.PeerDbIDs,
		PermissionLevel:                          a.PermissionLevel,
		PrivateEndpoint:                          a.PrivateEndpoint,
		PrivateEndpointIP:                        a.PrivateEndpointIP,
		PrivateEndpointLabel:                     a.PrivateEndpointLabel,
		ProvisionableCpus:                        a.ProvisionableCpus,
		ProvisioningState:                        a.ProvisioningState,
		RemoteDisasterRecoveryConfiguration:      a.RemoteDisasterRecoveryConfiguration,
		Role:                                     a.Role,
		SQLWebDeveloperURL:                       a.SQLWebDeveloperURL,
		ScheduledOperationsList:                  a.ScheduledOperationsList,
		ServiceConsoleURL:                        a.ServiceConsoleURL,
		SubnetID:                                 a.SubnetID,
		SupportedRegionsToCloneTo:                a.SupportedRegionsToCloneTo,
		TimeCreated:                              a.TimeCreated,
		TimeDataGuardRoleChanged:                 a.TimeDataGuardRoleChanged,
		TimeDeletionOfFreeAutonomousDatabase:     a.TimeDeletionOfFreeAutonomousDatabase,
		TimeDisasterRecoveryRoleChanged:          a.TimeDisasterRecoveryRoleChanged,
		TimeLocalDataGuardEnabled:                a.TimeLocalDataGuardEnabled,
		TimeMaintenanceBegin:                     a.TimeMaintenanceBegin,
		TimeMaintenanceEnd:                       a.TimeMaintenanceEnd,
		TimeOfLastFailover:                       a.TimeOfLastFailover,
		TimeOfLastRefresh:                        a.TimeOfLastRefresh,
		TimeOfLastRefreshPoint:                   a.TimeOfLastRefreshPoint,
		TimeOfLastSwitchover:                     a.TimeOfLastSwitchover,
		TimeReclamationOfFreeAutonomousDatabase:  a.TimeReclamationOfFreeAutonomousDatabase,
		UsedDataStorageSizeInGbs:                 a.UsedDataStorageSizeInGbs,
		UsedDataStorageSizeInTbs:                 a.UsedDataStorageSizeInTbs,
		VnetID:                                   a.VnetID,
		WhitelistedIPs:                           a.WhitelistedIPs,
	}
}

// AutonomousDatabaseLifecycleAction - Autonomous Database Action Object
type AutonomousDatabaseLifecycleAction struct {
	// REQUIRED; Autonomous Database lifecycle action
	Action *AutonomousDatabaseLifecycleActionEnum
}

// AutonomousDatabaseListResult - The response of a AutonomousDatabase list operation.
type AutonomousDatabaseListResult struct {
	// REQUIRED; The AutonomousDatabase items on this page
	Value []*AutonomousDatabase

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

// AutonomousDatabaseNationalCharacterSets resource definition
type AutonomousDatabaseNationalCharacterSet struct {
	// The resource-specific properties for this resource.
	Properties *AutonomousDatabaseNationalCharacterSetProperties

	// 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
}

// AutonomousDatabaseNationalCharacterSetListResult - The response of a AutonomousDatabaseNationalCharacterSet list operation.
type AutonomousDatabaseNationalCharacterSetListResult struct {
	// REQUIRED; The AutonomousDatabaseNationalCharacterSet items on this page
	Value []*AutonomousDatabaseNationalCharacterSet

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

// AutonomousDatabaseNationalCharacterSetProperties - AutonomousDatabaseNationalCharacterSet resource model
type AutonomousDatabaseNationalCharacterSetProperties struct {
	// REQUIRED; The Oracle Autonomous Database supported national character sets.
	CharacterSet *string
}

// AutonomousDatabaseProperties - Autonomous Database resource model.
type AutonomousDatabaseProperties struct {
	// CONSTANT; Database type to be created.
	// Field has constant value DataBaseTypeRegular, any specified value is ignored.
	DataBaseType *DataBaseType

	// Admin password.
	AdminPassword *string

	// Autonomous Database ID
	AutonomousDatabaseID *string

	// The maintenance schedule type of the Autonomous Database Serverless.
	AutonomousMaintenanceScheduleType *AutonomousMaintenanceScheduleType

	// Retention period, in days, for long-term backups
	BackupRetentionPeriodInDays *int32

	// The number of CPU cores to be made available to the database.
	CPUCoreCount *int32

	// The character set for the autonomous database.
	CharacterSet *string

	// The compute amount (CPUs) available to the database.
	ComputeCount *float32

	// The compute model of the Autonomous Database.
	ComputeModel *ComputeModel

	// Customer Contacts.
	CustomerContacts []*CustomerContact

	// The size, in gigabytes, of the data volume that will be created and attached to the database.
	DataStorageSizeInGbs *int32

	// The quantity of data in the database, in terabytes.
	DataStorageSizeInTbs *int32

	// The Oracle Database Edition that applies to the Autonomous databases.
	DatabaseEdition *DatabaseEditionType

	// A valid Oracle Database version for Autonomous Database.
	DbVersion *string

	// The Autonomous Database workload type
	DbWorkload *WorkloadType

	// The user-friendly name for the Autonomous Database.
	DisplayName *string

	// Indicates if auto scaling is enabled for the Autonomous Database CPU core count.
	IsAutoScalingEnabled *bool

	// Indicates if auto scaling is enabled for the Autonomous Database storage.
	IsAutoScalingForStorageEnabled *bool

	// Indicates whether the Autonomous Database has local or called in-region Data Guard enabled.
	IsLocalDataGuardEnabled *bool

	// Specifies if the Autonomous Database requires mTLS connections.
	IsMtlsConnectionRequired *bool

	// Specifies if the Autonomous Database preview version is being provisioned.
	IsPreviewVersionWithServiceTermsAccepted *bool

	// The Oracle license model that applies to the Oracle Autonomous Database. The default is LICENSE_INCLUDED.
	LicenseModel *LicenseModel

	// Parameter that allows users to select an acceptable maximum data loss limit in seconds, up to which Automatic Failover
	// will be triggered when necessary for a Local Autonomous Data Guard
	LocalAdgAutoFailoverMaxDataLossLimit *int32

	// Details for the long-term backup schedule.
	LongTermBackupSchedule *LongTermBackUpScheduleDetails

	// The character set for the Autonomous Database.
	NcharacterSet *string

	// Indicates the Autonomous Database mode.
	OpenMode *OpenModeType

	// The Azure resource ID of the Disaster Recovery peer database, which is located in a different region from the current peer
	// database.
	PeerDbID *string

	// The Autonomous Database permission level.
	PermissionLevel *PermissionLevelType

	// The private endpoint Ip address for the resource.
	PrivateEndpointIP *string

	// The resource's private endpoint label.
	PrivateEndpointLabel *string

	// The Data Guard role of the Autonomous Container Database or Autonomous Database, if Autonomous Data Guard is enabled.
	Role *RoleType

	// The list of scheduled operations.
	ScheduledOperationsList []*ScheduledOperationsType

	// Client subnet
	SubnetID *string

	// VNET for network connectivity
	VnetID *string

	// The client IP access control list (ACL). This is an array of CIDR notations and/or IP addresses. Values should be separate
	// strings, separated by commas. Example: ['1.1.1.1','1.1.1.0/24','1.1.2.25']
	WhitelistedIPs []*string

	// READ-ONLY; The current amount of storage in use for user and system data, in terabytes (TB).
	ActualUsedDataStorageSizeInTbs *float64

	// READ-ONLY; The amount of storage currently allocated for the database tables and billed for, rounded up.
	AllocatedStorageSizeInTbs *float64

	// READ-ONLY; Information about Oracle APEX Application Development.
	ApexDetails *ApexDetailsType

	// READ-ONLY; List of Oracle Database versions available for a database upgrade. If there are no version upgrades available,
	// this list is empty.
	AvailableUpgradeVersions []*string

	// READ-ONLY; The connection string used to connect to the Autonomous Database.
	ConnectionStrings *ConnectionStringType

	// READ-ONLY; The URLs for accessing Oracle Application Express (APEX) and SQL Developer Web with a browser from a Compute
	// instance within your VCN or that has a direct connection to your VCN.
	ConnectionUrls *ConnectionURLType

	// READ-ONLY; Status of the Data Safe registration for this Autonomous Database.
	DataSafeStatus *DataSafeStatusType

	// READ-ONLY; Indicates the number of seconds of data loss for a Data Guard failover.
	FailedDataRecoveryInSeconds *int32

	// READ-ONLY; The area assigned to In-Memory tables in Autonomous Database.
	InMemoryAreaInGbs *int32

	// READ-ONLY; Indicates if the Autonomous Database version is a preview version.
	IsPreview *bool

	// READ-ONLY; Indicates whether the Autonomous Database has Cross Region Data Guard enabled.
	IsRemoteDataGuardEnabled *bool

	// READ-ONLY; Additional information about the current lifecycle state.
	LifecycleDetails *string

	// READ-ONLY; Views lifecycleState
	LifecycleState *AutonomousDatabaseLifecycleState

	// READ-ONLY; Indicates the local disaster recovery (DR) type of the Autonomous Database Serverless instance.Autonomous Data
	// Guard (ADG) DR type provides business critical DR with a faster recovery time objective (RTO) during failover or switchover.Backup-based
	// DR type provides lower cost DR with a slower RTO during failover or switchover.
	LocalDisasterRecoveryType *DisasterRecoveryType

	// READ-ONLY; Local Autonomous Disaster Recovery standby database details.
	LocalStandbyDb *AutonomousDatabaseStandbySummary

	// READ-ONLY; The amount of memory (in GBs) enabled per ECPU or OCPU.
	MemoryPerOracleComputeUnitInGbs *int32

	// READ-ONLY; The date and time when the next long-term backup would be created.
	NextLongTermBackupTimeStamp *time.Time

	// READ-ONLY; HTTPS link to OCI resources exposed to Azure Customer via Azure Interface.
	OciURL *string

	// READ-ONLY; Database ocid
	Ocid *string

	// READ-ONLY; Status of Operations Insights for this Autonomous Database.
	OperationsInsightsStatus *OperationsInsightsStatusType

	// READ-ONLY; The list of Azure resource IDs of standby databases located in Autonomous Data Guard remote regions that are
	// associated with the source database. Note that for Autonomous Database Serverless instances, standby databases located
	// in the same region as the source primary database do not have Azure IDs.
	PeerDbIDs []*string

	// READ-ONLY; The private endpoint for the resource.
	PrivateEndpoint *string

	// READ-ONLY; An array of CPU values that an Autonomous Database can be scaled to.
	ProvisionableCpus []*int32

	// READ-ONLY; Azure resource provisioning state.
	ProvisioningState *AzureResourceProvisioningState

	// READ-ONLY; Indicates remote disaster recovery configuration
	RemoteDisasterRecoveryConfiguration *DisasterRecoveryConfigurationDetails

	// READ-ONLY; The SQL Web Developer URL for the Oracle Autonomous Database.
	SQLWebDeveloperURL *string

	// READ-ONLY; The URL of the Service Console for the Autonomous Database.
	ServiceConsoleURL *string

	// READ-ONLY; The list of regions that support the creation of an Autonomous Database clone or an Autonomous Data Guard standby
	// database.
	SupportedRegionsToCloneTo []*string

	// READ-ONLY; The date and time that the database was created.
	TimeCreated *time.Time

	// READ-ONLY; The date and time the Autonomous Data Guard role was switched for the Autonomous Database.
	TimeDataGuardRoleChanged *string

	// READ-ONLY; The date and time the Always Free database will be automatically deleted because of inactivity.
	TimeDeletionOfFreeAutonomousDatabase *string

	// READ-ONLY; The date and time the Disaster Recovery role was switched for the standby Autonomous Database.
	TimeDisasterRecoveryRoleChanged *time.Time

	// READ-ONLY; The date and time that Autonomous Data Guard was enabled for an Autonomous Database where the standby was provisioned
	// in the same region as the primary database.
	TimeLocalDataGuardEnabled *string

	// READ-ONLY; The date and time when maintenance will begin.
	TimeMaintenanceBegin *time.Time

	// READ-ONLY; The date and time when maintenance will end.
	TimeMaintenanceEnd *time.Time

	// READ-ONLY; The timestamp of the last failover operation.
	TimeOfLastFailover *string

	// READ-ONLY; The date and time when last refresh happened.
	TimeOfLastRefresh *string

	// READ-ONLY; The refresh point timestamp (UTC).
	TimeOfLastRefreshPoint *string

	// READ-ONLY; The timestamp of the last switchover operation for the Autonomous Database.
	TimeOfLastSwitchover *string

	// READ-ONLY; The date and time the Always Free database will be stopped because of inactivity.
	TimeReclamationOfFreeAutonomousDatabase *string

	// READ-ONLY; The storage space consumed by Autonomous Database in GBs.
	UsedDataStorageSizeInGbs *int32

	// READ-ONLY; The amount of storage that has been used, in terabytes.
	UsedDataStorageSizeInTbs *int32
}

// GetAutonomousDatabaseBaseProperties implements the AutonomousDatabaseBasePropertiesClassification interface for type AutonomousDatabaseProperties.
func (a *AutonomousDatabaseProperties) GetAutonomousDatabaseBaseProperties() *AutonomousDatabaseBaseProperties {
	return &AutonomousDatabaseBaseProperties{
		ActualUsedDataStorageSizeInTbs:           a.ActualUsedDataStorageSizeInTbs,
		AdminPassword:                            a.AdminPassword,
		AllocatedStorageSizeInTbs:                a.AllocatedStorageSizeInTbs,
		ApexDetails:                              a.ApexDetails,
		AutonomousDatabaseID:                     a.AutonomousDatabaseID,
		AutonomousMaintenanceScheduleType:        a.AutonomousMaintenanceScheduleType,
		AvailableUpgradeVersions:                 a.AvailableUpgradeVersions,
		BackupRetentionPeriodInDays:              a.BackupRetentionPeriodInDays,
		CPUCoreCount:                             a.CPUCoreCount,
		CharacterSet:                             a.CharacterSet,
		ComputeCount:                             a.ComputeCount,
		ComputeModel:                             a.ComputeModel,
		ConnectionStrings:                        a.ConnectionStrings,
		ConnectionUrls:                           a.ConnectionUrls,
		CustomerContacts:                         a.CustomerContacts,
		DataBaseType:                             a.DataBaseType,
		DataSafeStatus:                           a.DataSafeStatus,
		DataStorageSizeInGbs:                     a.DataStorageSizeInGbs,
		DataStorageSizeInTbs:                     a.DataStorageSizeInTbs,
		DatabaseEdition:                          a.DatabaseEdition,
		DbVersion:                                a.DbVersion,
		DbWorkload:                               a.DbWorkload,
		DisplayName:                              a.DisplayName,
		FailedDataRecoveryInSeconds:              a.FailedDataRecoveryInSeconds,
		InMemoryAreaInGbs:                        a.InMemoryAreaInGbs,
		IsAutoScalingEnabled:                     a.IsAutoScalingEnabled,
		IsAutoScalingForStorageEnabled:           a.IsAutoScalingForStorageEnabled,
		IsLocalDataGuardEnabled:                  a.IsLocalDataGuardEnabled,
		IsMtlsConnectionRequired:                 a.IsMtlsConnectionRequired,
		IsPreview:                                a.IsPreview,
		IsPreviewVersionWithServiceTermsAccepted: a.IsPreviewVersionWithServiceTermsAccepted,
		IsRemoteDataGuardEnabled:                 a.IsRemoteDataGuardEnabled,
		LicenseModel:                             a.LicenseModel,
		LifecycleDetails:                         a.LifecycleDetails,
		LifecycleState:                           a.LifecycleState,
		LocalAdgAutoFailoverMaxDataLossLimit:     a.LocalAdgAutoFailoverMaxDataLossLimit,
		LocalDisasterRecoveryType:                a.LocalDisasterRecoveryType,
		LocalStandbyDb:                           a.LocalStandbyDb,
		LongTermBackupSchedule:                   a.LongTermBackupSchedule,
		MemoryPerOracleComputeUnitInGbs:          a.MemoryPerOracleComputeUnitInGbs,
		NcharacterSet:                            a.NcharacterSet,
		NextLongTermBackupTimeStamp:              a.NextLongTermBackupTimeStamp,
		OciURL:                                   a.OciURL,
		Ocid:                                     a.Ocid,
		OpenMode:                                 a.OpenMode,
		OperationsInsightsStatus:                 a.OperationsInsightsStatus,
		PeerDbID:                                 a.PeerDbID,
		PeerDbIDs:                                a.PeerDbIDs,
		PermissionLevel:                          a.PermissionLevel,
		PrivateEndpoint:                          a.PrivateEndpoint,
		PrivateEndpointIP:                        a.PrivateEndpointIP,
		PrivateEndpointLabel:                     a.PrivateEndpointLabel,
		ProvisionableCpus:                        a.ProvisionableCpus,
		ProvisioningState:                        a.ProvisioningState,
		RemoteDisasterRecoveryConfiguration:      a.RemoteDisasterRecoveryConfiguration,
		Role:                                     a.Role,
		SQLWebDeveloperURL:                       a.SQLWebDeveloperURL,
		ScheduledOperationsList:                  a.ScheduledOperationsList,
		ServiceConsoleURL:                        a.ServiceConsoleURL,
		SubnetID:                                 a.SubnetID,
		SupportedRegionsToCloneTo:                a.SupportedRegionsToCloneTo,
		TimeCreated:                              a.TimeCreated,
		TimeDataGuardRoleChanged:                 a.TimeDataGuardRoleChanged,
		TimeDeletionOfFreeAutonomousDatabase:     a.TimeDeletionOfFreeAutonomousDatabase,
		TimeDisasterRecoveryRoleChanged:          a.TimeDisasterRecoveryRoleChanged,
		TimeLocalDataGuardEnabled:                a.TimeLocalDataGuardEnabled,
		TimeMaintenanceBegin:                     a.TimeMaintenanceBegin,
		TimeMaintenanceEnd:                       a.TimeMaintenanceEnd,
		TimeOfLastFailover:                       a.TimeOfLastFailover,
		TimeOfLastRefresh:                        a.TimeOfLastRefresh,
		TimeOfLastRefreshPoint:                   a.TimeOfLastRefreshPoint,
		TimeOfLastSwitchover:                     a.TimeOfLastSwitchover,
		TimeReclamationOfFreeAutonomousDatabase:  a.TimeReclamationOfFreeAutonomousDatabase,
		UsedDataStorageSizeInGbs:                 a.UsedDataStorageSizeInGbs,
		UsedDataStorageSizeInTbs:                 a.UsedDataStorageSizeInTbs,
		VnetID:                                   a.VnetID,
		WhitelistedIPs:                           a.WhitelistedIPs,
	}
}

// AutonomousDatabaseStandbySummary - Autonomous Disaster Recovery standby database details.
type AutonomousDatabaseStandbySummary struct {
	// The amount of time, in seconds, that the data of the standby database lags the data of the primary database. Can be used
	// to determine the potential data loss in the event of a failover.
	LagTimeInSeconds *int32

	// Additional information about the current lifecycle state.
	LifecycleDetails *string

	// The current state of the Autonomous Database.
	LifecycleState *AutonomousDatabaseLifecycleState

	// The date and time the Autonomous Data Guard role was switched for the standby Autonomous Database.
	TimeDataGuardRoleChanged *string

	// The date and time the Disaster Recovery role was switched for the standby Autonomous Database.
	TimeDisasterRecoveryRoleChanged *string
}

// AutonomousDatabaseUpdate - The type used for update operations of the AutonomousDatabase.
type AutonomousDatabaseUpdate struct {
	// The resource-specific properties for this resource.
	Properties *AutonomousDatabaseUpdateProperties

	// Resource tags.
	Tags map[string]*string
}

// AutonomousDatabaseUpdateProperties - The updatable properties of the AutonomousDatabase.
type AutonomousDatabaseUpdateProperties struct {
	// Admin password.
	AdminPassword *string

	// The maintenance schedule type of the Autonomous Database Serverless.
	AutonomousMaintenanceScheduleType *AutonomousMaintenanceScheduleType

	// Retention period, in days, for long-term backups
	BackupRetentionPeriodInDays *int32

	// The number of CPU cores to be made available to the database.
	CPUCoreCount *int32

	// The compute amount (CPUs) available to the database.
	ComputeCount *float32

	// Customer Contacts.
	CustomerContacts []*CustomerContact

	// The size, in gigabytes, of the data volume that will be created and attached to the database.
	DataStorageSizeInGbs *int32

	// The quantity of data in the database, in terabytes.
	DataStorageSizeInTbs *int32

	// The Oracle Database Edition that applies to the Autonomous databases.
	DatabaseEdition *DatabaseEditionType

	// The user-friendly name for the Autonomous Database.
	DisplayName *string

	// Indicates if auto scaling is enabled for the Autonomous Database CPU core count.
	IsAutoScalingEnabled *bool

	// Indicates if auto scaling is enabled for the Autonomous Database storage.
	IsAutoScalingForStorageEnabled *bool

	// Indicates whether the Autonomous Database has local or called in-region Data Guard enabled.
	IsLocalDataGuardEnabled *bool

	// Specifies if the Autonomous Database requires mTLS connections.
	IsMtlsConnectionRequired *bool

	// The Oracle license model that applies to the Oracle Autonomous Database. The default is LICENSE_INCLUDED.
	LicenseModel *LicenseModel

	// Parameter that allows users to select an acceptable maximum data loss limit in seconds, up to which Automatic Failover
	// will be triggered when necessary for a Local Autonomous Data Guard
	LocalAdgAutoFailoverMaxDataLossLimit *int32

	// Details for the long-term backup schedule.
	LongTermBackupSchedule *LongTermBackUpScheduleDetails

	// Indicates the Autonomous Database mode.
	OpenMode *OpenModeType

	// The Azure resource ID of the Disaster Recovery peer database, which is located in a different region from the current peer
	// database.
	PeerDbID *string

	// The Autonomous Database permission level.
	PermissionLevel *PermissionLevelType

	// The Data Guard role of the Autonomous Container Database or Autonomous Database, if Autonomous Data Guard is enabled.
	Role *RoleType

	// The list of scheduled operations.
	ScheduledOperationsList []*ScheduledOperationsTypeUpdate

	// The client IP access control list (ACL). This is an array of CIDR notations and/or IP addresses. Values should be separate
	// strings, separated by commas. Example: ['1.1.1.1','1.1.1.0/24','1.1.2.25']
	WhitelistedIPs []*string
}

// AutonomousDatabaseWalletFile - Autonomous Database Wallet File resource model.
type AutonomousDatabaseWalletFile struct {
	// REQUIRED; The base64 encoded wallet files
	WalletFiles *string
}

// AutonomousDbVersion resource definition
type AutonomousDbVersion struct {
	// The resource-specific properties for this resource.
	Properties *AutonomousDbVersionProperties

	// 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
}

// AutonomousDbVersionListResult - The response of a AutonomousDbVersion list operation.
type AutonomousDbVersionListResult struct {
	// REQUIRED; The AutonomousDbVersion items on this page
	Value []*AutonomousDbVersion

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

// AutonomousDbVersionProperties - AutonomousDbVersion resource model
type AutonomousDbVersionProperties struct {
	// REQUIRED; Supported Autonomous Db versions.
	Version *string

	// The Autonomous Database workload type
	DbWorkload *WorkloadType

	// True if this version of the Oracle Database software's default is free.
	IsDefaultForFree *bool

	// True if this version of the Oracle Database software's default is paid.
	IsDefaultForPaid *bool

	// True if this version of the Oracle Database software can be used for Always-Free Autonomous Databases.
	IsFreeTierEnabled *bool

	// True if this version of the Oracle Database software has payments enabled.
	IsPaidEnabled *bool
}

// AzureSubscriptions - Azure Subscriptions model
type AzureSubscriptions struct {
	// REQUIRED; Azure Subscription Ids to be updated
	AzureSubscriptionIDs []*string
}

// CloudAccountDetails - Cloud Account Details model
type CloudAccountDetails struct {
	// READ-ONLY; Cloud Account Home region
	CloudAccountHomeRegion *string

	// READ-ONLY; Cloud Account name
	CloudAccountName *string
}

// CloudExadataInfrastructure resource definition
type CloudExadataInfrastructure struct {
	// REQUIRED; The geo-location where the resource lives
	Location *string

	// REQUIRED; CloudExadataInfrastructure zones
	Zones []*string

	// The resource-specific properties for this resource.
	Properties *CloudExadataInfrastructureProperties

	// Resource tags.
	Tags map[string]*string

	// 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
}

// CloudExadataInfrastructureListResult - The response of a CloudExadataInfrastructure list operation.
type CloudExadataInfrastructureListResult struct {
	// REQUIRED; The CloudExadataInfrastructure items on this page
	Value []*CloudExadataInfrastructure

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

// CloudExadataInfrastructureProperties - CloudExadataInfrastructure resource model
type CloudExadataInfrastructureProperties struct {
	// REQUIRED; The name for the Exadata infrastructure.
	DisplayName *string

	// REQUIRED; The model name of the cloud Exadata infrastructure resource.
	Shape *string

	// The number of compute servers for the cloud Exadata infrastructure.
	ComputeCount *int32

	// The list of customer email addresses that receive information from Oracle about the specified OCI Database service resource.
	// Oracle uses these email addresses to send notifications about planned and unplanned software maintenance updates, information
	// about system hardware, and other information needed by administrators. Up to 10 email addresses can be added to the customer
	// contacts for a cloud Exadata infrastructure instance.
	CustomerContacts []*CustomerContact

	// The database server model type of the cloud Exadata infrastructure resource.
	DatabaseServerType *string

	// maintenanceWindow property
	MaintenanceWindow *MaintenanceWindow

	// The number of storage servers for the cloud Exadata infrastructure.
	StorageCount *int32

	// The storage server model type of the cloud Exadata infrastructure resource.
	StorageServerType *string

	// READ-ONLY; The requested number of additional storage servers activated for the Exadata infrastructure.
	ActivatedStorageCount *int32

	// READ-ONLY; The requested number of additional storage servers for the Exadata infrastructure.
	AdditionalStorageCount *int32

	// READ-ONLY; The available storage can be allocated to the cloud Exadata infrastructure resource, in gigabytes (GB).
	AvailableStorageSizeInGbs *int32

	// READ-ONLY; The total number of CPU cores allocated.
	CPUCount *int32

	// READ-ONLY; The compute model of the Exadata Infrastructure
	ComputeModel *ComputeModel

	// READ-ONLY; The quantity of data in the database, in terabytes.
	DataStorageSizeInTbs *float64

	// READ-ONLY; The local node storage to be allocated in GBs.
	DbNodeStorageSizeInGbs *int32

	// READ-ONLY; The software version of the database servers (dom0) in the Exadata infrastructure.
	DbServerVersion *string

	// READ-ONLY; Defined file system configurations
	DefinedFileSystemConfiguration []*DefinedFileSystemConfiguration

	// READ-ONLY; The estimated total time required in minutes for all patching operations (database server, storage server, and
	// network switch patching).
	EstimatedPatchingTime *EstimatedPatchingTime

	// READ-ONLY; The exascale config details for the cloud Exadata infrastructure
	ExascaleConfig *ExascaleConfigDetails

	// READ-ONLY; The OCID of the last maintenance run.
	LastMaintenanceRunID *string

	// READ-ONLY; Additional information about the current lifecycle state.
	LifecycleDetails *string

	// READ-ONLY; CloudExadataInfrastructure lifecycle state
	LifecycleState *CloudExadataInfrastructureLifecycleState

	// READ-ONLY; The total number of CPU cores available.
	MaxCPUCount *int32

	// READ-ONLY; The total available DATA disk group size.
	MaxDataStorageInTbs *float64

	// READ-ONLY; The total local node storage available in GBs.
	MaxDbNodeStorageSizeInGbs *int32

	// READ-ONLY; The total memory available in GBs.
	MaxMemoryInGbs *int32

	// READ-ONLY; The memory allocated in GBs.
	MemorySizeInGbs *int32

	// READ-ONLY; Monthly Db Server version
	MonthlyDbServerVersion *string

	// READ-ONLY; Monthly Storage Server version
	MonthlyStorageServerVersion *string

	// READ-ONLY; The OCID of the next maintenance run.
	NextMaintenanceRunID *string

	// READ-ONLY; HTTPS link to OCI resources exposed to Azure Customer via Azure Interface.
	OciURL *string

	// READ-ONLY; Exadata infra ocid
	Ocid *string

	// READ-ONLY; CloudExadataInfrastructure provisioning state
	ProvisioningState *AzureResourceProvisioningState

	// READ-ONLY; The software version of the storage servers (cells) in the Exadata infrastructure.
	StorageServerVersion *string

	// READ-ONLY; The date and time the cloud Exadata infrastructure resource was created.
	TimeCreated *string

	// READ-ONLY; The total storage allocated to the cloud Exadata infrastructure resource, in gigabytes (GB).
	TotalStorageSizeInGbs *int32
}

// CloudExadataInfrastructureUpdate - The type used for update operations of the CloudExadataInfrastructure.
type CloudExadataInfrastructureUpdate struct {
	// The resource-specific properties for this resource.
	Properties *CloudExadataInfrastructureUpdateProperties

	// Resource tags.
	Tags map[string]*string

	// CloudExadataInfrastructure zones
	Zones []*string
}

// CloudExadataInfrastructureUpdateProperties - The updatable properties of the CloudExadataInfrastructure.
type CloudExadataInfrastructureUpdateProperties struct {
	// The number of compute servers for the cloud Exadata infrastructure.
	ComputeCount *int32

	// The list of customer email addresses that receive information from Oracle about the specified OCI Database service resource.
	// Oracle uses these email addresses to send notifications about planned and unplanned software maintenance updates, information
	// about system hardware, and other information needed by administrators. Up to 10 email addresses can be added to the customer
	// contacts for a cloud Exadata infrastructure instance.
	CustomerContacts []*CustomerContact

	// The name for the Exadata infrastructure.
	DisplayName *string

	// maintenanceWindow property
	MaintenanceWindow *MaintenanceWindow

	// The number of storage servers for the cloud Exadata infrastructure.
	StorageCount *int32
}

// CloudVMCluster - CloudVmCluster resource definition
type CloudVMCluster struct {
	// REQUIRED; The geo-location where the resource lives
	Location *string

	// The resource-specific properties for this resource.
	Properties *CloudVMClusterProperties

	// Resource tags.
	Tags map[string]*string

	// 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
}

// CloudVMClusterListResult - The response of a CloudVmCluster list operation.
type CloudVMClusterListResult struct {
	// REQUIRED; The CloudVmCluster items on this page
	Value []*CloudVMCluster

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

// CloudVMClusterProperties - CloudVmCluster resource model
type CloudVMClusterProperties struct {
	// REQUIRED; The number of CPU cores enabled on the cloud VM cluster.
	CPUCoreCount *int32

	// REQUIRED; Cloud Exadata Infrastructure ID
	CloudExadataInfrastructureID *string

	// REQUIRED; Display Name
	DisplayName *string

	// REQUIRED; Oracle Grid Infrastructure (GI) software version
	GiVersion *string

	// REQUIRED; The hostname for the cloud VM cluster.
	Hostname *string

	// REQUIRED; The public key portion of one or more key pairs used for SSH access to the cloud VM cluster.
	SSHPublicKeys []*string

	// REQUIRED; Client subnet
	SubnetID *string

	// REQUIRED; VNET for network connectivity
	VnetID *string

	// Client OCI backup subnet CIDR, default is 192.168.252.0/22
	BackupSubnetCidr *string

	// The cluster name for cloud VM cluster. The cluster name must begin with an alphabetic character, and may contain hyphens
	// (-). Underscores (_) are not permitted. The cluster name can be no longer than 11 characters and is not case sensitive.
	ClusterName *string

	// The list of compute servers to be added to the cloud VM cluster.
	ComputeNodes []*string

	// Indicates user preferences for the various diagnostic collection options for the VM cluster/Cloud VM cluster/VMBM DBCS.
	DataCollectionOptions *DataCollectionOptions

	// The percentage assigned to DATA storage (user data and database files). The remaining percentage is assigned to RECO storage
	// (database redo logs, archive logs, and recovery manager backups). Accepted values are 35, 40, 60 and 80. The default is
	// 80 percent assigned to DATA storage. See [Storage Configuration](/Content/Database/Concepts/exaoverview.htm#Exadata) in
	// the Exadata documentation for details on the impact of the configuration settings on storage.
	DataStoragePercentage *int32

	// The data disk group size to be allocated in TBs.
	DataStorageSizeInTbs *float64

	// The local node storage to be allocated in GBs.
	DbNodeStorageSizeInGbs *int32

	// The list of DB servers.
	DbServers []*string

	// The domain name for the cloud VM cluster.
	Domain *string

	// Exadata Database Storage Vault ID
	ExascaleDbStorageVaultID *string

	// Array of mount path and size.
	FileSystemConfigurationDetails []*FileSystemConfigurationDetails

	// If true, database backup on local Exadata storage is configured for the cloud VM cluster. If false, database backup on
	// local Exadata storage is not available in the cloud VM cluster.
	IsLocalBackupEnabled *bool

	// If true, sparse disk group is configured for the cloud VM cluster. If false, sparse disk group is not created.
	IsSparseDiskgroupEnabled *bool

	// The Oracle license model that applies to the cloud VM cluster. The default is LICENSE_INCLUDED.
	LicenseModel *LicenseModel

	// The memory to be allocated in GBs.
	MemorySizeInGbs *int32

	// CIDR blocks for additional NSG ingress rules. The VNET CIDRs used to provision the VM Cluster will be added by default.
	NsgCidrs []*NsgCidr

	// The number of OCPU cores to enable on the cloud VM cluster. Only 1 decimal place is allowed for the fractional part.
	OcpuCount *float32

	// The TCP Single Client Access Name (SCAN) port. The default port is 1521.
	ScanListenerPortTCP *int32

	// The TCPS Single Client Access Name (SCAN) port. The default port is 2484.
	ScanListenerPortTCPSSL *int32

	// The data disk group size to be allocated in GBs per VM.
	StorageSizeInGbs *int32

	// Operating system version of the image.
	SystemVersion *string

	// The time zone of the cloud VM cluster. For details, see [Exadata Infrastructure Time Zones](/Content/Database/References/timezones.htm).
	TimeZone *string

	// The OCID of the zone the cloud VM cluster is associated with.
	ZoneID *string

	// READ-ONLY; Cluster compartmentId
	CompartmentID *string

	// READ-ONLY; The compute model of the VM Cluster.
	ComputeModel *ComputeModel

	// READ-ONLY; The type of redundancy configured for the cloud Vm cluster. NORMAL is 2-way redundancy. HIGH is 3-way redundancy.
	DiskRedundancy *DiskRedundancy

	// READ-ONLY; iormConfigCache details for cloud VM cluster.
	IormConfigCache *ExadataIormConfig

	// READ-ONLY; The OCID of the last maintenance update history entry.
	LastUpdateHistoryEntryID *string

	// READ-ONLY; Additional information about the current lifecycle state.
	LifecycleDetails *string

	// READ-ONLY; CloudVmCluster lifecycle state
	LifecycleState *CloudVMClusterLifecycleState

	// READ-ONLY; The port number configured for the listener on the cloud VM cluster.
	ListenerPort *int64

	// READ-ONLY; The number of nodes in the cloud VM cluster.
	NodeCount *int32

	// READ-ONLY; HTTPS link to OCI Network Security Group exposed to Azure Customer via the Azure Interface.
	NsgURL *string

	// READ-ONLY; HTTPS link to OCI resources exposed to Azure Customer via Azure Interface.
	OciURL *string

	// READ-ONLY; Cloud VM Cluster ocid
	Ocid *string

	// READ-ONLY; CloudVmCluster provisioning state
	ProvisioningState *AzureResourceProvisioningState

	// READ-ONLY; The FQDN of the DNS record for the SCAN IP addresses that are associated with the cloud VM cluster.
	ScanDNSName *string

	// READ-ONLY; The OCID of the DNS record for the SCAN IP addresses that are associated with the cloud VM cluster.
	ScanDNSRecordID *string

	// READ-ONLY; The Single Client Access Name (SCAN) IP addresses associated with the cloud VM cluster. SCAN IP addresses are
	// typically used for load balancing and are not assigned to any interface. Oracle Clusterware directs the requests to the
	// appropriate nodes in the cluster. **Note:** For a single-node DB system, this list is empty.
	ScanIPIDs []*string

	// READ-ONLY; The model name of the Exadata hardware running the cloud VM cluster.
	Shape *string

	// READ-ONLY; Specifies whether the type of storage management for the VM cluster is ASM or Exascale.
	StorageManagementType *ExadataVMClusterStorageManagementType

	// READ-ONLY; Cluster subnet ocid
	SubnetOcid *string

	// READ-ONLY; The date and time that the cloud VM cluster was created.
	TimeCreated *time.Time

	// READ-ONLY; The virtual IP (VIP) addresses associated with the cloud VM cluster. The Cluster Ready Services (CRS) creates
	// and maintains one VIP address for each node in the Exadata Cloud Service instance to enable failover. If one node fails,
	// the VIP is reassigned to another active node in the cluster. **Note:** For a single-node DB system, this list is empty.
	VipIDs []*string
}

// CloudVMClusterUpdate - The type used for update operations of the CloudVmCluster.
type CloudVMClusterUpdate struct {
	// The resource-specific properties for this resource.
	Properties *CloudVMClusterUpdateProperties

	// Resource tags.
	Tags map[string]*string
}

// CloudVMClusterUpdateProperties - The updatable properties of the CloudVmCluster.
type CloudVMClusterUpdateProperties struct {
	// The number of CPU cores enabled on the cloud VM cluster.
	CPUCoreCount *int32

	// The list of compute servers to be added to the cloud VM cluster.
	ComputeNodes []*string

	// Indicates user preferences for the various diagnostic collection options for the VM cluster/Cloud VM cluster/VMBM DBCS.
	DataCollectionOptions *DataCollectionOptions

	// The data disk group size to be allocated in TBs.
	DataStorageSizeInTbs *float64

	// The local node storage to be allocated in GBs.
	DbNodeStorageSizeInGbs *int32

	// Display Name
	DisplayName *string

	// Array of mount path and size.
	FileSystemConfigurationDetails []*FileSystemConfigurationDetails

	// The Oracle license model that applies to the cloud VM cluster. The default is LICENSE_INCLUDED.
	LicenseModel *LicenseModel

	// The memory to be allocated in GBs.
	MemorySizeInGbs *int32

	// The number of OCPU cores to enable on the cloud VM cluster. Only 1 decimal place is allowed for the fractional part.
	OcpuCount *float32

	// The public key portion of one or more key pairs used for SSH access to the cloud VM cluster.
	SSHPublicKeys []*string

	// The data disk group size to be allocated in GBs per VM.
	StorageSizeInGbs *int32
}

// ConfigureExascaleCloudExadataInfrastructureDetails - The exascale config request details for the Cloud Exadata infrastructure.
type ConfigureExascaleCloudExadataInfrastructureDetails struct {
	// REQUIRED; Storage size needed for Exascale in GBs.
	TotalStorageInGbs *int32
}

// ConnectionStringType - Connection strings to connect to an Oracle Autonomous Database.
type ConnectionStringType struct {
	// Returns all connection strings that can be used to connect to the Autonomous Database.
	AllConnectionStrings *AllConnectionStringType

	// The database service provides the least level of resources to each SQL statement, but supports the most number of concurrent
	// SQL statements.
	Dedicated *string

	// The High database service provides the highest level of resources to each SQL statement resulting in the highest performance,
	// but supports the fewest number of concurrent SQL statements.
	High *string

	// The Low database service provides the least level of resources to each SQL statement, but supports the most number of concurrent
	// SQL statements.
	Low *string

	// The Medium database service provides a lower level of resources to each SQL statement potentially resulting a lower level
	// of performance, but supports more concurrent SQL statements.
	Medium *string

	// A list of connection string profiles to allow clients to group, filter and select connection string values based on structured
	// metadata.
	Profiles []*ProfileType
}

// ConnectionURLType - The URLs for accessing Oracle Application Express (APEX) and SQL Developer Web with a browser from
// a Compute instance within your VCN or that has a direct connection to your VCN.
type ConnectionURLType struct {
	// Oracle Application Express (APEX) URL.
	ApexURL *string

	// The URL of the Database Transforms for the Autonomous Database.
	DatabaseTransformsURL *string

	// The URL of the Graph Studio for the Autonomous Database.
	GraphStudioURL *string

	// The URL of the Oracle Machine Learning (OML) Notebook for the Autonomous Database.
	MachineLearningNotebookURL *string

	// The URL of the MongoDB API for the Autonomous Database.
	MongoDbURL *string

	// The Oracle REST Data Services (ORDS) URL of the Web Access for the Autonomous Database.
	OrdsURL *string

	// Oracle SQL Developer Web URL.
	SQLDevWebURL *string
}

// CustomerContact resource properties
type CustomerContact struct {
	// REQUIRED; The email address used by Oracle to send notifications regarding databases and infrastructure.
	Email *string
}

// DNSForwardingRule - DNS forwarding rule properties
type DNSForwardingRule struct {
	// REQUIRED; Comma-separated domain names
	DomainNames *string

	// REQUIRED; Forwarding ip address
	ForwardingIPAddress *string
}

// DNSPrivateView - DnsPrivateView resource definition
type DNSPrivateView struct {
	// The resource-specific properties for this resource.
	Properties *DNSPrivateViewProperties

	// 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
}

// DNSPrivateViewListResult - The response of a DnsPrivateView list operation.
type DNSPrivateViewListResult struct {
	// REQUIRED; The DnsPrivateView items on this page
	Value []*DNSPrivateView

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

// DNSPrivateViewProperties - Views resource model
type DNSPrivateViewProperties struct {
	// REQUIRED; The display name of the view resource
	DisplayName *string

	// REQUIRED; A Boolean flag indicating whether or not parts of the resource are unable to be explicitly managed.
	IsProtected *bool

	// REQUIRED; Views lifecycleState
	LifecycleState *DNSPrivateViewsLifecycleState

	// REQUIRED; The OCID of the view
	Ocid *string

	// REQUIRED; The canonical absolute URL of the resource.
	Self *string

	// REQUIRED; views timeCreated
	TimeCreated *time.Time

	// REQUIRED; views timeCreated
	TimeUpdated *time.Time

	// READ-ONLY; Azure resource provisioning state.
	ProvisioningState *ResourceProvisioningState
}

// DNSPrivateZone - DnsPrivateZone resource definition
type DNSPrivateZone struct {
	// The resource-specific properties for this resource.
	Properties *DNSPrivateZoneProperties

	// 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
}

// DNSPrivateZoneListResult - The response of a DnsPrivateZone list operation.
type DNSPrivateZoneListResult struct {
	// REQUIRED; The DnsPrivateZone items on this page
	Value []*DNSPrivateZone

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

// DNSPrivateZoneProperties - Zones resource model
type DNSPrivateZoneProperties struct {
	// REQUIRED; A Boolean flag indicating whether or not parts of the resource are unable to be explicitly managed.
	IsProtected *bool

	// REQUIRED; Zones lifecycleState
	LifecycleState *DNSPrivateZonesLifecycleState

	// REQUIRED; The OCID of the Zone
	Ocid *string

	// REQUIRED; The canonical absolute URL of the resource.
	Self *string

	// REQUIRED; The current serial of the zone. As seen in the zone's SOA record.
	Serial *int32

	// REQUIRED; Zones timeCreated
	TimeCreated *time.Time

	// REQUIRED; Version is the never-repeating, totally-orderable, version of the zone, from which the serial field of the zone's
	// SOA record is derived.
	Version *string

	// REQUIRED; The type of the zone. Must be either PRIMARY or SECONDARY. SECONDARY is only supported for GLOBAL zones.
	ZoneType *ZoneType

	// The OCID of the private view containing the zone. This value will be null for zones in the global DNS, which are publicly
	// resolvable and not part of a private view.
	ViewID *string

	// READ-ONLY; Azure resource provisioning state.
	ProvisioningState *ResourceProvisioningState
}

// DataCollectionOptions resource properties
type DataCollectionOptions struct {
	// Indicates whether diagnostic collection is enabled for the VM cluster/Cloud VM cluster/VMBM DBCS.
	IsDiagnosticsEventsEnabled *bool

	// Indicates whether health monitoring is enabled for the VM cluster / Cloud VM cluster / VMBM DBCS.
	IsHealthMonitoringEnabled *bool

	// Indicates whether incident logs and trace collection are enabled for the VM cluster / Cloud VM cluster / VMBM DBCS.
	IsIncidentLogsEnabled *bool
}

// DayOfWeek resource properties
type DayOfWeek struct {
	// REQUIRED; Name of the day of the week.
	Name *DayOfWeekName
}

// DayOfWeekUpdate - DayOfWeek resource properties
type DayOfWeekUpdate struct {
	// Name of the day of the week.
	Name *DayOfWeekName
}

// DbActionResponse - ExascaleDbNode action response
type DbActionResponse struct {
	// ExascaleDbNode provisioning state
	ProvisioningState *AzureResourceProvisioningState
}

// DbIormConfig for cloud vm cluster
type DbIormConfig struct {
	// The database name. For the default DbPlan, the dbName is default.
	DbName *string

	// The flash cache limit for this database. This value is internally configured based on the share value assigned to the database.
	FlashCacheLimit *string

	// The relative priority of this database.
	Share *int32
}

// DbNode - The DbNode resource belonging to vmCluster
type DbNode struct {
	// The resource-specific properties for this resource.
	Properties *DbNodeProperties

	// 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
}

// DbNodeAction - DbNode action object
type DbNodeAction struct {
	// REQUIRED; Db action
	Action *DbNodeActionEnum
}

// DbNodeDetails - Details of the ExaCS Db node. Applies to Exadata Database Service on Exascale Infrastructure only.
type DbNodeDetails struct {
	// REQUIRED; Exascale DbNode Azure Resource ID
	DbNodeID *string
}

// DbNodeListResult - The response of a DbNode list operation.
type DbNodeListResult struct {
	// REQUIRED; The DbNode items on this page
	Value []*DbNode

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

// DbNodeProperties - The properties of DbNodeResource
type DbNodeProperties struct {
	// REQUIRED; The OCID of the DB system.
	DbSystemID *string

	// REQUIRED; The current state of the database node.
	LifecycleState *DbNodeProvisioningState

	// REQUIRED; DbNode OCID
	Ocid *string

	// REQUIRED; The date and time that the database node was created.
	TimeCreated *time.Time

	// REQUIRED; The OCID of the VNIC.
	VnicID *string

	// Additional information about the planned maintenance.
	AdditionalDetails *string

	// The OCID of the backup IP address associated with the database node.
	BackupIPID *string

	// The OCID of the second backup VNIC.
	BackupVnic2ID *string

	// The OCID of the backup VNIC.
	BackupVnicID *string

	// The number of CPU cores enabled on the Db node.
	CPUCoreCount *int32

	// The allocated local node storage in GBs on the Db node.
	DbNodeStorageSizeInGbs *int32

	// The OCID of the Exacc Db server associated with the database node.
	DbServerID *string

	// The name of the Fault Domain the instance is contained in.
	FaultDomain *string

	// The OCID of the host IP address associated with the database node.
	HostIPID *string

	// The host name for the database node.
	Hostname *string

	// Lifecycle details of Db Node.
	LifecycleDetails *string

	// The type of database node maintenance.
	MaintenanceType *DbNodeMaintenanceType

	// The allocated memory in GBs on the Db node.
	MemorySizeInGbs *int32

	// The size (in GB) of the block storage volume allocation for the DB system. This attribute applies only for virtual machine
	// DB systems.
	SoftwareStorageSizeInGb *int32

	// End date and time of maintenance window.
	TimeMaintenanceWindowEnd *time.Time

	// Start date and time of maintenance window.
	TimeMaintenanceWindowStart *time.Time

	// The OCID of the second VNIC.
	Vnic2ID *string

	// READ-ONLY; Azure resource provisioning state.
	ProvisioningState *ResourceProvisioningState
}

// DbServer resource model
type DbServer struct {
	// The resource-specific properties for this resource.
	Properties *DbServerProperties

	// 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
}

// DbServerListResult - The response of a DbServer list operation.
type DbServerListResult struct {
	// REQUIRED; The DbServer items on this page
	Value []*DbServer

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

// DbServerPatchingDetails - DbServer Patching Properties
type DbServerPatchingDetails struct {
	// READ-ONLY; Estimated Patch Duration
	EstimatedPatchDuration *int32

	// READ-ONLY; Patching Status
	PatchingStatus *DbServerPatchingStatus

	// READ-ONLY; Time Patching Ended
	TimePatchingEnded *time.Time

	// READ-ONLY; Time Patching Started
	TimePatchingStarted *time.Time
}

// DbServerProperties - DbServer resource properties
type DbServerProperties struct {
	// READ-ONLY; The list of OCIDs of the Autonomous VM Clusters associated with the Db server.
	AutonomousVMClusterIDs []*string

	// READ-ONLY; The list of OCIDs of the Autonomous Virtual Machines associated with the Db server.
	AutonomousVirtualMachineIDs []*string

	// READ-ONLY; The number of CPU cores enabled on the Db server.
	CPUCoreCount *int32

	// READ-ONLY; The OCID of the compartment.
	CompartmentID *string

	// READ-ONLY; The compute model of the Exadata Infrastructure
	ComputeModel *ComputeModel

	// READ-ONLY; The OCID of the Db nodes associated with the Db server.
	DbNodeIDs []*string

	// READ-ONLY; The allocated local node storage in GBs on the Db server.
	DbNodeStorageSizeInGbs *int32

	// READ-ONLY; dbServerPatching details of the Db server.
	DbServerPatchingDetails *DbServerPatchingDetails

	// READ-ONLY; The name for the Db Server.
	DisplayName *string

	// READ-ONLY; The OCID of the Exadata infrastructure.
	ExadataInfrastructureID *string

	// READ-ONLY; Lifecycle details of dbServer.
	LifecycleDetails *string

	// READ-ONLY; DbServer provisioning state.
	LifecycleState *DbServerProvisioningState

	// READ-ONLY; The total number of CPU cores available.
	MaxCPUCount *int32

	// READ-ONLY; The total max dbNode storage in GBs.
	MaxDbNodeStorageInGbs *int32

	// READ-ONLY; The total memory available in GBs.
	MaxMemoryInGbs *int32

	// READ-ONLY; The total memory size in GBs.
	MemorySizeInGbs *int32

	// READ-ONLY; Db server name.
	Ocid *string

	// READ-ONLY; Azure resource provisioning state.
	ProvisioningState *ResourceProvisioningState

	// READ-ONLY; The shape of the Db server. The shape determines the amount of CPU, storage, and memory resources available.
	Shape *string

	// READ-ONLY; The date and time that the Db Server was created.
	TimeCreated *time.Time

	// READ-ONLY; The OCID of the VM Clusters associated with the Db server.
	VMClusterIDs []*string
}

// DbSystem resource definition
type DbSystem struct {
	// REQUIRED; The geo-location where the resource lives
	Location *string

	// The resource-specific properties for this resource.
	Properties *DbSystemProperties

	// Resource tags.
	Tags map[string]*string

	// The availability zones.
	Zones []*string

	// 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
}

// DbSystemBaseProperties - DbSystem resource base model.
type DbSystemBaseProperties struct {
	// REQUIRED; The hostname for the DB system.
	Hostname *string

	// REQUIRED; Azure Network Anchor ID
	NetworkAnchorID *string

	// REQUIRED; Azure Resource Anchor ID
	ResourceAnchorID *string

	// REQUIRED; The public key portion of one or more key pairs used for SSH access to the DB system.
	SSHPublicKeys []*string

	// REQUIRED; The shape of the DB system. The shape determines resources to allocate to the DB system. For virtual machine
	// shapes, the number of CPU cores and memory. For bare metal and Exadata shapes, the number of CPU cores, storage, and memory.
	Shape *string

	// The cluster name for Exadata and 2-node RAC virtual machine DB systems. The cluster name must begin with an alphabetic
	// character, and may contain hyphens (-). Underscores (_) are not permitted. The cluster name can be no longer than 11 characters
	// and is not case sensitive.
	ClusterName *string

	// The number of compute servers for the DB system.
	ComputeCount *int32

	// The compute model for Base Database Service. This is required if using the `computeCount` parameter. If using `cpuCoreCount`
	// then it is an error to specify `computeModel` to a non-null value. The ECPU compute model is the recommended model, and
	// the OCPU compute model is legacy.
	ComputeModel *ComputeModel

	// The DB system options.
	DbSystemOptions *DbSystemOptions

	// The type of redundancy configured for the DB system. NORMAL is 2-way redundancy. HIGH is 3-way redundancy.
	DiskRedundancy *DiskRedundancyType

	// The user-friendly name for the DB system. The name does not have to be unique.
	DisplayName *string

	// The domain name for the DB system.
	DomainV2 *string

	// Size in GB of the initial data volume that will be created and attached to a virtual machine DB system. You can scale up
	// storage after provisioning, as needed. Note that the total storage size attached will be more than the amount you specify
	// to allow for REDO/RECO space and software volume.
	InitialDataStorageSizeInGb *int32

	// The Oracle license model that applies to all the databases on the DB system. The default is LicenseIncluded.
	LicenseModelV2 *LicenseModel

	// The number of nodes in the DB system. For RAC DB systems, the value is greater than 1.
	NodeCount *int32

	// The source of the database: Use `None` for creating a new database. The default is `None`.
	Source *DbSystemSourceType

	// The block storage volume performance level. Valid values are Balanced and HighPerformance. See [Block Volume Performance](/Content/Block/Concepts/blockvolumeperformance.htm)
	// for more information.
	StorageVolumePerformanceMode *StorageVolumePerformanceMode

	// The time zone of the DB system, e.g., UTC, to set the timeZone as UTC.
	TimeZone *string

	// READ-ONLY; The data storage size, in gigabytes, that is currently available to the DB system. Applies only for virtual
	// machine DB systems.
	DataStorageSizeInGbs *int32

	// READ-ONLY; The OCID of a grid infrastructure software image. This is a database software image of the type GRID_IMAGE.
	GridImageOcid *string

	// READ-ONLY; Additional information about the current lifecycle state.
	LifecycleDetails *string

	// READ-ONLY; The current state of the DB system.
	LifecycleState *DbSystemLifecycleState

	// READ-ONLY; The port number configured for the listener on the DB system.
	ListenerPort *int32

	// READ-ONLY; Memory allocated to the DB system, in gigabytes.
	MemorySizeInGbs *int32

	// READ-ONLY; HTTPS link to OCI resources exposed to Azure Customer via Azure Interface.
	OciURL *string

	// READ-ONLY; The OCID of the DB system.
	Ocid *string

	// READ-ONLY; dbSystem provisioning state
	ProvisioningState *AzureResourceProvisioningState

	// READ-ONLY; The FQDN of the DNS record for the SCAN IP addresses that are associated with the DB system.
	ScanDNSName *string

	// READ-ONLY; The list of Single Client Access Name (SCAN) IP addresses associated with the DB system. SCAN IP addresses are
	// typically used for load balancing and are not assigned to any interface. Oracle Clusterware directs the requests to the
	// appropriate nodes in the cluster. Note: For a single-node DB system, this list is empty.
	ScanIPs []*string

	// READ-ONLY; The Oracle Database version of the DB system.
	Version *string
}

// GetDbSystemBaseProperties implements the DbSystemBasePropertiesClassification interface for type DbSystemBaseProperties.
func (d *DbSystemBaseProperties) GetDbSystemBaseProperties() *DbSystemBaseProperties { return d }

// DbSystemListResult - The response of a DbSystem list operation.
type DbSystemListResult struct {
	// REQUIRED; The DbSystem items on this page
	Value []*DbSystem

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

// DbSystemOptions resource properties.
type DbSystemOptions struct {
	// The storage option used in DB system. ASM - Automatic storage management, LVM - Logical Volume management.
	StorageManagement *StorageManagementType
}

// DbSystemProperties - DbSystem resource model.
type DbSystemProperties struct {
	// REQUIRED; The Oracle Database Edition that applies to all the databases on the DB system. Exadata DB systems and 2-node
	// RAC DB systems require EnterpriseEditionExtremePerformance.
	DatabaseEdition *DbSystemDatabaseEditionType

	// REQUIRED; A valid Oracle Database version. For a list of supported versions, use the ListDbVersions operation.
	DbVersion *string

	// REQUIRED; The hostname for the DB system.
	Hostname *string

	// REQUIRED; Azure Network Anchor ID
	NetworkAnchorID *string

	// REQUIRED; Azure Resource Anchor ID
	ResourceAnchorID *string

	// REQUIRED; The public key portion of one or more key pairs used for SSH access to the DB system.
	SSHPublicKeys []*string

	// REQUIRED; The shape of the DB system. The shape determines resources to allocate to the DB system. For virtual machine
	// shapes, the number of CPU cores and memory. For bare metal and Exadata shapes, the number of CPU cores, storage, and memory.
	Shape *string

	// CONSTANT; The source of the database for creating a new database.
	// Field has constant value DbSystemSourceTypeNone, any specified value is ignored.
	Source *DbSystemSourceType

	// A strong password for SYS, SYSTEM, and PDB Admin. The password must be at least nine characters and contain at least two
	// uppercase, two lowercase, two numbers, and two special characters. The special characters must be _, #, or -.
	AdminPassword *string

	// The cluster name for Exadata and 2-node RAC virtual machine DB systems. The cluster name must begin with an alphabetic
	// character, and may contain hyphens (-). Underscores (_) are not permitted. The cluster name can be no longer than 11 characters
	// and is not case sensitive.
	ClusterName *string

	// The number of compute servers for the DB system.
	ComputeCount *int32

	// The compute model for Base Database Service. This is required if using the `computeCount` parameter. If using `cpuCoreCount`
	// then it is an error to specify `computeModel` to a non-null value. The ECPU compute model is the recommended model, and
	// the OCPU compute model is legacy.
	ComputeModel *ComputeModel

	// The DB system options.
	DbSystemOptions *DbSystemOptions

	// The type of redundancy configured for the DB system. NORMAL is 2-way redundancy. HIGH is 3-way redundancy.
	DiskRedundancy *DiskRedundancyType

	// The user-friendly name for the DB system. The name does not have to be unique.
	DisplayName *string

	// The domain name for the DB system.
	DomainV2 *string

	// Size in GB of the initial data volume that will be created and attached to a virtual machine DB system. You can scale up
	// storage after provisioning, as needed. Note that the total storage size attached will be more than the amount you specify
	// to allow for REDO/RECO space and software volume.
	InitialDataStorageSizeInGb *int32

	// The Oracle license model that applies to all the databases on the DB system. The default is LicenseIncluded.
	LicenseModelV2 *LicenseModel

	// The number of nodes in the DB system. For RAC DB systems, the value is greater than 1.
	NodeCount *int32

	// The name of the pluggable database. The name must begin with an alphabetic character and can contain a maximum of thirty
	// alphanumeric characters. Special characters are not permitted. Pluggable database should not be same as database name.
	PdbName *string

	// The block storage volume performance level. Valid values are Balanced and HighPerformance. See [Block Volume Performance](/Content/Block/Concepts/blockvolumeperformance.htm)
	// for more information.
	StorageVolumePerformanceMode *StorageVolumePerformanceMode

	// The time zone of the DB system, e.g., UTC, to set the timeZone as UTC.
	TimeZone *string

	// READ-ONLY; The data storage size, in gigabytes, that is currently available to the DB system. Applies only for virtual
	// machine DB systems.
	DataStorageSizeInGbs *int32

	// READ-ONLY; The OCID of a grid infrastructure software image. This is a database software image of the type GRID_IMAGE.
	GridImageOcid *string

	// READ-ONLY; Additional information about the current lifecycle state.
	LifecycleDetails *string

	// READ-ONLY; The current state of the DB system.
	LifecycleState *DbSystemLifecycleState

	// READ-ONLY; The port number configured for the listener on the DB system.
	ListenerPort *int32

	// READ-ONLY; Memory allocated to the DB system, in gigabytes.
	MemorySizeInGbs *int32

	// READ-ONLY; HTTPS link to OCI resources exposed to Azure Customer via Azure Interface.
	OciURL *string

	// READ-ONLY; The OCID of the DB system.
	Ocid *string

	// READ-ONLY; dbSystem provisioning state
	ProvisioningState *AzureResourceProvisioningState

	// READ-ONLY; The FQDN of the DNS record for the SCAN IP addresses that are associated with the DB system.
	ScanDNSName *string

	// READ-ONLY; The list of Single Client Access Name (SCAN) IP addresses associated with the DB system. SCAN IP addresses are
	// typically used for load balancing and are not assigned to any interface. Oracle Clusterware directs the requests to the
	// appropriate nodes in the cluster. Note: For a single-node DB system, this list is empty.
	ScanIPs []*string

	// READ-ONLY; The Oracle Database version of the DB system.
	Version *string
}

// GetDbSystemBaseProperties implements the DbSystemBasePropertiesClassification interface for type DbSystemProperties.
func (d *DbSystemProperties) GetDbSystemBaseProperties() *DbSystemBaseProperties {
	return &DbSystemBaseProperties{
		ClusterName:                  d.ClusterName,
		ComputeCount:                 d.ComputeCount,
		ComputeModel:                 d.ComputeModel,
		DataStorageSizeInGbs:         d.DataStorageSizeInGbs,
		DbSystemOptions:              d.DbSystemOptions,
		DiskRedundancy:               d.DiskRedundancy,
		DisplayName:                  d.DisplayName,
		DomainV2:                     d.DomainV2,
		GridImageOcid:                d.GridImageOcid,
		Hostname:                     d.Hostname,
		InitialDataStorageSizeInGb:   d.InitialDataStorageSizeInGb,
		LicenseModelV2:               d.LicenseModelV2,
		LifecycleDetails:             d.LifecycleDetails,
		LifecycleState:               d.LifecycleState,
		ListenerPort:                 d.ListenerPort,
		MemorySizeInGbs:              d.MemorySizeInGbs,
		NetworkAnchorID:              d.NetworkAnchorID,
		NodeCount:                    d.NodeCount,
		OciURL:                       d.OciURL,
		Ocid:                         d.Ocid,
		ProvisioningState:            d.ProvisioningState,
		ResourceAnchorID:             d.ResourceAnchorID,
		SSHPublicKeys:                d.SSHPublicKeys,
		ScanDNSName:                  d.ScanDNSName,
		ScanIPs:                      d.ScanIPs,
		Shape:                        d.Shape,
		Source:                       d.Source,
		StorageVolumePerformanceMode: d.StorageVolumePerformanceMode,
		TimeZone:                     d.TimeZone,
		Version:                      d.Version,
	}
}

// DbSystemShape resource definition
type DbSystemShape struct {
	// The resource-specific properties for this resource.
	Properties *DbSystemShapeProperties

	// 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
}

// DbSystemShapeListResult - The response of a DbSystemShape list operation.
type DbSystemShapeListResult struct {
	// REQUIRED; The DbSystemShape items on this page
	Value []*DbSystemShape

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

// DbSystemShapeProperties - DbSystemShape resource model
type DbSystemShapeProperties struct {
	// REQUIRED; The maximum number of CPU cores that can be enabled on the DB system for this shape.
	AvailableCoreCount *int32

	// REQUIRED; The shape used for the DB system.
	ShapeName *string

	// Indicates if the shape supports database and storage server types
	AreServerTypesSupported *bool

	// The maximum number of CPU cores per database node that can be enabled for this shape. Only applicable to the flex Exadata
	// shape and ExaCC Elastic shapes.
	AvailableCoreCountPerNode *int32

	// The maximum DATA storage that can be enabled for this shape.
	AvailableDataStorageInTbs *int32

	// The maximum data storage available per storage server for this shape. Only applicable to ExaCC Elastic shapes.
	AvailableDataStoragePerServerInTbs *float64

	// The maximum Db Node storage available per database node for this shape. Only applicable to ExaCC Elastic shapes.
	AvailableDbNodePerNodeInGbs *int32

	// The maximum Db Node storage that can be enabled for this shape.
	AvailableDbNodeStorageInGbs *int32

	// The maximum memory that can be enabled for this shape.
	AvailableMemoryInGbs *int32

	// The maximum memory available per database node for this shape. Only applicable to ExaCC Elastic shapes.
	AvailableMemoryPerNodeInGbs *int32

	// The compute model of the Exadata Infrastructure
	ComputeModel *ComputeModel

	// The discrete number by which the CPU core count for this shape can be increased or decreased.
	CoreCountIncrement *int32

	// The display name of the shape used for the DB system
	DisplayName *string

	// The maximum number of Exadata storage servers available for the Exadata infrastructure.
	MaxStorageCount *int32

	// The maximum number of database nodes available for this shape.
	MaximumNodeCount *int32

	// The minimum number of CPU cores that can be enabled per node for this shape.
	MinCoreCountPerNode *int32

	// The minimum data storage that need be allocated for this shape.
	MinDataStorageInTbs *int32

	// The minimum Db Node storage that need be allocated per node for this shape.
	MinDbNodeStoragePerNodeInGbs *int32

	// The minimum memory that need be allocated per node for this shape.
	MinMemoryPerNodeInGbs *int32

	// The minimum number of Exadata storage servers available for the Exadata infrastructure.
	MinStorageCount *int32

	// The minimum number of CPU cores that can be enabled on the DB system for this shape.
	MinimumCoreCount *int32

	// The minimum number of database nodes available for this shape.
	MinimumNodeCount *int32

	// The runtime minimum number of CPU cores that can be enabled on the DB system for this shape.
	RuntimeMinimumCoreCount *int32

	// The shapeAttributes of the DB system shape..
	ShapeAttributes []*string

	// The family of the shape used for the DB system.
	ShapeFamily *string
}

// DbSystemUpdate - The type used for update operations of the DbSystem.
type DbSystemUpdate struct {
	// The resource-specific properties for this resource.
	Properties *DbSystemUpdateProperties

	// Resource tags.
	Tags map[string]*string

	// The availability zones.
	Zones []*string
}

// DbSystemUpdateProperties - The updatable properties of the DbSystem.
type DbSystemUpdateProperties struct {
	// FLAG; CONSTANT; The source of the database for creating a new database.
	// Field has constant value DbSystemSourceTypeNone, any specified value is ignored.
	Source *DbSystemSourceType
}

// DbVersion - Oracle Database DbVersion resource definition
type DbVersion struct {
	// The resource-specific properties for this resource.
	Properties *DbVersionProperties

	// 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
}

// DbVersionListResult - The response of a DbVersion list operation.
type DbVersionListResult struct {
	// REQUIRED; The DbVersion items on this page
	Value []*DbVersion

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

// DbVersionProperties - DbVersion resource model
type DbVersionProperties struct {
	// REQUIRED; A valid Oracle Database version.
	Version *string

	// True if this version of the Oracle Database software is the latest version for a release.
	IsLatestForMajorVersion *bool

	// True if this version of the Oracle Database software is the preview version.
	IsPreviewDbVersion *bool

	// True if this version of the Oracle Database software is supported for Upgrade.
	IsUpgradeSupported *bool

	// True if this version of the Oracle Database software supports pluggable databases.
	SupportsPdb *bool
}

// DefinedFileSystemConfiguration - Predefined configurations for the file system
type DefinedFileSystemConfiguration struct {
	// Checks if the data can be backed up
	IsBackupPartition *bool

	// Checks if the mount path is resizable
	IsResizable *bool

	// Minimum size of mount path in Gb
	MinSizeGb *int32

	// Mount path for the file system
	MountPoint *string
}

// DisasterRecoveryConfigurationDetails - Configurations of a Disaster Recovery Details
type DisasterRecoveryConfigurationDetails struct {
	// Indicates the disaster recovery (DR) type of the Autonomous Database Serverless instance. Autonomous Data Guard (ADG) DR
	// type provides business critical DR with a faster recovery time objective (RTO) during failover or switchover. Backup-based
	// DR type provides lower cost DR with a slower RTO during failover or switchover.
	DisasterRecoveryType *DisasterRecoveryType

	// If true, 7 days worth of backups are replicated across regions for Cross-Region ADB or Backup-Based DR between Primary
	// and Standby. If false, the backups taken on the Primary are not replicated to the Standby database.
	IsReplicateAutomaticBackups *bool

	// Indicates if user wants to convert to a snapshot standby. For example, true would set a standby database to snapshot standby
	// database. False would set a snapshot standby database back to regular standby database.
	IsSnapshotStandby *bool

	// Time and date stored as an RFC 3339 formatted timestamp string. For example, 2022-01-01T12:00:00.000Z would set a limit
	// for the snapshot standby to be converted back to a cross-region standby database.
	TimeSnapshotStandbyEnabledTill *time.Time
}

// EstimatedPatchingTime - The estimated total time required in minutes for all patching operations (database server, storage
// server, and network switch patching).
type EstimatedPatchingTime struct {
	// READ-ONLY; The estimated time required in minutes for database server patching.
	EstimatedDbServerPatchingTime *int32

	// READ-ONLY; The estimated time required in minutes for network switch patching.
	EstimatedNetworkSwitchesPatchingTime *int32

	// READ-ONLY; The estimated time required in minutes for storage server patching.
	EstimatedStorageServerPatchingTime *int32

	// READ-ONLY; The estimated total time required in minutes for all patching operations.
	TotalEstimatedPatchingTime *int32
}

// ExadataIormConfig for cloud vm cluster
type ExadataIormConfig struct {
	// An array of IORM settings for all the database in the Exadata DB system.
	DbPlans []*DbIormConfig

	// Additional information about the current lifecycleState.
	LifecycleDetails *string

	// The current state of IORM configuration for the Exadata DB system.
	LifecycleState *IormLifecycleState

	// The current value for the IORM objective. The default is AUTO.
	Objective *Objective
}

// ExadbVMCluster - ExadbVmCluster resource definition
type ExadbVMCluster struct {
	// REQUIRED; The geo-location where the resource lives
	Location *string

	// The resource-specific properties for this resource.
	Properties *ExadbVMClusterProperties

	// Resource tags.
	Tags map[string]*string

	// The availability zones.
	Zones []*string

	// 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
}

// ExadbVMClusterListResult - The response of a ExadbVmCluster list operation.
type ExadbVMClusterListResult struct {
	// REQUIRED; The ExadbVmCluster items on this page
	Value []*ExadbVMCluster

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

// ExadbVMClusterProperties - ExadbVmCluster resource model
type ExadbVMClusterProperties struct {
	// REQUIRED; Display Name
	DisplayName *string

	// REQUIRED; The number of ECPUs to enable for an Exadata VM cluster on Exascale Infrastructure.
	EnabledEcpuCount *int32

	// REQUIRED; The Azure Resource ID of the Exadata Database Storage Vault.
	ExascaleDbStorageVaultID *string

	// REQUIRED; The hostname for the Exadata VM cluster on Exascale Infrastructure.
	Hostname *string

	// REQUIRED; The number of nodes in the Exadata VM cluster on Exascale Infrastructure.
	NodeCount *int32

	// REQUIRED; The public key portion of one or more key pairs used for SSH access to the Exadata VM cluster on Exascale Infrastructure.
	SSHPublicKeys []*string

	// REQUIRED; The shape of the Exadata VM cluster on Exascale Infrastructure resource
	Shape *string

	// REQUIRED; Client subnet
	SubnetID *string

	// REQUIRED; The number of Total ECPUs for an Exadata VM cluster on Exascale Infrastructure.
	TotalEcpuCount *int32

	// REQUIRED; Filesystem storage details.
	VMFileSystemStorage *ExadbVMClusterStorageDetails

	// REQUIRED; VNET for network connectivity
	VnetID *string

	// Client OCI backup subnet CIDR, default is 192.168.252.0/22
	BackupSubnetCidr *string

	// The cluster name for Exadata VM cluster on Exascale Infrastructure. The cluster name must begin with an alphabetic character,
	// and may contain hyphens (-). Underscores (_) are not permitted. The cluster name can be no longer than 11 characters and
	// is not case sensitive.
	ClusterName *string

	// Indicates user preferences for the various diagnostic collection options for the VM cluster/Cloud VM cluster/VMBM DBCS.
	DataCollectionOptions *DataCollectionOptions

	// A domain name used for the Exadata VM cluster on Exascale Infrastructure
	Domain *string

	// Grid Setup will be done using this Grid Image OCID. Can be obtained using giMinorVersions API
	GridImageOcid *string

	// The Oracle license model that applies to the Exadata VM cluster on Exascale Infrastructure. The default is LICENSE_INCLUDED.
	LicenseModel *LicenseModel

	// CIDR blocks for additional NSG ingress rules. The VNET CIDRs used to provision the VM Cluster will be added by default.
	NsgCidrs []*NsgCidr

	// The OCID of the zone the Exadata VM cluster on Exascale Infrastructure is associated with.
	PrivateZoneOcid *string

	// The TCP Single Client Access Name (SCAN) port. The default port is 1521.
	ScanListenerPortTCP *int32

	// The TCPS Single Client Access Name (SCAN) port. The default port is 2484.
	ScanListenerPortTCPSSL *int32

	// The type of Exascale storage used for Exadata VM cluster.
	ShapeAttribute *ShapeAttribute

	// Operating system version of the image.
	SystemVersion *string

	// The time zone of the Exadata VM cluster on Exascale Infrastructure. For details, see [Exadata Infrastructure Time Zones](/Content/Database/References/timezones.htm).
	TimeZone *string

	// READ-ONLY; Cluster backup subnet ocid
	BackupSubnetOcid *string

	// READ-ONLY; Oracle Grid Infrastructure (GI) software version
	GiVersion *string

	// READ-ONLY; The type of Grid Image
	GridImageType *GridImageType

	// READ-ONLY; iormConfigCache details for Exadata VM cluster on Exascale Infrastructure.
	IormConfigCache *ExadataIormConfig

	// READ-ONLY; Additional information about the current lifecycle state.
	LifecycleDetails *string

	// READ-ONLY; CloudVmCluster lifecycle state
	LifecycleState *ExadbVMClusterLifecycleState

	// READ-ONLY; The port number configured for the listener on the Exadata VM cluster on Exascale Infrastructure.
	ListenerPort *int32

	// READ-ONLY; The memory that you want to be allocated in GBs. Memory is calculated based on 11 GB per VM core reserved.
	MemorySizeInGbs *int32

	// READ-ONLY; HTTPS link to OCI Network Security Group exposed to Azure Customer via the Azure Interface.
	NsgURL *string

	// READ-ONLY; HTTPS link to OCI resources exposed to Azure Customer via Azure Interface.
	OciURL *string

	// READ-ONLY; ExadbVmCluster ocid
	Ocid *string

	// READ-ONLY; Exadata VM cluster on Exascale Infrastructure provisioning state
	ProvisioningState *AzureResourceProvisioningState

	// READ-ONLY; The FQDN of the DNS record for the SCAN IP addresses that are associated with the Exadata VM cluster on Exascale
	// Infrastructure.
	ScanDNSName *string

	// READ-ONLY; The OCID of the DNS record for the SCAN IP addresses that are associated with the Exadata VM cluster on Exascale
	// Infrastructure.
	ScanDNSRecordID *string

	// READ-ONLY; The Single Client Access Name (SCAN) IP addresses associated with the Exadata VM cluster on Exascale Infrastructure.
	// SCAN IP addresses are typically used for load balancing and are not assigned to any interface. Oracle Clusterware directs
	// the requests to the appropriate nodes in the cluster. **Note:** For a single-node DB system, this list is empty.
	ScanIPIDs []*string

	// READ-ONLY; Snapshot filesystem storage details.
	SnapshotFileSystemStorage *ExadbVMClusterStorageDetails

	// READ-ONLY; Cluster subnet ocid
	SubnetOcid *string

	// READ-ONLY; Total file system storage details.
	TotalFileSystemStorage *ExadbVMClusterStorageDetails

	// READ-ONLY; The virtual IP (VIP) addresses associated with the Exadata VM cluster on Exascale Infrastructure. The Cluster
	// Ready Services (CRS) creates and maintains one VIP address for each node in the Exadata Cloud Service instance to enable
	// failover. If one node fails, the VIP is reassigned to another active node in the cluster. **Note:** For a single-node DB
	// system, this list is empty.
	VipIDs []*string

	// READ-ONLY; The OCID of the zone the Exadata VM cluster on Exascale Infrastructure is associated with.
	ZoneOcid *string
}

// ExadbVMClusterStorageDetails - Storage Details on the Exadata VM cluster.
type ExadbVMClusterStorageDetails struct {
	// REQUIRED; Total Capacity
	TotalSizeInGbs *int32
}

// ExadbVMClusterUpdate - The type used for update operations of the ExadbVmCluster.
type ExadbVMClusterUpdate struct {
	// The resource-specific properties for this resource.
	Properties *ExadbVMClusterUpdateProperties

	// Resource tags.
	Tags map[string]*string

	// The availability zones.
	Zones []*string
}

// ExadbVMClusterUpdateProperties - The updatable properties of the ExadbVmCluster.
type ExadbVMClusterUpdateProperties struct {
	// The number of nodes in the Exadata VM cluster on Exascale Infrastructure.
	NodeCount *int32
}

// ExascaleConfigDetails - The exascale config response details for the cloud Exadata infrastructure
type ExascaleConfigDetails struct {
	// REQUIRED; Storage size needed for Exascale in GBs.
	TotalStorageInGbs *int32

	// Available storage size for Exascale in GBs.
	AvailableStorageInGbs *int32
}

// ExascaleDbNode - The DbNode resource belonging to ExadbVmCluster
type ExascaleDbNode struct {
	// The resource-specific properties for this resource.
	Properties *ExascaleDbNodeProperties

	// 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
}

// ExascaleDbNodeListResult - The response of a ExascaleDbNode list operation.
type ExascaleDbNodeListResult struct {
	// REQUIRED; The ExascaleDbNode items on this page
	Value []*ExascaleDbNode

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

// ExascaleDbNodeProperties - The properties of DbNodeResource
type ExascaleDbNodeProperties struct {
	// REQUIRED; DbNode OCID
	Ocid *string

	// Additional information about the planned maintenance.
	AdditionalDetails *string

	// The number of CPU cores enabled on the Db node.
	CPUCoreCount *int32

	// The allocated local node storage in GBs on the Db node.
	DbNodeStorageSizeInGbs *int32

	// The name of the Fault Domain the instance is contained in.
	FaultDomain *string

	// The host name for the database node.
	Hostname *string

	// The current state of the database node.
	LifecycleState *DbNodeProvisioningState

	// The type of database node maintenance.
	MaintenanceType *string

	// The allocated memory in GBs on the Db node.
	MemorySizeInGbs *int32

	// The size (in GB) of the block storage volume allocation for the DB system. This attribute applies only for virtual machine
	// DB systems.
	SoftwareStorageSizeInGb *int32

	// End date and time of maintenance window.
	TimeMaintenanceWindowEnd *time.Time

	// Start date and time of maintenance window.
	TimeMaintenanceWindowStart *time.Time

	// The total number of CPU cores reserved on the Db node.
	TotalCPUCoreCount *int32
}

// ExascaleDbStorageDetails - Exadata Database Storage Details
type ExascaleDbStorageDetails struct {
	// Available Capacity
	AvailableSizeInGbs *int32

	// Total Capacity
	TotalSizeInGbs *int32
}

// ExascaleDbStorageInputDetails - Create exadata Database Storage Details model
type ExascaleDbStorageInputDetails struct {
	// REQUIRED; Total Capacity
	TotalSizeInGbs *int32
}

// ExascaleDbStorageVault resource definition
type ExascaleDbStorageVault struct {
	// REQUIRED; The geo-location where the resource lives
	Location *string

	// The resource-specific properties for this resource.
	Properties *ExascaleDbStorageVaultProperties

	// Resource tags.
	Tags map[string]*string

	// The availability zones.
	Zones []*string

	// 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
}

// ExascaleDbStorageVaultListResult - The response of a ExascaleDbStorageVault list operation.
type ExascaleDbStorageVaultListResult struct {
	// REQUIRED; The ExascaleDbStorageVault items on this page
	Value []*ExascaleDbStorageVault

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

// ExascaleDbStorageVaultProperties - ExascaleDbStorageVault resource model
type ExascaleDbStorageVaultProperties struct {
	// REQUIRED; The user-friendly name for the Exadata Database Storage Vault. The name does not need to be unique.
	DisplayName *string

	// REQUIRED; Create exadata Database Storage Details
	HighCapacityDatabaseStorageInput *ExascaleDbStorageInputDetails

	// The size of additional Flash Cache in percentage of High Capacity database storage.
	AdditionalFlashCacheInPercent *int32

	// Exadata Database Storage Vault description.
	Description *string

	// Cloud Exadata infrastructure ID
	ExadataInfrastructureID *string

	// The time zone that you want to use for the Exadata Database Storage Vault
	TimeZone *string

	// READ-ONLY; The shapeAttribute of the Exadata VM cluster(s) associated with the Exadata Database Storage Vault.
	AttachedShapeAttributes []*ShapeAttribute

	// READ-ONLY; Response exadata Database Storage Details
	HighCapacityDatabaseStorage *ExascaleDbStorageDetails

	// READ-ONLY; Additional information about the current lifecycle state.
	LifecycleDetails *string

	// READ-ONLY; Exadata Database Storage Vault lifecycle state
	LifecycleState *ExascaleDbStorageVaultLifecycleState

	// READ-ONLY; HTTPS link to OCI resources exposed to Azure Customer via Azure Interface.
	OciURL *string

	// READ-ONLY; The OCID of the Exadata Database Storage Vault.
	Ocid *string

	// READ-ONLY; Exadata Database Storage Vault provisioning state
	ProvisioningState *AzureResourceProvisioningState

	// READ-ONLY; The number of Exadata VM clusters used the Exadata Database Storage Vault.
	VMClusterCount *int32
}

// ExascaleDbStorageVaultTagsUpdate - The type used for updating tags in ExascaleDbStorageVault resources.
type ExascaleDbStorageVaultTagsUpdate struct {
	// Resource tags.
	Tags map[string]*string
}

// FileSystemConfigurationDetails - File configuration options
type FileSystemConfigurationDetails struct {
	// Size of the VM
	FileSystemSizeGb *int32

	// Mount path
	MountPoint *string
}

// FlexComponent Resource Definition
type FlexComponent struct {
	// The resource-specific properties for this resource.
	Properties *FlexComponentProperties

	// 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
}

// FlexComponentListResult - The response of a FlexComponent list operation.
type FlexComponentListResult struct {
	// REQUIRED; The FlexComponent items on this page
	Value []*FlexComponent

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

// FlexComponentProperties - FlexComponent resource model
type FlexComponentProperties struct {
	// READ-ONLY; The maximum number of CPU cores that can be enabled on the DB Server for this Flex Component.
	AvailableCoreCount *int32

	// READ-ONLY; The maximum storage that can be enabled on the Storage Server for this Flex Component.
	AvailableDbStorageInGbs *int32

	// READ-ONLY; The maximum local storage that can be enabled on the DB Server for this Flex Component.
	AvailableLocalStorageInGbs *int32

	// READ-ONLY; The maximum memory size that can be enabled on the DB Server for this Flex Component.
	AvailableMemoryInGbs *int32

	// READ-ONLY; The compute model of the DB Server for this Flex Component.
	ComputeModel *string

	// READ-ONLY; The description summary for this Flex Component.
	DescriptionSummary *string

	// READ-ONLY; The hardware type of the DB (Compute) or Storage (Cell) Server for this Flex Component.
	HardwareType *HardwareType

	// READ-ONLY; The minimum number of CPU cores that can be enabled on the DB Server for this Flex Component.
	MinimumCoreCount *int32

	// READ-ONLY; The runtime minimum number of CPU cores that can be enabled for this Flex Component.
	RuntimeMinimumCoreCount *int32

	// READ-ONLY; The name of the DB system shape for this Flex Component.
	Shape *string
}

// GenerateAutonomousDatabaseWalletDetails - Autonomous Database Generate Wallet resource model.
type GenerateAutonomousDatabaseWalletDetails struct {
	// REQUIRED; The password to encrypt the keys inside the wallet
	Password *string

	// The type of wallet to generate.
	GenerateType *GenerateType

	// True when requesting regional connection strings in PDB connect info, applicable to cross-region DG only.
	IsRegional *bool
}

// GiMinorVersion - The Oracle Grid Infrastructure (GI) minor version resource definition.
type GiMinorVersion struct {
	// The resource-specific properties for this resource.
	Properties *GiMinorVersionProperties

	// 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
}

// GiMinorVersionListResult - The response of a GiMinorVersion list operation.
type GiMinorVersionListResult struct {
	// REQUIRED; The GiMinorVersion items on this page
	Value []*GiMinorVersion

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

// GiMinorVersionProperties - The Oracle Grid Infrastructure (GI) minor version properties
type GiMinorVersionProperties struct {
	// REQUIRED; A valid Oracle Grid Infrastructure (GI) software version.
	Version *string

	// Grid Infrastructure Image Id
	GridImageOcid *string
}

// GiVersion resource definition
type GiVersion struct {
	// The resource-specific properties for this resource.
	Properties *GiVersionProperties

	// 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
}

// GiVersionListResult - The response of a GiVersion list operation.
type GiVersionListResult struct {
	// REQUIRED; The GiVersion items on this page
	Value []*GiVersion

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

// GiVersionProperties - GiVersion resource model
type GiVersionProperties struct {
	// REQUIRED; A valid Oracle Grid Infrastructure (GI) software version.
	Version *string
}

// LongTermBackUpScheduleDetails - Details for the long-term backup schedule.
type LongTermBackUpScheduleDetails struct {
	// Indicates if the long-term backup schedule should be deleted. The default value is `FALSE`.
	IsDisabled *bool

	// The frequency of the long-term backup schedule
	RepeatCadence *RepeatCadenceType

	// Retention period, in days, for backups.
	RetentionPeriodInDays *int32

	// The timestamp for the long-term backup schedule. For a MONTHLY cadence, months having fewer days than the provided date
	// will have the backup taken on the last day of that month.
	TimeOfBackup *time.Time
}

// MaintenanceWindow resource properties
type MaintenanceWindow struct {
	// Determines the amount of time the system will wait before the start of each database server patching operation. Custom
	// action timeout is in minutes and valid value is between 15 to 120 (inclusive).
	CustomActionTimeoutInMins *int32

	// Days during the week when maintenance should be performed.
	DaysOfWeek []*DayOfWeek

	// The window of hours during the day when maintenance should be performed. The window is a 4 hour slot. Valid values are
	// - 0 - represents time slot 0:00 - 3:59 UTC - 4 - represents time slot 4:00 - 7:59 UTC - 8 - represents time slot 8:00 -
	// 11:59 UTC - 12 - represents time slot 12:00 - 15:59 UTC - 16 - represents time slot 16:00 - 19:59 UTC - 20 - represents
	// time slot 20:00 - 23:59 UTC
	HoursOfDay []*int32

	// If true, enables the configuration of a custom action timeout (waiting period) between database server patching operations.
	IsCustomActionTimeoutEnabled *bool

	// is Monthly Patching Enabled
	IsMonthlyPatchingEnabled *bool

	// Lead time window allows user to set a lead time to prepare for a down time. The lead time is in weeks and valid value is
	// between 1 to 4.
	LeadTimeInWeeks *int32

	// Months during the year when maintenance should be performed.
	Months []*Month

	// Cloud Exadata infrastructure node patching method.
	PatchingMode *PatchingMode

	// The maintenance window scheduling preference.
	Preference *Preference

	// Weeks during the month when maintenance should be performed. Weeks start on the 1st, 8th, 15th, and 22nd days of the month,
	// and have a duration of 7 days. Weeks start and end based on calendar dates, not days of the week. For example, to allow
	// maintenance during the 2nd week of the month (from the 8th day to the 14th day of the month), use the value 2. Maintenance
	// cannot be scheduled for the fifth week of months that contain more than 28 days. Note that this parameter works in conjunction
	// with the daysOfWeek and hoursOfDay parameters to allow you to specify specific days of the week and hours that maintenance
	// will be performed.
	WeeksOfMonth []*int32
}

// Month resource properties
type Month struct {
	// REQUIRED; Name of the month of the year.
	Name *MonthName
}

// NetworkAnchor - Network Anchor resource model.
type NetworkAnchor struct {
	// REQUIRED; The geo-location where the resource lives
	Location *string

	// The resource-specific properties for this resource.
	Properties *NetworkAnchorProperties

	// Resource tags.
	Tags map[string]*string

	// The availability zones.
	Zones []*string

	// 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
}

// NetworkAnchorListResult - The response of a NetworkAnchor list operation.
type NetworkAnchorListResult struct {
	// REQUIRED; The NetworkAnchor items on this page
	Value []*NetworkAnchor

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

// NetworkAnchorProperties - Network Anchor properties
type NetworkAnchorProperties struct {
	// REQUIRED; Corresponding resource anchor Azure ID
	ResourceAnchorID *string

	// REQUIRED; Client subnet
	SubnetID *string

	// DNS forwarding rules
	DNSForwardingRules []*DNSForwardingRule

	// Comma-separated list of CIDRs that are allowed to send requests to the DNS listening endpoint
	DNSListeningEndpointAllowedCidrs *string

	// Indicates whether the Oracle DNS forwarding endpoint is enabled
	IsOracleDNSForwardingEndpointEnabled *bool

	// Indicates whether the Oracle DNS listening endpoint is enabled
	IsOracleDNSListeningEndpointEnabled *bool

	// Indicates whether DNS zone sync from OCI to Azure is enabled
	IsOracleToAzureDNSZoneSyncEnabled *bool

	// OCI backup subnet cidr block.
	OciBackupCidrBlock *string

	// OCI DNS label. This is optional if DNS config is provided.
	OciVcnDNSLabel *string

	// READ-ONLY; Delegated Azure subnet cidr block.
	CidrBlock *string

	// READ-ONLY; DNS forwarding endpoint IP address
	DNSForwardingEndpointIPAddress *string

	// READ-ONLY; Deep link to OCI console DNS Forwarding endpoint NSG rules
	DNSForwardingEndpointNsgRulesURL *string

	// READ-ONLY; Deep link to OCI console DNS Forwarding rules page
	DNSForwardingRulesURL *string

	// READ-ONLY; DNS listening endpoint IP address
	DNSListeningEndpointIPAddress *string

	// READ-ONLY; Deep link to OCI console DNS Listening endpoint NSG rules
	DNSListeningEndpointNsgRulesURL *string

	// READ-ONLY; Oracle Cloud Infrastructure subnet OCID
	OciSubnetID *string

	// READ-ONLY; Oracle Cloud Infrastructure VCN OCID
	OciVcnID *string

	// READ-ONLY; NetworkAnchor provisioning state
	ProvisioningState *AzureResourceProvisioningState

	// READ-ONLY; VNET for network connectivity
	VnetID *string
}

// NetworkAnchorUpdate - The type used for update operations of the NetworkAnchor.
type NetworkAnchorUpdate struct {
	// The resource-specific properties for this resource.
	Properties *NetworkAnchorUpdateProperties

	// Resource tags.
	Tags map[string]*string

	// The availability zones.
	Zones []*string
}

// NetworkAnchorUpdateProperties - The updatable properties of the NetworkAnchor.
type NetworkAnchorUpdateProperties struct {
	// Indicates whether the Oracle DNS forwarding endpoint is enabled
	IsOracleDNSForwardingEndpointEnabled *bool

	// Indicates whether the Oracle DNS listening endpoint is enabled
	IsOracleDNSListeningEndpointEnabled *bool

	// Indicates whether DNS zone sync from OCI to Azure is enabled
	IsOracleToAzureDNSZoneSyncEnabled *bool

	// OCI backup subnet cidr block.
	OciBackupCidrBlock *string
}

// NsgCidr - A rule for allowing inbound (INGRESS) IP packets
type NsgCidr struct {
	// REQUIRED; Conceptually, this is the range of IP addresses that a packet coming into the instance can come from.
	Source *string

	// Destination port range to specify particular destination ports for TCP rules.
	DestinationPortRange *PortRange
}

// Operation - REST API Operation
//
// Details of a REST API operation, returned from the Resource Provider Operations API
type Operation struct {
	// Localized display information for this particular operation.
	Display *OperationDisplay

	// READ-ONLY; Extensible enum. Indicates the action type. "Internal" refers to actions that are for internal only APIs.
	ActionType *ActionType

	// READ-ONLY; Whether the operation applies to data-plane. This is "true" for data-plane operations and "false" for Azure
	// Resource Manager/control-plane operations.
	IsDataAction *bool

	// READ-ONLY; The name of the operation, as per Resource-Based Access Control (RBAC). Examples: "Microsoft.Compute/virtualMachines/write",
	// "Microsoft.Compute/virtualMachines/capture/action"
	Name *string

	// READ-ONLY; The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit logs UX. Default
	// value is "user,system"
	Origin *Origin
}

// OperationDisplay - Localized display information for and operation.
type OperationDisplay struct {
	// READ-ONLY; The short, localized friendly description of the operation; suitable for tool tips and detailed views.
	Description *string

	// READ-ONLY; The concise, localized friendly name for the operation; suitable for dropdowns. E.g. "Create or Update Virtual
	// Machine", "Restart Virtual Machine".
	Operation *string

	// READ-ONLY; The localized friendly form of the resource provider name, e.g. "Microsoft Monitoring Insights" or "Microsoft
	// Compute".
	Provider *string

	// READ-ONLY; The localized friendly name of the resource type related to this operation. E.g. "Virtual Machines" or "Job
	// Schedule Collections".
	Resource *string
}

// OperationListResult - A list of REST API operations supported by an Azure Resource Provider. It contains an URL link to
// get the next set of results.
type OperationListResult struct {
	// REQUIRED; The Operation items on this page
	Value []*Operation

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

// OracleSubscription resource definition
type OracleSubscription struct {
	// Details of the resource plan.
	Plan *Plan

	// The resource-specific properties for this resource.
	Properties *OracleSubscriptionProperties

	// 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
}

// OracleSubscriptionListResult - The response of a OracleSubscription list operation.
type OracleSubscriptionListResult struct {
	// REQUIRED; The OracleSubscription items on this page
	Value []*OracleSubscription

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

// OracleSubscriptionProperties - Oracle Subscription resource model
type OracleSubscriptionProperties struct {
	// Intent for the update operation
	Intent *Intent

	// Product code for the term unit
	ProductCode *string

	// Term Unit. P1Y, P3Y, etc, see Durations https://en.wikipedia.org/wiki/ISO_8601
	TermUnit *string

	// READ-ONLY; State of the add Azure subscription operation on Oracle subscription
	AddSubscriptionOperationState *AddSubscriptionOperationState

	// READ-ONLY; Azure subscriptions to be added
	AzureSubscriptionIDs []*string

	// READ-ONLY; Cloud Account Id
	CloudAccountID *string

	// READ-ONLY; Cloud Account provisioning state.
	CloudAccountState *CloudAccountProvisioningState

	// READ-ONLY; Status details of the last operation on Oracle subscription
	LastOperationStatusDetail *string

	// READ-ONLY; OracleSubscriptionProvisioningState provisioning state
	ProvisioningState *OracleSubscriptionProvisioningState

	// READ-ONLY; SAAS subscription ID generated by Marketplace
	SaasSubscriptionID *string
}

// OracleSubscriptionUpdate - The type used for update operations of the OracleSubscription.
type OracleSubscriptionUpdate struct {
	// Details of the resource plan.
	Plan *PlanUpdate

	// The resource-specific properties for this resource.
	Properties *OracleSubscriptionUpdateProperties
}

// OracleSubscriptionUpdateProperties - The updatable properties of the OracleSubscription.
type OracleSubscriptionUpdateProperties struct {
	// Intent for the update operation
	Intent *Intent

	// Product code for the term unit
	ProductCode *string
}

// PeerDbDetails - PeerDb Details
type PeerDbDetails struct {
	// The Azure resource ID of the Disaster Recovery peer database, which is located in a different region from the current peer
	// database.
	PeerDbID *string

	// The location of the Disaster Recovery peer database.
	PeerDbLocation *string

	// Ocid of the Disaster Recovery peer database, which is located in a different region from the current peer database.
	PeerDbOcid *string
}

// Plan for the resource.
type Plan struct {
	// REQUIRED; A user defined name of the 3rd Party Artifact that is being procured.
	Name *string

	// REQUIRED; The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact
	// at the time of Data Market onboarding.
	Product *string

	// REQUIRED; The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic
	Publisher *string

	// A publisher provided promotion code as provisioned in Data Market for the said product/artifact.
	PromotionCode *string

	// The version of the desired product/artifact.
	Version *string
}

// PlanUpdate - ResourcePlanTypeUpdate model definition
type PlanUpdate struct {
	// A user defined name of the 3rd Party Artifact that is being procured.
	Name *string

	// The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at
	// the time of Data Market onboarding.
	Product *string

	// A publisher provided promotion code as provisioned in Data Market for the said product/artifact.
	PromotionCode *string

	// The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic
	Publisher *string

	// The version of the desired product/artifact.
	Version *string
}

// PortRange - Port Range to specify particular destination ports for TCP rules.
type PortRange struct {
	// REQUIRED; The maximum port number, which must not be less than the minimum port number. To specify a single port number,
	// set both the min and max to the same value.
	Max *int32

	// REQUIRED; The minimum port number, which must not be greater than the maximum port number.
	Min *int32
}

// PrivateIPAddressProperties - PrivateIpAddress resource properties
type PrivateIPAddressProperties struct {
	// REQUIRED; PrivateIpAddresses displayName
	DisplayName *string

	// REQUIRED; PrivateIpAddresses hostnameLabel
	HostnameLabel *string

	// REQUIRED; PrivateIpAddresses ipAddress
	IPAddress *string

	// REQUIRED; PrivateIpAddresses Id
	Ocid *string

	// REQUIRED; PrivateIpAddresses subnetId
	SubnetID *string
}

// PrivateIPAddressesFilter - Private Ip Addresses filter
type PrivateIPAddressesFilter struct {
	// REQUIRED; Subnet OCID
	SubnetID *string

	// REQUIRED; VCN OCID
	VnicID *string
}

// ProfileType - The connection string profile to allow clients to group, filter and select connection string values based
// on structured metadata.
type ProfileType struct {
	// REQUIRED; A user-friendly name for the connection.
	DisplayName *string

	// REQUIRED; Host format used in connection string.
	HostFormat *HostFormatType

	// REQUIRED; Protocol used by the connection.
	Protocol *ProtocolType

	// REQUIRED; Specifies whether the listener performs a direct hand-off of the session, or redirects the session.
	SessionMode *SessionModeType

	// REQUIRED; Specifies whether the connection string is using the long (LONG), Easy Connect (EZCONNECT), or Easy Connect Plus
	// (EZCONNECTPLUS) format.
	SyntaxFormat *SyntaxFormatType

	// REQUIRED; Connection string value.
	Value *string

	// Consumer group used by the connection.
	ConsumerGroup *ConsumerGroup

	// True for a regional connection string, applicable to cross-region DG only.
	IsRegional *bool

	// Specifies whether the TLS handshake is using one-way (SERVER) or mutual (MUTUAL) authentication.
	TLSAuthentication *TLSAuthenticationType
}

// RemoveVirtualMachineFromExadbVMClusterDetails - Details of removing Virtual Machines from the Exadata VM cluster on Exascale
// Infrastructure. Applies to Exadata Database Service on Exascale Infrastructure only.
type RemoveVirtualMachineFromExadbVMClusterDetails struct {
	// REQUIRED; The list of ExaCS DB nodes for the Exadata VM cluster on Exascale Infrastructure to be removed.
	DbNodes []*DbNodeDetails
}

// ResourceAnchor - Resource Anchor model.
type ResourceAnchor struct {
	// REQUIRED; The geo-location where the resource lives
	Location *string

	// The resource-specific properties for this resource.
	Properties *ResourceAnchorProperties

	// Resource tags.
	Tags map[string]*string

	// 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
}

// ResourceAnchorListResult - The response of a ResourceAnchor list operation.
type ResourceAnchorListResult struct {
	// REQUIRED; The ResourceAnchor items on this page
	Value []*ResourceAnchor

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

// ResourceAnchorProperties - Resource Anchor properties.
type ResourceAnchorProperties struct {
	// READ-ONLY; Oracle Cloud Infrastructure compartment Id (ocid) which was created or linked by customer with resource anchor.
	// This compartmentId is different from where resource Anchor lives
	LinkedCompartmentID *string

	// READ-ONLY; ResourceAnchor provisioning state
	ProvisioningState *AzureResourceProvisioningState
}

// ResourceAnchorUpdate - The type used for update operations of the ResourceAnchor.
type ResourceAnchorUpdate struct {
	// Resource tags.
	Tags map[string]*string
}

// RestoreAutonomousDatabaseDetails - Details to restore an Oracle Autonomous Database.
type RestoreAutonomousDatabaseDetails struct {
	// REQUIRED; The time to restore the database to.
	Timestamp *time.Time
}

// SaasSubscriptionDetails - SaaS Subscription Details model
type SaasSubscriptionDetails struct {
	// READ-ONLY; Purchased SaaS subscription ID
	ID *string

	// READ-ONLY; AutoRenew flag
	IsAutoRenew *bool

	// READ-ONLY; FreeTrial flag
	IsFreeTrial *bool

	// READ-ONLY; Purchased offer ID
	OfferID *string

	// READ-ONLY; Purchased offer's plan ID
	PlanID *string

	// READ-ONLY; Publisher ID
	PublisherID *string

	// READ-ONLY; Purchaser Email ID
	PurchaserEmailID *string

	// READ-ONLY; Purchaser Tenant ID
	PurchaserTenantID *string

	// READ-ONLY; Indicates the status of the Subscription.
	SaasSubscriptionStatus *string

	// READ-ONLY; SaaS subscription name
	SubscriptionName *string

	// READ-ONLY; Purchase Term Unit
	TermUnit *string

	// READ-ONLY; Creation Date and Time
	TimeCreated *time.Time
}

// ScheduledOperationsType - The list of scheduled operations.
type ScheduledOperationsType struct {
	// REQUIRED; Day of week
	DayOfWeek *DayOfWeek

	// auto start time. value must be of ISO-8601 format HH:mm
	ScheduledStartTime *string

	// auto stop time. value must be of ISO-8601 format HH:mm
	ScheduledStopTime *string
}

// ScheduledOperationsTypeUpdate - The list of scheduled operations.
type ScheduledOperationsTypeUpdate struct {
	// Day of week
	DayOfWeek *DayOfWeekUpdate

	// auto start time. value must be of ISO-8601 format HH:mm
	ScheduledStartTime *string

	// auto stop time. value must be of ISO-8601 format HH:mm
	ScheduledStopTime *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
}

// SystemVersion resource Definition
type SystemVersion struct {
	// The resource-specific properties for this resource.
	Properties *SystemVersionProperties

	// 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
}

// SystemVersionListResult - The response of a SystemVersion list operation.
type SystemVersionListResult struct {
	// REQUIRED; The SystemVersion items on this page
	Value []*SystemVersion

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

// SystemVersionProperties - System Version Resource model
type SystemVersionProperties struct {
	// REQUIRED; A valid Oracle System Version
	SystemVersion *string
}

// VirtualNetworkAddress - Virtual IP resource belonging to a vm cluster resource.
type VirtualNetworkAddress struct {
	// The resource-specific properties for this resource.
	Properties *VirtualNetworkAddressProperties

	// 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
}

// VirtualNetworkAddressListResult - The response of a VirtualNetworkAddress list operation.
type VirtualNetworkAddressListResult struct {
	// REQUIRED; The VirtualNetworkAddress items on this page
	Value []*VirtualNetworkAddress

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

// VirtualNetworkAddressProperties - virtualNetworkAddress resource properties
type VirtualNetworkAddressProperties struct {
	// Virtual network Address address.
	IPAddress *string

	// Virtual Machine OCID.
	VMOcid *string

	// READ-ONLY; Virtual network address fully qualified domain name.
	Domain *string

	// READ-ONLY; Additional information about the current lifecycle state of the application virtual IP (VIP) address.
	LifecycleDetails *string

	// READ-ONLY; virtual network address lifecycle state.
	LifecycleState *VirtualNetworkAddressLifecycleState

	// READ-ONLY; Application VIP OCID.
	Ocid *string

	// READ-ONLY; Azure resource provisioning state.
	ProvisioningState *AzureResourceProvisioningState

	// READ-ONLY; The date and time when the create operation for the application virtual IP (VIP) address completed.
	TimeAssigned *time.Time
}
