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

import "github.com/Azure/azure-service-operator/v2/pkg/genruntime"

type ServersDatabasesVulnerabilityAssessment_Spec struct {
	Name string `json:"name,omitempty"`

	// Properties: Resource properties.
	Properties *DatabaseVulnerabilityAssessmentsDatabaseVulnerabilityAssessmentProperties `json:"properties,omitempty"`
}

var _ genruntime.ARMResourceSpec = &ServersDatabasesVulnerabilityAssessment_Spec{}

// GetAPIVersion returns the ARM API version of the resource. This is always "2021-11-01"
func (assessment ServersDatabasesVulnerabilityAssessment_Spec) GetAPIVersion() string {
	return "2021-11-01"
}

// GetName returns the Name of the resource
func (assessment *ServersDatabasesVulnerabilityAssessment_Spec) GetName() string {
	return assessment.Name
}

// GetType returns the ARM Type of the resource. This is always "Microsoft.Sql/servers/databases/vulnerabilityAssessments"
func (assessment *ServersDatabasesVulnerabilityAssessment_Spec) GetType() string {
	return "Microsoft.Sql/servers/databases/vulnerabilityAssessments"
}

// Properties of a database Vulnerability Assessment.
type DatabaseVulnerabilityAssessmentsDatabaseVulnerabilityAssessmentProperties struct {
	// RecurringScans: The recurring scans settings
	RecurringScans *VulnerabilityAssessmentRecurringScansProperties `json:"recurringScans,omitempty"`

	// StorageAccountAccessKey: Specifies the identifier key of the storage account for vulnerability assessment scan results.
	// If 'StorageContainerSasKey' isn't specified, storageAccountAccessKey is required. Applies only if the storage account is
	// not behind a Vnet or a firewall
	StorageAccountAccessKey *string `json:"storageAccountAccessKey,omitempty"`

	// StorageContainerPath: A blob storage container path to hold the scan results (e.g.
	// https://myStorage.blob.core.windows.net/VaScans/).  It is required if server level vulnerability assessment policy
	// doesn't set
	StorageContainerPath *string `json:"storageContainerPath,omitempty" optionalConfigMapPair:"StorageContainerPath"`

	// StorageContainerSasKey: A shared access signature (SAS Key) that has write access to the blob container specified in
	// 'storageContainerPath' parameter. If 'storageAccountAccessKey' isn't specified, StorageContainerSasKey is required.
	// Applies only if the storage account is not behind a Vnet or a firewall
	StorageContainerSasKey *string `json:"storageContainerSasKey,omitempty"`
}

// Properties of a Vulnerability Assessment recurring scans.
type VulnerabilityAssessmentRecurringScansProperties struct {
	// EmailSubscriptionAdmins: Specifies that the schedule scan notification will be is sent to the subscription
	// administrators.
	EmailSubscriptionAdmins *bool `json:"emailSubscriptionAdmins,omitempty"`

	// Emails: Specifies an array of e-mail addresses to which the scan notification is sent.
	Emails []string `json:"emails,omitempty"`

	// IsEnabled: Recurring scans state.
	IsEnabled *bool `json:"isEnabled,omitempty"`
}
