pss

package
v1.22.0 Latest Latest
Warning

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

Go to latest
Published: Nov 13, 2024 License: MIT Imports: 4 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

Functions

This section is empty.

Types

type ApproveChangeCaseRequest added in v1.18.0

type ApproveChangeCaseRequest struct {
	Reason    string `json:"reason,omitempty"`
	ContactID int    `json:"contact_id,omitempty"`
}

ApproveChangeCaseRequest represents a request to approve a PSS change case

type Attachment

type Attachment struct {
	Name string `json:"name"`
}

Attachment represents a PSS attachment

type AttachmentNotFoundError

type AttachmentNotFoundError struct {
	Name string
}

AttachmentNotFoundError indicates a attachment was not found

func (*AttachmentNotFoundError) Error

func (e *AttachmentNotFoundError) Error() string

type Author

type Author struct {
	ID   int        `json:"id"`
	Name string     `json:"name"`
	Type AuthorType `json:"type"`
}

Author represents a PSS request author

type AuthorType

type AuthorType string
const (
	AuthorTypeClient  AuthorType = "Client"
	AuthorTypeAuto    AuthorType = "Auto"
	AuthorTypeSupport AuthorType = "Support"
)

func (AuthorType) String

func (s AuthorType) String() string

type Case added in v1.18.0

type Case struct {
	ID                 string     `json:"id"`
	CaseType           CaseType   `json:"case_type"`
	Title              string     `json:"title"`
	Description        string     `json:"description"`
	IsSecurity         bool       `json:"is_security"`
	Squad              string     `json:"squad"`
	Status             CaseStatus `json:"status"`
	CreatedAt          string     `json:"created_at"`
	UpdatedAt          string     `json:"updated_at"`
	CategoryID         string     `json:"category_id"`
	SupportedServiceID string     `json:"supported_service_id"`
}

type CaseCategory added in v1.18.0

type CaseCategory struct {
	ID   string `json:"id"`
	Name string `json:"name"`
}

CaseCategory represents a PSS case category

type CaseNotFoundError added in v1.18.0

type CaseNotFoundError struct {
	ID string
}

CaseNotFoundError indicates a case was not found

func (*CaseNotFoundError) Error added in v1.18.0

func (e *CaseNotFoundError) Error() string

type CaseOption added in v1.18.0

type CaseOption struct {
	Option string `json:"option"`
}

CaseOption represents a PSS case option

type CaseStatus added in v1.18.0

type CaseStatus string
const (
	CaseStatusInProgress                   CaseStatus = "In Progress"
	CaseStatusOnHold                       CaseStatus = "On Hold"
	CaseStatusOpen                         CaseStatus = "Open"
	CaseStatusCaseCreated                  CaseStatus = "Case Created"
	CaseStatusResolved                     CaseStatus = "Resolved"
	CaseStatusPendingAssessment            CaseStatus = "Pending Assessment"
	CaseStatusPendingSME                   CaseStatus = "Pending SME"
	CaseStatusProblemAssessment            CaseStatus = "Problem Assessment"
	CaseStatusClosed                       CaseStatus = "Closed"
	CaseStatusPendingCustomersApproval     CaseStatus = "Pending Customers Approval"
	CaseStatusPendingANSCAB                CaseStatus = "Pending ANS CAB"
	CaseStatusPendingImplementation        CaseStatus = "Pending Implementation"
	CaseStatusImplementationStarted        CaseStatus = "Implementation Started"
	CaseStatusDelivered                    CaseStatus = "Delivered"
	CaseStatusRejected                     CaseStatus = "Rejected"
	CaseStatusScheduleChange               CaseStatus = "Schedule Change"
	CaseStatusCustomerClosure              CaseStatus = "Customer Closure"
	CaseStatusProblemSolved                CaseStatus = "Problem Solved"
	CaseStatusInformationProvided          CaseStatus = "Information Provided"
	CaseStatusClosedWithCustomerConsent    CaseStatus = "Closed with Customer Consent"
	CaseStatusClosedCustomerNotContactable CaseStatus = "Closed - Customer Not Contactable"
	CaseStatusClosedWithTeamLeaderApproval CaseStatus = "Closed with Team Leader Approval"
	CaseStatusCaseClosed                   CaseStatus = "Case Closed"
	CaseStatusANSOperatorError             CaseStatus = "ANS Operator Error"
	CaseStatusCustomerError                CaseStatus = "Customer Error"
	CaseStatusOutofScopeofServiceContract  CaseStatus = "Out of Scope of Service Contract"
)

func (CaseStatus) String added in v1.18.0

func (s CaseStatus) String() string

type CaseType added in v1.18.0

type CaseType string
const (
	CaseTypeChange   CaseType = "Change"
	CaseTypeIncident CaseType = "Incident"
	CaseTypeProblem  CaseType = "Problem"
)

func (CaseType) String added in v1.18.0

func (s CaseType) String() string

type CaseUpdate added in v1.18.0

type CaseUpdate struct {
	ID          string `json:"id"`
	Subject     string `json:"subject"`
	Description string `json:"description"`
	Contact     string `json:"contact"`
	CreatedAt   string `json:"created_at"`
	UpdatedAt   string `json:"updated_at"`
}

CaseUpdate represents a PSS case update

