-
Notifications
You must be signed in to change notification settings - Fork 1
/
zpa_scim_attribute_header.go
75 lines (66 loc) · 2.89 KB
/
zpa_scim_attribute_header.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
package scimattributeheader
import (
"fmt"
"net/http"
"strings"
"github.com/zscaler/zscaler-sdk-go/zpa/services/common"
)
const (
mgmtConfig = "/mgmtconfig/v1/admin/customers/"
userConfig = "/userconfig/v1/customers"
idpId = "/idp"
scimAttrEndpoint = "/scimattribute"
)
type ScimAttributeHeader struct {
CanonicalValues []string `json:"canonicalValues,omitempty"`
CaseSensitive bool `json:"caseSensitive,omitempty"`
CreationTime string `json:"creationTime,omitempty,"`
DataType string `json:"dataType,omitempty"`
Description string `json:"description,omitempty"`
ID string `json:"id,omitempty"`
IdpID string `json:"idpId,omitempty"`
ModifiedBy string `json:"modifiedBy,omitempty"`
ModifiedTime string `json:"modifiedTime,omitempty"`
MultiValued bool `json:"multivalued,omitempty"`
Mutability string `json:"mutability,omitempty"`
Name string `json:"name,omitempty"`
Required bool `json:"required,omitempty"`
Returned string `json:"returned,omitempty"`
SchemaURI string `json:"schemaURI,omitempty"`
Uniqueness bool `json:"uniqueness,omitempty"`
}
func (service *Service) Get(idpId, scimAttrHeaderID string) (*ScimAttributeHeader, *http.Response, error) {
v := new(ScimAttributeHeader)
relativeURL := fmt.Sprintf("%s/idp/%s/scimattribute/%s", mgmtConfig+service.Client.Config.CustomerID, idpId, scimAttrHeaderID)
resp, err := service.Client.NewRequestDo("GET", relativeURL, nil, nil, v)
if err != nil {
return nil, nil, err
}
return v, resp, nil
}
func (service *Service) GetValues(idpId, ScimAttrHeaderID string) ([]string, error) {
relativeURL := fmt.Sprintf("%s/%s/scimattribute/idpId/%s/attributeId/%s", userConfig, service.Client.Config.CustomerID, idpId, ScimAttrHeaderID)
l, _, err := common.GetAllPagesGeneric[string](service.Client, relativeURL, "")
return l, err
}
func (service *Service) GetByName(scimAttributeName, IdpId string) (*ScimAttributeHeader, *http.Response, error) {
relativeURL := fmt.Sprintf("%s/%s%s", mgmtConfig+service.Client.Config.CustomerID+idpId, IdpId, scimAttrEndpoint)
list, resp, err := common.GetAllPagesGeneric[ScimAttributeHeader](service.Client, relativeURL, "")
if err != nil {
return nil, nil, err
}
for _, scimAttribute := range list {
if strings.EqualFold(scimAttribute.Name, scimAttributeName) {
return &scimAttribute, resp, nil
}
}
return nil, resp, fmt.Errorf("no scim named '%s' was found", scimAttributeName)
}
func (service *Service) GetAllByIdpId(IdpId string) ([]ScimAttributeHeader, *http.Response, error) {
relativeURL := fmt.Sprintf("%s/%s%s", mgmtConfig+service.Client.Config.CustomerID+idpId, IdpId, scimAttrEndpoint)
list, resp, err := common.GetAllPagesGeneric[ScimAttributeHeader](service.Client, relativeURL, "")
if err != nil {
return nil, nil, err
}
return list, resp, nil
}