package arvados
import (
+ "crypto/tls"
"encoding/json"
"errors"
"fmt"
DisabledAPIs StringSet
MaxIndexDatabaseRead int
MaxItemsPerResponse int
+ MaxConcurrentRailsRequests int
MaxConcurrentRequests int
+ MaxQueuedRequests int
+ MaxQueueTimeForLockRequests Duration
+ LogCreateRequestFraction float64
MaxKeepBlobBuffers int
MaxRequestAmplification int
MaxRequestSize int
FreezeProjectRequiresDescription bool
FreezeProjectRequiresProperties StringSet
UnfreezeProjectRequiresAdmin bool
+ LockBeforeUpdate bool
}
AuditLogs struct {
MaxAge Duration
URL URL
StartTLS bool
InsecureTLS bool
+ MinTLSVersion TLSVersion
StripDomain string
AppendDomain string
SearchAttribute string
EmailFrom string
}
SystemLogs struct {
- LogLevel string
- Format string
- MaxRequestLogParamsSize int
+ LogLevel string
+ Format string
+ MaxRequestLogParamsSize int
+ RequestQueueDumpDirectory string
}
TLS struct {
Certificate string
RoleGroupsVisibleToAll bool
CanCreateRoleGroups bool
ActivityLoggingPeriod Duration
+ SyncIgnoredGroups []string
+ SyncRequiredGroups []string
+ SyncUserAccounts bool
+ SyncUserAPITokens bool
+ SyncUserGroups bool
+ SyncUserSSHKeys bool
}
StorageClasses map[string]StorageClassConfig
Volumes map[string]Volume
SSHHelpPageHTML string
SSHHelpHostSuffix string
IdleTimeout Duration
- BannerURL string
+ BannerUUID string
}
}
Bucket string
LocationConstraint bool
V2Signature bool
- UseAWSS3v2Driver bool
IndexPageSize int
ConnectTimeout Duration
ReadTimeout Duration
return (*url.URL)(&su).String()
}
+type TLSVersion uint16
+
+func (v TLSVersion) MarshalText() ([]byte, error) {
+ switch v {
+ case 0:
+ return []byte{}, nil
+ case tls.VersionTLS10:
+ return []byte("1.0"), nil
+ case tls.VersionTLS11:
+ return []byte("1.1"), nil
+ case tls.VersionTLS12:
+ return []byte("1.2"), nil
+ case tls.VersionTLS13:
+ return []byte("1.3"), nil
+ default:
+ return nil, fmt.Errorf("unsupported TLSVersion %x", v)
+ }
+}
+
+func (v *TLSVersion) UnmarshalJSON(text []byte) error {
+ if len(text) > 0 && text[0] == '"' {
+ var s string
+ err := json.Unmarshal(text, &s)
+ if err != nil {
+ return err
+ }
+ text = []byte(s)
+ }
+ switch string(text) {
+ case "":
+ *v = 0
+ case "1.0":
+ *v = tls.VersionTLS10
+ case "1.1":
+ *v = tls.VersionTLS11
+ case "1.2":
+ *v = tls.VersionTLS12
+ case "1.3":
+ *v = tls.VersionTLS13
+ default:
+ return fmt.Errorf("unsupported TLSVersion %q", text)
+ }
+ return nil
+}
+
type ServiceInstance struct {
ListenURL URL
Rendezvous string `json:",omitempty"`
CrunchRunCommand string
CrunchRunArgumentsList []string
DefaultKeepCacheRAM ByteSize
- DefaultKeepCacheDisk ByteSize
DispatchPrivateKey string
LogReuseDecisions bool
- MaxComputeVMs int
MaxDispatchAttempts int
MaxRetryAttempts int
MinRetryPeriod Duration
SupportedDockerImageFormats StringSet
AlwaysUsePreemptibleInstances bool
PreemptiblePriceFactor float64
+ MaximumPriceFactor float64
RuntimeEngine string
LocalKeepBlobBuffersPerVCPU int
LocalKeepLogsToContainerLog string
Enable bool
BootProbeCommand string
+ InstanceInitCommand string
DeployRunnerBinary string
+ DeployPublicKey bool
ImageID string
MaxCloudOpsPerSecond int
MaxProbesPerSecond int
MaxConcurrentInstanceCreateOps int
+ MaxInstances int
+ InitialQuotaEstimate int
+ SupervisorFraction float64
PollInterval Duration
ProbeInterval Duration
SSHPort string