type CaseUpdateNotFoundError added in v1.18.0

type CaseUpdateNotFoundError struct {
	ID string
}

CaseUpdateNotFoundError indicates a case update was not found

func (*CaseUpdateNotFoundError) Error added in v1.18.0

func (e *CaseUpdateNotFoundError) Error() string

type ChangeCase added in v1.18.0

type ChangeCase struct {
	ID                         string             `json:"id"`
	CaseType                   CaseType           `json:"case_type"`
	Title                      string             `json:"title"`
	Description                string             `json:"description"`
	IsSecurity                 bool               `json:"is_security"`
	Type                       ChangeCaseType     `json:"type"`
	Priority                   ChangeCasePriority `json:"priority"`
	Squad                      string             `json:"squad"`
	Status                     CaseStatus         `json:"status"`
	Contact                    string             `json:"contact"`
	ScheduledDate              string             `json:"scheduled_date"`
	CustomerReference          string             `json:"customer_reference"`
	Owner                      string             `json:"owner"`
	Stage                      ChangeCaseStage    `json:"stage"`
	Reason                     string             `json:"reason"`
	Impact                     ChangeCaseImpact   `json:"impact"`
	Risk                       ChangeCaseRisk     `json:"risk"`
	ServiceName                string             `json:"service_name"`
	EstimatedTimeForCompletion int                `json:"estimated_time_for_completion"`
	EstimatedDowntime          int                `json:"estimated_downtime"`
	ImpactAndPotentialRisks    string             `json:"impact_and_potential_risks"`
	BackoutPlan                string             `json:"backout_plan"`
	ImplementationSteps        string             `json:"implementation_steps"`
	TestSteps                  string             `json:"test_steps"`
	CreatedAt                  string             `json:"created_at"`
	UpdatedAt                  string             `json:"updated_at"`
	CategoryID                 string             `json:"category_id"`
	SupportedServiceID         string             `json:"supported_service_id"`
}

IncidentCase represents a PSS change-type case

type ChangeCaseImpact added in v1.18.0

type ChangeCaseImpact string
const (
	ChangeCaseImpactLow    ChangeCaseImpact = "Low"
	ChangeCaseImpactMedium ChangeCaseImpact = "Medium"
	ChangeCaseImpactHigh   ChangeCaseImpact = "High"
)

func (ChangeCaseImpact) String added in v1.18.0

func (s ChangeCaseImpact) String() string

type ChangeCasePriority added in v1.18.0

type ChangeCasePriority string
const (
	ChangeCasePriorityCR1 ChangeCasePriority = "CR1"
	ChangeCasePriorityCR2 ChangeCasePriority = "CR2"
	ChangeCasePriorityCR3 ChangeCasePriority = "CR3"
	ChangeCasePriorityCR4 ChangeCasePriority = "CR4"
	ChangeCasePriorityCR5 ChangeCasePriority = "CR5"
	ChangeCasePriorityCRS ChangeCasePriority = "CR-S"
	ChangeCasePriorityCRE ChangeCasePriority = "CR-E"
	ChangeCasePriorityCRP ChangeCasePriority = "CR-P"
)

func (ChangeCasePriority) String added in v1.18.0

func (s ChangeCasePriority) String() string

type ChangeCaseRisk added in v1.18.0

type ChangeCaseRisk string
const (
	ChangeCaseRiskLow    ChangeCaseRisk = "Low"
	ChangeCaseRiskMedium ChangeCaseRisk = "Medium"
	ChangeCaseRiskHigh   ChangeCaseRisk = "High"
)

func (ChangeCaseRisk) String added in v1.18.0

func (s ChangeCaseRisk) String() string

type ChangeCaseStage added in v1.18.0

type ChangeCaseStage string
const (
	ChangeCaseStageCaseType              ChangeCaseStage = "Case Type"
	ChangeCaseStageIdentify              ChangeCaseStage = "Identify"
	ChangeCaseStagePendingAssessment     ChangeCaseStage = "Pending Assessment"
	ChangeCaseStageApprovals             ChangeCaseStage = "Approvals"
	ChangeCaseStagePendingImplementation ChangeCaseStage = "Pending Implementation"
	ChangeCaseStageImplementationStarted ChangeCaseStage = "Implementation Started"
	ChangeCaseStageDelivered             ChangeCaseStage = "Delivered"
)

func (ChangeCaseStage) String added in v1.18.0

func (s ChangeCaseStage) String() string

type ChangeCaseType added in v1.18.0

type ChangeCaseType string
const (
	ChangeCaseTypeNormal             ChangeCaseType = "Normal"
	ChangeCaseTypeStandard           ChangeCaseType = "Standard"
	ChangeCaseTypeEmergency          ChangeCaseType = "Emergency"
	ChangeCaseTypeProject            ChangeCaseType = "Project"
	ChangeCaseTypeCentreOfExcellence ChangeCaseType = "Centre of Excellence"
)

func (ChangeCaseType) String added in v1.18.0

func (s ChangeCaseType) String() string

type CloseIncidentCaseRequest added in v1.18.0

type CloseIncidentCaseRequest struct {
	Reason    string `json:"reason"`
	ContactID int    `json:"contact_id,omitempty"`
}

CloseIncidentCaseRequest represents a request to close a PSS incident case

