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

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

// ExternalTracker ExternalTracker represents settings for external tracker
//
// swagger:model ExternalTracker
type ExternalTracker struct {

	// External Issue Tracker URL Format. Use the placeholders {user}, {repo} and {index} for the username, repository name and issue index.
	ExternalTrackerFormat string `json:"external_tracker_format,omitempty"`

	// External Issue Tracker issue regular expression
	ExternalTrackerRegexpPattern string `json:"external_tracker_regexp_pattern,omitempty"`

	// External Issue Tracker Number Format, either `numeric`, `alphanumeric`, or `regexp`
	ExternalTrackerStyle string `json:"external_tracker_style,omitempty"`

	// URL of external issue tracker.
	ExternalTrackerURL string `json:"external_tracker_url,omitempty"`
}

// Validate validates this external tracker
func (m *ExternalTracker) Validate(formats strfmt.Registry) error {
	return nil
}

// ContextValidate validates this external tracker based on context it is used
func (m *ExternalTracker) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
	return nil
}

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

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