drone/types/enum/membership.go
2023-09-24 07:33:16 +00:00

114 lines
3.2 KiB
Go

// Copyright 2023 Harness, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package enum
import (
"strings"
)
// MembershipUserSort represents membership user sort order.
type MembershipUserSort string
// MembershipUserSort enumeration.
const (
MembershipUserSortName MembershipUserSort = name
MembershipUserSortCreated MembershipUserSort = created
)
var membershipUserSorts = sortEnum([]MembershipUserSort{
MembershipUserSortName,
MembershipUserSortCreated,
})
func (MembershipUserSort) Enum() []interface{} { return toInterfaceSlice(membershipUserSorts) }
func (s MembershipUserSort) Sanitize() (MembershipUserSort, bool) {
return Sanitize(s, GetAllMembershipUserSorts)
}
func GetAllMembershipUserSorts() ([]MembershipUserSort, MembershipUserSort) {
return membershipUserSorts, MembershipUserSortName
}
// ParseMembershipUserSort parses the membership user sort attribute string
// and returns the equivalent enumeration.
func ParseMembershipUserSort(s string) MembershipUserSort {
switch strings.ToLower(s) {
case name:
return MembershipUserSortName
case created, createdAt:
return MembershipUserSortCreated
default:
return MembershipUserSortName
}
}
// String returns the string representation of the attribute.
func (s MembershipUserSort) String() string {
switch s {
case MembershipUserSortName:
return name
case MembershipUserSortCreated:
return created
default:
return undefined
}
}
// MembershipSpaceSort represents membership space sort order.
type MembershipSpaceSort string
// MembershipSpaceSort enumeration.
const (
MembershipSpaceSortUID MembershipSpaceSort = uid
MembershipSpaceSortCreated MembershipSpaceSort = created
)
var membershipSpaceSorts = sortEnum([]MembershipSpaceSort{
MembershipSpaceSortUID,
MembershipSpaceSortCreated,
})
func (MembershipSpaceSort) Enum() []interface{} { return toInterfaceSlice(membershipSpaceSorts) }
func (s MembershipSpaceSort) Sanitize() (MembershipSpaceSort, bool) {
return Sanitize(s, GetAllMembershipSpaceSorts)
}
func GetAllMembershipSpaceSorts() ([]MembershipSpaceSort, MembershipSpaceSort) {
return membershipSpaceSorts, MembershipSpaceSortUID
}
// ParseMembershipSpaceSort parses the membership space sort attribute string
// and returns the equivalent enumeration.
func ParseMembershipSpaceSort(s string) MembershipSpaceSort {
switch strings.ToLower(s) {
case name:
return MembershipSpaceSortUID
case created, createdAt:
return MembershipSpaceSortCreated
default:
return MembershipSpaceSortUID
}
}
// String returns the string representation of the attribute.
func (s MembershipSpaceSort) String() string {
switch s {
case MembershipSpaceSortUID:
return uid
case MembershipSpaceSortCreated:
return created
default:
return undefined
}
}