type CreateCaseUpdateRequest added in v1.18.0

type CreateCaseUpdateRequest struct {
	Description string `json:"description"`
	ContactID   int    `json:"contact_id,omitempty"`
}

CreateCaseUpdateRequest represents a request to create a PSS incident case update

type CreateChangeCaseRequest added in v1.18.0

type CreateChangeCaseRequest struct {
	CaseType           CaseType         `json:"case_type"`
	Title              string           `json:"title"`
	Description        string           `json:"description"`
	IsSecurity         bool             `json:"is_security"`
	CustomerReference  string           `json:"customer_reference"`
	Reason             string           `json:"reason"`
	Impact             ChangeCaseImpact `json:"impact"`
	Risk               ChangeCaseRisk   `json:"risk"`
	CategoryID         string           `json:"category_id"`
	SupportedServiceID string           `json:"supported_service_id"`
}

CreateChangeCaseRequest represents a request to create PSS change case

type CreateFeedbackRequest

type CreateFeedbackRequest struct {
	ContactID         int    `json:"contact_id"`
	Score             int    `json:"score"`
	Comment           string `json:"comment"`
	SpeedResolved     int    `json:"speed_resolved"`
	Quality           int    `json:"quality"`
	NPSScore          int    `json:"nps_score"`
	ThirdPartyConsent bool   `json:"thirdparty_consent"`
}

CreateFeedbackRequest represents a request to create PSS request feedback

type CreateIncidentCaseRequest added in v1.18.0

type CreateIncidentCaseRequest struct {
	CaseType           CaseType           `json:"case_type"`
	Title              string             `json:"title"`
	Description        string             `json:"description"`
	IsSecurity         bool               `json:"is_security"`
	Type               IncidentCaseType   `json:"type"`
	CustomerReference  string             `json:"customer_reference,omitempty"`
	ContactID          int                `json:"contact_id,omitempty"`
	CategoryID         string             `json:"category_id"`
	SupportedServiceID string             `json:"supported_service_id"`
	Impact             IncidentCaseImpact `json:"impact"`
}

CreateIncidentCaseRequest represents a request to create PSS incident case

type CreateReplyRequest

type CreateReplyRequest struct {
	connection.APIRequestBodyDefaultValidator

	Author      Author `json:"author" validate:"required"`
	Description string `json:"description" validate:"required"`
}

CreateReplyRequest represents a request to create a PSS request reply

func (*CreateReplyRequest) Validate

Validate returns an error if struct properties are missing/invalid

type CreateRequestRequest

type CreateRequestRequest struct {
	connection.APIRequestBodyDefaultValidator

	Author            Author          `json:"author" validate:"required"`
	Secure            bool            `json:"secure"`
	Priority          RequestPriority `json:"priority" validate:"required"`
	Subject           string          `json:"subject" validate:"required"`
	Details           string          `json:"details" validate:"required"`
	CC                []string        `json:"cc,omitempty"`
	RequestSMS        bool            `json:"request_sms"`
	CustomerReference string          `json:"customer_reference,omitempty"`
	Product           *Product        `json:"product,omitempty"`
}

CreateRequestRequest represents a request to create a PSS request

func (*CreateRequestRequest) Validate

Validate returns an error if struct properties are missing/invalid

type Feedback

type Feedback struct {
	ID               int                 `json:"id"`
	ContactID        int                 `json:"contact_id"`
	Score            int                 `json:"score"`
	Comment          string              `json:"comment"`
	SpeedResolved    int                 `json:"speed_resolved"`
	Quality          int                 `json:"quality"`
	NPSScore         int                 `json:"nps_score"`
	ThirdPartConsent bool                `json:"thirdparty_consent"`
	CreatedAt        connection.DateTime `json:"created_at"`
}

Feedback represents PSS feedback

type IncidentCase added in v1.18.0

type IncidentCase struct {
	ID                    string               `json:"id"`
	CaseType              CaseType             `json:"case_type"`
	Title                 string               `json:"title"`
	Description           string               `json:"description"`
	IsSecurity            bool                 `json:"is_security"`
	Type                  IncidentCaseType     `json:"type"`
	Priority              IncidentCasePriority `json:"priority"`
	Squad                 string               `json:"squad"`
	Status                CaseStatus           `json:"status"`
	CustomerReference     string               `json:"customer_reference"`
	Source                string               `json:"source"`
	ContactID             int                  `json:"contact_id"`
	Contact               string               `json:"contact"`
	CriteriaForResolution string               `json:"criteria_for_resolution"`
	ServiceName           string               `json:"service_name"`
	Owner                 string               `json:"owner"`
	ResponseTarget        string               `json:"response_target"`
	ResolutionTarget      string               `json:"resolution_target"`
	CreatedAt             string               `json:"created_at"`
	UpdatedAt             string               `json:"updated_at"`
	CategoryID            string               `json:"category_id"`
	SupportedServiceID    string               `json:"supported_service_id"`
	Impact                IncidentCaseImpact   `json:"impact"`
}

IncidentCase represents a PSS incident-type case

type IncidentCaseImpact added in v1.18.0

type IncidentCaseImpact string
const (
	IncidentCaseImpactMajor    IncidentCaseImpact = "Major"
	IncidentCaseImpactModerate IncidentCaseImpact = "Moderate"
	IncidentCaseImpactMinor    IncidentCaseImpact = "Minor"
)

