18562: Rename config to AlwaysUsePreemptibleInstances.
[arvados.git] / sdk / go / arvados / config.go
index 403d501b4153af489e207fbfe4ba53e194655f78..e0e0a30f723fa38f00e1394c49b4230c650152e9 100644 (file)
@@ -63,11 +63,26 @@ type WebDAVCacheConfig struct {
        MaxBlockEntries      int
        MaxCollectionEntries int
        MaxCollectionBytes   int64
-       MaxPermissionEntries int
        MaxUUIDEntries       int
        MaxSessions          int
 }
 
+type UploadDownloadPermission struct {
+       Upload   bool
+       Download bool
+}
+
+type UploadDownloadRolePermissions struct {
+       User  UploadDownloadPermission
+       Admin UploadDownloadPermission
+}
+
+type ManagedProperties map[string]struct {
+       Value     interface{}
+       Function  string
+       Protected bool
+}
+
 type Cluster struct {
        ClusterID       string `json:"-"`
        ManagementToken string
@@ -93,6 +108,7 @@ type Cluster struct {
                WebsocketClientEventQueue      int
                WebsocketServerEventQueue      int
                KeepServiceRequestTimeout      Duration
+               VocabularyPath                 string
        }
        AuditLogs struct {
                MaxAge             Duration
@@ -100,23 +116,19 @@ type Cluster struct {
                UnloggedAttributes StringSet
        }
        Collections struct {
-               BlobSigning              bool
-               BlobSigningKey           string
-               BlobSigningTTL           Duration
-               BlobTrash                bool
-               BlobTrashLifetime        Duration
-               BlobTrashCheckInterval   Duration
-               BlobTrashConcurrency     int
-               BlobDeleteConcurrency    int
-               BlobReplicateConcurrency int
-               CollectionVersioning     bool
-               DefaultTrashLifetime     Duration
-               DefaultReplication       int
-               ManagedProperties        map[string]struct {
-                       Value     interface{}
-                       Function  string
-                       Protected bool
-               }
+               BlobSigning                  bool
+               BlobSigningKey               string
+               BlobSigningTTL               Duration
+               BlobTrash                    bool
+               BlobTrashLifetime            Duration
+               BlobTrashCheckInterval       Duration
+               BlobTrashConcurrency         int
+               BlobDeleteConcurrency        int
+               BlobReplicateConcurrency     int
+               CollectionVersioning         bool
+               DefaultTrashLifetime         Duration
+               DefaultReplication           int
+               ManagedProperties            ManagedProperties
                PreserveVersionIfIdle        Duration
                TrashSweepInterval           Duration
                TrustAllContent              bool
@@ -128,8 +140,13 @@ type Cluster struct {
                BalanceCollectionBatch   int
                BalanceCollectionBuffers int
                BalanceTimeout           Duration
+               BalanceUpdateLimit       int
 
                WebDAVCache WebDAVCacheConfig
+
+               KeepproxyPermission UploadDownloadRolePermissions
+               WebDAVPermission    UploadDownloadRolePermissions
+               WebDAVLogEvents     bool
        }
        Git struct {
                GitCommand   string
@@ -176,11 +193,6 @@ type Cluster struct {
                        Service            string
                        DefaultEmailDomain string
                }
-               SSO struct {
-                       Enable            bool
-                       ProviderAppID     string
-                       ProviderAppSecret string
-               }
                Test struct {
                        Enable bool
                        Users  map[string]TestUser
@@ -211,6 +223,7 @@ type Cluster struct {
                Insecure    bool
        }
        Users struct {
+               ActivatedUsersAreVisibleToOthers      bool
                AnonymousUserToken                    string
                AdminNotifierEmailFrom                string
                AutoAdminFirstUser                    bool
@@ -224,12 +237,15 @@ type Cluster struct {
                NewUserNotificationRecipients         StringSet
                NewUsersAreActive                     bool
                UserNotifierEmailFrom                 string
+               UserNotifierEmailBcc                  StringSet
                UserProfileNotificationAddress        string
                PreferDomainForUsername               string
                UserSetupMailText                     string
+               RoleGroupsVisibleToAll                bool
        }
-       Volumes   map[string]Volume
-       Workbench struct {
+       StorageClasses map[string]StorageClassConfig
+       Volumes        map[string]Volume
+       Workbench      struct {
                ActivationContactLink            string
                APIClientConnectTimeout          Duration
                APIClientReceiveTimeout          Duration
@@ -262,7 +278,6 @@ type Cluster struct {
                        Options              map[string]struct{}
                }
                UserProfileFormMessage string
-               VocabularyURL          string
                WelcomePageHTML        string
                InactivePageHTML       string
                SSHHelpPageHTML        string
@@ -271,6 +286,11 @@ type Cluster struct {
        }
 }
 
+type StorageClassConfig struct {
+       Default  bool
+       Priority int
+}
+
 type Volume struct {
        AccessViaHosts   map[URL]VolumeAccess
        ReadOnly         bool
@@ -295,6 +315,7 @@ type S3VolumeDriverParameters struct {
        ReadTimeout        Duration
        RaceWindow         Duration
        UnsafeDelete       bool
+       PrefixLength       int
 }
 
 type AzureVolumeDriverParameters struct {
@@ -320,6 +341,7 @@ type Services struct {
        Composer       Service
        Controller     Service
        DispatchCloud  Service
+       DispatchLSF    Service
        GitHTTP        Service
        GitSSH         Service
        Health         Service
@@ -327,7 +349,6 @@ type Services struct {
        Keepproxy      Service
        Keepstore      Service
        RailsAPI       Service
-       SSO            Service
        WebDAVDownload Service
        WebDAV         Service
        WebShell       Service
@@ -403,21 +424,23 @@ type InstanceType struct {
 }
 
 type ContainersConfig struct {
-       CloudVMs                    CloudVMsConfig
-       CrunchRunCommand            string
-       CrunchRunArgumentsList      []string
-       DefaultKeepCacheRAM         ByteSize
-       DispatchPrivateKey          string
-       LogReuseDecisions           bool
-       MaxComputeVMs               int
-       MaxDispatchAttempts         int
-       MaxRetryAttempts            int
-       MinRetryPeriod              Duration
-       ReserveExtraRAM             ByteSize
-       StaleLockTimeout            Duration
-       SupportedDockerImageFormats StringSet
-       UsePreemptibleInstances     bool
-       RuntimeEngine               string
+       CloudVMs                      CloudVMsConfig
+       CrunchRunCommand              string
+       CrunchRunArgumentsList        []string
+       DefaultKeepCacheRAM           ByteSize
+       DispatchPrivateKey            string
+       LogReuseDecisions             bool
+       MaxComputeVMs                 int
+       MaxDispatchAttempts           int
+       MaxRetryAttempts              int
+       MinRetryPeriod                Duration
+       ReserveExtraRAM               ByteSize
+       StaleLockTimeout              Duration
+       SupportedDockerImageFormats   StringSet
+       AlwaysUsePreemptibleInstances bool
+       RuntimeEngine                 string
+       LocalKeepBlobBuffersPerVCPU   int
+       LocalKeepLogsToContainerLog   string
 
        JobsAPI struct {
                Enable         string
@@ -453,6 +476,10 @@ type ContainersConfig struct {
                        AssignNodeHostname     string
                }
        }
+       LSF struct {
+               BsubSudoUser      string
+               BsubArgumentsList []string
+       }
 }
 
 type CloudVMsConfig struct {
@@ -589,6 +616,7 @@ const (
        ServiceNameRailsAPI      ServiceName = "arvados-api-server"
        ServiceNameController    ServiceName = "arvados-controller"
        ServiceNameDispatchCloud ServiceName = "arvados-dispatch-cloud"
+       ServiceNameDispatchLSF   ServiceName = "arvados-dispatch-lsf"
        ServiceNameHealth        ServiceName = "arvados-health"
        ServiceNameWorkbench1    ServiceName = "arvados-workbench1"
        ServiceNameWorkbench2    ServiceName = "arvados-workbench2"
@@ -606,6 +634,7 @@ func (svcs Services) Map() map[ServiceName]Service {
                ServiceNameRailsAPI:      svcs.RailsAPI,
                ServiceNameController:    svcs.Controller,
                ServiceNameDispatchCloud: svcs.DispatchCloud,
+               ServiceNameDispatchLSF:   svcs.DispatchLSF,
                ServiceNameHealth:        svcs.Health,
                ServiceNameWorkbench1:    svcs.Workbench1,
                ServiceNameWorkbench2:    svcs.Workbench2,