github.com/Files-com/files-sdk-go/v2@v2.1.2/ssostrategy.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 SsoStrategy struct {
    10  	Protocol                       string `json:"protocol,omitempty" path:"protocol,omitempty" url:"protocol,omitempty"`
    11  	Provider                       string `json:"provider,omitempty" path:"provider,omitempty" url:"provider,omitempty"`
    12  	Label                          string `json:"label,omitempty" path:"label,omitempty" url:"label,omitempty"`
    13  	LogoUrl                        string `json:"logo_url,omitempty" path:"logo_url,omitempty" url:"logo_url,omitempty"`
    14  	Id                             int64  `json:"id,omitempty" path:"id,omitempty" url:"id,omitempty"`
    15  	SamlProviderCertFingerprint    string `json:"saml_provider_cert_fingerprint,omitempty" path:"saml_provider_cert_fingerprint,omitempty" url:"saml_provider_cert_fingerprint,omitempty"`
    16  	SamlProviderIssuerUrl          string `json:"saml_provider_issuer_url,omitempty" path:"saml_provider_issuer_url,omitempty" url:"saml_provider_issuer_url,omitempty"`
    17  	SamlProviderMetadataContent    string `json:"saml_provider_metadata_content,omitempty" path:"saml_provider_metadata_content,omitempty" url:"saml_provider_metadata_content,omitempty"`
    18  	SamlProviderMetadataUrl        string `json:"saml_provider_metadata_url,omitempty" path:"saml_provider_metadata_url,omitempty" url:"saml_provider_metadata_url,omitempty"`
    19  	SamlProviderSloTargetUrl       string `json:"saml_provider_slo_target_url,omitempty" path:"saml_provider_slo_target_url,omitempty" url:"saml_provider_slo_target_url,omitempty"`
    20  	SamlProviderSsoTargetUrl       string `json:"saml_provider_sso_target_url,omitempty" path:"saml_provider_sso_target_url,omitempty" url:"saml_provider_sso_target_url,omitempty"`
    21  	ScimAuthenticationMethod       string `json:"scim_authentication_method,omitempty" path:"scim_authentication_method,omitempty" url:"scim_authentication_method,omitempty"`
    22  	ScimUsername                   string `json:"scim_username,omitempty" path:"scim_username,omitempty" url:"scim_username,omitempty"`
    23  	ScimOauthAccessToken           string `json:"scim_oauth_access_token,omitempty" path:"scim_oauth_access_token,omitempty" url:"scim_oauth_access_token,omitempty"`
    24  	ScimOauthAccessTokenExpiresAt  string `json:"scim_oauth_access_token_expires_at,omitempty" path:"scim_oauth_access_token_expires_at,omitempty" url:"scim_oauth_access_token_expires_at,omitempty"`
    25  	Subdomain                      string `json:"subdomain,omitempty" path:"subdomain,omitempty" url:"subdomain,omitempty"`
    26  	ProvisionUsers                 *bool  `json:"provision_users,omitempty" path:"provision_users,omitempty" url:"provision_users,omitempty"`
    27  	ProvisionGroups                *bool  `json:"provision_groups,omitempty" path:"provision_groups,omitempty" url:"provision_groups,omitempty"`
    28  	DeprovisionUsers               *bool  `json:"deprovision_users,omitempty" path:"deprovision_users,omitempty" url:"deprovision_users,omitempty"`
    29  	DeprovisionGroups              *bool  `json:"deprovision_groups,omitempty" path:"deprovision_groups,omitempty" url:"deprovision_groups,omitempty"`
    30  	DeprovisionBehavior            string `json:"deprovision_behavior,omitempty" path:"deprovision_behavior,omitempty" url:"deprovision_behavior,omitempty"`
    31  	ProvisionGroupDefault          string `json:"provision_group_default,omitempty" path:"provision_group_default,omitempty" url:"provision_group_default,omitempty"`
    32  	ProvisionGroupExclusion        string `json:"provision_group_exclusion,omitempty" path:"provision_group_exclusion,omitempty" url:"provision_group_exclusion,omitempty"`
    33  	ProvisionGroupInclusion        string `json:"provision_group_inclusion,omitempty" path:"provision_group_inclusion,omitempty" url:"provision_group_inclusion,omitempty"`
    34  	ProvisionGroupRequired         string `json:"provision_group_required,omitempty" path:"provision_group_required,omitempty" url:"provision_group_required,omitempty"`
    35  	ProvisionEmailSignupGroups     string `json:"provision_email_signup_groups,omitempty" path:"provision_email_signup_groups,omitempty" url:"provision_email_signup_groups,omitempty"`
    36  	ProvisionSiteAdminGroups       string `json:"provision_site_admin_groups,omitempty" path:"provision_site_admin_groups,omitempty" url:"provision_site_admin_groups,omitempty"`
    37  	ProvisionGroupAdminGroups      string `json:"provision_group_admin_groups,omitempty" path:"provision_group_admin_groups,omitempty" url:"provision_group_admin_groups,omitempty"`
    38  	ProvisionAttachmentsPermission *bool  `json:"provision_attachments_permission,omitempty" path:"provision_attachments_permission,omitempty" url:"provision_attachments_permission,omitempty"`
    39  	ProvisionDavPermission         *bool  `json:"provision_dav_permission,omitempty" path:"provision_dav_permission,omitempty" url:"provision_dav_permission,omitempty"`
    40  	ProvisionFtpPermission         *bool  `json:"provision_ftp_permission,omitempty" path:"provision_ftp_permission,omitempty" url:"provision_ftp_permission,omitempty"`
    41  	ProvisionSftpPermission        *bool  `json:"provision_sftp_permission,omitempty" path:"provision_sftp_permission,omitempty" url:"provision_sftp_permission,omitempty"`
    42  	ProvisionTimeZone              string `json:"provision_time_zone,omitempty" path:"provision_time_zone,omitempty" url:"provision_time_zone,omitempty"`
    43  	ProvisionCompany               string `json:"provision_company,omitempty" path:"provision_company,omitempty" url:"provision_company,omitempty"`
    44  	LdapBaseDn                     string `json:"ldap_base_dn,omitempty" path:"ldap_base_dn,omitempty" url:"ldap_base_dn,omitempty"`
    45  	LdapDomain                     string `json:"ldap_domain,omitempty" path:"ldap_domain,omitempty" url:"ldap_domain,omitempty"`
    46  	Enabled                        *bool  `json:"enabled,omitempty" path:"enabled,omitempty" url:"enabled,omitempty"`
    47  	LdapHost                       string `json:"ldap_host,omitempty" path:"ldap_host,omitempty" url:"ldap_host,omitempty"`
    48  	LdapHost2                      string `json:"ldap_host_2,omitempty" path:"ldap_host_2,omitempty" url:"ldap_host_2,omitempty"`
    49  	LdapHost3                      string `json:"ldap_host_3,omitempty" path:"ldap_host_3,omitempty" url:"ldap_host_3,omitempty"`
    50  	LdapPort                       int64  `json:"ldap_port,omitempty" path:"ldap_port,omitempty" url:"ldap_port,omitempty"`
    51  	LdapSecure                     *bool  `json:"ldap_secure,omitempty" path:"ldap_secure,omitempty" url:"ldap_secure,omitempty"`
    52  	LdapUsername                   string `json:"ldap_username,omitempty" path:"ldap_username,omitempty" url:"ldap_username,omitempty"`
    53  	LdapUsernameField              string `json:"ldap_username_field,omitempty" path:"ldap_username_field,omitempty" url:"ldap_username_field,omitempty"`
    54  }
    55  
    56  func (s SsoStrategy) Identifier() interface{} {
    57  	return s.Id
    58  }
    59  
    60  type SsoStrategyCollection []SsoStrategy
    61  
    62  type SsoStrategyListParams struct {
    63  	ListParams
    64  }
    65  
    66  type SsoStrategyFindParams struct {
    67  	Id int64 `url:"-,omitempty" required:"false" json:"-,omitempty" path:"id"`
    68  }
    69  
    70  // Synchronize provisioning data with the SSO remote server
    71  type SsoStrategySyncParams struct {
    72  	Id int64 `url:"-,omitempty" required:"false" json:"-,omitempty" path:"id"`
    73  }
    74  
    75  func (s *SsoStrategy) UnmarshalJSON(data []byte) error {
    76  	type ssoStrategy SsoStrategy
    77  	var v ssoStrategy
    78  	if err := json.Unmarshal(data, &v); err != nil {
    79  		return lib.ErrorWithOriginalResponse{}.ProcessError(data, err, map[string]interface{}{})
    80  	}
    81  
    82  	*s = SsoStrategy(v)
    83  	return nil
    84  }
    85  
    86  func (s *SsoStrategyCollection) UnmarshalJSON(data []byte) error {
    87  	type ssoStrategys SsoStrategyCollection
    88  	var v ssoStrategys
    89  	if err := json.Unmarshal(data, &v); err != nil {
    90  		return lib.ErrorWithOriginalResponse{}.ProcessError(data, err, []map[string]interface{}{})
    91  	}
    92  
    93  	*s = SsoStrategyCollection(v)
    94  	return nil
    95  }
    96  
    97  func (s *SsoStrategyCollection) ToSlice() *[]interface{} {
    98  	ret := make([]interface{}, len(*s))
    99  	for i, v := range *s {
   100  		ret[i] = v
   101  	}
   102  
   103  	return &ret
   104  }