func (IncidentCaseImpact) String added in v1.18.0

func (s IncidentCaseImpact) String() string

type IncidentCasePriority added in v1.18.0

type IncidentCasePriority string
const (
	IncidentCasePriorityP1 IncidentCasePriority = "P1"
	IncidentCasePriorityP2 IncidentCasePriority = "P2"
	IncidentCasePriorityP3 IncidentCasePriority = "P3"
	IncidentCasePriorityP4 IncidentCasePriority = "P4"
	IncidentCasePriorityP5 IncidentCasePriority = "P5"
)

func (IncidentCasePriority) String added in v1.18.0

func (s IncidentCasePriority) String() string

type IncidentCaseType added in v1.18.0

type IncidentCaseType string
const (
	IncidentCaseTypeFault                IncidentCaseType = "Fault"
	IncidentCaseTypeServiceRequest       IncidentCaseType = "Service Request"
	IncidentCaseTypeChangeAdvisory       IncidentCaseType = "Change Advisory"
	IncidentCaseTypeProjectIncident      IncidentCaseType = "Project Incident"
	IncidentCaseTypeAccessRequest        IncidentCaseType = "Access Request"
	IncidentCaseTypeScheduledMaintenance IncidentCaseType = "Scheduled Maintenance"
	IncidentCaseTypeArchitecturalAdvice  IncidentCaseType = "Architectural Advice"
	IncidentCaseTypeSecurityEvent        IncidentCaseType = "Security Event"
)

func (IncidentCaseType) String added in v1.18.0

func (s IncidentCaseType) String() string

type PSSService

type PSSService interface {
	CreateRequest(req CreateRequestRequest) (int, error)
	GetRequests(parameters connection.APIRequestParameters) ([]Request, error)
	GetRequestsPaginated(parameters connection.APIRequestParameters) (*connection.Paginated[Request], error)
	GetRequest(requestID int) (Request, error)
	PatchRequest(requestID int, req PatchRequestRequest) error

	GetRequestFeedback(requestID int) (Feedback, error)
	CreateRequestFeedback(requestID int, req CreateFeedbackRequest) (int, error)

	CreateRequestReply(requestID int, req CreateReplyRequest) (string, error)
	GetRequestReplies(solutionID int, parameters connection.APIRequestParameters) ([]Reply, error)
	GetRequestRepliesPaginated(solutionID int, parameters connection.APIRequestParameters) (*connection.Paginated[Reply], error)
	GetRequestConversation(requestID int, parameters connection.APIRequestParameters) ([]Reply, error)
	GetRequestConversationPaginated(requestID int, parameters connection.APIRequestParameters) (*connection.Paginated[Reply], error)

	GetReply(replyID string) (Reply, error)

	DownloadReplyAttachmentStream(replyID string, attachmentName string) (contentStream io.ReadCloser, err error)
	UploadReplyAttachmentStream(replyID string, attachmentName string, fileStream io.Reader) (err error)
	DeleteReplyAttachment(replyID string, attachmentName string) error

	GetCaseCategories(parameters connection.APIRequestParameters) ([]CaseCategory, error)
	GetCaseCategoriesPaginated(parameters connection.APIRequestParameters) (*connection.Paginated[CaseCategory], error)

	GetChangeImpactCaseOptions(parameters connection.APIRequestParameters) ([]CaseOption, error)
	GetChangeImpactCaseOptionsPaginated(parameters connection.APIRequestParameters) (*connection.Paginated[CaseOption], error)
	GetChangeRiskCaseOptions(parameters connection.APIRequestParameters) ([]CaseOption, error)
	GetChangeRiskCaseOptionsPaginated(parameters connection.APIRequestParameters) (*connection.Paginated[CaseOption], error)
	GetIncidentImpactCaseOptions(parameters connection.APIRequestParameters) ([]CaseOption, error)
	GetIncidentImpactCaseOptionsPaginated(parameters connection.APIRequestParameters) (*connection.Paginated[CaseOption], error)
	GetIncidentTypeCaseOptions(parameters connection.APIRequestParameters) ([]CaseOption, error)
	GetIncidentTypeCaseOptionsPaginated(parameters connection.APIRequestParameters) (*connection.Paginated[CaseOption], error)

	GetSupportedServices(parameters connection.APIRequestParameters) ([]SupportedService, error)
	GetSupportedServicesPaginated(parameters connection.APIRequestParameters) (*connection.Paginated[SupportedService], error)

	GetCases(parameters connection.APIRequestParameters) ([]Case, error)
	GetCasesPaginated(parameters connection.APIRequestParameters) (*connection.Paginated[Case], error)
	GetCase(caseID string) (Case, error)

	CreateIncidentCase(req CreateIncidentCaseRequest) (string, error)
	GetIncidentCases(parameters connection.APIRequestParameters) ([]IncidentCase, error)
	GetIncidentCasesPaginated(parameters connection.APIRequestParameters) (*connection.Paginated[IncidentCase], error)
	GetIncidentCase(incidentID string) (IncidentCase, error)
	CloseIncidentCase(incidentID string, req CloseIncidentCaseRequest) (string, error)

	CreateChangeCase(req CreateChangeCaseRequest) (string, error)
	GetChangeCases(parameters connection.APIRequestParameters) ([]ChangeCase, error)
	GetChangeCasesPaginated(parameters connection.APIRequestParameters) (*connection.Paginated[ChangeCase], error)
	GetChangeCase(changeID string) (ChangeCase, error)
	ApproveChangeCase(changeID string, req ApproveChangeCaseRequest) (string, error)

	GetProblemCases(parameters connection.APIRequestParameters) ([]ProblemCase, error)
	GetProblemCasesPaginated(parameters connection.APIRequestParameters) (*connection.Paginated[ProblemCase], error)
	GetProblemCase(problemID string) (ProblemCase, error)

	GetCaseUpdates(caseID string, parameters connection.APIRequestParameters) ([]CaseUpdate, error)
	GetCaseUpdatesPaginated(caseID string, parameters connection.APIRequestParameters) (*connection.Paginated[CaseUpdate], error)
	GetCaseUpdate(caseID string, updateID string) (CaseUpdate, error)
	CreateCaseUpdate(caseID string, req CreateCaseUpdateRequest) (string, error)
}

