jkawamoto/roadie

View on GitHub
cloud/azure/compute/models/usage.go

Summary

Maintainability
A
2 hrs
Test Coverage
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 (
    "encoding/json"

    strfmt "github.com/go-openapi/strfmt"

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

// Usage Describes Compute Resource Usage.
// swagger:model Usage
type Usage struct {

    // The current usage of the resource.
    // Required: true
    CurrentValue *int32 `json:"currentValue"`

    // The maximum permitted usage of the resource.
    // Required: true
    Limit *int64 `json:"limit"`

    // The name of the type of usage.
    // Required: true
    Name *UsageName `json:"name"`

    // An enum describing the unit of usage measurement.
    // Required: true
    Unit *string `json:"unit"`
}

// Validate validates this usage
func (m *Usage) Validate(formats strfmt.Registry) error {
    var res []error

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

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

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

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

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

func (m *Usage) validateCurrentValue(formats strfmt.Registry) error {

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

    return nil
}

func (m *Usage) validateLimit(formats strfmt.Registry) error {

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

    return nil
}

func (m *Usage) validateName(formats strfmt.Registry) error {

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

    if m.Name != nil {

        if err := m.Name.Validate(formats); err != nil {
            return err
        }
    }

    return nil
}

var usageTypeUnitPropEnum []interface{}

func init() {
    var res []string
    if err := json.Unmarshal([]byte(`["Count"]`), &res); err != nil {
        panic(err)
    }
    for _, v := range res {
        usageTypeUnitPropEnum = append(usageTypeUnitPropEnum, v)
    }
}

const (
    // UsageUnitCount captures enum value "Count"
    UsageUnitCount string = "Count"
)

// prop value enum
func (m *Usage) validateUnitEnum(path, location string, value string) error {
    if err := validate.Enum(path, location, value, usageTypeUnitPropEnum); err != nil {
        return err
    }
    return nil
}

func (m *Usage) validateUnit(formats strfmt.Registry) error {

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

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

    return nil
}