// 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 MongodbUserDefinition_Spec struct {
	Name string `json:"name,omitempty"`

	// Properties: Properties to create and update an Azure Cosmos DB Mongo User Definition.
	Properties *MongoUserDefinitionResource `json:"properties,omitempty"`
}

var _ genruntime.ARMResourceSpec = &MongodbUserDefinition_Spec{}

// GetAPIVersion returns the ARM API version of the resource. This is always "2024-08-15"
func (definition MongodbUserDefinition_Spec) GetAPIVersion() string {
	return "2024-08-15"
}

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

// GetType returns the ARM Type of the resource. This is always "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions"
func (definition *MongodbUserDefinition_Spec) GetType() string {
	return "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions"
}

// Azure Cosmos DB Mongo User Definition resource object.
type MongoUserDefinitionResource struct {
	// CustomData: A custom definition for the USer Definition.
	CustomData *string `json:"customData,omitempty"`

	// DatabaseName: The database name for which access is being granted for this User Definition.
	DatabaseName *string `json:"databaseName,omitempty"`

	// Mechanisms: The Mongo Auth mechanism. For now, we only support auth mechanism SCRAM-SHA-256.
	Mechanisms *string `json:"mechanisms,omitempty"`

	// Password: The password for User Definition. Response does not contain user password.
	Password *string `json:"password,omitempty"`

	// Roles: The set of roles inherited by the User Definition.
	Roles []Role `json:"roles,omitempty"`

	// UserName: The user name for User Definition.
	UserName *string `json:"userName,omitempty"`
}