PSSService is an interface for managing PSS

type PatchRequestRequest

type PatchRequestRequest struct {
	Secure     *bool           `json:"secure,omitempty"`
	Read       *bool           `json:"read,omitempty"`
	Priority   RequestPriority `json:"priority,omitempty"`
	Status     RequestStatus   `json:"status,omitempty"`
	RequestSMS *bool           `json:"request_sms,omitempty"`
	Archived   *bool           `json:"archived,omitempty"`
}

PatchRequestRequest represents a PSS Request patch request

type ProblemCase added in v1.18.0

type ProblemCase struct {
	ID                     string                     `json:"id"`
	CaseType               CaseType                   `json:"case_type"`
	Title                  string                     `json:"title"`
	Description            string                     `json:"description"`
	IsSecurity             bool                       `json:"is_security"`
	Type                   ProblemCaseType            `json:"type"`
	Priority               ProblemCasePriority        `json:"priority"`
	Squad                  string                     `json:"squad"`
	Status                 CaseStatus                 `json:"status"`
	CurrentAssignee        string                     `json:"current_assignee"`
	Urgency                ProblemCaseUrgency         `json:"urgency"`
	DetailedImpact         ProblemCaseDetailedImpact  `json:"detailed_impact"`
	KnownWorkaround        ProblemCaseKnownWorkaround `json:"known_workaround"`
	KnownWorkaroundDetails string                     `json:"known_workaround_details"`
	KnownCause             ProblemCaseKnownCause      `json:"known_cause"`
	CreatedAt              string                     `json:"created_at"`
	UpdatedAt              string                     `json:"updated_at"`
}

IncidentCase represents a PSS problem-type case

type ProblemCaseDetailedImpact added in v1.18.0

type ProblemCaseDetailedImpact string
const (
	ProblemCaseDetailedImpactMajor    ProblemCaseDetailedImpact = "Major"
	ProblemCaseDetailedImpactModerate ProblemCaseDetailedImpact = "Moderate"
	ProblemCaseDetailedImpactMinor    ProblemCaseDetailedImpact = "Minor"
)

func (ProblemCaseDetailedImpact) String added in v1.18.0

func (s ProblemCaseDetailedImpact) String() string

type ProblemCaseKnownCause added in v1.18.0

type ProblemCaseKnownCause string
const (
	ProblemCaseKnownCauseNotCurrentlyKnown     ProblemCaseKnownCause = "Not Currently Known"
	ProblemCaseKnownCauseSoftwareDefect        ProblemCaseKnownCause = "Software Defect"
	ProblemCaseKnownCauseHardwareFailure       ProblemCaseKnownCause = "Hardware Failure"
	ProblemCaseKnownCauseCommunicationsFailure ProblemCaseKnownCause = "Communications Failure"
	ProblemCaseKnownCauseHardwareLimitation    ProblemCaseKnownCause = "Hardware Limitation"
	ProblemCaseKnownCauseBusinessProcessIssue  ProblemCaseKnownCause = "Business Process Issue"
	ProblemCaseKnownCauseUser                  ProblemCaseKnownCause = "User"
)

func (ProblemCaseKnownCause) String added in v1.18.0

func (s ProblemCaseKnownCause) String() string

type ProblemCaseKnownWorkaround added in v1.18.0

type ProblemCaseKnownWorkaround string
const (
	ProblemCaseKnownWorkaroundNotCurrentlyKnown                  ProblemCaseKnownWorkaround = "Not Currently Known"
	ProblemCaseKnownWorkaroundTemporaryWorkaround                ProblemCaseKnownWorkaround = "Temporary Workaround"
	ProblemCaseKnownWorkaroundPermanentWorkaround                ProblemCaseKnownWorkaround = "Permanent Workaround"
	ProblemCaseKnownWorkaroundCurrentlyUnavailableAwaitingVendor ProblemCaseKnownWorkaround = "Currently Unavailable / Awaiting Vendor"
)

func (ProblemCaseKnownWorkaround) String added in v1.18.0

type ProblemCasePriority added in v1.18.0

