package fleet
type ResourceCreationLimitPolicy struct {
PolicyPeriodInMinutes int `json:"policy_period_in_minutes" validate:"gte=1,lte=60"`
NewSessionsPerCreator int `json:"new_sessions_per_creator" validate:"gte=1,lte=60"`
}
type ProcessConfiguration struct {
LaunchPath string `json:"launch_path" validate:"startswith=/local/app/|startswith=c:/local/app/|startswith=C:/local/app/,min=0,max=1024"`
Parameters string `json:"parameters" validate:"launchParameters,min=0,max=1024"`
ConcurrentExecutions int `json:"concurrent_executions" validate:"gte=1,lte=50"`
}
type RuntimeConfiguration struct {
ServerSessionActivationTimeoutSeconds int `json:"server_session_activation_timeout_seconds" validate:"gte=1,lte=600" default:"600"`
MaxConcurrentServerSessionsPerProcess int `json:"max_concurrent_server_sessions_per_process" validate:"gte=1,lte=50" default:"1"`
ProcessConfigurations []ProcessConfiguration `json:"process_configurations" validate:"required,dive,min=1,max=50"`
}
type IpPermission struct {
Protocol string `json:"protocol" validate:"oneof=TCP UDP"`
IpRange string `json:"ip_range" validate:"cidr"`
FromPort int32 `json:"from_port" validate:"gte=1025,lte=60000"`
ToPort int32 `json:"to_port" validate:"gte=1025,lte=60000,gtefield=FromPort"`
}
type Fleet struct {
InstanceType string `json:"instance_type"`
FleetId string `json:"fleet_id"`
Name string `json:"name"`
Description string `json:"description"`
Region string `json:"region"`
State string `json:"state"`
BuildId string `json:"build_id"`
Bandwidth int `json:"bandwidth"`
BandwidthShareType string `json:"bandwidth_share_type"`
InstanceSpecification string `json:"instance_specification"`
OperatingSystem string `json:"operating_system"`
ServerSessionProtectionPolicy string `json:"server_session_protection_policy"`
ServerSessionProtectionTimeLimitMinutes int `json:"server_session_protection_time_limit_minutes"`
EnableAutoScaling bool `json:"enable_auto_scaling"`
ScalingIntervalMinutes int `json:"scaling_interval_minutes"`
CreationTime string `json:"creation_time"`
UpdateTime string `json:"update_time"`
ResourceCreationLimitPolicy ResourceCreationLimitPolicy `json:"resource_creation_limit_policy"`
EnterpriseProjectId string `json:"enterprise_project_id"`
InstanceTags []InstanceTag `json:"instance_tags,omitempty"`
VpcName string `json:"vpc_name"`
SubnetName string `json:"subnet_name"`
SecurityGroupName string `json:"security_group_name"`
SecurityGroupNames []string `json:"security_group_names"`
FleetStateReason string `json:"fleet_state_reason"`
}
type InstanceTag struct {
Key string `json:"key" validate:"required,min=1,max=36"`
Value string `json:"value" validate:"min=0,max=36"`
}
type AvailableZones struct {
AvailableZoneName string `json:"available_zone_name"`
AvailableZoneId string `json:"available_zone_id"`
}