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

package ops

// 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"
)

// OperationParamName operation param name
//
// swagger:model operation.ParamName
type OperationParamName string

func NewOperationParamName(value OperationParamName) *OperationParamName {
	return &value
}

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

const (

	// OperationParamNameClusterID captures enum value "cluster_id"
	OperationParamNameClusterID OperationParamName = "cluster_id"

	// OperationParamNameProjectID captures enum value "project_id"
	OperationParamNameProjectID OperationParamName = "project_id"

	// OperationParamNameTenantID captures enum value "tenant_id"
	OperationParamNameTenantID OperationParamName = "tenant_id"

	// OperationParamNameTenantRegion captures enum value "tenant_region"
	OperationParamNameTenantRegion OperationParamName = "tenant_region"

	// OperationParamNameOncallCategory captures enum value "oncall_category"
	OperationParamNameOncallCategory OperationParamName = "oncall_category"

	// OperationParamNamePlaneType captures enum value "plane_type"
	OperationParamNamePlaneType OperationParamName = "plane_type"

	// OperationParamNameClusterComponentsToScale captures enum value "cluster_components_to_scale"
	OperationParamNameClusterComponentsToScale OperationParamName = "cluster_components_to_scale"

	// OperationParamNameTidbNodeQuota captures enum value "tidb_node_quota"
	OperationParamNameTidbNodeQuota OperationParamName = "tidb_node_quota"

	// OperationParamNameTikvNodeQuota captures enum value "tikv_node_quota"
	OperationParamNameTikvNodeQuota OperationParamName = "tikv_node_quota"

	// OperationParamNameTiflashNodeQuota captures enum value "tiflash_node_quota"
	OperationParamNameTiflashNodeQuota OperationParamName = "tiflash_node_quota"

	// OperationParamNameJumpAuthID captures enum value "jump_auth_id"
	OperationParamNameJumpAuthID OperationParamName = "jump_auth_id"

	// OperationParamNameConfigurationChangeID captures enum value "configuration_change_id"
	OperationParamNameConfigurationChangeID OperationParamName = "configuration_change_id"

	// OperationParamNameSecondaryConfirmLink captures enum value "secondary_confirm_link"
	OperationParamNameSecondaryConfirmLink OperationParamName = "secondary_confirm_link"

	// OperationParamNameForceRestart captures enum value "force_restart"
	OperationParamNameForceRestart OperationParamName = "force_restart"

	// OperationParamNameRestartTarget captures enum value "restart_target"
	OperationParamNameRestartTarget OperationParamName = "restart_target"

	// OperationParamNameRestartTargetType captures enum value "restart_target_type"
	OperationParamNameRestartTargetType OperationParamName = "restart_target_type"

	// OperationParamNameComponentType captures enum value "component_type"
	OperationParamNameComponentType OperationParamName = "component_type"

	// OperationParamNameNodeSize captures enum value "node_size"
	OperationParamNameNodeSize OperationParamName = "node_size"

	// OperationParamNameReplicas captures enum value "replicas"
	OperationParamNameReplicas OperationParamName = "replicas"

	// OperationParamNameStorageSizeGi captures enum value "storage_size_gi"
	OperationParamNameStorageSizeGi OperationParamName = "storage_size_gi"
)

// for schema
var operationParamNameEnum []interface{}

func init() {
	var res []OperationParamName
	if err := json.Unmarshal([]byte(`["cluster_id","project_id","tenant_id","tenant_region","oncall_category","plane_type","cluster_components_to_scale","tidb_node_quota","tikv_node_quota","tiflash_node_quota","jump_auth_id","configuration_change_id","secondary_confirm_link","force_restart","restart_target","restart_target_type","component_type","node_size","replicas","storage_size_gi"]`), &res); err != nil {
		panic(err)
	}
	for _, v := range res {
		operationParamNameEnum = append(operationParamNameEnum, v)
	}
}

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

// Validate validates this operation param name
func (m OperationParamName) Validate(formats strfmt.Registry) error {
	var res []error

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

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

// ContextValidate validates this operation param name based on context it is used
func (m OperationParamName) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
	return nil
}