type ProblemCasePriority string
const (
	ProblemCasePriorityPRB1   ProblemCasePriority = "PRB1"
	ProblemCasePriorityPRB2   ProblemCasePriority = "PRB2"
	ProblemCasePriorityPRB3   ProblemCasePriority = "PRB3"
	ProblemCasePriorityPRB4   ProblemCasePriority = "PRB4"
	ProblemCasePriorityPRB5   ProblemCasePriority = "PRB5"
	ProblemCasePriorityPRBRCA ProblemCasePriority = "PRB-RCA"
	ProblemCasePriorityPRBMI  ProblemCasePriority = "PRB-MI"
)

func (ProblemCasePriority) String added in v1.18.0

func (s ProblemCasePriority) String() string

type ProblemCaseType added in v1.18.0

type ProblemCaseType string
const (
	ProblemCaseTypeRCA              ProblemCaseType = "RCA"
	ProblemCaseTypeKnownError       ProblemCaseType = "Known Error"
	ProblemCaseTypeVulnerability    ProblemCaseType = "Vulnerability"
	ProblemCaseTypeIssueReOccurence ProblemCaseType = "Issue Re-Occurence"
	ProblemCaseTypeNonCompliance    ProblemCaseType = "Non-Compliance"
	ProblemCaseTypeBugFix           ProblemCaseType = "Bug Fix"
)

func (ProblemCaseType) String added in v1.18.0

func (s ProblemCaseType) String() string

type ProblemCaseUrgency added in v1.18.0

type ProblemCaseUrgency string
const (
	ProblemCaseUrgencySystemServiceDown ProblemCaseUrgency = "System / Service Down"
	ProblemCaseUrgencySystemAffected    ProblemCaseUrgency = "System / Service Affected"
	ProblemCaseUrgencyUserAffected      ProblemCaseUrgency = "User Down / Affected"
)

func (ProblemCaseUrgency) String added in v1.18.0

func (s ProblemCaseUrgency) String() string

type Product

type Product struct {
	ID   int    `json:"id"`
	Name string `json:"name"`
	Type string `json:"type"`
}

Product represents a product to which the request applies to

type Reply

type Reply struct {
	ID          string              `json:"id"`
	RequestID   int                 `json:"request_id"`
	Author      Author              `json:"author"`
	Description string              `json:"description"`
	Attachments []Attachment        `json:"attachments"`
	Read        bool                `json:"read"`
	CreatedAt   connection.DateTime `json:"created_at"`
}

Reply represents a PSS reply

type ReplyNotFoundError

type ReplyNotFoundError struct {
	ID string
}

ReplyNotFoundError indicates a reply was not found

func (*ReplyNotFoundError) Error

func (e *ReplyNotFoundError) Error() string

type Request

type Request struct {
	ID                int                 `json:"id"`
	Author            Author              `json:"author"`
	Type              string              `json:"type"`
	Secure            bool                `json:"secure"`
	Subject           string              `json:"subject"`
	CreatedAt         connection.DateTime `json:"created_at"`
	Priority          RequestPriority     `json:"priority"`
	Archived          bool                `json:"archived"`
	Status            RequestStatus       `json:"status"`
	RequestSMS        bool                `json:"request_sms"`
	Version           int                 `json:"version"`
	CustomerReference string              `json:"customer_reference"`
	Product           Product             `json:"product"`
	LastRepliedAt     connection.DateTime `json:"last_replied_at"`
	CC                []string            `json:"cc"`
	UnreadReplies     int                 `json:"unread_replies"`
	ContactMethod     string              `json:"contact_method"`
}

Request represents a PSS request

type RequestFeedbackNotFoundError

type RequestFeedbackNotFoundError struct {
	RequestID int
}

RequestFeedbackNotFoundError indicates feedback for a request was not found

func (*RequestFeedbackNotFoundError) Error

type RequestNotFoundError

type RequestNotFoundError struct {
	ID int
}

RequestNotFoundError indicates a request was not found

func (*RequestNotFoundError) Error

func (e *RequestNotFoundError) Error() string

type RequestPriority

type RequestPriority string
const (
	RequestPriorityNormal   RequestPriority = "Normal"
	RequestPriorityHigh     RequestPriority = "High"
	RequestPriorityCritical RequestPriority = "Critical"
)

func (RequestPriority) String

func (s RequestPriority) String() string

type RequestStatus

type RequestStatus string
const (
	RequestStatusCompleted                RequestStatus = "Completed"
	RequestStatusAwaitingCustomerResponse RequestStatus = "Awaiting Customer Response"
	RequestStatusRepliedAndCompleted      RequestStatus = "Replied and Completed"
	RequestStatusSubmitted                RequestStatus = "Submitted"
)

func (RequestStatus) String

func (s RequestStatus) String() string

type Service

type Service struct {
	// contains filtered or unexported fields
}

Service implements PSSService for managing PSS via the UKFast API

func NewService

func NewService(connection connection.Connection) *Service

NewService returns a new instance of PSSService

func (*Service) ApproveChangeCase added in v1.18.0

func (s *Service) ApproveChangeCase(changeID string, req ApproveChangeCaseRequest) (string, error)

ApproveChangeCase approves a change case by id

func (*Service) CloseIncidentCase added in v1.18.0

func (s *Service) CloseIncidentCase(incidentID string, req CloseIncidentCaseRequest) (string, error)

