// 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 (
	strfmt "github.com/go-openapi/strfmt"

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

// GetDogmaEffectsEffectIDOKBody get_dogma_effects_effect_id_ok
//
// 200 ok object
// swagger:model getDogmaEffectsEffectIdOKBody

type GetDogmaEffectsEffectIDOKBody struct {

	// get_dogma_effects_effect_id_description
	//
	// description string
	Description string `json:"description,omitempty"`

	// get_dogma_effects_effect_id_disallow_auto_repeat
	//
	// disallow_auto_repeat boolean
	DisallowAutoRepeat bool `json:"disallow_auto_repeat,omitempty"`

	// get_dogma_effects_effect_id_discharge_attribute_id
	//
	// discharge_attribute_id integer
	DischargeAttributeID int32 `json:"discharge_attribute_id,omitempty"`

	// get_dogma_effects_effect_id_display_name
	//
	// display_name string
	DisplayName string `json:"display_name,omitempty"`

	// get_dogma_effects_effect_id_duration_attribute_id
	//
	// duration_attribute_id integer
	DurationAttributeID int32 `json:"duration_attribute_id,omitempty"`

	// get_dogma_effects_effect_id_effect_category
	//
	// effect_category integer
	EffectCategory int32 `json:"effect_category,omitempty"`

	// get_dogma_effects_effect_id_effect_id
	//
	// effect_id integer
	// Required: true
	EffectID *int32 `json:"effect_id"`

	// get_dogma_effects_effect_id_electronic_chance
	//
	// electronic_chance boolean
	ElectronicChance bool `json:"electronic_chance,omitempty"`

	// get_dogma_effects_effect_id_falloff_attribute_id
	//
	// falloff_attribute_id integer
	FalloffAttributeID int32 `json:"falloff_attribute_id,omitempty"`

	// get_dogma_effects_effect_id_icon_id
	//
	// icon_id integer
	IconID int32 `json:"icon_id,omitempty"`

	// get_dogma_effects_effect_id_is_assistance
	//
	// is_assistance boolean
	IsAssistance bool `json:"is_assistance,omitempty"`

	// get_dogma_effects_effect_id_is_offensive
	//
	// is_offensive boolean
	IsOffensive bool `json:"is_offensive,omitempty"`

	// get_dogma_effects_effect_id_is_warp_safe
	//
	// is_warp_safe boolean
	IsWarpSafe bool `json:"is_warp_safe,omitempty"`

	// modifiers
	Modifiers GetDogmaEffectsEffectIDOKBodyModifiers `json:"modifiers"`

	// get_dogma_effects_effect_id_name
	//
	// name string
	Name string `json:"name,omitempty"`

	// get_dogma_effects_effect_id_post_expression
	//
	// post_expression integer
	PostExpression int32 `json:"post_expression,omitempty"`

	// get_dogma_effects_effect_id_pre_expression
	//
	// pre_expression integer
	PreExpression int32 `json:"pre_expression,omitempty"`

	// get_dogma_effects_effect_id_published
	//
	// published boolean
	Published bool `json:"published,omitempty"`

	// get_dogma_effects_effect_id_range_attribute_id
	//
	// range_attribute_id integer
	RangeAttributeID int32 `json:"range_attribute_id,omitempty"`

	// get_dogma_effects_effect_id_range_chance
	//
	// range_chance boolean
	RangeChance bool `json:"range_chance,omitempty"`

	// get_dogma_effects_effect_id_tracking_speed_attribute_id
	//
	// tracking_speed_attribute_id integer
	TrackingSpeedAttributeID int32 `json:"tracking_speed_attribute_id,omitempty"`
}

/* polymorph getDogmaEffectsEffectIdOKBody description false */

/* polymorph getDogmaEffectsEffectIdOKBody disallow_auto_repeat false */

/* polymorph getDogmaEffectsEffectIdOKBody discharge_attribute_id false */

/* polymorph getDogmaEffectsEffectIdOKBody display_name false */

/* polymorph getDogmaEffectsEffectIdOKBody duration_attribute_id false */

/* polymorph getDogmaEffectsEffectIdOKBody effect_category false */

/* polymorph getDogmaEffectsEffectIdOKBody effect_id false */

/* polymorph getDogmaEffectsEffectIdOKBody electronic_chance false */

/* polymorph getDogmaEffectsEffectIdOKBody falloff_attribute_id false */

/* polymorph getDogmaEffectsEffectIdOKBody icon_id false */

/* polymorph getDogmaEffectsEffectIdOKBody is_assistance false */

/* polymorph getDogmaEffectsEffectIdOKBody is_offensive false */

/* polymorph getDogmaEffectsEffectIdOKBody is_warp_safe false */

/* polymorph getDogmaEffectsEffectIdOKBody modifiers false */

/* polymorph getDogmaEffectsEffectIdOKBody name false */

/* polymorph getDogmaEffectsEffectIdOKBody post_expression false */

/* polymorph getDogmaEffectsEffectIdOKBody pre_expression false */

/* polymorph getDogmaEffectsEffectIdOKBody published false */

/* polymorph getDogmaEffectsEffectIdOKBody range_attribute_id false */

/* polymorph getDogmaEffectsEffectIdOKBody range_chance false */

/* polymorph getDogmaEffectsEffectIdOKBody tracking_speed_attribute_id false */

// Validate validates this get dogma effects effect Id o k body
func (m *GetDogmaEffectsEffectIDOKBody) Validate(formats strfmt.Registry) error {
	var res []error

	if err := m.validateEffectID(formats); err != nil {
		// prop
		res = append(res, err)
	}

	if err := m.validateModifiers(formats); err != nil {
		// prop
		res = append(res, err)
	}

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

func (m *GetDogmaEffectsEffectIDOKBody) validateEffectID(formats strfmt.Registry) error {

	if err := validate.Required("effect_id", "body", m.EffectID); err != nil {
		return err
	}

	return nil
}

func (m *GetDogmaEffectsEffectIDOKBody) validateModifiers(formats strfmt.Registry) error {

	if swag.IsZero(m.Modifiers) { // not required
		return nil
	}

	return nil
}

// MarshalBinary interface implementation
func (m *GetDogmaEffectsEffectIDOKBody) MarshalBinary() ([]byte, error) {
	if m == nil {
		return nil, nil
	}
	return swag.WriteJSON(m)
}

// UnmarshalBinary interface implementation
func (m *GetDogmaEffectsEffectIDOKBody) UnmarshalBinary(b []byte) error {
	var res GetDogmaEffectsEffectIDOKBody
	if err := swag.ReadJSON(b, &res); err != nil {
		return err
	}
	*m = res
	return nil
}
