Documentation
¶
Index ¶
- Variables
- func FetchAccounts(ctx context.Context, remote *RemoteConfig, token *AuthToken) (map[string]*Account, error)
- func Request(ctx context.Context, remote *RemoteConfig, token *AuthToken, ...) (string, error)
- func Respond(ctx context.Context, remote *RemoteConfig, token *AuthToken, ...) error
- type AccessRequest
- type AccessResponse
- type Account
- type AuthToken
- type IDToken
- type ListRequestsFilter
- type PermissionRequest
- type RemoteConfig
- type Role
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrUnexpected = errors.New("unexpected error")
View Source
var TicketRegex = regexp.MustCompile("^[a-zA-Z0-9_-]+$")
Functions ¶
func FetchAccounts ¶
func Request ¶
func Request(ctx context.Context, remote *RemoteConfig, token *AuthToken, req *AccessRequest) (string, error)
func Respond ¶
func Respond(ctx context.Context, remote *RemoteConfig, token *AuthToken, accResp *AccessResponse) error
Types ¶
type AccessRequest ¶
type AccessResponse ¶
type AuthToken ¶
type AuthToken struct {
IdToken string `json:"id_token"`
AccessToken string `json:"access_token"`
RefreshToken string `json:"refresh_token"`
ExpiresAt time.Time `json:"expires_at"`
TokenType string `json:"token_type"`
}
func FetchToken ¶
func FetchTokenViaDeviceCode ¶
func RefreshToken ¶
func (*AuthToken) ParseIDToken ¶
type ListRequestsFilter ¶
type ListRequestsFilter string
const ( ListRequestsFilterAll ListRequestsFilter = "all" ListRequestsFilterRequiresMyApproval ListRequestsFilter = "requires-my-approval" )
type PermissionRequest ¶
type PermissionRequest struct {
ID string `json:"id"`
Email string `json:"email"`
Status string `json:"status"`
AccountID string `json:"accountId"`
AccountName string `json:"accountName"`
Role string `json:"role"`
RoleID string `json:"roleId"`
StartTime time.Time `json:"startTime"`
EndTime time.Time `json:"endTime"`
Duration string `json:"duration"`
TicketNo string `json:"ticketNo"`
Justification string `json:"justification"`
Comment string `json:"comment"`
Approver string `json:"approver"`
ApproverID string `json:"approverId"`
Approvers []string `json:"approvers"`
Revoker string `json:"revoker"`
RevokerID string `json:"revokerId"`
CreatedAt time.Time `json:"createdAt"`
UpdatedAt time.Time `json:"updatedAt"`
}
func ListRequests ¶
func ListRequests( ctx context.Context, remote *RemoteConfig, token *AuthToken, filter ListRequestsFilter, ) ([]*PermissionRequest, error)
type RemoteConfig ¶
type RemoteConfig struct {
Server string `json:"server"`
GraphQLEndpoint string `json:"graphql_endpoint"`
UserPoolClientID string `json:"user_pool_client_id"`
OAuthDomain string `json:"oauth_domain"`
OAuthResponseType string `json:"oauth_response_type"`
OAuthScopes []string `json:"oauth_scopes"`
RedirectSignIn string `json:"redirectSignIn"`
}
func ExtractConfig ¶
func ExtractConfig(ctx context.Context, addr string) (*RemoteConfig, error)
Click to show internal directories.
Click to hide internal directories.