github.com/Files-com/files-sdk-go/v2@v2.1.2/remoteserver.go (about)

     1  package files_sdk
     2  
     3  import (
     4  	"encoding/json"
     5  
     6  	lib "github.com/Files-com/files-sdk-go/v2/lib"
     7  )
     8  
     9  type RemoteServer struct {
    10  	Id                                int64  `json:"id,omitempty" path:"id,omitempty" url:"id,omitempty"`
    11  	Disabled                          *bool  `json:"disabled,omitempty" path:"disabled,omitempty" url:"disabled,omitempty"`
    12  	AuthenticationMethod              string `json:"authentication_method,omitempty" path:"authentication_method,omitempty" url:"authentication_method,omitempty"`
    13  	Hostname                          string `json:"hostname,omitempty" path:"hostname,omitempty" url:"hostname,omitempty"`
    14  	RemoteHomePath                    string `json:"remote_home_path,omitempty" path:"remote_home_path,omitempty" url:"remote_home_path,omitempty"`
    15  	Name                              string `json:"name,omitempty" path:"name,omitempty" url:"name,omitempty"`
    16  	Port                              int64  `json:"port,omitempty" path:"port,omitempty" url:"port,omitempty"`
    17  	MaxConnections                    int64  `json:"max_connections,omitempty" path:"max_connections,omitempty" url:"max_connections,omitempty"`
    18  	PinToSiteRegion                   *bool  `json:"pin_to_site_region,omitempty" path:"pin_to_site_region,omitempty" url:"pin_to_site_region,omitempty"`
    19  	PinnedRegion                      string `json:"pinned_region,omitempty" path:"pinned_region,omitempty" url:"pinned_region,omitempty"`
    20  	S3Bucket                          string `json:"s3_bucket,omitempty" path:"s3_bucket,omitempty" url:"s3_bucket,omitempty"`
    21  	S3Region                          string `json:"s3_region,omitempty" path:"s3_region,omitempty" url:"s3_region,omitempty"`
    22  	AwsAccessKey                      string `json:"aws_access_key,omitempty" path:"aws_access_key,omitempty" url:"aws_access_key,omitempty"`
    23  	ServerCertificate                 string `json:"server_certificate,omitempty" path:"server_certificate,omitempty" url:"server_certificate,omitempty"`
    24  	ServerHostKey                     string `json:"server_host_key,omitempty" path:"server_host_key,omitempty" url:"server_host_key,omitempty"`
    25  	ServerType                        string `json:"server_type,omitempty" path:"server_type,omitempty" url:"server_type,omitempty"`
    26  	Ssl                               string `json:"ssl,omitempty" path:"ssl,omitempty" url:"ssl,omitempty"`
    27  	Username                          string `json:"username,omitempty" path:"username,omitempty" url:"username,omitempty"`
    28  	GoogleCloudStorageBucket          string `json:"google_cloud_storage_bucket,omitempty" path:"google_cloud_storage_bucket,omitempty" url:"google_cloud_storage_bucket,omitempty"`
    29  	GoogleCloudStorageProjectId       string `json:"google_cloud_storage_project_id,omitempty" path:"google_cloud_storage_project_id,omitempty" url:"google_cloud_storage_project_id,omitempty"`
    30  	BackblazeB2S3Endpoint             string `json:"backblaze_b2_s3_endpoint,omitempty" path:"backblaze_b2_s3_endpoint,omitempty" url:"backblaze_b2_s3_endpoint,omitempty"`
    31  	BackblazeB2Bucket                 string `json:"backblaze_b2_bucket,omitempty" path:"backblaze_b2_bucket,omitempty" url:"backblaze_b2_bucket,omitempty"`
    32  	WasabiBucket                      string `json:"wasabi_bucket,omitempty" path:"wasabi_bucket,omitempty" url:"wasabi_bucket,omitempty"`
    33  	WasabiRegion                      string `json:"wasabi_region,omitempty" path:"wasabi_region,omitempty" url:"wasabi_region,omitempty"`
    34  	WasabiAccessKey                   string `json:"wasabi_access_key,omitempty" path:"wasabi_access_key,omitempty" url:"wasabi_access_key,omitempty"`
    35  	RackspaceUsername                 string `json:"rackspace_username,omitempty" path:"rackspace_username,omitempty" url:"rackspace_username,omitempty"`
    36  	RackspaceRegion                   string `json:"rackspace_region,omitempty" path:"rackspace_region,omitempty" url:"rackspace_region,omitempty"`
    37  	RackspaceContainer                string `json:"rackspace_container,omitempty" path:"rackspace_container,omitempty" url:"rackspace_container,omitempty"`
    38  	AuthSetupLink                     string `json:"auth_setup_link,omitempty" path:"auth_setup_link,omitempty" url:"auth_setup_link,omitempty"`
    39  	AuthStatus                        string `json:"auth_status,omitempty" path:"auth_status,omitempty" url:"auth_status,omitempty"`
    40  	AuthAccountName                   string `json:"auth_account_name,omitempty" path:"auth_account_name,omitempty" url:"auth_account_name,omitempty"`
    41  	OneDriveAccountType               string `json:"one_drive_account_type,omitempty" path:"one_drive_account_type,omitempty" url:"one_drive_account_type,omitempty"`
    42  	AzureBlobStorageAccount           string `json:"azure_blob_storage_account,omitempty" path:"azure_blob_storage_account,omitempty" url:"azure_blob_storage_account,omitempty"`
    43  	AzureBlobStorageSasToken          string `json:"azure_blob_storage_sas_token,omitempty" path:"azure_blob_storage_sas_token,omitempty" url:"azure_blob_storage_sas_token,omitempty"`
    44  	AzureBlobStorageContainer         string `json:"azure_blob_storage_container,omitempty" path:"azure_blob_storage_container,omitempty" url:"azure_blob_storage_container,omitempty"`
    45  	AzureFilesStorageAccount          string `json:"azure_files_storage_account,omitempty" path:"azure_files_storage_account,omitempty" url:"azure_files_storage_account,omitempty"`
    46  	AzureFilesStorageSasToken         string `json:"azure_files_storage_sas_token,omitempty" path:"azure_files_storage_sas_token,omitempty" url:"azure_files_storage_sas_token,omitempty"`
    47  	AzureFilesStorageShareName        string `json:"azure_files_storage_share_name,omitempty" path:"azure_files_storage_share_name,omitempty" url:"azure_files_storage_share_name,omitempty"`
    48  	S3CompatibleBucket                string `json:"s3_compatible_bucket,omitempty" path:"s3_compatible_bucket,omitempty" url:"s3_compatible_bucket,omitempty"`
    49  	S3CompatibleEndpoint              string `json:"s3_compatible_endpoint,omitempty" path:"s3_compatible_endpoint,omitempty" url:"s3_compatible_endpoint,omitempty"`
    50  	S3CompatibleRegion                string `json:"s3_compatible_region,omitempty" path:"s3_compatible_region,omitempty" url:"s3_compatible_region,omitempty"`
    51  	S3CompatibleAccessKey             string `json:"s3_compatible_access_key,omitempty" path:"s3_compatible_access_key,omitempty" url:"s3_compatible_access_key,omitempty"`
    52  	EnableDedicatedIps                *bool  `json:"enable_dedicated_ips,omitempty" path:"enable_dedicated_ips,omitempty" url:"enable_dedicated_ips,omitempty"`
    53  	FilesAgentPermissionSet           string `json:"files_agent_permission_set,omitempty" path:"files_agent_permission_set,omitempty" url:"files_agent_permission_set,omitempty"`
    54  	FilesAgentRoot                    string `json:"files_agent_root,omitempty" path:"files_agent_root,omitempty" url:"files_agent_root,omitempty"`
    55  	FilesAgentApiToken                string `json:"files_agent_api_token,omitempty" path:"files_agent_api_token,omitempty" url:"files_agent_api_token,omitempty"`
    56  	FilebaseBucket                    string `json:"filebase_bucket,omitempty" path:"filebase_bucket,omitempty" url:"filebase_bucket,omitempty"`
    57  	FilebaseAccessKey                 string `json:"filebase_access_key,omitempty" path:"filebase_access_key,omitempty" url:"filebase_access_key,omitempty"`
    58  	CloudflareBucket                  string `json:"cloudflare_bucket,omitempty" path:"cloudflare_bucket,omitempty" url:"cloudflare_bucket,omitempty"`
    59  	CloudflareAccessKey               string `json:"cloudflare_access_key,omitempty" path:"cloudflare_access_key,omitempty" url:"cloudflare_access_key,omitempty"`
    60  	CloudflareEndpoint                string `json:"cloudflare_endpoint,omitempty" path:"cloudflare_endpoint,omitempty" url:"cloudflare_endpoint,omitempty"`
    61  	DropboxTeams                      *bool  `json:"dropbox_teams,omitempty" path:"dropbox_teams,omitempty" url:"dropbox_teams,omitempty"`
    62  	LinodeBucket                      string `json:"linode_bucket,omitempty" path:"linode_bucket,omitempty" url:"linode_bucket,omitempty"`
    63  	LinodeAccessKey                   string `json:"linode_access_key,omitempty" path:"linode_access_key,omitempty" url:"linode_access_key,omitempty"`
    64  	LinodeRegion                      string `json:"linode_region,omitempty" path:"linode_region,omitempty" url:"linode_region,omitempty"`
    65  	AwsSecretKey                      string `json:"aws_secret_key,omitempty" path:"aws_secret_key,omitempty" url:"aws_secret_key,omitempty"`
    66  	Password                          string `json:"password,omitempty" path:"password,omitempty" url:"password,omitempty"`
    67  	PrivateKey                        string `json:"private_key,omitempty" path:"private_key,omitempty" url:"private_key,omitempty"`
    68  	PrivateKeyPassphrase              string `json:"private_key_passphrase,omitempty" path:"private_key_passphrase,omitempty" url:"private_key_passphrase,omitempty"`
    69  	SslCertificate                    string `json:"ssl_certificate,omitempty" path:"ssl_certificate,omitempty" url:"ssl_certificate,omitempty"`
    70  	GoogleCloudStorageCredentialsJson string `json:"google_cloud_storage_credentials_json,omitempty" path:"google_cloud_storage_credentials_json,omitempty" url:"google_cloud_storage_credentials_json,omitempty"`
    71  	WasabiSecretKey                   string `json:"wasabi_secret_key,omitempty" path:"wasabi_secret_key,omitempty" url:"wasabi_secret_key,omitempty"`
    72  	BackblazeB2KeyId                  string `json:"backblaze_b2_key_id,omitempty" path:"backblaze_b2_key_id,omitempty" url:"backblaze_b2_key_id,omitempty"`
    73  	BackblazeB2ApplicationKey         string `json:"backblaze_b2_application_key,omitempty" path:"backblaze_b2_application_key,omitempty" url:"backblaze_b2_application_key,omitempty"`
    74  	RackspaceApiKey                   string `json:"rackspace_api_key,omitempty" path:"rackspace_api_key,omitempty" url:"rackspace_api_key,omitempty"`
    75  	ResetAuthentication               *bool  `json:"reset_authentication,omitempty" path:"reset_authentication,omitempty" url:"reset_authentication,omitempty"`
    76  	AzureBlobStorageAccessKey         string `json:"azure_blob_storage_access_key,omitempty" path:"azure_blob_storage_access_key,omitempty" url:"azure_blob_storage_access_key,omitempty"`
    77  	AzureFilesStorageAccessKey        string `json:"azure_files_storage_access_key,omitempty" path:"azure_files_storage_access_key,omitempty" url:"azure_files_storage_access_key,omitempty"`
    78  	S3CompatibleSecretKey             string `json:"s3_compatible_secret_key,omitempty" path:"s3_compatible_secret_key,omitempty" url:"s3_compatible_secret_key,omitempty"`
    79  	FilebaseSecretKey                 string `json:"filebase_secret_key,omitempty" path:"filebase_secret_key,omitempty" url:"filebase_secret_key,omitempty"`
    80  	CloudflareSecretKey               string `json:"cloudflare_secret_key,omitempty" path:"cloudflare_secret_key,omitempty" url:"cloudflare_secret_key,omitempty"`
    81  	LinodeSecretKey                   string `json:"linode_secret_key,omitempty" path:"linode_secret_key,omitempty" url:"linode_secret_key,omitempty"`
    82  }
    83  
    84  func (r RemoteServer) Identifier() interface{} {
    85  	return r.Id
    86  }
    87  
    88  type RemoteServerCollection []RemoteServer
    89  
    90  type RemoteServerServerCertificateEnum string
    91  
    92  func (u RemoteServerServerCertificateEnum) String() string {
    93  	return string(u)
    94  }
    95  
    96  func (u RemoteServerServerCertificateEnum) Enum() map[string]RemoteServerServerCertificateEnum {
    97  	return map[string]RemoteServerServerCertificateEnum{
    98  		"require_match": RemoteServerServerCertificateEnum("require_match"),
    99  		"allow_any":     RemoteServerServerCertificateEnum("allow_any"),
   100  	}
   101  }
   102  
   103  type RemoteServerServerTypeEnum string
   104  
   105  func (u RemoteServerServerTypeEnum) String() string {
   106  	return string(u)
   107  }
   108  
   109  func (u RemoteServerServerTypeEnum) Enum() map[string]RemoteServerServerTypeEnum {
   110  	return map[string]RemoteServerServerTypeEnum{
   111  		"ftp":                  RemoteServerServerTypeEnum("ftp"),
   112  		"sftp":                 RemoteServerServerTypeEnum("sftp"),
   113  		"s3":                   RemoteServerServerTypeEnum("s3"),
   114  		"google_cloud_storage": RemoteServerServerTypeEnum("google_cloud_storage"),
   115  		"webdav":               RemoteServerServerTypeEnum("webdav"),
   116  		"wasabi":               RemoteServerServerTypeEnum("wasabi"),
   117  		"backblaze_b2":         RemoteServerServerTypeEnum("backblaze_b2"),
   118  		"one_drive":            RemoteServerServerTypeEnum("one_drive"),
   119  		"rackspace":            RemoteServerServerTypeEnum("rackspace"),
   120  		"box":                  RemoteServerServerTypeEnum("box"),
   121  		"dropbox":              RemoteServerServerTypeEnum("dropbox"),
   122  		"google_drive":         RemoteServerServerTypeEnum("google_drive"),
   123  		"azure":                RemoteServerServerTypeEnum("azure"),
   124  		"sharepoint":           RemoteServerServerTypeEnum("sharepoint"),
   125  		"s3_compatible":        RemoteServerServerTypeEnum("s3_compatible"),
   126  		"azure_files":          RemoteServerServerTypeEnum("azure_files"),
   127  		"files_agent":          RemoteServerServerTypeEnum("files_agent"),
   128  		"filebase":             RemoteServerServerTypeEnum("filebase"),
   129  		"cloudflare":           RemoteServerServerTypeEnum("cloudflare"),
   130  		"linode":               RemoteServerServerTypeEnum("linode"),
   131  	}
   132  }
   133  
   134  type RemoteServerSslEnum string
   135  
   136  func (u RemoteServerSslEnum) String() string {
   137  	return string(u)
   138  }
   139  
   140  func (u RemoteServerSslEnum) Enum() map[string]RemoteServerSslEnum {
   141  	return map[string]RemoteServerSslEnum{
   142  		"if_available":     RemoteServerSslEnum("if_available"),
   143  		"require":          RemoteServerSslEnum("require"),
   144  		"require_implicit": RemoteServerSslEnum("require_implicit"),
   145  		"never":            RemoteServerSslEnum("never"),
   146  	}
   147  }
   148  
   149  type RemoteServerOneDriveAccountTypeEnum string
   150  
   151  func (u RemoteServerOneDriveAccountTypeEnum) String() string {
   152  	return string(u)
   153  }
   154  
   155  func (u RemoteServerOneDriveAccountTypeEnum) Enum() map[string]RemoteServerOneDriveAccountTypeEnum {
   156  	return map[string]RemoteServerOneDriveAccountTypeEnum{
   157  		"personal":       RemoteServerOneDriveAccountTypeEnum("personal"),
   158  		"business_other": RemoteServerOneDriveAccountTypeEnum("business_other"),
   159  	}
   160  }
   161  
   162  type RemoteServerFilesAgentPermissionSetEnum string
   163  
   164  func (u RemoteServerFilesAgentPermissionSetEnum) String() string {
   165  	return string(u)
   166  }
   167  
   168  func (u RemoteServerFilesAgentPermissionSetEnum) Enum() map[string]RemoteServerFilesAgentPermissionSetEnum {
   169  	return map[string]RemoteServerFilesAgentPermissionSetEnum{
   170  		"read_write": RemoteServerFilesAgentPermissionSetEnum("read_write"),
   171  		"read_only":  RemoteServerFilesAgentPermissionSetEnum("read_only"),
   172  		"write_only": RemoteServerFilesAgentPermissionSetEnum("write_only"),
   173  	}
   174  }
   175  
   176  type RemoteServerListParams struct {
   177  	ListParams
   178  }
   179  
   180  type RemoteServerFindParams struct {
   181  	Id int64 `url:"-,omitempty" required:"false" json:"-,omitempty" path:"id"`
   182  }
   183  
   184  type RemoteServerFindConfigurationFileParams struct {
   185  	Id int64 `url:"-,omitempty" required:"false" json:"-,omitempty" path:"id"`
   186  }
   187  
   188  type RemoteServerCreateParams struct {
   189  	AwsAccessKey                      string                                  `url:"aws_access_key,omitempty" required:"false" json:"aws_access_key,omitempty" path:"aws_access_key"`
   190  	AwsSecretKey                      string                                  `url:"aws_secret_key,omitempty" required:"false" json:"aws_secret_key,omitempty" path:"aws_secret_key"`
   191  	Password                          string                                  `url:"password,omitempty" required:"false" json:"password,omitempty" path:"password"`
   192  	PrivateKey                        string                                  `url:"private_key,omitempty" required:"false" json:"private_key,omitempty" path:"private_key"`
   193  	PrivateKeyPassphrase              string                                  `url:"private_key_passphrase,omitempty" required:"false" json:"private_key_passphrase,omitempty" path:"private_key_passphrase"`
   194  	SslCertificate                    string                                  `url:"ssl_certificate,omitempty" required:"false" json:"ssl_certificate,omitempty" path:"ssl_certificate"`
   195  	GoogleCloudStorageCredentialsJson string                                  `url:"google_cloud_storage_credentials_json,omitempty" required:"false" json:"google_cloud_storage_credentials_json,omitempty" path:"google_cloud_storage_credentials_json"`
   196  	WasabiAccessKey                   string                                  `url:"wasabi_access_key,omitempty" required:"false" json:"wasabi_access_key,omitempty" path:"wasabi_access_key"`
   197  	WasabiSecretKey                   string                                  `url:"wasabi_secret_key,omitempty" required:"false" json:"wasabi_secret_key,omitempty" path:"wasabi_secret_key"`
   198  	BackblazeB2KeyId                  string                                  `url:"backblaze_b2_key_id,omitempty" required:"false" json:"backblaze_b2_key_id,omitempty" path:"backblaze_b2_key_id"`
   199  	BackblazeB2ApplicationKey         string                                  `url:"backblaze_b2_application_key,omitempty" required:"false" json:"backblaze_b2_application_key,omitempty" path:"backblaze_b2_application_key"`
   200  	RackspaceApiKey                   string                                  `url:"rackspace_api_key,omitempty" required:"false" json:"rackspace_api_key,omitempty" path:"rackspace_api_key"`
   201  	ResetAuthentication               *bool                                   `url:"reset_authentication,omitempty" required:"false" json:"reset_authentication,omitempty" path:"reset_authentication"`
   202  	AzureBlobStorageAccessKey         string                                  `url:"azure_blob_storage_access_key,omitempty" required:"false" json:"azure_blob_storage_access_key,omitempty" path:"azure_blob_storage_access_key"`
   203  	AzureFilesStorageAccessKey        string                                  `url:"azure_files_storage_access_key,omitempty" required:"false" json:"azure_files_storage_access_key,omitempty" path:"azure_files_storage_access_key"`
   204  	Hostname                          string                                  `url:"hostname,omitempty" required:"false" json:"hostname,omitempty" path:"hostname"`
   205  	Name                              string                                  `url:"name,omitempty" required:"false" json:"name,omitempty" path:"name"`
   206  	MaxConnections                    int64                                   `url:"max_connections,omitempty" required:"false" json:"max_connections,omitempty" path:"max_connections"`
   207  	PinToSiteRegion                   *bool                                   `url:"pin_to_site_region,omitempty" required:"false" json:"pin_to_site_region,omitempty" path:"pin_to_site_region"`
   208  	Port                              int64                                   `url:"port,omitempty" required:"false" json:"port,omitempty" path:"port"`
   209  	S3Bucket                          string                                  `url:"s3_bucket,omitempty" required:"false" json:"s3_bucket,omitempty" path:"s3_bucket"`
   210  	S3Region                          string                                  `url:"s3_region,omitempty" required:"false" json:"s3_region,omitempty" path:"s3_region"`
   211  	ServerCertificate                 RemoteServerServerCertificateEnum       `url:"server_certificate,omitempty" required:"false" json:"server_certificate,omitempty" path:"server_certificate"`
   212  	ServerHostKey                     string                                  `url:"server_host_key,omitempty" required:"false" json:"server_host_key,omitempty" path:"server_host_key"`
   213  	ServerType                        RemoteServerServerTypeEnum              `url:"server_type,omitempty" required:"false" json:"server_type,omitempty" path:"server_type"`
   214  	Ssl                               RemoteServerSslEnum                     `url:"ssl,omitempty" required:"false" json:"ssl,omitempty" path:"ssl"`
   215  	Username                          string                                  `url:"username,omitempty" required:"false" json:"username,omitempty" path:"username"`
   216  	GoogleCloudStorageBucket          string                                  `url:"google_cloud_storage_bucket,omitempty" required:"false" json:"google_cloud_storage_bucket,omitempty" path:"google_cloud_storage_bucket"`
   217  	GoogleCloudStorageProjectId       string                                  `url:"google_cloud_storage_project_id,omitempty" required:"false" json:"google_cloud_storage_project_id,omitempty" path:"google_cloud_storage_project_id"`
   218  	BackblazeB2Bucket                 string                                  `url:"backblaze_b2_bucket,omitempty" required:"false" json:"backblaze_b2_bucket,omitempty" path:"backblaze_b2_bucket"`
   219  	BackblazeB2S3Endpoint             string                                  `url:"backblaze_b2_s3_endpoint,omitempty" required:"false" json:"backblaze_b2_s3_endpoint,omitempty" path:"backblaze_b2_s3_endpoint"`
   220  	WasabiBucket                      string                                  `url:"wasabi_bucket,omitempty" required:"false" json:"wasabi_bucket,omitempty" path:"wasabi_bucket"`
   221  	WasabiRegion                      string                                  `url:"wasabi_region,omitempty" required:"false" json:"wasabi_region,omitempty" path:"wasabi_region"`
   222  	RackspaceUsername                 string                                  `url:"rackspace_username,omitempty" required:"false" json:"rackspace_username,omitempty" path:"rackspace_username"`
   223  	RackspaceRegion                   string                                  `url:"rackspace_region,omitempty" required:"false" json:"rackspace_region,omitempty" path:"rackspace_region"`
   224  	RackspaceContainer                string                                  `url:"rackspace_container,omitempty" required:"false" json:"rackspace_container,omitempty" path:"rackspace_container"`
   225  	OneDriveAccountType               RemoteServerOneDriveAccountTypeEnum     `url:"one_drive_account_type,omitempty" required:"false" json:"one_drive_account_type,omitempty" path:"one_drive_account_type"`
   226  	AzureBlobStorageAccount           string                                  `url:"azure_blob_storage_account,omitempty" required:"false" json:"azure_blob_storage_account,omitempty" path:"azure_blob_storage_account"`
   227  	AzureBlobStorageContainer         string                                  `url:"azure_blob_storage_container,omitempty" required:"false" json:"azure_blob_storage_container,omitempty" path:"azure_blob_storage_container"`
   228  	AzureBlobStorageSasToken          string                                  `url:"azure_blob_storage_sas_token,omitempty" required:"false" json:"azure_blob_storage_sas_token,omitempty" path:"azure_blob_storage_sas_token"`
   229  	AzureFilesStorageAccount          string                                  `url:"azure_files_storage_account,omitempty" required:"false" json:"azure_files_storage_account,omitempty" path:"azure_files_storage_account"`
   230  	AzureFilesStorageShareName        string                                  `url:"azure_files_storage_share_name,omitempty" required:"false" json:"azure_files_storage_share_name,omitempty" path:"azure_files_storage_share_name"`
   231  	AzureFilesStorageSasToken         string                                  `url:"azure_files_storage_sas_token,omitempty" required:"false" json:"azure_files_storage_sas_token,omitempty" path:"azure_files_storage_sas_token"`
   232  	S3CompatibleBucket                string                                  `url:"s3_compatible_bucket,omitempty" required:"false" json:"s3_compatible_bucket,omitempty" path:"s3_compatible_bucket"`
   233  	S3CompatibleEndpoint              string                                  `url:"s3_compatible_endpoint,omitempty" required:"false" json:"s3_compatible_endpoint,omitempty" path:"s3_compatible_endpoint"`
   234  	S3CompatibleRegion                string                                  `url:"s3_compatible_region,omitempty" required:"false" json:"s3_compatible_region,omitempty" path:"s3_compatible_region"`
   235  	EnableDedicatedIps                *bool                                   `url:"enable_dedicated_ips,omitempty" required:"false" json:"enable_dedicated_ips,omitempty" path:"enable_dedicated_ips"`
   236  	S3CompatibleAccessKey             string                                  `url:"s3_compatible_access_key,omitempty" required:"false" json:"s3_compatible_access_key,omitempty" path:"s3_compatible_access_key"`
   237  	S3CompatibleSecretKey             string                                  `url:"s3_compatible_secret_key,omitempty" required:"false" json:"s3_compatible_secret_key,omitempty" path:"s3_compatible_secret_key"`
   238  	FilesAgentRoot                    string                                  `url:"files_agent_root,omitempty" required:"false" json:"files_agent_root,omitempty" path:"files_agent_root"`
   239  	FilesAgentPermissionSet           RemoteServerFilesAgentPermissionSetEnum `url:"files_agent_permission_set,omitempty" required:"false" json:"files_agent_permission_set,omitempty" path:"files_agent_permission_set"`
   240  	FilebaseAccessKey                 string                                  `url:"filebase_access_key,omitempty" required:"false" json:"filebase_access_key,omitempty" path:"filebase_access_key"`
   241  	FilebaseSecretKey                 string                                  `url:"filebase_secret_key,omitempty" required:"false" json:"filebase_secret_key,omitempty" path:"filebase_secret_key"`
   242  	FilebaseBucket                    string                                  `url:"filebase_bucket,omitempty" required:"false" json:"filebase_bucket,omitempty" path:"filebase_bucket"`
   243  	CloudflareAccessKey               string                                  `url:"cloudflare_access_key,omitempty" required:"false" json:"cloudflare_access_key,omitempty" path:"cloudflare_access_key"`
   244  	CloudflareSecretKey               string                                  `url:"cloudflare_secret_key,omitempty" required:"false" json:"cloudflare_secret_key,omitempty" path:"cloudflare_secret_key"`
   245  	CloudflareBucket                  string                                  `url:"cloudflare_bucket,omitempty" required:"false" json:"cloudflare_bucket,omitempty" path:"cloudflare_bucket"`
   246  	CloudflareEndpoint                string                                  `url:"cloudflare_endpoint,omitempty" required:"false" json:"cloudflare_endpoint,omitempty" path:"cloudflare_endpoint"`
   247  	DropboxTeams                      *bool                                   `url:"dropbox_teams,omitempty" required:"false" json:"dropbox_teams,omitempty" path:"dropbox_teams"`
   248  	LinodeAccessKey                   string                                  `url:"linode_access_key,omitempty" required:"false" json:"linode_access_key,omitempty" path:"linode_access_key"`
   249  	LinodeSecretKey                   string                                  `url:"linode_secret_key,omitempty" required:"false" json:"linode_secret_key,omitempty" path:"linode_secret_key"`
   250  	LinodeBucket                      string                                  `url:"linode_bucket,omitempty" required:"false" json:"linode_bucket,omitempty" path:"linode_bucket"`
   251  	LinodeRegion                      string                                  `url:"linode_region,omitempty" required:"false" json:"linode_region,omitempty" path:"linode_region"`
   252  }
   253  
   254  // Post local changes, check in, and download configuration file (used by some Remote Server integrations, such as the Files.com Agent)
   255  type RemoteServerConfigurationFileParams struct {
   256  	Id            int64  `url:"-,omitempty" required:"false" json:"-,omitempty" path:"id"`
   257  	ApiToken      string `url:"api_token,omitempty" required:"false" json:"api_token,omitempty" path:"api_token"`
   258  	PermissionSet string `url:"permission_set,omitempty" required:"false" json:"permission_set,omitempty" path:"permission_set"`
   259  	Root          string `url:"root,omitempty" required:"false" json:"root,omitempty" path:"root"`
   260  	Hostname      string `url:"hostname,omitempty" required:"false" json:"hostname,omitempty" path:"hostname"`
   261  	Port          int64  `url:"port,omitempty" required:"false" json:"port,omitempty" path:"port"`
   262  	Status        string `url:"status,omitempty" required:"false" json:"status,omitempty" path:"status"`
   263  	ConfigVersion string `url:"config_version,omitempty" required:"false" json:"config_version,omitempty" path:"config_version"`
   264  	PrivateKey    string `url:"private_key,omitempty" required:"false" json:"private_key,omitempty" path:"private_key"`
   265  	PublicKey     string `url:"public_key,omitempty" required:"false" json:"public_key,omitempty" path:"public_key"`
   266  	ServerHostKey string `url:"server_host_key,omitempty" required:"false" json:"server_host_key,omitempty" path:"server_host_key"`
   267  	Subdomain     string `url:"subdomain,omitempty" required:"false" json:"subdomain,omitempty" path:"subdomain"`
   268  }
   269  
   270  type RemoteServerUpdateParams struct {
   271  	Id                                int64                                   `url:"-,omitempty" required:"false" json:"-,omitempty" path:"id"`
   272  	AwsAccessKey                      string                                  `url:"aws_access_key,omitempty" required:"false" json:"aws_access_key,omitempty" path:"aws_access_key"`
   273  	AwsSecretKey                      string                                  `url:"aws_secret_key,omitempty" required:"false" json:"aws_secret_key,omitempty" path:"aws_secret_key"`
   274  	Password                          string                                  `url:"password,omitempty" required:"false" json:"password,omitempty" path:"password"`
   275  	PrivateKey                        string                                  `url:"private_key,omitempty" required:"false" json:"private_key,omitempty" path:"private_key"`
   276  	PrivateKeyPassphrase              string                                  `url:"private_key_passphrase,omitempty" required:"false" json:"private_key_passphrase,omitempty" path:"private_key_passphrase"`
   277  	SslCertificate                    string                                  `url:"ssl_certificate,omitempty" required:"false" json:"ssl_certificate,omitempty" path:"ssl_certificate"`
   278  	GoogleCloudStorageCredentialsJson string                                  `url:"google_cloud_storage_credentials_json,omitempty" required:"false" json:"google_cloud_storage_credentials_json,omitempty" path:"google_cloud_storage_credentials_json"`
   279  	WasabiAccessKey                   string                                  `url:"wasabi_access_key,omitempty" required:"false" json:"wasabi_access_key,omitempty" path:"wasabi_access_key"`
   280  	WasabiSecretKey                   string                                  `url:"wasabi_secret_key,omitempty" required:"false" json:"wasabi_secret_key,omitempty" path:"wasabi_secret_key"`
   281  	BackblazeB2KeyId                  string                                  `url:"backblaze_b2_key_id,omitempty" required:"false" json:"backblaze_b2_key_id,omitempty" path:"backblaze_b2_key_id"`
   282  	BackblazeB2ApplicationKey         string                                  `url:"backblaze_b2_application_key,omitempty" required:"false" json:"backblaze_b2_application_key,omitempty" path:"backblaze_b2_application_key"`
   283  	RackspaceApiKey                   string                                  `url:"rackspace_api_key,omitempty" required:"false" json:"rackspace_api_key,omitempty" path:"rackspace_api_key"`
   284  	ResetAuthentication               *bool                                   `url:"reset_authentication,omitempty" required:"false" json:"reset_authentication,omitempty" path:"reset_authentication"`
   285  	AzureBlobStorageAccessKey         string                                  `url:"azure_blob_storage_access_key,omitempty" required:"false" json:"azure_blob_storage_access_key,omitempty" path:"azure_blob_storage_access_key"`
   286  	AzureFilesStorageAccessKey        string                                  `url:"azure_files_storage_access_key,omitempty" required:"false" json:"azure_files_storage_access_key,omitempty" path:"azure_files_storage_access_key"`
   287  	Hostname                          string                                  `url:"hostname,omitempty" required:"false" json:"hostname,omitempty" path:"hostname"`
   288  	Name                              string                                  `url:"name,omitempty" required:"false" json:"name,omitempty" path:"name"`
   289  	MaxConnections                    int64                                   `url:"max_connections,omitempty" required:"false" json:"max_connections,omitempty" path:"max_connections"`
   290  	PinToSiteRegion                   *bool                                   `url:"pin_to_site_region,omitempty" required:"false" json:"pin_to_site_region,omitempty" path:"pin_to_site_region"`
   291  	Port                              int64                                   `url:"port,omitempty" required:"false" json:"port,omitempty" path:"port"`
   292  	S3Bucket                          string                                  `url:"s3_bucket,omitempty" required:"false" json:"s3_bucket,omitempty" path:"s3_bucket"`
   293  	S3Region                          string                                  `url:"s3_region,omitempty" required:"false" json:"s3_region,omitempty" path:"s3_region"`
   294  	ServerCertificate                 RemoteServerServerCertificateEnum       `url:"server_certificate,omitempty" required:"false" json:"server_certificate,omitempty" path:"server_certificate"`
   295  	ServerHostKey                     string                                  `url:"server_host_key,omitempty" required:"false" json:"server_host_key,omitempty" path:"server_host_key"`
   296  	ServerType                        RemoteServerServerTypeEnum              `url:"server_type,omitempty" required:"false" json:"server_type,omitempty" path:"server_type"`
   297  	Ssl                               RemoteServerSslEnum                     `url:"ssl,omitempty" required:"false" json:"ssl,omitempty" path:"ssl"`
   298  	Username                          string                                  `url:"username,omitempty" required:"false" json:"username,omitempty" path:"username"`
   299  	GoogleCloudStorageBucket          string                                  `url:"google_cloud_storage_bucket,omitempty" required:"false" json:"google_cloud_storage_bucket,omitempty" path:"google_cloud_storage_bucket"`
   300  	GoogleCloudStorageProjectId       string                                  `url:"google_cloud_storage_project_id,omitempty" required:"false" json:"google_cloud_storage_project_id,omitempty" path:"google_cloud_storage_project_id"`
   301  	BackblazeB2Bucket                 string                                  `url:"backblaze_b2_bucket,omitempty" required:"false" json:"backblaze_b2_bucket,omitempty" path:"backblaze_b2_bucket"`
   302  	BackblazeB2S3Endpoint             string                                  `url:"backblaze_b2_s3_endpoint,omitempty" required:"false" json:"backblaze_b2_s3_endpoint,omitempty" path:"backblaze_b2_s3_endpoint"`
   303  	WasabiBucket                      string                                  `url:"wasabi_bucket,omitempty" required:"false" json:"wasabi_bucket,omitempty" path:"wasabi_bucket"`
   304  	WasabiRegion                      string                                  `url:"wasabi_region,omitempty" required:"false" json:"wasabi_region,omitempty" path:"wasabi_region"`
   305  	RackspaceUsername                 string                                  `url:"rackspace_username,omitempty" required:"false" json:"rackspace_username,omitempty" path:"rackspace_username"`
   306  	RackspaceRegion                   string                                  `url:"rackspace_region,omitempty" required:"false" json:"rackspace_region,omitempty" path:"rackspace_region"`
   307  	RackspaceContainer                string                                  `url:"rackspace_container,omitempty" required:"false" json:"rackspace_container,omitempty" path:"rackspace_container"`
   308  	OneDriveAccountType               RemoteServerOneDriveAccountTypeEnum     `url:"one_drive_account_type,omitempty" required:"false" json:"one_drive_account_type,omitempty" path:"one_drive_account_type"`
   309  	AzureBlobStorageAccount           string                                  `url:"azure_blob_storage_account,omitempty" required:"false" json:"azure_blob_storage_account,omitempty" path:"azure_blob_storage_account"`
   310  	AzureBlobStorageContainer         string                                  `url:"azure_blob_storage_container,omitempty" required:"false" json:"azure_blob_storage_container,omitempty" path:"azure_blob_storage_container"`
   311  	AzureBlobStorageSasToken          string                                  `url:"azure_blob_storage_sas_token,omitempty" required:"false" json:"azure_blob_storage_sas_token,omitempty" path:"azure_blob_storage_sas_token"`
   312  	AzureFilesStorageAccount          string                                  `url:"azure_files_storage_account,omitempty" required:"false" json:"azure_files_storage_account,omitempty" path:"azure_files_storage_account"`
   313  	AzureFilesStorageShareName        string                                  `url:"azure_files_storage_share_name,omitempty" required:"false" json:"azure_files_storage_share_name,omitempty" path:"azure_files_storage_share_name"`
   314  	AzureFilesStorageSasToken         string                                  `url:"azure_files_storage_sas_token,omitempty" required:"false" json:"azure_files_storage_sas_token,omitempty" path:"azure_files_storage_sas_token"`
   315  	S3CompatibleBucket                string                                  `url:"s3_compatible_bucket,omitempty" required:"false" json:"s3_compatible_bucket,omitempty" path:"s3_compatible_bucket"`
   316  	S3CompatibleEndpoint              string                                  `url:"s3_compatible_endpoint,omitempty" required:"false" json:"s3_compatible_endpoint,omitempty" path:"s3_compatible_endpoint"`
   317  	S3CompatibleRegion                string                                  `url:"s3_compatible_region,omitempty" required:"false" json:"s3_compatible_region,omitempty" path:"s3_compatible_region"`
   318  	EnableDedicatedIps                *bool                                   `url:"enable_dedicated_ips,omitempty" required:"false" json:"enable_dedicated_ips,omitempty" path:"enable_dedicated_ips"`
   319  	S3CompatibleAccessKey             string                                  `url:"s3_compatible_access_key,omitempty" required:"false" json:"s3_compatible_access_key,omitempty" path:"s3_compatible_access_key"`
   320  	S3CompatibleSecretKey             string                                  `url:"s3_compatible_secret_key,omitempty" required:"false" json:"s3_compatible_secret_key,omitempty" path:"s3_compatible_secret_key"`
   321  	FilesAgentRoot                    string                                  `url:"files_agent_root,omitempty" required:"false" json:"files_agent_root,omitempty" path:"files_agent_root"`
   322  	FilesAgentPermissionSet           RemoteServerFilesAgentPermissionSetEnum `url:"files_agent_permission_set,omitempty" required:"false" json:"files_agent_permission_set,omitempty" path:"files_agent_permission_set"`
   323  	FilebaseAccessKey                 string                                  `url:"filebase_access_key,omitempty" required:"false" json:"filebase_access_key,omitempty" path:"filebase_access_key"`
   324  	FilebaseSecretKey                 string                                  `url:"filebase_secret_key,omitempty" required:"false" json:"filebase_secret_key,omitempty" path:"filebase_secret_key"`
   325  	FilebaseBucket                    string                                  `url:"filebase_bucket,omitempty" required:"false" json:"filebase_bucket,omitempty" path:"filebase_bucket"`
   326  	CloudflareAccessKey               string                                  `url:"cloudflare_access_key,omitempty" required:"false" json:"cloudflare_access_key,omitempty" path:"cloudflare_access_key"`
   327  	CloudflareSecretKey               string                                  `url:"cloudflare_secret_key,omitempty" required:"false" json:"cloudflare_secret_key,omitempty" path:"cloudflare_secret_key"`
   328  	CloudflareBucket                  string                                  `url:"cloudflare_bucket,omitempty" required:"false" json:"cloudflare_bucket,omitempty" path:"cloudflare_bucket"`
   329  	CloudflareEndpoint                string                                  `url:"cloudflare_endpoint,omitempty" required:"false" json:"cloudflare_endpoint,omitempty" path:"cloudflare_endpoint"`
   330  	DropboxTeams                      *bool                                   `url:"dropbox_teams,omitempty" required:"false" json:"dropbox_teams,omitempty" path:"dropbox_teams"`
   331  	LinodeAccessKey                   string                                  `url:"linode_access_key,omitempty" required:"false" json:"linode_access_key,omitempty" path:"linode_access_key"`
   332  	LinodeSecretKey                   string                                  `url:"linode_secret_key,omitempty" required:"false" json:"linode_secret_key,omitempty" path:"linode_secret_key"`
   333  	LinodeBucket                      string                                  `url:"linode_bucket,omitempty" required:"false" json:"linode_bucket,omitempty" path:"linode_bucket"`
   334  	LinodeRegion                      string                                  `url:"linode_region,omitempty" required:"false" json:"linode_region,omitempty" path:"linode_region"`
   335  }
   336  
   337  type RemoteServerDeleteParams struct {
   338  	Id int64 `url:"-,omitempty" required:"false" json:"-,omitempty" path:"id"`
   339  }
   340  
   341  func (r *RemoteServer) UnmarshalJSON(data []byte) error {
   342  	type remoteServer RemoteServer
   343  	var v remoteServer
   344  	if err := json.Unmarshal(data, &v); err != nil {
   345  		return lib.ErrorWithOriginalResponse{}.ProcessError(data, err, map[string]interface{}{})
   346  	}
   347  
   348  	*r = RemoteServer(v)
   349  	return nil
   350  }
   351  
   352  func (r *RemoteServerCollection) UnmarshalJSON(data []byte) error {
   353  	type remoteServers RemoteServerCollection
   354  	var v remoteServers
   355  	if err := json.Unmarshal(data, &v); err != nil {
   356  		return lib.ErrorWithOriginalResponse{}.ProcessError(data, err, []map[string]interface{}{})
   357  	}
   358  
   359  	*r = RemoteServerCollection(v)
   360  	return nil
   361  }
   362  
   363  func (r *RemoteServerCollection) ToSlice() *[]interface{} {
   364  	ret := make([]interface{}, len(*r))
   365  	for i, v := range *r {
   366  		ret[i] = v
   367  	}
   368  
   369  	return &ret
   370  }