CloseIncidentCase approves a incident case by id

func (*Service) CreateCaseUpdate added in v1.18.0

func (s *Service) CreateCaseUpdate(caseID string, req CreateCaseUpdateRequest) (string, error)

CreateCaseUpdate creates a change case

func (*Service) CreateChangeCase added in v1.18.0

func (s *Service) CreateChangeCase(req CreateChangeCaseRequest) (string, error)

CreateChangeCase creates a change case

func (*Service) CreateIncidentCase added in v1.18.0

func (s *Service) CreateIncidentCase(req CreateIncidentCaseRequest) (string, error)

CreateIncidentCase creates a incident case

func (*Service) CreateRequest

func (s *Service) CreateRequest(req CreateRequestRequest) (int, error)

CreateRequest creates a new request

func (*Service) CreateRequestFeedback

func (s *Service) CreateRequestFeedback(requestID int, req CreateFeedbackRequest) (int, error)

CreateRequestFeedback creates a new request feedback

func (*Service) CreateRequestReply

func (s *Service) CreateRequestReply(requestID int, req CreateReplyRequest) (string, error)

CreateRequestReply creates a new request reply

func (*Service) DeleteReplyAttachment

func (s *Service) DeleteReplyAttachment(replyID string, attachmentName string) error

DeleteReplyAttachment removes a reply attachment

func (*Service) DownloadReplyAttachmentStream

func (s *Service) DownloadReplyAttachmentStream(replyID string, attachmentName string) (contentStream io.ReadCloser, err error)

DownloadReplyAttachmentStream downloads the provided attachment, returning a stream of the file contents and an error

func (*Service) GetCase added in v1.18.0

func (s *Service) GetCase(caseID string) (Case, error)

GetCase retrieves a single instance case by id

func (*Service) GetCaseCategories added in v1.18.0

func (s *Service) GetCaseCategories(parameters connection.APIRequestParameters) ([]CaseCategory, error)

GetCaseCategories retrieves a list of case categories

func (*Service) GetCaseCategoriesPaginated added in v1.18.0

func (s *Service) GetCaseCategoriesPaginated(parameters connection.APIRequestParameters) (*connection.Paginated[CaseCategory], error)

GetCaseCategoriesPaginated retrieves a paginated list of case categories

func (*Service) GetCaseUpdate added in v1.18.0

func (s *Service) GetCaseUpdate(caseID string, updateID string) (CaseUpdate, error)

GetProblemCase retrieves a single instance case by id

func (*Service) GetCaseUpdates added in v1.18.0

func (s *Service) GetCaseUpdates(caseID string, parameters connection.APIRequestParameters) ([]CaseUpdate, error)

GetCaseUpdates retrieves a list of problem case updates

func (*Service) GetCaseUpdatesPaginated added in v1.18.0

func (s *Service) GetCaseUpdatesPaginated(caseID string, parameters connection.APIRequestParameters) (*connection.Paginated[CaseUpdate], error)

GetCaseUpdatesPaginated retrieves a paginated list of case updates

func (*Service) GetCases added in v1.18.0

func (s *Service) GetCases(parameters connection.APIRequestParameters) ([]Case, error)

GetCases retrieves a list of cases

func (*Service) GetCasesPaginated added in v1.18.0

func (s *Service) GetCasesPaginated(parameters connection.APIRequestParameters) (*connection.Paginated[Case], error)

GetCasesPaginated retrieves a paginated list of cases

func (*Service) GetChangeCase added in v1.18.0

func (s *Service) GetChangeCase(changeID string) (ChangeCase, error)

GetChangeCase retrieves a single instance case by id

func (*Service) GetChangeCases added in v1.18.0

func (s *Service) GetChangeCases(parameters connection.APIRequestParameters) ([]ChangeCase, error)

GetChangeCases retrieves a list of change cases

func (*Service) GetChangeCasesPaginated added in v1.18.0

func (s *Service) GetChangeCasesPaginated(parameters connection.APIRequestParameters) (*connection.Paginated[ChangeCase], error)

GetChangeCasesPaginated retrieves a paginated list of change cases

func (*Service) GetChangeImpactCaseOptions added in v1.18.0

func (s *Service) GetChangeImpactCaseOptions(parameters connection.APIRequestParameters) ([]CaseOption, error)

GetCaseOptions retrieves a list of change impact case options

func (*Service) GetChangeImpactCaseOptionsPaginated added in v1.18.0

func (s *Service) GetChangeImpactCaseOptionsPaginated(parameters connection.APIRequestParameters) (*connection.Paginated[CaseOption], error)

GetCaseOptionsPaginated retrieves a paginated list of change impact case options

func (*Service) GetChangeRiskCaseOptions added in v1.18.0

func (s *Service) GetChangeRiskCaseOptions(parameters connection.APIRequestParameters) ([]CaseOption, error)

GetCaseOptions retrieves a list of change risk case options

func (*Service) GetChangeRiskCaseOptionsPaginated added in v1.18.0

func (s *Service) GetChangeRiskCaseOptionsPaginated(parameters connection.APIRequestParameters) (*connection.Paginated[CaseOption], error)

GetCaseOptionsPaginated retrieves a paginated list of change risk case options

func (*Service) GetIncidentCase added in v1.18.0

