// Code generated by go-swagger; DO NOT EDIT.

package models

// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command

import (
	"context"
	"encoding/json"

	"github.com/go-openapi/errors"
	"github.com/go-openapi/strfmt"
	"github.com/go-openapi/validate"
)

// HashicorpCloudIamGetMFAStatusResponseMFAStatus - UNSET: UNSET means the result hasn't been set and should never
// be seen outside of tests.
//   - ENABLED: ENABLED means the user has MFA enabled.
//   - DISABLED: DISABLED means the user does not have MFA enabled.
//   - UNKNOWN: UNKNOWN means we do not know the status of this user's MFA. This is
//
// the case when MFA is managed by an external party (e.g. SSO and
// GitHub users.)
//
// swagger:model hashicorp.cloud.iam.GetMFAStatusResponse.MFAStatus
type HashicorpCloudIamGetMFAStatusResponseMFAStatus string

func NewHashicorpCloudIamGetMFAStatusResponseMFAStatus(value HashicorpCloudIamGetMFAStatusResponseMFAStatus) *HashicorpCloudIamGetMFAStatusResponseMFAStatus {
	return &value
}

// Pointer returns a pointer to a freshly-allocated HashicorpCloudIamGetMFAStatusResponseMFAStatus.
func (m HashicorpCloudIamGetMFAStatusResponseMFAStatus) Pointer() *HashicorpCloudIamGetMFAStatusResponseMFAStatus {
	return &m
}

const (

	// HashicorpCloudIamGetMFAStatusResponseMFAStatusUNSET captures enum value "UNSET"
	HashicorpCloudIamGetMFAStatusResponseMFAStatusUNSET HashicorpCloudIamGetMFAStatusResponseMFAStatus = "UNSET"

	// HashicorpCloudIamGetMFAStatusResponseMFAStatusENABLED captures enum value "ENABLED"
	HashicorpCloudIamGetMFAStatusResponseMFAStatusENABLED HashicorpCloudIamGetMFAStatusResponseMFAStatus = "ENABLED"

	// HashicorpCloudIamGetMFAStatusResponseMFAStatusDISABLED captures enum value "DISABLED"
	HashicorpCloudIamGetMFAStatusResponseMFAStatusDISABLED HashicorpCloudIamGetMFAStatusResponseMFAStatus = "DISABLED"

	// HashicorpCloudIamGetMFAStatusResponseMFAStatusUNKNOWN captures enum value "UNKNOWN"
	HashicorpCloudIamGetMFAStatusResponseMFAStatusUNKNOWN HashicorpCloudIamGetMFAStatusResponseMFAStatus = "UNKNOWN"
)

// for schema
var hashicorpCloudIamGetMFAStatusResponseMFAStatusEnum []interface{}

func init() {
	var res []HashicorpCloudIamGetMFAStatusResponseMFAStatus
	if err := json.Unmarshal([]byte(`["UNSET","ENABLED","DISABLED","UNKNOWN"]`), &res); err != nil {
		panic(err)
	}
	for _, v := range res {
		hashicorpCloudIamGetMFAStatusResponseMFAStatusEnum = append(hashicorpCloudIamGetMFAStatusResponseMFAStatusEnum, v)
	}
}

func (m HashicorpCloudIamGetMFAStatusResponseMFAStatus) validateHashicorpCloudIamGetMFAStatusResponseMFAStatusEnum(path, location string, value HashicorpCloudIamGetMFAStatusResponseMFAStatus) error {
	if err := validate.EnumCase(path, location, value, hashicorpCloudIamGetMFAStatusResponseMFAStatusEnum, true); err != nil {
		return err
	}
	return nil
}

// Validate validates this hashicorp cloud iam get m f a status response m f a status
func (m HashicorpCloudIamGetMFAStatusResponseMFAStatus) Validate(formats strfmt.Registry) error {
	var res []error

	// value enum
	if err := m.validateHashicorpCloudIamGetMFAStatusResponseMFAStatusEnum("", "body", m); err != nil {
		return err
	}

	if len(res) > 0 {
		return errors.CompositeValidationError(res...)
	}
	return nil
}

// ContextValidate validates this hashicorp cloud iam get m f a status response m f a status based on context it is used
func (m HashicorpCloudIamGetMFAStatusResponseMFAStatus) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
	return nil
}
