51 lines
2.2 KiB
Go
51 lines
2.2 KiB
Go
package models
|
|
|
|
import (
|
|
"time"
|
|
)
|
|
|
|
type CA struct {
|
|
ID string `json:"id" bson:"_id"`
|
|
Name string `json:"name" bson:"name"`
|
|
CommonName string `json:"common_name" bson:"common_name"`
|
|
Organization string `json:"organization" bson:"organization"`
|
|
OrganizationalUnit string `json:"organization_unit" bson:"organization_unit"`
|
|
Country string `json:"country" bson:"country"`
|
|
Province string `json:"province" bson:"province"`
|
|
Locality string `json:"locality" bson:"locality"`
|
|
StreetAddress string `json:"street_address" bson:"street_address"`
|
|
PostalCode string `json:"postal_code" bson:"postal_code"`
|
|
Email string `json:"email" bson:"email"`
|
|
PrivateKey string `json:"private_key,omitempty" bson:"private_key"`
|
|
Certificate string `json:"certificate" bson:"certificate"`
|
|
SerialNumber string `json:"serial_number" bson:"serial_number"`
|
|
ValidFrom time.Time `json:"valid_from" bson:"valid_from"`
|
|
ValidTo time.Time `json:"valid_to" bson:"valid_to"`
|
|
IsRoot bool `json:"is_root" bson:"is_root"`
|
|
CreatedAt time.Time `json:"created_at" bson:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at" bson:"updated_at"`
|
|
}
|
|
|
|
type CreateCARequest struct {
|
|
Name string `json:"name" binding:"required"`
|
|
CommonName string `json:"common_name" binding:"required"`
|
|
Organization string `json:"organization" binding:"required"`
|
|
OrganizationalUnit string `json:"organization_unit" binding:"required"`
|
|
Country string `json:"country" binding:"required"`
|
|
Province string `json:"province"`
|
|
Locality string `json:"locality"`
|
|
StreetAddress string `json:"street_address"`
|
|
PostalCode string `json:"postal_code"`
|
|
Email string `json:"email" binding:"omitempty,email"` // omitempty permet les chaînes vides
|
|
KeySize int `json:"key_size" binding:"required,min=2048"`
|
|
ValidYears int `json:"valid_years" binding:"required,min=1,max=20"`
|
|
IsRoot bool `json:"is_root"`
|
|
}
|
|
|
|
type UpdateCARequest struct {
|
|
Name string `json:"name"`
|
|
Organization string `json:"organization"`
|
|
OrganizationalUnit string `json:"organization_unit"`
|
|
Email string `json:"email"`
|
|
}
|