func (s *Service) GetIncidentCase(incidentID string) (IncidentCase, error)

GetIncidentCase retrieves a single instance case by id

func (*Service) GetIncidentCases added in v1.18.0

func (s *Service) GetIncidentCases(parameters connection.APIRequestParameters) ([]IncidentCase, error)

GetIncidentCases retrieves a list of incident cases

func (*Service) GetIncidentCasesPaginated added in v1.18.0

func (s *Service) GetIncidentCasesPaginated(parameters connection.APIRequestParameters) (*connection.Paginated[IncidentCase], error)

GetIncidentCasesPaginated retrieves a paginated list of incident cases

func (*Service) GetIncidentImpactCaseOptions added in v1.18.0

func (s *Service) GetIncidentImpactCaseOptions(parameters connection.APIRequestParameters) ([]CaseOption, error)

GetCaseOptions retrieves a list of incident impact case options

func (*Service) GetIncidentImpactCaseOptionsPaginated added in v1.18.0

func (s *Service) GetIncidentImpactCaseOptionsPaginated(parameters connection.APIRequestParameters) (*connection.Paginated[CaseOption], error)

GetCaseOptionsPaginated retrieves a paginated list of incident impact case options

func (*Service) GetIncidentTypeCaseOptions added in v1.18.0

func (s *Service) GetIncidentTypeCaseOptions(parameters connection.APIRequestParameters) ([]CaseOption, error)

GetCaseOptions retrieves a list of incident type case options

func (*Service) GetIncidentTypeCaseOptionsPaginated added in v1.18.0

func (s *Service) GetIncidentTypeCaseOptionsPaginated(parameters connection.APIRequestParameters) (*connection.Paginated[CaseOption], error)

GetCaseOptionsPaginated retrieves a paginated list of incident type case options

func (*Service) GetProblemCase added in v1.18.0

func (s *Service) GetProblemCase(problemID string) (ProblemCase, error)

GetProblemCase retrieves a single instance case by id

func (*Service) GetProblemCases added in v1.18.0

func (s *Service) GetProblemCases(parameters connection.APIRequestParameters) ([]ProblemCase, error)

GetProblemCases retrieves a list of problem cases

func (*Service) GetProblemCasesPaginated added in v1.18.0

func (s *Service) GetProblemCasesPaginated(parameters connection.APIRequestParameters) (*connection.Paginated[ProblemCase], error)

GetProblemCasesPaginated retrieves a paginated list of problem cases

func (*Service) GetReply

func (s *Service) GetReply(replyID string) (Reply, error)

GetReply retrieves a single reply by id

func (*Service) GetRequest

func (s *Service) GetRequest(requestID int) (Request, error)

GetRequest retrieves a single request by id

func (*Service) GetRequestConversation

func (s *Service) GetRequestConversation(solutionID int, parameters connection.APIRequestParameters) ([]Reply, error)

GetRequestConversation retrieves a list of replies

func (*Service) GetRequestConversationPaginated

func (s *Service) GetRequestConversationPaginated(solutionID int, parameters connection.APIRequestParameters) (*connection.Paginated[Reply], error)

GetRequestConversationPaginated retrieves a paginated list of domains

func (*Service) GetRequestFeedback

func (s *Service) GetRequestFeedback(requestID int) (Feedback, error)

GetRequestFeedback retrieves feedback for a request

func (*Service) GetRequestReplies

func (s *Service) GetRequestReplies(solutionID int, parameters connection.APIRequestParameters) ([]Reply, error)

GetRequestReplies is an alias for GetRequestConversation

func (*Service) GetRequestRepliesPaginated

func (s *Service) GetRequestRepliesPaginated(solutionID int, parameters connection.APIRequestParameters) (*connection.Paginated[Reply], error)

GetRequestRepliesPaginated is an alias for GetRequestConversationPaginated

func (*Service) GetRequests

func (s *Service) GetRequests(parameters connection.APIRequestParameters) ([]Request, error)

GetRequests retrieves a list of requests

func (*Service) GetRequestsPaginated

func (s *Service) GetRequestsPaginated(parameters connection.APIRequestParameters) (*connection.Paginated[Request], error)

GetRequestsPaginated retrieves a paginated list of requests

func (*Service) GetSupportedServices added in v1.18.0

func (s *Service) GetSupportedServices(parameters connection.APIRequestParameters) ([]SupportedService, error)

GetCaseOptions retrieves a list of supported services

func (*Service) GetSupportedServicesPaginated added in v1.18.0

func (s *Service) GetSupportedServicesPaginated(parameters connection.APIRequestParameters) (*connection.Paginated[SupportedService], error)

GetSupportedServicesPaginated retrieves a paginated list of supported services

func (*Service) PatchRequest

func (s *Service) PatchRequest(requestID int, req PatchRequestRequest) error

PatchRequest patches a request

func (*Service) UploadReplyAttachmentStream

func (s *Service) UploadReplyAttachmentStream(replyID string, attachmentName string, stream io.Reader) (err error)

UploadReplyAttachmentStream uploads the provided attachment

type SupportedService added in v1.18.0

type SupportedService struct {
	ID   string `json:"id"`
	Name string `json:"name"`
}

CaseUpdate represents a PSS supported service

Jump to

Keyboard shortcuts

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