github.com/ActiveState/cli@v0.0.0-20240508170324-6801f60cd051/pkg/platform/api/inventory/inventory_models/solver_remediation.go (about) 1 // Code generated by go-swagger; DO NOT EDIT. 2 3 package inventory_models 4 5 // This file was generated by the swagger tool. 6 // Editing this file might prove futile when you re-run the swagger generate command 7 8 import ( 9 "context" 10 "encoding/json" 11 12 "github.com/go-openapi/errors" 13 "github.com/go-openapi/strfmt" 14 "github.com/go-openapi/swag" 15 "github.com/go-openapi/validate" 16 ) 17 18 // SolverRemediation Solver Remediation 19 // 20 // An action that a user can take to attempt to resolve a solver error 21 // 22 // swagger:model solverRemediation 23 type SolverRemediation struct { 24 25 // An explanation of this remediation 26 // Required: true 27 Command *string `json:"command"` 28 29 // parameters 30 Parameters *SolverRemediationParameters `json:"parameters,omitempty"` 31 32 // The remediation type. Different types of remediations have different fields. 33 // Required: true 34 // Enum: [ADVANCE_TIMESTAMP CHANGE_REQUIREMENT_NAME CHANGE_REQUIREMENT_VERSION REMOVE_PLATFORM REMOVE_REQUIREMENT REQUEST_PACKAGE_IMPORT] 35 RemediationType *string `json:"remediation_type"` 36 } 37 38 // Validate validates this solver remediation 39 func (m *SolverRemediation) Validate(formats strfmt.Registry) error { 40 var res []error 41 42 if err := m.validateCommand(formats); err != nil { 43 res = append(res, err) 44 } 45 46 if err := m.validateParameters(formats); err != nil { 47 res = append(res, err) 48 } 49 50 if err := m.validateRemediationType(formats); err != nil { 51 res = append(res, err) 52 } 53 54 if len(res) > 0 { 55 return errors.CompositeValidationError(res...) 56 } 57 return nil 58 } 59 60 func (m *SolverRemediation) validateCommand(formats strfmt.Registry) error { 61 62 if err := validate.Required("command", "body", m.Command); err != nil { 63 return err 64 } 65 66 return nil 67 } 68 69 func (m *SolverRemediation) validateParameters(formats strfmt.Registry) error { 70 if swag.IsZero(m.Parameters) { // not required 71 return nil 72 } 73 74 if m.Parameters != nil { 75 if err := m.Parameters.Validate(formats); err != nil { 76 if ve, ok := err.(*errors.Validation); ok { 77 return ve.ValidateName("parameters") 78 } 79 return err 80 } 81 } 82 83 return nil 84 } 85 86 var solverRemediationTypeRemediationTypePropEnum []interface{} 87 88 func init() { 89 var res []string 90 if err := json.Unmarshal([]byte(`["ADVANCE_TIMESTAMP","CHANGE_REQUIREMENT_NAME","CHANGE_REQUIREMENT_VERSION","REMOVE_PLATFORM","REMOVE_REQUIREMENT","REQUEST_PACKAGE_IMPORT"]`), &res); err != nil { 91 panic(err) 92 } 93 for _, v := range res { 94 solverRemediationTypeRemediationTypePropEnum = append(solverRemediationTypeRemediationTypePropEnum, v) 95 } 96 } 97 98 const ( 99 100 // SolverRemediationRemediationTypeADVANCETIMESTAMP captures enum value "ADVANCE_TIMESTAMP" 101 SolverRemediationRemediationTypeADVANCETIMESTAMP string = "ADVANCE_TIMESTAMP" 102 103 // SolverRemediationRemediationTypeCHANGEREQUIREMENTNAME captures enum value "CHANGE_REQUIREMENT_NAME" 104 SolverRemediationRemediationTypeCHANGEREQUIREMENTNAME string = "CHANGE_REQUIREMENT_NAME" 105 106 // SolverRemediationRemediationTypeCHANGEREQUIREMENTVERSION captures enum value "CHANGE_REQUIREMENT_VERSION" 107 SolverRemediationRemediationTypeCHANGEREQUIREMENTVERSION string = "CHANGE_REQUIREMENT_VERSION" 108 109 // SolverRemediationRemediationTypeREMOVEPLATFORM captures enum value "REMOVE_PLATFORM" 110 SolverRemediationRemediationTypeREMOVEPLATFORM string = "REMOVE_PLATFORM" 111 112 // SolverRemediationRemediationTypeREMOVEREQUIREMENT captures enum value "REMOVE_REQUIREMENT" 113 SolverRemediationRemediationTypeREMOVEREQUIREMENT string = "REMOVE_REQUIREMENT" 114 115 // SolverRemediationRemediationTypeREQUESTPACKAGEIMPORT captures enum value "REQUEST_PACKAGE_IMPORT" 116 SolverRemediationRemediationTypeREQUESTPACKAGEIMPORT string = "REQUEST_PACKAGE_IMPORT" 117 ) 118 119 // prop value enum 120 func (m *SolverRemediation) validateRemediationTypeEnum(path, location string, value string) error { 121 if err := validate.EnumCase(path, location, value, solverRemediationTypeRemediationTypePropEnum, true); err != nil { 122 return err 123 } 124 return nil 125 } 126 127 func (m *SolverRemediation) validateRemediationType(formats strfmt.Registry) error { 128 129 if err := validate.Required("remediation_type", "body", m.RemediationType); err != nil { 130 return err 131 } 132 133 // value enum 134 if err := m.validateRemediationTypeEnum("remediation_type", "body", *m.RemediationType); err != nil { 135 return err 136 } 137 138 return nil 139 } 140 141 // ContextValidate validate this solver remediation based on the context it is used 142 func (m *SolverRemediation) ContextValidate(ctx context.Context, formats strfmt.Registry) error { 143 var res []error 144 145 if err := m.contextValidateParameters(ctx, formats); err != nil { 146 res = append(res, err) 147 } 148 149 if len(res) > 0 { 150 return errors.CompositeValidationError(res...) 151 } 152 return nil 153 } 154 155 func (m *SolverRemediation) contextValidateParameters(ctx context.Context, formats strfmt.Registry) error { 156 157 if m.Parameters != nil { 158 if err := m.Parameters.ContextValidate(ctx, formats); err != nil { 159 if ve, ok := err.(*errors.Validation); ok { 160 return ve.ValidateName("parameters") 161 } 162 return err 163 } 164 } 165 166 return nil 167 } 168 169 // MarshalBinary interface implementation 170 func (m *SolverRemediation) MarshalBinary() ([]byte, error) { 171 if m == nil { 172 return nil, nil 173 } 174 return swag.WriteJSON(m) 175 } 176 177 // UnmarshalBinary interface implementation 178 func (m *SolverRemediation) UnmarshalBinary(b []byte) error { 179 var res SolverRemediation 180 if err := swag.ReadJSON(b, &res); err != nil { 181 return err 182 } 183 *m = res 184 return nil 185 }