github.com/Files-com/files-sdk-go/v3@v3.1.81/ssostrategy.go (about)

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