models

package
v0.7.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 21, 2026 License: MIT Imports: 1 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AccessRequest

type AccessRequest struct {
	RequestID          string                 `json:"requestId"`
	TargetCategory     string                 `json:"targetCategory"`
	RequestState       RequestState           `json:"requestState"`
	RequestResult      RequestResult          `json:"requestResult"`
	RequestLink        string                 `json:"requestLink,omitempty"`
	RequestDetails     map[string]interface{} `json:"requestDetails,omitempty"`
	RequestApprovers   []ApproverAction       `json:"requestApprovers,omitempty"`
	AssignedApprovers  []Entity               `json:"assignedApprovers,omitempty"`
	Requester          *Entity                `json:"requester,omitempty"`
	RequestOutcomes    map[string]string      `json:"requestOutcomes,omitempty"`
	FinalizationReason string                 `json:"finalizationReason,omitempty"`
	CreatedBy          string                 `json:"createdBy"`
	CreatedAt          string                 `json:"createdAt"`
	UpdatedBy          string                 `json:"updatedBy"`
	UpdatedAt          string                 `json:"updatedAt"`
}

AccessRequest represents a single access request from the API.

func (*AccessRequest) DetailString

func (r *AccessRequest) DetailString(key string) string

DetailString returns a human-readable detail from requestDetails for the given key.

type ApproverAction

type ApproverAction struct {
	Approver Entity        `json:"approver"`
	Result   RequestResult `json:"result"`
}

ApproverAction represents an action taken by an approver on a request.

type CancelAccessRequest

type CancelAccessRequest struct {
	CancelReason *string `json:"cancelReason"`
}

CancelAccessRequest is the request body for canceling an access request.

type DirectorySource

type DirectorySource struct {
	DirectoryID   string `json:"directoryId"`
	DirectoryName string `json:"directoryName"`
	DirectoryType string `json:"directoryType,omitempty"`
}

DirectorySource represents the directory source of an entity.

type Entity

type Entity struct {
	EntityID              string           `json:"entityId"`
	EntityName            string           `json:"entityName"`
	EntityDisplayName     string           `json:"entityDisplayName,omitempty"`
	EntityEmail           string           `json:"entityEmail,omitempty"`
	EntityDirectorySource *DirectorySource `json:"entityDirectorySource,omitempty"`
}

Entity represents a user or approver identity.

type FinalizeAccessRequest

type FinalizeAccessRequest struct {
	Result             string  `json:"result"`
	FinalizationReason *string `json:"finalizationReason,omitempty"`
}

FinalizeAccessRequest is the request body for approving or rejecting an access request.

type FormQuestion

type FormQuestion struct {
	Key          string          `json:"key"`
	Required     json.RawMessage `json:"required"`
	Default      interface{}     `json:"default,omitempty"`
	Title        string          `json:"title,omitempty"`
	Description  string          `json:"description,omitempty"`
	ValueType    string          `json:"valueType,omitempty"`
	ValueChoices []interface{}   `json:"valueChoices,omitempty"`
	Validators   []Validator     `json:"validators,omitempty"`
}

FormQuestion represents a single question in a request form.

func (*FormQuestion) IsRequired

func (q *FormQuestion) IsRequired() bool

IsRequired returns true if the question is unconditionally required. Returns false for conditional requirements (which are JSON objects).

type ListRequestsResponse

type ListRequestsResponse struct {
	Items      []AccessRequest `json:"items"`
	Count      int             `json:"count"`
	TotalCount int             `json:"totalCount"`
}

ListRequestsResponse represents the paginated response from the list requests endpoint.

type RequestForm

type RequestForm struct {
	Questions []FormQuestion `json:"questions"`
}

RequestForm contains the questions that make up an access request form.

type RequestFormEntry

type RequestFormEntry struct {
	TargetCategory string      `json:"targetCategory"`
	RequestType    string      `json:"requestType"`
	RequestForm    RequestForm `json:"requestForm"`
}

RequestFormEntry represents a single form entry for a target category and request type.

type RequestFormResponse

type RequestFormResponse struct {
	RequestForms []RequestFormEntry `json:"requestForms"`
}

RequestFormResponse wraps the list of request forms returned by the API.

type RequestResult

type RequestResult string

RequestResult represents the outcome of an access request.

const (
	RequestResultApproved RequestResult = "APPROVED"
	RequestResultRejected RequestResult = "REJECTED"
	RequestResultCanceled RequestResult = "CANCELED"
	RequestResultFailed   RequestResult = "FAILED"
	RequestResultUnknown  RequestResult = "UNKNOWN"
)

type RequestState

type RequestState string

RequestState represents the system activity status of an access request.

const (
	RequestStateStarting RequestState = "STARTING"
	RequestStateRunning  RequestState = "RUNNING"
	RequestStatePending  RequestState = "PENDING"
	RequestStateFinished RequestState = "FINISHED"
	RequestStateExpired  RequestState = "EXPIRED"
)

type SubmitAccessRequest

type SubmitAccessRequest struct {
	TargetCategory string                 `json:"targetCategory"`
	RequestDetails map[string]interface{} `json:"requestDetails"`
}

SubmitAccessRequest is the request body for creating a new access request.

type Validator

type Validator struct {
	Name         string `json:"name"`
	Regex        string `json:"regex,omitempty"`
	ErrorMessage string `json:"errorMessage,omitempty"`
	Format       string `json:"format,omitempty"`
	MinLength    *int   `json:"minLength,omitempty"`
	MaxLength    *int   `json:"maxLength,omitempty"`
}

Validator represents a validation rule for a form question.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL