dto

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Mar 16, 2026 License: Apache-2.0 Imports: 3 Imported by: 0

Documentation

Index

Constants

View Source
const (
	FieldIdentifierCluster         = "CLUSTER"
	FieldIdentifierAWS             = "AWS"
	FieldIdentifierGCP             = "GCP"
	FieldIdentifierAzure           = "AZURE"
	FieldIdentifierExternalData    = "EXTERNAL_DATA"
	FieldIdentifierCommon          = "COMMON"
	FieldIdentifierCustom          = "CUSTOM"
	FieldIdentifierBusinessMapping = "BUSINESS_MAPPING"
	FieldIdentifierLabel           = "LABEL"
	FieldIdentifierLabelV2         = "LABEL_V2"
)
View Source
const (
	TimeFilterOperatorNotIn               = "NOT_IN"
	TimeFilterOperatorIn                  = "IN"
	TimeFilterOperatorEquals              = "EQUALS"
	TimeFilterOperatorNotNull             = "NOT_NULL"
	TimeFilterOperatorNull                = "NULL"
	TimeFilterOperatorLike                = "LIKE"
	TimeFilterOperatorGreaterThan         = "GREATER_THAN"
	TimeFilterOperatorLessThan            = "LESS_THAN"
	TimeFilterOperatorGreaterThanEqualsTo = "GREATER_THAN_EQUALS_TO"
	TimeFilterOperatorLessThanEqualsTo    = "LESS_THAN_EQUALS_TO"
	TimeFilterOperatorAfter               = "AFTER"
	TimeFilterOperatorBefore              = "BEFORE"
)
View Source
const (
	TimeRangeLastMonth    = "LAST_MONTH"
	TimeRangeCurrentMonth = "CURRENT_MONTH"
)
View Source
const (
	AnomTimeGroupByHour    = "HOUR"
	AnomTimeGroupByDay     = "DAY"
	AnomTimeGroupByMonth   = "MONTH"
	AnomTimeGroupByWeek    = "WEEK"
	AnomTimeGroupByQuarter = "QUARTER"
	AnomTimeGroupByYear    = "YEAR"
)
View Source
const (
	AnomFilterOperatorNotIn   = "NOT_IN"
	AnomFilterOperatorIn      = "IN"
	AnomFilterOperatorEquals  = "EQUALS"
	AnomFilterOperatorNotNull = "NOT_NULL"
	AnomFilterOperatorNull    = "NULL"
	AnomFilterOperatorLike    = "LIKE"
	AnomFilterOperatorSearch  = "SEARCH"
)
View Source
const (
	AgregOperationTypeSum   = "SUM"
	AgregOperationTypeMax   = "MAX"
	AgregOperationTypeMin   = "MIN"
	AgregOperationTypeAvg   = "AVG"
	AgregOperationTypeCount = "COUNT"
)
View Source
const (
	AnomalyStatusActive   = "ACTIVE"
	AnomalyStatusIgnored  = "IGNORED"
	AnomalyStatusArchived = "ARCHIVED"
	AnomalyStatusResolved = "RESOLVED"
)
View Source
const (
	AnomalyFieldPerspectiveID           = "PERSPECTIVE_ID"
	AnomalyFieldAnomalyID               = "ANOMALY_ID"
	AnomalyFieldWorkload                = "WORKLOAD"
	AnomalyFieldWorkloadType            = "WORKLOAD_TYPE"
	AnomalyFieldClusterID               = "CLUSTER_ID"
	AnomalyFieldClusterName             = "CLUSTER_NAME"
	AnomalyFieldClusterNamespace        = "CLUSTER_NAMESPACE"
	AnomalyFieldClusterNamespaceID      = "CLUSTER_NAMESPACE_ID"
	AnomalyFieldClusterWorkload         = "CLUSTER_WORKLOAD"
	AnomalyFieldClusterWorkloadID       = "CLUSTER_WORKLOAD_ID"
	AnomalyFieldClusterNode             = "CLUSTER_NODE"
	AnomalyFieldClusterPod              = "CLUSTER_POD"
	AnomalyFieldClusterParentInstanceID = "CLUSTER_PARENT_INSTANCE_ID"
	AnomalyFieldClusterStorage          = "CLUSTER_STORAGE"
	AnomalyFieldClusterApplication      = "CLUSTER_APPLICATION"
	AnomalyFieldClusterEnvironment      = "CLUSTER_ENVIRONMENT"
	AnomalyFieldClusterService          = "CLUSTER_SERVICE"
	AnomalyFieldClusterCloudProvider    = "CLUSTER_CLOUD_PROVIDER"
	AnomalyFieldClusterEcsService       = "CLUSTER_ECS_SERVICE"
	AnomalyFieldClusterEcsServiceID     = "CLUSTER_ECS_SERVICE_ID"
	AnomalyFieldClusterEcsTask          = "CLUSTER_ECS_TASK"
	AnomalyFieldClusterEcsTaskID        = "CLUSTER_ECS_TASK_ID"
	AnomalyFieldClusterEcsLaunchType    = "CLUSTER_ECS_LAUNCH_TYPE"
	AnomalyFieldClusterEcsLaunchTypeID  = "CLUSTER_ECS_LAUNCH_TYPE_ID"
	AnomalyFieldNamespace               = "NAMESPACE"
	AnomalyFieldService                 = "SERVICE"
	AnomalyFieldServiceName             = "SERVICE_NAME"
	AnomalyFieldGcpProduct              = "GCP_PRODUCT"
	AnomalyFieldGcpProject              = "GCP_PROJECT"
	AnomalyFieldGcpSkuID                = "GCP_SKU_ID"
	AnomalyFieldGcpSkuDescription       = "GCP_SKU_DESCRIPTION"
	AnomalyFieldAwsAccount              = "AWS_ACCOUNT"
	AnomalyFieldAwsService              = "AWS_SERVICE"
	AnomalyFieldAwsInstanceType         = "AWS_INSTANCE_TYPE"
	AnomalyFieldAwsUsageType            = "AWS_USAGE_TYPE"
	AnomalyFieldAwsBillingEntity        = "AWS_BILLING_ENTITY"
	AnomalyFieldAwsLineItemType         = "AWS_LINE_ITEM_TYPE"
	AnomalyFieldAzureSubscriptionGuid   = "AZURE_SUBSCRIPTION_GUID"
	AnomalyFieldAzureMeterName          = "AZURE_METER_NAME"
	AnomalyFieldAzureMeterCategory      = "AZURE_METER_CATEGORY"
	AnomalyFieldAzureMeterSubcategory   = "AZURE_METER_SUBCATEGORY"
	AnomalyFieldAzureResourceID         = "AZURE_RESOURCE_ID"
	AnomalyFieldAzureResourceGroupName  = "AZURE_RESOURCE_GROUP_NAME"
	AnomalyFieldAzureResourceType       = "AZURE_RESOURCE_TYPE"
	AnomalyFieldAzureResource           = "AZURE_RESOURCE"
	AnomalyFieldAzureServiceName        = "AZURE_SERVICE_NAME"
	AnomalyFieldAzureServiceTier        = "AZURE_SERVICE_TIER"
	AnomalyFieldAzureInstanceID         = "AZURE_INSTANCE_ID"
	AnomalyFieldAzureSubscriptionName   = "AZURE_SUBSCRIPTION_NAME"
	AnomalyFieldAzurePublisherName      = "AZURE_PUBLISHER_NAME"
	AnomalyFieldAzurePublisherType      = "AZURE_PUBLISHER_TYPE"
	AnomalyFieldAzureReservationID      = "AZURE_RESERVATION_ID"
	AnomalyFieldAzureReservationName    = "AZURE_RESERVATION_NAME"
	AnomalyFieldAzureFrequency          = "AZURE_FREQUENCY"
	AnomalyFieldAzureChargeType         = "AZURE_CHARGE_TYPE"
	AnomalyFieldAzurePricingModel       = "AZURE_PRICING_MODEL"
	AnomalyFieldAzureBenefitName        = "AZURE_BENEFIT_NAME"
	AnomalyFieldAzureResourceName       = "AZURE_RESOURCE_NAME"
	AnomalyFieldCommonProduct           = "COMMON_PRODUCT"
	AnomalyFieldCommonRegion            = "COMMON_REGION"
	AnomalyFieldCommonNone              = "COMMON_NONE"
	AnomalyFieldCloudProvider           = "CLOUD_PROVIDER"
	AnomalyFieldStatus                  = "STATUS"
	AnomalyFieldRegion                  = "REGION"
	AnomalyFieldAnomalyTime             = "ANOMALY_TIME"
	AnomalyFieldActualCost              = "ACTUAL_COST"
	AnomalyFieldExpectedCost            = "EXPECTED_COST"
	AnomalyFieldAnomalousSpend          = "ANOMALOUS_SPEND"
	AnomalyFieldCostImpact              = "COST_IMPACT"
	AnomalyFieldAll                     = "ALL"
	AnomalyFieldAnomalousSpendPercent   = "ANOMALOUS_SPEND_PERCENTAGE"
	AnomalyFieldTotalCost               = "TOTAL_COST"
	AnomalyFieldIdleCost                = "IDLE_COST"
	AnomalyFieldUnallocatedCost         = "UNALLOCATED_COST"
	AnomalyFieldRuleName                = "RULE_NAME"
	AnomalyFieldRuleSetName             = "RULE_SET_NAME"
	AnomalyFieldPotentialSavings        = "POTENTIAL_SAVINGS"
	AnomalyFieldLastEvaluatedAt         = "LAST_EVALUATED_AT"
	AnomalyFieldAnomalyStatus           = "ANOMALY_STATUS"
	AnomalyFieldRecommendationsCount    = "RECOMMENDATIONS_COUNT"
	AnomalyFieldActualAmount            = "ACTUAL_AMOUNT"
	AnomalyFieldCriticality             = "CRITICALITY"
	AnomalyFieldDuration                = "DURATION"
	AnomalyFieldUpdatedAt               = "UPDATED_AT"
	AnomalyFieldUpdatedBy               = "UPDATED_BY"
	AnomalyFieldUpdatedAtRelative       = "UPDATED_AT_RELATIVE"
)
View Source
const (
	AnomalyFeedbackTrueAnomaly         = "TRUE_ANOMALY"
	AnomalyFeedbackTrueExpectedAnomaly = "TRUE_EXPECTED_ANOMALY"
	AnomalyFeedbackFalseAnomaly        = "FALSE_ANOMALY"
	AnomalyFeedbackNotResponded        = "NOT_RESPONDED"
)
View Source
const (
	CommitmentType           string = "Commitment Type"
	CommitmentInstanceFamily string = "Instance Family"
	CommitmentRegion         string = "Regions"
)
View Source
const (
	CommitmentCoverageStatusWellOptimized string = "Well Optimized"
	CommitmentCoverageStatusGood          string = "Good Coverage"
	CommitmentCoverageStatusAdequate      string = "Adequate Coverage"
)
View Source
const (
	PeriodTypeHour    string = "HOUR"
	PeriodTypeDay     string = "DAY"
	PeriodTypeMonth   string = "MONTH"
	PeriodTypeWeek    string = "WEEK"
	PeriodTypeQuarter string = "QUARTER"
	PeriodTypeYear    string = "YEAR"
)
View Source
const (
	SortTypeName     string = "NAME"
	SortTypeLastEdit string = "LAST_EDIT"
)
View Source
const (
	SortOrderAsc  string = "ASCENDING"
	SortOrderDesc string = "DESCENDING"
)
View Source
const (
	TimeFilterLast7                  = "LAST_7" // It doesn't work using "LAST_7_DAYS"
	TimeFilterThisMonth              = "THIS_MONTH"
	TimeFilterLast30Days             = "LAST_30_DAYS"
	TimeFilterThisQuarter            = "THIS_QUARTER"
	TimeFilterThisYear               = "THIS_YEAR"
	TimeFilterLastMonth              = "LAST_MONTH"
	TimeFilterLastQuarter            = "LAST_QUARTER"
	TimeFilterLastYear               = "LAST_YEAR"
	TimeFilterLast3Months            = "LAST_3_MONTHS"
	TimeFilterLast6Months            = "LAST_6_MONTHS"
	TimeFilterLast12Months           = "LAST_12_MONTHS"
	TimeFilterPreviousToCurrentMonth = "PREVIOUS_TO_CURRENT_MONTH" // From first day of previous month to last day of current month
)
View Source
const (
	GridGroupByCostCategory     = "business_mapping"
	GridGroupByAWSAccount       = "awsUsageaccountid"
	GridGroupByAWSBillingEntity = "awsBillingEntity"
	GridGroupByAWSInstanceType  = "awsInstancetype"
	GridGroupByAWSLineItemType  = "awsLineItemType"
	GridGroupByAWSPayerAccount  = "awspayeraccountid"
	GridGroupByAWSService       = "awsServicecode"
	GridGroupByAWSUsageType     = "awsUsageType"
	GridGroupByRegion           = "region"
	GridGroupByProduct          = "product"
	GridGroupByCloudProvider    = "cloudProvider"
	GridGroupByLabel            = "label"
	GridGroupByLabelV2          = "label_v2"
	GridGroupByNone             = "none"
)
View Source
const (
	ValueTypeCostCategory     = "business_mapping"
	ValueTypeAWSAccount       = "awsUsageaccountid"
	ValueTypeAWSBillingEntity = "awsBillingEntity"
	ValueTypeAWSInstanceType  = "awsInstancetype"
	ValueTypeAWSLineItemType  = "awsLineItemType"
	ValueTypeAWSPayerAccount  = "awspayeraccountid"
	ValueTypeAWSService       = "awsServicecode"
	ValueTypeAWSUsageType     = "awsUsageType"
	ValueTypeRegion           = "region"
	ValueTypeProduct          = "product"
	ValueTypeCloudProvider    = "cloudProvider"
	ValueTypeLabel            = "label"
	ValueTypeLabelKey         = "label_key"
	ValueTypeLabelV2          = "label_v2"
	ValueTypeLabelV2Key       = "label_v2_key"
)
View Source
const (
	TimeGroupByDay   = "DAY"
	TimeGroupByWeek  = "WEEK"
	TimeGroupByMonth = "MONTH"
)
View Source
const (
	SortByTime        string = "TIME"
	SortByCost        string = "COST"
	SortByClusterCost string = "CLUSTER_COST"
	SortByName        string = "NAME"
)

*************************** Perspective List Detail ***************************

View Source
const (
	SortOrderAscending  string = "ASCENDING"
	SortOrderDescending string = "DESCENDING"
)
View Source
const (
	FilterByAws     string = "AWS"
	FilterByAzure   string = "AZURE"
	FilterByGcp     string = "GCP"
	FilterByCluster string = "CLUSTER"
	FilterByDefault string = "DEFAULT"
)
View Source
const (
	PeriodDaily     string = "DAILY"
	PeriodWeekly    string = "WEEKLY"
	PeriodMonthly   string = "MONTHLY"
	PeriodQuarterly string = "QUARTERLY"
	PeriodYearly    string = "YEARLY"
)
View Source
const (
	TimeRangeTypeLast7Days    string = "LAST_7"
	TimeRangeTypeLast30Days   string = "LAST_30_DAYS"
	TimeRangeTypeLast30       string = "LAST_30"
	TimeRangeTypeLastMonth    string = "LAST_MONTH"
	TimeRangeTypeCurrentMonth string = "CURRENT_MONTH"
	TimeRangeTypeCustom       string = "CUSTOM"
)
View Source
const (
	ViewTypeSample   string = "SAMPLE"
	ViewTypeCustomer string = "CUSTOMER"
	ViewTypeDefault  string = "DEFAULT"
)
View Source
const (
	ViewStateDraft     string = "DRAFT"
	ViewStateCompleted string = "COMPLETED"
)
View Source
const (
	AwsCostAmortised    string = "AMORTISED"
	AwsCostNetAmortised string = "NET_AMORTISED"
	AwsCostBlended      string = "BLENDED"
	AwsCostUnblended    string = "UNBLENDED"
	AwsCostEffective    string = "EFFECTIVE"
)
View Source
const (
	DataSourceCluster         string = "CLUSTER"
	DataSourceAws             string = "AWS"
	DataSourceGcp             string = "GCP"
	DataSourceAzure           string = "AZURE"
	DataSourceExternalData    string = "EXTERNAL_DATA"
	DataSourceCommon          string = "COMMON"
	DataSourceCustom          string = "CUSTOM"
	DataSourceBusinessMapping string = "BUSINESS_MAPPING"
	DataSourceLabel           string = "LABEL"
	DataSourceLabelV2         string = "LABEL_V2"
)
View Source
const (
	AzureCostTypeActual    string = "ACTUAL"
	AzureCostTypeAmortized string = "AMORTIZED"
)
View Source
const (
	FieldIdCluster         string = "CLUSTER"
	FieldIdAws             string = "AWS"
	FieldIdGcp             string = "GCP"
	FieldIdAzure           string = "AZURE"
	FieldIdExternalData    string = "EXTERNAL_DATA"
	FieldIdCommon          string = "COMMON"
	FieldIdCustom          string = "CUSTOM"
	FieldIdBusinessMapping string = "BUSINESS_MAPPING"
	FieldIdLabel           string = "LABEL"
	FieldIdLabelV2         string = "LABEL_V2"
)
View Source
const (
	ConditionOperatorIn      = "IN"
	ConditionOperatorNotIn   = "NOT_IN"
	ConditionOperatorEquals  = "EQUALS"
	ConditionOperatorNotNull = "NOT_NULL"
	ConditionOperatorNull    = "NULL"
	ConditionOperatorLike    = "LIKE"
)
View Source
const (
	GraphTypeStackedTimeSeries = "STACKED_TIME_SERIES"
	GraphTypeStackedLineChart  = "STACKED_LINE_CHART"
)
View Source
const (
	GranularityDay   = "DAY"
	GranularityWeek  = "WEEK"
	GranularityMonth = "MONTH"
)
View Source
const (
	RecommendationStateApplied = "APPLIED"
	RecommendationStateOpen    = "OPEN"
	RecommendationStateIgnored = "IGNORED"
)
View Source
const (
	ResourceTypeWorkload      = "WORKLOAD"
	ResourceTypeNodePool      = "NODE_POOL"
	ResourceTypeECSService    = "ECS_SERVICE"
	ResourceTypeEC2Instance   = "EC2_INSTANCE"
	ResourceTypeGovernance    = "GOVERNANCE"
	ResourceTypeAzureInstance = "AZURE_INSTANCE"
)
View Source
const (
	TicketPlatformJira       = "Jira"
	TicketPlatformServiceNow = "Servicenow"
)

Values received from the settings API

View Source
const (
	EntityKindDefault              string = "component,api,resource"
	EntityKindApi                  string = "api"
	EntityKindComponent            string = "component"
	EntityKindEnvironment          string = "environment"
	EntityKindEnvironmentblueprint string = "environmentblueprint"
	EntityKindGroup                string = "group"
	EntityKindResource             string = "resource"
	EntityKindUser                 string = "user"
	EntityKindWorkflow             string = "workflow"
)
View Source
const (
	ScopeLevelDefault string = "ALL"
	ScopeLevelAccount string = "ACCOUNT"
	ScopeLevelOrg     string = "ORG"
	ScopeLevelProject string = "PROJECT"
)
View Source
const (
	ScorecardDetailsWeightageStrategyCUSTOM       string = "CUSTOM"
	ScorecardDetailsWeightageStrategyEQUALWEIGHTS string = "EQUAL_WEIGHTS"
)
View Source
const (
	ChecksSortOrderAsc  string = "ASC"
	ChecksSortOrderDesc string = "DESC"
)
View Source
const (
	ChecksSortTypeName        string = "name"
	ChecksSortTypeDescription string = "description"
	ChecksSortTypeDataSource  string = "data_source"
)
View Source
const AnomalyFilterType = "Anomaly"

Variables

View Source
var AllowedActions = map[string]struct{}{
	"CREATE":                  {},
	"UPDATE":                  {},
	"RESTORE":                 {},
	"DELETE":                  {},
	"FORCE_DELETE":            {},
	"UPSERT":                  {},
	"INVITE":                  {},
	"RESEND_INVITE":           {},
	"REVOKE_INVITE":           {},
	"ADD_COLLABORATOR":        {},
	"REMOVE_COLLABORATOR":     {},
	"CREATE_TOKEN":            {},
	"REVOKE_TOKEN":            {},
	"LOGIN":                   {},
	"LOGIN2FA":                {},
	"UNSUCCESSFUL_LOGIN":      {},
	"ADD_MEMBERSHIP":          {},
	"REMOVE_MEMBERSHIP":       {},
	"ERROR_BUDGET_RESET":      {},
	"START":                   {},
	"END":                     {},
	"STAGE_START":             {},
	"STAGE_END":               {},
	"PAUSE":                   {},
	"RESUME":                  {},
	"ABORT":                   {},
	"TIMEOUT":                 {},
	"SIGNED_EULA":             {},
	"ROLE_ASSIGNMENT_CREATED": {},
	"ROLE_ASSIGNMENT_UPDATED": {},
	"ROLE_ASSIGNMENT_DELETED": {},
	"MOVE":                    {},
	"ENABLED":                 {},
	"DISABLED":                {},
	"DISMISS_ANOMALY":         {},
	"RERUN":                   {},
	"BYPASS":                  {},
	"STABLE_VERSION_CHANGED":  {},
	"SYNC_START":              {},
	"START_IMPERSONATION":     {},
	"END_IMPERSONATION":       {},
	"MOVE_TO_GIT":             {},
	"FREEZE_BYPASS":           {},
	"EXPIRED":                 {},
	"FORCE_PUSH":              {},
}
View Source
var AllowedPrincipalTypes = map[string]struct{}{
	"USER":            {},
	"USER_GROUP":      {},
	"SERVICE_ACCOUNT": {},
}
View Source
var AllowedScopeLevels = map[string]struct{}{
	"account":      {},
	"organization": {},
	"project":      {},
}

Functions

func FormatUnixMillisToMMDDYYYY

func FormatUnixMillisToMMDDYYYY(ms int64) string

FormatUnixMillisToMMDDYYYY converts Unix timestamp in milliseconds to MM/DD/YYYY format

func FormatUnixMillisToRFC3339

func FormatUnixMillisToRFC3339(ms int64) string

FormatUnixMillisToRFC3339 converts Unix timestamp in milliseconds to RFC3339 format

Types

type AccessControlOutput

type AccessControlOutput[T any] struct {
	Status        string                 `json:"status,omitempty"`
	Data          T                      `json:"data,omitempty"`
	MetaData      map[string]interface{} `json:"metaData,omitempty"`
	CorrelationId string                 `json:"correlationId,omitempty"`
}

type AccessControlPrincipal

type AccessControlPrincipal struct {
	ScopeLevel string `json:"scopeLevel,omitempty"`
	Identifier string `json:"identifier,omitempty"`
	Type       string `json:"type,omitempty"`
	UniqueId   string `json:"uniqueId,omitempty"`
}

type AccountInfo

type AccountInfo struct {
	UUID              string `json:"uuid,omitempty"`
	AccountName       string `json:"accountName,omitempty"`
	CompanyName       string `json:"companyName,omitempty"`
	DefaultExperience string `json:"defaultExperience,omitempty"`
	CreatedFromNG     bool   `json:"createdFromNG,omitempty"`
	NextGenEnabled    bool   `json:"nextGenEnabled,omitempty"`
}

type ActionData

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

type ActivityDetails

type ActivityDetails struct {
	LastActivityTime int64 `json:"lastActivityTime"`
}

ActivityDetails represents the activity information of a connector.

type ActivityDetailsResponse

type ActivityDetailsResponse struct {
	// Human-readable timestamp instead of Unix timestamp
	LastActivityTimeStr string `json:"last_activity_time"`
}

ActivityDetailsResponse extends ActivityDetails with human-readable timestamp fields

func ToActivityDetails

func ToActivityDetails(a ActivityDetails) ActivityDetailsResponse

ToActivityDetails converts ActivityDetails adding RFC3339 time string

type AuditAuthenticationInfo

type AuditAuthenticationInfo struct {
	Principal AuditPrincipal                `json:"principal"`
	Labels    AuditAuthenticationInfoLabels `json:"labels,omitempty"`
}

type AuditAuthenticationInfoLabels

type AuditAuthenticationInfoLabels struct {
	UserID   string `json:"userId,omitempty"`
	Username string `json:"username,omitempty"`
}

type AuditListItem

type AuditListItem struct {
	AuditID            string                  `json:"auditId,omitempty"`
	InsertId           string                  `json:"insertId,omitempty"`
	Resource           AuditResource           `json:"resource,omitempty"`
	Action             string                  `json:"action,omitempty"`
	Module             string                  `json:"module,omitempty"`
	Timestamp          int64                   `json:"timestamp,omitempty"`
	AuthenticationInfo AuditAuthenticationInfo `json:"authenticationInfo,omitempty"`
	ResourceScope      AuditResourceScope      `json:"resourceScope,omitempty"`
	Time               string
}

type AuditOutput

type AuditOutput[T any] struct {
	Status string             `json:"status,omitempty"`
	Data   AuditOutputData[T] `json:"data,omitempty"`
}

type AuditOutputData

type AuditOutputData[T any] struct {
	PageItemCount int    `json:"pageItemCount,omitempty"`
	PageSize      int    `json:"pageSize,omitempty"`
	Content       []T    `json:"content,omitempty"`
	PageIndex     int    `json:"pageIndex,omitempty"`
	HasNext       bool   `json:"hasNext,omitempty"`
	PageToken     string `json:"pageToken,omitempty"`
	TotalItems    int    `json:"totalItems,omitempty"`
	TotalPages    int    `json:"totalPages,omitempty"`
}

type AuditPrincipal

type AuditPrincipal struct {
	Type       string `json:"type"`
	Identifier string `json:"identifier"`
}

type AuditResource

type AuditResource struct {
	Type       string              `json:"type"`
	Identifier string              `json:"identifier"`
	Labels     AuditResourceLabels `json:"labels,omitempty"`
}

type AuditResourceLabels

type AuditResourceLabels struct {
	ResourceName string `json:"resourceName,omitempty"`
}

type AuditResourceScope

type AuditResourceScope struct {
	AccountIdentifier string `json:"accountIdentifier"`
	OrgIdentifier     string `json:"orgIdentifier,omitempty"`
	ProjectIdentifier string `json:"projectIdentifier,omitempty"`
}

type AuditYamlData

type AuditYamlData struct {
	OldYaml string `json:"oldYaml"`
	NewYaml string `json:"newYaml"`
}

AuditYamlData contains the old and new YAML content for an audit event

type AuditYamlResponse

type AuditYamlResponse struct {
	Status        string        `json:"status"`
	Data          AuditYamlData `json:"data"`
	MetaData      interface{}   `json:"metaData"`
	CorrelationID string        `json:"correlationId"`
}

AuditYamlResponse represents the response from the audit YAML API

type CCMAwsPreferences

type CCMAwsPreferences struct {
	IncludeDiscounts bool   `json:"includeDiscounts"`
	IncludeCredits   bool   `json:"includeCredits"`
	IncludeRefunds   bool   `json:"includeRefunds"`
	IncludeTaxes     bool   `json:"includeTaxes"`
	AwsCost          string `json:"awsCost"`
}

type CCMAzureViewPreferences

type CCMAzureViewPreferences struct {
	CostType string `json:"costType"`
}

type CCMBaseResponse

type CCMBaseResponse struct {
	Status        string         `json:"state,omitempty"`
	Message       string         `json:"message,omitempty"`
	MetaData      map[string]any `json:"metaData,omitempty"`
	CorrelationID string         `json:"correlation_id,omitempty"`
	Error         []CCMError     `json:"error,omitempty"`
}

CCMBaseResponse represents a basic ccm response. CEView represents a basic ccm response. The `data` field contains the response data.

type CCMBusinessMapping

type CCMBusinessMapping struct {
	UUID            string             `json:"uuid"`
	Name            string             `json:"name"`
	AccountID       string             `json:"accountId"`
	CostTargets     []CCMCostTarget    `json:"costTargets"`
	SharedCosts     []CCMSharedCost    `json:"sharedCosts"`
	UnallocatedCost CCMUnallocatedCost `json:"unallocatedCost"`
	DataSources     []string           `json:"dataSources"`
	CreatedAt       int64              `json:"createdAt"`
	LastUpdatedAt   int64              `json:"lastUpdatedAt"`
	CreatedBy       CCMUser            `json:"createdBy"`
	LastUpdatedBy   CCMUser            `json:"lastUpdatedBy"`
}

type CCMCommitmentAPIFilter

type CCMCommitmentAPIFilter struct {
	CloudAccounts    []string `json:"cloud_account_ids,omitempty"`
	Service          string   `json:"service,omitempty"`
	IsHarnessManaged *bool    `json:"is_harness_managed,omitempty"`
	GroupBy          *string  `json:"group_by,omitempty"`
	NetAmortizedCost *bool    `json:"net_amortized,omitempty"`
}

type CCMCommitmentBaseResponse

type CCMCommitmentBaseResponse struct {
	Ts       int64    `json:"ts"`
	Success  bool     `json:"success"`
	Errors   []string `json:"errors"`
	Response any      `json:"response"`
}

type CCMCommitmentOptions

type CCMCommitmentOptions struct {
	AccountIdentifier  *string  `json:"accountIdentifier,omitempty"`
	CloudAccountIDs    []string `json:"cloudAccountId,omitempty"`
	Service            *string  `json:"service,omitempty"`
	StartDate          *string  `json:"startDate,omitempty"`
	EndDate            *string  `json:"endDate,omitempty"`
	IsHarnessManaged   *bool    `json:"isHarnessManaged,omitempty"`
	GroupBy            *string  `json:"groupBy,omitempty"`
	IsNetAmortizedCost *bool    `json:"net_amortized,omitempty"`
}

type CCMCostByTime

type CCMCostByTime struct {
	Time  int64   `json:"time,omitempty"`  // Unix epoch milliseconds
	Value float64 `json:"value,omitempty"` // Cost
}

type CCMCostCategory

type CCMCostCategory struct {
	MetaData         map[string]interface{} `json:"metaData"`
	Resource         CCMBusinessMapping     `json:"resource"`
	ResponseMessages []CCMResponseMessage   `json:"responseMessages"`
}

*************************** Get Cost Category *************************** CCMCostCategory represents the details of a cost category in CCM

type CCMCostCategoryDetailList

type CCMCostCategoryDetailList struct {
	MetaData         map[string]interface{}  `json:"metaData"`
	Resource         CCMCostCategoryResource `json:"resource"`
	ResponseMessages []CCMResponseMessage    `json:"responseMessages"`
}

type CCMCostCategoryList

type CCMCostCategoryList struct {
	CCMBaseResponse
	Data []string `json:"data,omitempty"`
}

CcmCostCategoryList represents a list of cost categories in CCM

type CCMCostCategoryResource

type CCMCostCategoryResource struct {
	BusinessMappings []CCMBusinessMapping `json:"businessMappings"`
	TotalCount       int                  `json:"totalCount"`
}

type CCMCostTarget

type CCMCostTarget struct {
	Name  string    `json:"name"`
	Rules []CCMRule `json:"rules"`
}

type CCMCreatePerspectiveOptions

type CCMCreatePerspectiveOptions struct {
	AccountId       string
	Clone           bool
	UpdateTotalCost bool
	Body            CCMPerspective
}

*************************** Create perspective ***************************

type CCMCreatePerspectiveResponse

type CCMCreatePerspectiveResponse struct {
	CCMBaseResponse
	Data CCMPerspective `json:"data"`
}

type CCMCurrencyPreference

type CCMCurrencyPreference struct {
	DestinationCurrency string `json:"destinationCurrency"`
	Symbol              string `json:"symbol"`
	Locale              string `json:"locale"`
	SetupTime           int64  `json:"setupTime"`
	Typename            string `json:"__typename"`
}

type CCMError

type CCMError struct {
	FieldId string `json:"fieldId,omitempty"`
	Error   string `json:"error,omitempty"`
}

Response error

type CCMException

type CCMException struct {
	StackTrace       []CCMStackTraceElement `json:"stackTrace"`
	Message          string                 `json:"message"`
	Suppressed       []CCMSuppressed        `json:"suppressed"`
	LocalizedMessage string                 `json:"localizedMessage"`
}

type CCMGcpPreferences

type CCMGcpPreferences struct {
	IncludeDiscounts bool `json:"includeDiscounts"`
	IncludeTaxes     bool `json:"includeTaxes"`
}

type CCMGetCostCategoryOptions

type CCMGetCostCategoryOptions struct {
	AccountIdentifier string `json:"accountIdentifier,omitempty"`
	CostCategoryId    string `json:"id,omitempty"`
}

CCMGetCostCategoryOptions represents options for listing cost categories

type CCMGetLastPeriodCostPerspectiveOptions

type CCMGetLastPeriodCostPerspectiveOptions struct {
	CCMGetPerspectiveOptions
	StartTime int64
	Period    string
}

*************************** Get Last period cost perspective ***************************

type CCMGetLastTwelveMonthsCostPerspectiveOptions

type CCMGetLastTwelveMonthsCostPerspectiveOptions = CCMGetLastPeriodCostPerspectiveOptions

*************************** Get Last twelve months cost perspective ***************************

type CCMGetPerspectiveOptions

type CCMGetPerspectiveOptions struct {
	AccountIdentifier string
	PerspectiveId     string
}

*************************** Get Perspective Detail ***************************

type CCMGraphQLError

type CCMGraphQLError struct {
	Message    string                    `json:"message"`
	Locations  []CCMGraphQLErrorLocation `json:"locations"`
	Extensions CCMGraphQLErrorExtensions `json:"extensions"`
}

type CCMGraphQLErrorExtensions

type CCMGraphQLErrorExtensions struct {
	Classification string `json:"classification"`
}

type CCMGraphQLErrorLocation

type CCMGraphQLErrorLocation struct {
	Line   int `json:"line"`
	Column int `json:"column"`
}

type CCMGraphQLFilters

type CCMGraphQLFilters = map[string][]string

type CCMGraphQLKeyValueFilters

type CCMGraphQLKeyValueFilters = map[string]map[string]any

type CCMGroupBy

type CCMGroupBy struct {
	FieldId        string `json:"fieldId"`
	FieldName      string `json:"fieldName"`
	Identifier     string `json:"identifier"`
	IdentifierName string `json:"identifierName"`
}

type CCMIssueTypeInfo

type CCMIssueTypeInfo struct {
	Id   string `json:"id"`
	Name string `json:"name"`
}

type CCMJiraIssueType

type CCMJiraIssueType struct {
	Id   string `json:"id"`
	Name string `json:"name"`
}

type CCMJiraIssueTypesList

type CCMJiraIssueTypesList struct {
	CCMBaseResponse
	Data []CCMJiraIssueType `json:"data,omitempty"`
}

type CCMJiraIssueTypesOptions

type CCMJiraIssueTypesOptions struct {
	AccountId    string
	ProjectKey   string
	ConnectorRef string
}

type CCMJiraIssueTypesResponse

type CCMJiraIssueTypesResponse struct {
	CCMBaseResponse
	Data CCMJiraProjects `json:"data,omitempty"`
}

type CCMJiraProjectDetail

type CCMJiraProjectDetail struct {
	Id         string                      `json:"id"`
	Key        string                      `json:"key"`
	Name       string                      `json:"name"`
	IssueTypes map[string]CCMJiraIssueType `json:"issuetypes"`
}

type CCMJiraProjects

type CCMJiraProjects struct {
	Projects map[string]CCMJiraProjectDetail `json:"projects"`
}

type CCMKeyValue

type CCMKeyValue struct {
	Key   string `json:"key"`
	Value string `json:"value"`
}

type CCMLastPeriodCostPerspective

type CCMLastPeriodCostPerspective struct {
	CCMBaseResponse
	Data float64 `json:"data,omitempty"`
}

type CCMLastTwelveMonthsCostPerspective

type CCMLastTwelveMonthsCostPerspective struct {
	CCMBaseResponse
	Data []CCMCostByTime `json:"data,omitempty"`
}

type CCMListCostCategoriesDetailOptions

type CCMListCostCategoriesDetailOptions struct {
	AccountIdentifier string `json:"accountIdentifier,omitempty"`
	SearchKey         string `json:"searchKey,omitempty"`
	SortType          string `json:"sortType,omitempty"`  // Enum: "NAME", "LAST_EDIT"
	SortOrder         string `json:"sortOrder,omitempty"` // Enum: "ASCENDING", "DESCENDING"
	CCMPaginationOptions
}

type CCMListCostCategoriesOptions

type CCMListCostCategoriesOptions struct {
	AccountIdentifier string `json:"accountIdentifier,omitempty"`
	CostCategory      string `json:"costCategory,omitempty"`
	SearchTerm        string `json:"search,omitempty"`
}

CcmCostCategoriesOptions represents options for listing cost categories

type CCMListLabelsV2KeysOptions

type CCMListLabelsV2KeysOptions struct {
	AccountId  string `json:"account_id"`
	TimeFilter string `json:"time_filter"`
	Limit      int32  `json:"limit"`
	Offset     int32  `json:"offset"`
}

Options for listing labelsV2 keys

type CCMListLabelsV2KeysResponse

type CCMListLabelsV2KeysResponse struct {
	Errors []CCMGraphQLError `json:"errors"`
	Data   struct {
		PerspectiveFilters CCMPerspectiveFilterValues `json:"perspectiveFilters"`
	} `json:"data"`
}

Response for listing labelsV2 keys

type CCMListPerspectivesDetailOptions

type CCMListPerspectivesDetailOptions struct {
	AccountIdentifier string
	SearchKey         string
	SortType          string
	SortOrder         string
	CloudFilters      string
	CCMPaginationOptions
}

type CCMMasterAccountsListResponse

type CCMMasterAccountsListResponse struct {
	Data struct {
		Content []struct {
			Connector struct {
				Identifier string `json:"identifier"`
				Name       string `json:"name"`
			} `json:"connector"`
		} `json:"content"`
	} `json:"data"`
}

type CCMMetadata

type CCMMetadata struct {
	K8sClusterConnectorPresent       bool                  `json:"k8sClusterConnectorPresent"`
	CloudDataPresent                 bool                  `json:"cloudDataPresent"`
	AwsConnectorsPresent             bool                  `json:"awsConnectorsPresent"`
	GcpConnectorsPresent             bool                  `json:"gcpConnectorsPresent"`
	AzureConnectorsPresent           bool                  `json:"azureConnectorsPresent"`
	ApplicationDataPresent           bool                  `json:"applicationDataPresent"`
	InventoryDataPresent             bool                  `json:"inventoryDataPresent"`
	ClusterDataPresent               bool                  `json:"clusterDataPresent"`
	ExternalDataPresent              bool                  `json:"externalDataPresent"`
	IsSampleClusterPresent           bool                  `json:"isSampleClusterPresent"`
	DefaultAzurePerspectiveId        string                `json:"defaultAzurePerspectiveId"`
	DefaultAwsPerspectiveId          string                `json:"defaultAwsPerspectiveId"`
	DefaultGcpPerspectiveId          string                `json:"defaultGcpPerspectiveId"`
	DefaultClusterPerspectiveId      string                `json:"defaultClusterPerspectiveId"`
	DefaultExternalDataPerspectiveId string                `json:"defaultExternalDataPerspectiveId"`
	ShowCostOverview                 bool                  `json:"showCostOverview"`
	CurrencyPreference               CCMCurrencyPreference `json:"currencyPreference"`
	Typename                         string                `json:"__typename"`
}

type CCMMetadataResponse

type CCMMetadataResponse struct {
	Errors []CCMGraphQLError `json:"errors"`
	Data   struct {
		CCMMetadata CCMMetadata `json:"ccmMetaData"`
	} `json:"data"`
}

type CCMOverview

type CCMOverview struct {
	CostPerDay           []TimeSeriesDataPoints `json:"costPerDay,omitempty"`
	TotalCost            float64                `json:"totalCost,omitempty"`
	TotalCostTrend       float64                `json:"totalCostTrend,omitempty"`
	RecommendationsCount int32                  `json:"recommendationsCount,omitempty"`
}

CCMOverview represents the Overview data from a CCM Overview

type CCMPaginationOptions

type CCMPaginationOptions struct {
	Limit  int32 `json:"limit,omitempty"`
	Offset int32 `json:"offset,omitempty"`
}

type CCMPerspective

type CCMPerspective struct {
	UUID              string               `json:"uuid"`
	Name              string               `json:"name"`
	AccountId         string               `json:"accountId"`
	FolderId          string               `json:"folderId"`
	ViewVersion       string               `json:"viewVersion"`
	ViewTimeRange     CCMViewTimeRange     `json:"viewTimeRange"`
	ViewRules         []CCMViewRule        `json:"viewRules"`
	DataSources       []string             `json:"dataSources"`
	ViewVisualization CCMViewVisualization `json:"viewVisualization"`
	ViewPreferences   CCMViewPreferences   `json:"viewPreferences"`
	ViewType          string               `json:"viewType"`
	ViewState         string               `json:"viewState"`
	TotalCost         float64              `json:"totalCost"`
	CreatedAt         int64                `json:"createdAt"`
	LastUpdatedAt     int64                `json:"lastUpdatedAt"`
	CreatedBy         CCMUser              `json:"createdBy"`
	LastUpdatedBy     CCMUser              `json:"lastUpdatedBy"`
}

type CCMPerspectiveBudget

type CCMPerspectiveBudget struct {
	ID           string  `json:"id"`
	Name         string  `json:"name"`
	BudgetAmount float64 `json:"budgetAmount"`
	ActualCost   float64 `json:"actualCost"`
	TimeLeft     int     `json:"timeLeft"`
	TimeUnit     string  `json:"timeUnit"`
	TimeScope    string  `json:"timeScope"`
	Period       string  `json:"period"`
	FolderID     string  `json:"folderId"`
	Typename     string  `json:"__typename"`
}

type CCMPerspectiveBudgetOptions

type CCMPerspectiveBudgetOptions struct {
	AccountId     string `json:"account_id"`
	PerspectiveId string `json:"perspective_id"`
}

type CCMPerspectiveBudgetResponse

type CCMPerspectiveBudgetResponse struct {
	Errors []CCMGraphQLError `json:"errors"`
	Data   struct {
		BudgetSummaryList []CCMPerspectiveBudget `json:"budgetSummaryList"`
	} `json:"data"`
}

type CCMPerspectiveDetail

type CCMPerspectiveDetail struct {
	CCMBaseResponse
	Data CCMPerspective `json:"data"`
}

type CCMPerspectiveFilterValues

type CCMPerspectiveFilterValues struct {
	Values   []string `json:"values"`
	Typename string   `json:"__typename"`
}

type CCMPerspectiveFilterValuesOptions

type CCMPerspectiveFilterValuesOptions struct {
	AccountId           string `json:"account_id"`
	ViewId              string `json:"view_id"`
	TimeFilter          string `json:"time_filter"`
	ValueType           string `json:"value_type"`
	ValueSubType        string `json:"value_sub_type"`
	Limit               int32  `json:"limit"`
	Offset              int32  `json:"offset"`
	IsClusterHourlyData bool
}

type CCMPerspectiveFilterValuesResponse

type CCMPerspectiveFilterValuesResponse struct {
	Errors []CCMGraphQLError `json:"errors"`
	Data   struct {
		PerspectiveFilters CCMPerspectiveFilterValues `json:"perspectiveFilters"`
	} `json:"data"`
}

type CCMPerspectiveForecastCost

type CCMPerspectiveForecastCost struct {
	Cost     CCMStatsInfo `json:"cost"`
	Typename string       `json:"__typename"`
}

type CCMPerspectiveGridDataPoint

type CCMPerspectiveGridDataPoint struct {
	Name      string  `json:"name"`
	ID        string  `json:"id"`
	Cost      float64 `json:"cost"`
	CostTrend float64 `json:"costTrend"`
	Typename  string  `json:"__typename"`
}

type CCMPerspectiveGridDataWrapper

type CCMPerspectiveGridDataWrapper struct {
	PerspectiveGrid       CCMPerspectiveGridEntityStats `json:"perspectiveGrid"`
	PerspectiveTotalCount int                           `json:"perspectiveTotalCount"`
}

type CCMPerspectiveGridEntityStats

type CCMPerspectiveGridEntityStats struct {
	Data     []CCMPerspectiveGridDataPoint `json:"data"`
	Typename string                        `json:"__typename"`
}

type CCMPerspectiveGridOptions

type CCMPerspectiveGridOptions struct {
	AccountId              string         `json:"account_id"`
	ViewId                 string         `json:"view_id"`
	TimeFilter             string         `json:"time_filter"`
	IsClusterOnly          bool           `json:"is_cluster_only"`
	IsClusterHourlyData    bool           `json:"is_cluster_hourly_data"`
	Limit                  int32          `json:"limit"`
	Offset                 int32          `json:"offset"`
	GroupBy                map[string]any `json:"group_by"`
	IncludeOthers          bool           `json:"include_others"`
	IncludeAnomalies       bool           `json:"include_anomalies"`
	IncludeUnallocatedCost bool           `json:"include_unallocated_cost"`
	AwsIncludeDiscounts    bool           `json:"aws_include_discounts"`
	AwsIncludeCredits      bool           `json:"aws_include_credits"`
	AwsIncludeRefunds      bool           `json:"aws_include_refunds"`
	AwsIncludeTaxes        bool           `json:"aws_include_taxes"`
	AwsCost                string         `json:"aws_cost"`

	Filters         CCMGraphQLFilters
	KeyValueFilters CCMGraphQLKeyValueFilters
}

type CCMPerspectiveGridResponse

type CCMPerspectiveGridResponse struct {
	Errors []CCMGraphQLError             `json:"errors"`
	Data   CCMPerspectiveGridDataWrapper `json:"data"`
}

type CCMPerspectiveRecommendationsOptions

type CCMPerspectiveRecommendationsOptions struct {
	AccountId            string `json:"account_id"`
	ViewId               string `json:"view_id"`
	TimeFilter           string `json:"time_filter"`
	Limit                int32  `json:"limit"`
	Offset               int32  `json:"offset"`
	MinSaving            int    `json:"min_saving"`
	Filters              CCMGraphQLFilters
	KeyValueFilters      CCMGraphQLKeyValueFilters
	RecommendationStates []string
}

type CCMPerspectiveRecommendationsResponse

type CCMPerspectiveRecommendationsResponse struct {
	Errors []CCMGraphQLError `json:"errors"`
	Data   struct {
		RecommendationStatsV2 CCMRecommendationStatsV2 `json:"recommendationStatsV2"`
		RecommendationsV2     CCMRecommendationsV2     `json:"recommendationsV2"`
	} `json:"data"`
}

type CCMPerspectiveReference

type CCMPerspectiveReference struct {
	ID       string `json:"id"`
	Name     string `json:"name"`
	Type     string `json:"type"`
	Typename string `json:"__typename"`
}

type CCMPerspectiveSummaryWithBudgetOptions

type CCMPerspectiveSummaryWithBudgetOptions = CCMPerspectiveGridOptions

type CCMPerspectiveSummaryWithBudgetResponse

type CCMPerspectiveSummaryWithBudgetResponse struct {
	Errors []CCMGraphQLError `json:"errors"`
	Data   struct {
		PerspectiveTrendStats   CCMPerspectiveTrendStats   `json:"perspectiveTrendStats"`
		PerspectiveForecastCost CCMPerspectiveForecastCost `json:"perspectiveForecastCost"`
	} `json:"data"`
}

type CCMPerspectiveTimeSeriesOptions

type CCMPerspectiveTimeSeriesOptions struct {
	CCMPerspectiveGridOptions
	TimeGroupBy string `json:"time_group_by"`
}

type CCMPerspectiveTimeSeriesResponse

type CCMPerspectiveTimeSeriesResponse struct {
	Errors []CCMGraphQLError `json:"errors"`
	Data   struct {
		PerspectiveTimeSeriesStats struct {
			Stats []CCMPerspectiveTimeSeriesStat `json:"stats"`
		} `json:"perspectiveTimeSeriesStats"`
	} `json:"data"`
}

type CCMPerspectiveTimeSeriesStat

type CCMPerspectiveTimeSeriesStat struct {
	Values []CCMPerspectiveTimeSeriesValue `json:"values"`
}

type CCMPerspectiveTimeSeriesValue

type CCMPerspectiveTimeSeriesValue struct {
	Key      CCMPerspectiveReference `json:"key"`
	Value    float64                 `json:"value"`
	Typename string                  `json:"__typename"`
}

type CCMPerspectiveTrendStats

type CCMPerspectiveTrendStats struct {
	Cost                 CCMStatsInfo  `json:"cost"`
	IdleCost             CCMStatsInfo  `json:"idleCost"`
	UnallocatedCost      CCMStatsInfo  `json:"unallocatedCost"`
	UtilizedCost         CCMStatsInfo  `json:"utilizedCost"`
	EfficiencyScoreStats *CCMStatsInfo `json:"efficiencyScoreStats"`
	Typename             string        `json:"__typename"`
}

type CCMPerspectiveView

type CCMPerspectiveView struct {
	ID                        string `json:"id"`
	Name                      string `json:"name"`
	FolderID                  string `json:"folderId"`
	FolderName                string `json:"folderName"`
	ReportScheduledConfigured bool   `json:"reportScheduledConfigured"`
}

type CCMPerspectiveViewList

type CCMPerspectiveViewList struct {
	TotalCount int                  `json:"totalCount"`
	Views      []CCMPerspectiveView `json:"views"`
}

type CCMPerspectivesDetailList

type CCMPerspectivesDetailList struct {
	CCMBaseResponse
	Data CCMPerspectiveViewList `json:"data,omitempty"`
}

type CCMRecommendationDetailOptions

type CCMRecommendationDetailOptions struct {
	AccountIdentifier string `json:"accountIdentifier"`
	RecommendationId  string `json:"id"`
	From              string `json:"from,omitempty"`
	To                string `json:"to,omitempty"`
	BufferPercentage  int64  `json:"bufferPercentage,omitempty"` // Only for ECS Service recommendations
}

type CCMRecommendationStatsV2

type CCMRecommendationStatsV2 struct {
	TotalMonthlyCost   float64 `json:"totalMonthlyCost"`
	TotalMonthlySaving float64 `json:"totalMonthlySaving"`
	Count              int     `json:"count"`
	Typename           string  `json:"__typename"`
}

type CCMRecommendationsV2

type CCMRecommendationsV2 struct {
	Items    []any  `json:"items"`
	Typename string `json:"__typename"`
}

type CCMReference

type CCMReference struct {
	Id   string `json:"id,omitempty"`
	Name string `json:"name,omitempty"`
	Type string `json:"type,omitempty"`
}

CCMReference represents a reference to a CCM entity

type CCMResponseMessage

type CCMResponseMessage struct {
	Code           string            `json:"code"`
	Level          string            `json:"level"`
	Message        string            `json:"message"`
	Exception      *CCMException     `json:"exception"`
	FailureTypes   []string          `json:"failureTypes"`
	AdditionalInfo map[string]string `json:"additionalInfo"`
}

type CCMRule

type CCMRule struct {
	ViewConditions []interface{} `json:"viewConditions"`
}

type CCMSharedCost

type CCMSharedCost struct {
	Name     string     `json:"name"`
	Rules    []CCMRule  `json:"rules"`
	Strategy string     `json:"strategy"`
	Splits   []CCMSplit `json:"splits"`
}

type CCMSplit

type CCMSplit struct {
	CostTargetName         *string  `json:"costTargetName"`
	PercentageContribution *float64 `json:"percentageContribution"`
}

type CCMStackTraceElement

type CCMStackTraceElement struct {
	ClassLoaderName *string `json:"classLoaderName"`
	ModuleName      *string `json:"moduleName"`
	ModuleVersion   *string `json:"moduleVersion"`
	MethodName      *string `json:"methodName"`
	FileName        *string `json:"fileName"`
	LineNumber      *int    `json:"lineNumber"`
	NativeMethod    *bool   `json:"nativeMethod"`
	ClassName       *string `json:"className"`
}

type CCMStatsInfo

type CCMStatsInfo struct {
	StatsDescription string   `json:"statsDescription"`
	StatsLabel       string   `json:"statsLabel"`
	StatsTrend       float64  `json:"statsTrend"`
	StatsValue       string   `json:"statsValue"`
	Value            *float64 `json:"value"`
	Typename         string   `json:"__typename"`
}

type CCMSuppressed

type CCMSuppressed struct {
	StackTrace       []CCMStackTraceElement `json:"stackTrace"`
	Message          string                 `json:"message"`
	LocalizedMessage string                 `json:"localizedMessage"`
}

type CCMTicketDetails

type CCMTicketDetails struct {
	RecommendationId string         `json:"recommendationId"`
	ResourceType     string         `json:"resourceType"`
	ConnectorRef     string         `json:"connectorRef"`
	ProjectKey       string         `json:"projectKey,omitempty"`
	TicketType       string         `json:"ticketType"`
	Fields           map[string]any `json:"fields"`
	Platform         string         // TicketPlatform
}

type CCMTicketToolSetting

type CCMTicketToolSetting struct {
	Identifier        string    `json:"identifier"`
	Name              string    `json:"name"`
	OrgIdentifier     *string   `json:"orgIdentifier"`
	ProjectIdentifier *string   `json:"projectIdentifier"`
	Category          string    `json:"category"`
	GroupIdentifier   string    `json:"groupIdentifier"`
	ValueType         string    `json:"valueType"`
	AllowedValues     *[]string `json:"allowedValues"`
	AllowOverrides    bool      `json:"allowOverrides"`
	Value             string    `json:"value"`
	DefaultValue      *string   `json:"defaultValue"`
	SettingSource     string    `json:"settingSource"`
	IsSettingEditable bool      `json:"isSettingEditable"`
	AllowedScopes     []string  `json:"allowedScopes"`
}

type CCMTicketToolSettings

type CCMTicketToolSettings struct {
	Setting        CCMTicketToolSetting `json:"setting"`
	LastModifiedAt int64                `json:"lastModifiedAt"`
}

type CCMTicketToolSettingsResponse

type CCMTicketToolSettingsResponse struct {
	CCMBaseResponse
	Data []CCMTicketToolSettings `json:"data,omitempty"`
}

type CCMUnallocatedCost

type CCMUnallocatedCost struct {
	Strategy        string     `json:"strategy"`
	Label           string     `json:"label"`
	SharingStrategy string     `json:"sharingStrategy"`
	Splits          []CCMSplit `json:"splits"`
}

type CCMUser

type CCMUser struct {
	UUID           string `json:"uuid"`
	Name           string `json:"name"`
	Email          string `json:"email"`
	ExternalUserID string `json:"externalUserId"`
}

type CCMViewCondition

type CCMViewCondition struct {
	Type         string       `json:"type"`
	ViewField    CCMViewField `json:"viewField"`
	ViewOperator string       `json:"viewOperator"`
	Values       []string     `json:"values"`
}

type CCMViewField

type CCMViewField struct {
	FieldId        string `json:"fieldId"`
	FieldName      string `json:"fieldName"`
	Identifier     string `json:"identifier"`
	IdentifierName string `json:"identifierName"`
}

type CCMViewPreferences

type CCMViewPreferences struct {
	ShowAnomalies          bool                    `json:"showAnomalies"`
	IncludeOthers          bool                    `json:"includeOthers"`
	IncludeUnallocatedCost bool                    `json:"includeUnallocatedCost"`
	AwsPreferences         CCMAwsPreferences       `json:"awsPreferences"`
	GcpPreferences         CCMGcpPreferences       `json:"gcpPreferences"`
	AzureViewPreferences   CCMAzureViewPreferences `json:"azureViewPreferences"`
}

type CCMViewRule

type CCMViewRule struct {
	ViewConditions []CCMViewCondition `json:"viewConditions"`
}

type CCMViewTimeRange

type CCMViewTimeRange struct {
	ViewTimeRangeType string `json:"viewTimeRangeType"`
	StartTime         int64  `json:"startTime"`
	EndTime           int64  `json:"endTime"`
}

type CCMViewVisualization

type CCMViewVisualization struct {
	Granularity string     `json:"granularity"`
	GroupBy     CCMGroupBy `json:"groupBy"`
	ChartType   string     `json:"chartType"`
}

type CEView

type CEView struct {
	CCMBaseResponse
	Data CCMOverview `json:"data,omitempty"`
}

CEView represents a basic ccm response. The `data` field contains the response data.

type CcmDataPoint

type CcmDataPoint struct {
	Key   CCMReference `json:"key,omitempty"`
	Value float64      `json:"value,omitempty"`
}

CcmDataPoint represents a data point in the time series

type ChaosData

type ChaosData struct {
	FaultData  *FaultData  `json:"faultData,omitempty"`
	ProbeData  *ProbeData  `json:"probeData,omitempty"`
	ActionData *ActionData `json:"actionData,omitempty"`
}

type ChaosExecutionNode

type ChaosExecutionNode struct {
	Name          string     `json:"stepName"`
	StreamID      string     `json:"streamID"`
	Status        string     `json:"status"`
	StepType      string     `json:"stepType"`
	Spec          string     `json:"spec"`
	ChaosData     *ChaosData `json:"chaosData,omitempty"`
	ErrorData     *ErrorData `json:"errorData,omitempty"`
	EstimatedTime int        `json:"estimatedTime"`
	StartedAt     int64      `json:"startedAt"`
	LastUpdatedAt int64      `json:"lastUpdatedAt"`
	FinishedAt    int64      `json:"finishedAt"`
	Duration      int64      `json:"duration"`
}

type ChaosExecutionResponse

type ChaosExecutionResponse struct {
	Name            string               `json:"stepName"`
	ExperimentID    string               `json:"experimentID"`
	ExperimentRunID string               `json:"experimentRunID"`
	Status          string               `json:"status"`
	StepType        string               `json:"stepType"`
	RunSequence     int                  `json:"runSequence"`
	StartedAt       int64                `json:"startedAt"`
	LastUpdatedAt   int64                `json:"lastUpdatedAt"`
	FinishedAt      int64                `json:"finishedAt"`
	Duration        int64                `json:"duration"`
	Nodes           []ChaosExecutionNode `json:"nodes"`
	InfraID         string               `json:"infraID"`
	ResiliencyScore *float64             `json:"resiliencyScore"`
	ManifestVersion string               `json:"manifestVersion"`
}

type ChaosExperimentInputsetSpec

type ChaosExperimentInputsetSpec struct {
	Experiment []VariableMinimum            `json:"experiment" yaml:"experiment"`
	Tasks      map[string][]VariableMinimum `json:"tasks" yaml:"tasks"`
}

type ChaosExperimentTemplate

type ChaosExperimentTemplate struct {
	Identity     string     `json:"identity"`
	HubIdentity  string     `json:"hubIdentity"`
	Template     string     `json:"template"`
	Variables    []Variable `json:"variables"`
	Revision     string     `json:"revision"`
	IsDefault    bool       `json:"isDefault"`
	IsEnterprise bool       `json:"isEnterprise"`
	InfraType    string     `json:"infraType"`
	Infras       []string   `json:"infras"`
}

type ChaosInfraV2

type ChaosInfraV2 struct {
	Name          string `json:"identity"`
	EnvironmentID string `json:"environmentId"`
}

type ChatHistoryItem

type ChatHistoryItem struct {
	Question string `json:"question"`
	Answer   string `json:"answer"`
}

type ChatRequest

type ChatRequest struct {
	Question    string            `json:"question"`
	ChatHistory []ChatHistoryItem `json:"chat_history,omitempty"`
}

type Check

type Check struct {
	Custom      bool     `json:"custom"`
	Description string   `json:"description,omitempty"`
	Expression  string   `json:"expression,omitempty"`
	Identifier  string   `json:"identifier"`
	Name        string   `json:"name"`
	Tags        []string `json:"tags,omitempty"`
}

type CheckDetails

type CheckDetails struct {
	Custom           bool      `json:"custom"`
	DefaultBehaviour string    `json:"default_behaviour"`
	Description      *string   `json:"description,omitempty"`
	Expression       *string   `json:"expression,omitempty"`
	FailMessage      *string   `json:"fail_message,omitempty"`
	HarnessManaged   *bool     `json:"harness_managed,omitempty"`
	Identifier       string    `json:"identifier"`
	Name             string    `json:"name"`
	Percentage       *float64  `json:"percentage,omitempty"`
	RuleStrategy     string    `json:"rule_strategy"`
	Rules            []Rule    `json:"rules"`
	Tags             *[]string `json:"tags,omitempty"`
}

type CheckDetailsResponse

type CheckDetailsResponse struct {
	CheckDetails CheckDetails `json:"check_details"`
}

type CheckListItem

type CheckListItem struct {
	Custom      bool      `json:"custom"`
	DataSource  []string  `json:"data_source"`
	Description *string   `json:"description,omitempty"`
	Expression  *string   `json:"expression,omitempty"`
	Identifier  string    `json:"identifier"`
	Name        string    `json:"name"`
	Percentage  *float64  `json:"percentage,omitempty"`
	Tags        *[]string `json:"tags,omitempty"`
}

type CheckResponse

type CheckResponse struct {
	Check *CheckListItem `json:"check,omitempty"`
}

type CheckResponseList

type CheckResponseList = []CheckResponse

type CheckStats

type CheckStats struct {
	Kind      string `json:"kind"`
	Name      string `json:"name"`
	Namespace string `json:"namespace"`
	Owner     string `json:"owner"`
	Status    string `json:"status"`
	System    string `json:"system"`
	Type      string `json:"type"`
}

type CheckStatsResponse

type CheckStatsResponse struct {
	Name      string       `json:"name"`
	Stats     []CheckStats `json:"stats"`
	Timestamp *int64       `json:"timestamp,omitempty"`
}

type CheckStatsResponseWithHumanReadableTime

type CheckStatsResponseWithHumanReadableTime struct {
	Name  string       `json:"name"`
	Stats []CheckStats `json:"stats"`
	Time  string       `json:"time,omitempty"`
}

type CheckStatus

type CheckStatus struct {
	Custom     bool   `json:"custom,omitempty"`
	Identifier string `json:"identifier,omitempty"`
	Name       string `json:"name"`
	Reason     string `json:"reason,omitempty"`
	Status     string `json:"status"`
	Weight     int    `json:"weight"`
}

type ChildGraph

type ChildGraph struct {
	PipelineExecutionSummary PipelineExecution `json:"pipelineExecutionSummary,omitempty"`
	ExecutionGraph           ExecutionGraph    `json:"executionGraph,omitempty"`
}

type CodeComment

type CodeComment struct {
	Outdated     bool   `json:"outdated,omitempty"`
	MergeBaseSHA string `json:"merge_base_sha,omitempty"`
	SourceSHA    string `json:"source_sha,omitempty"`
	Path         string `json:"path,omitempty"`
	LineNew      int    `json:"line_new,omitempty"`
	SpanNew      int    `json:"span_new,omitempty"`
	LineOld      int    `json:"line_old,omitempty"`
	SpanOld      int    `json:"span_old,omitempty"`
}

type CommandProbe

type CommandProbe struct {
	Output []byte `json:"output"`
}

type CommitmentCoverageRow

type CommitmentCoverageRow struct {
	Key                *string  `json:"key"`
	CoveragePercentage *float64 `json:"coveragePercentage"`
	Cost               *float64 `json:"cost"`
	CoverageStatus     *string  `json:"coverageStatus"`
	OndemandCost       *float64 `json:"ondemandCost"`
	Grouping           string   `json:"grouping"`
}

type CommitmentEC2AnalysisResponse

type CommitmentEC2AnalysisResponse struct {
	CommitmentSpends      []*CommitmentSpendsResponse   `json:"commitment_spend,omitempty"`
	CommitmentUtilisation *CommitmentUtilisationSummary `json:"commitment_utilization,omitempty"`
	EstimatedSavings      []*CommitmentEstimatedSavings `json:"estimated_savings,omitempty"`
	CurrentSavings        float64                       `json:"current_savings,omitempty"`
	ESRYearly             float64                       `json:"esr_yearly,omitempty"`
}

type CommitmentEstimatedSavings

type CommitmentEstimatedSavings struct {
	AnnualizedSavings float64 `json:"annualized_savings,omitempty"`
	CloudAccountID    string  `json:"cloud_account_id,omitempty"`
}

type CommitmentEstimatedSavingsResponse

type CommitmentEstimatedSavingsResponse struct {
	Data []*CommitmentEstimatedSavings `json:"data,omitempty"`
}

type CommitmentSpendsResponse

type CommitmentSpendsResponse struct {
	Key        string   `json:"key"`
	Cost       float64  `json:"cost"`
	YearlyCost float64  `json:"yearly_cost"`
	Trend      *float64 `json:"trend,omitempty"`
}

type CommitmentUtilisationResponse

type CommitmentUtilisationResponse struct {
	Key          string  `json:"key"`
	ComputeSpend float64 `json:"compute_spend"`
	Percentage   float64 `json:"percentage"`
	Trend        float64 `json:"trend"`
	Utilization  float64 `json:"utilization"`
}

type CommitmentUtilisationSummary

type CommitmentUtilisationSummary struct {
	Overall   *CommitmentUtilisationResponse   `json:"overall,omitempty"`
	Breakdown []*CommitmentUtilisationResponse `json:"breakdown,omitempty"`
}

type CommitmentUtilizationChart

type CommitmentUtilizationChart struct {
	Day                   time.Time `json:"date"`
	UtilizationPercentage float64   `json:"utilization_percentage"`
}

type CommitmentUtilizationsDetailTable

type CommitmentUtilizationsDetailTable struct {
	ComputeSpend float64  `json:"compute_spend"`
	Utilization  float64  `json:"utilization"`
	Percentage   float64  `json:"percentage"`
	Trend        *float64 `json:"trend,omitempty"`
}

type CommitmentUtlizationsDetail

type CommitmentUtlizationsDetail struct {
	Table *CommitmentUtilizationsDetailTable `json:"table,omitempty"`
	Chart []*CommitmentUtilizationChart      `json:"chart,omitempty"`
}

type ComputeCoverageChart

type ComputeCoverageChart struct {
	Day          time.Time `json:"date"`
	CoverageCost float64   `json:"coverage_cost"`
}

type ComputeCoveragesDetail

type ComputeCoveragesDetail struct {
	Table *ComputeCoveragesDetailTable `json:"table,omitempty"`
	Chart []*ComputeCoverageChart      `json:"chart,omitempty"`
}

type ComputeCoveragesDetailTable

type ComputeCoveragesDetailTable struct {
	ReservationCost    *float64 `json:"reservation_cost,omitempty"`
	TotalCost          *float64 `json:"total_cost,omitempty"`
	OnDemandCost       *float64 `json:"on_demand_cost,omitempty"`
	TotalHours         *float64 `json:"total_hours,omitempty"`
	TotalCoveredHours  *float64 `json:"total_covered_hours,omitempty"`
	OnDemandHours      *float64 `json:"on_demand_hours,omitempty"`
	SavingsPlanHours   *float64 `json:"savings_plan_hours,omitempty"`
	RICoverageHours    *float64 `json:"ri_coverage_hours,omitempty"`
	CoveragePercentage *float64 `json:"coverage,omitempty"`
	Region             *string  `json:"region,omitempty"`
	MachineType        *string  `json:"machine_type,omitempty"`
	Trend              *float64 `json:"trend,omitempty"`
	SpotCost           *float64 `json:"spot_cost,omitempty"`
	SpotHours          *float64 `json:"spot_hours,omitempty"`
}

type ComputeSpendChart

type ComputeSpendChart struct {
	Day         time.Time `json:"date"`
	SpendAmount float64   `json:"spend_amount"`
}

type ComputeSpendsDetail

type ComputeSpendsDetail struct {
	Table *ComputeSpendsDetailTable `json:"table,omitempty"`
	Chart []*ComputeSpendChart      `json:"chart,omitempty"`
}

type ComputeSpendsDetailTable

type ComputeSpendsDetailTable struct {
	TotalSpend float64  `json:"total_spend"`
	Trend      *float64 `json:"trend,omitempty"`
	Service    *string  `json:"service"`
}

type Connector

type Connector struct {
	Name              string                 `json:"name"`
	Identifier        string                 `json:"identifier"`
	Description       string                 `json:"description"`
	AccountIdentifier string                 `json:"accountIdentifier"`
	OrgIdentifier     string                 `json:"orgIdentifier"`
	ProjectIdentifier string                 `json:"projectIdentifier"`
	Tags              map[string]string      `json:"tags"`
	Type              string                 `json:"type"`
	Spec              map[string]interface{} `json:"spec"`
}

Connector represents the core connector information.

type ConnectorCatalogueItem

type ConnectorCatalogueItem struct {
	Category                         string     `json:"category,omitempty"`
	Type                             string     `json:"type,omitempty"`
	Name                             string     `json:"name,omitempty"`
	Description                      string     `json:"description,omitempty"`
	LogoURL                          string     `json:"logoURL,omitempty"`
	Tags                             []string   `json:"tags,omitempty"`
	HarnessManaged                   bool       `json:"harnessManaged,omitempty"`
	Beta                             bool       `json:"beta,omitempty"`
	ComingSoon                       bool       `json:"comingSoon,omitempty"`
	ComingSoonDate                   string     `json:"comingSoonDate,omitempty"`
	ComingSoonDescription            string     `json:"comingSoonDescription,omitempty"`
	IsNew                            bool       `json:"isNew,omitempty"`
	NewUntil                         *time.Time `json:"newUntil,omitempty"`
	SupportedDelegateTypes           []string   `json:"supportedDelegateTypes,omitempty"`
	DelegateSelectors                []string   `json:"delegateSelectors,omitempty"`
	DelegateRequiresConnectivityMode bool       `json:"delegateRequiresConnectivityMode,omitempty"`
	ConnectivityModes                []string   `json:"connectivityModes,omitempty"`
	DocumentationLink                string     `json:"documentationLink,omitempty"`
	IsSSCA                           bool       `json:"isSSCA,omitempty"`
	SSCADescription                  string     `json:"sscaDescription,omitempty"`
	SSCADocumentationLink            string     `json:"sscaDocumentationLink,omitempty"`
	SSCAType                         string     `json:"sscaType,omitempty"`
	SSCASupported                    bool       `json:"sscaSupported,omitempty"`
}

ConnectorCatalogueItem represents an item in the connector catalogue. Based on https://apidocs.harness.io/tag/Connectors#operation/getConnectorCatalogue

type ConnectorDetail

type ConnectorDetail struct {
	Connector             Connector                      `json:"connector"`
	CreatedAt             int64                          `json:"createdAt"`
	LastModifiedAt        int64                          `json:"lastModifiedAt"`
	Status                ConnectorStatus                `json:"status"`
	ActivityDetails       ActivityDetails                `json:"activityDetails"`
	HarnessManaged        bool                           `json:"harnessManaged"`
	GitDetails            ConnectorGitDetails            `json:"gitDetails"`
	EntityValidityDetails ConnectorEntityValidityDetails `json:"entityValidityDetails"`
	GovernanceMetadata    interface{}                    `json:"governanceMetadata,omitempty"`
	IsFavorite            bool                           `json:"isFavorite"`
}

ConnectorDetail represents the detailed information of a connector. Based on https://apidocs.harness.io/tag/Connectors#operation/getConnector

type ConnectorDetailResponse

type ConnectorDetailResponse struct {
	// Core connector fields
	Connector Connector `json:"connector"`
	// Human-readable timestamps in RFC3339 instead of Unix timestamps
	CreatedAtTime      string `json:"created_at_time"`
	LastModifiedAtTime string `json:"last_modified_at_time"`
	// Nested structures with human-readable fields
	Status          ConnectorStatusResponse `json:"status"`
	ActivityDetails ActivityDetailsResponse `json:"activityDetails"`
	// Other fields from ConnectorDetail
	HarnessManaged        bool                           `json:"harnessManaged"`
	GitDetails            ConnectorGitDetails            `json:"gitDetails"`
	EntityValidityDetails ConnectorEntityValidityDetails `json:"entityValidityDetails"`
	GovernanceMetadata    interface{}                    `json:"governanceMetadata,omitempty"`
	IsFavorite            bool                           `json:"isFavorite"`
}

ConnectorDetailResponse extends ConnectorDetail with human-readable timestamp fields

func ToConnectorDetail

func ToConnectorDetail(d ConnectorDetail) ConnectorDetailResponse

ToConnectorDetail converts ConnectorDetail adding RFC3339 time strings and nested conversions

type ConnectorEntityValidityDetails

type ConnectorEntityValidityDetails struct {
	Valid       bool   `json:"valid"`
	InvalidYaml string `json:"invalidYaml"`
}

ConnectorEntityValidityDetails represents the validity information of a connector.

type ConnectorError

type ConnectorError struct {
	Reason  string `json:"reason"`
	Message string `json:"message"`
	Code    int    `json:"code"`
}

ConnectorError represents an error in connector status.

type ConnectorGitDetails

type ConnectorGitDetails struct {
	Valid       bool   `json:"valid"`
	InvalidYaml string `json:"invalidYaml"`
}

ConnectorGitDetails represents git-related information of a connector.

type ConnectorListData

type ConnectorListData struct {
	Content       []ConnectorDetail `json:"content"`
	PageInfo      PageInfo          `json:"pageInfo"`
	Empty         bool              `json:"empty"`
	TotalElements int               `json:"totalElements"`
	TotalPages    int               `json:"totalPages"`
}

ConnectorListData represents the data section of connector list response.

type ConnectorListDataResponse

type ConnectorListDataResponse struct {
	Content       []ConnectorDetailResponse `json:"content"`
	PageInfo      PageInfo                  `json:"pageInfo"`
	Empty         bool                      `json:"empty"`
	TotalElements int                       `json:"totalElements"`
	TotalPages    int                       `json:"totalPages"`
}

ConnectorListDataResponse extends ConnectorListData with human-readable timestamp fields in content

func ToConnectorListData

func ToConnectorListData(data ConnectorListData) ConnectorListDataResponse

ToConnectorListData converts ConnectorListData content to include human-readable times

type ConnectorListQueryParams

type ConnectorListQueryParams struct {
	SearchTerm                           string `json:"searchTerm,omitempty"`
	FilterIdentifier                     string `json:"filterIdentifier,omitempty"`
	IncludeAllConnectorsAvailableAtScope *bool  `json:"includeAllConnectorsAvailableAtScope,omitempty"`
	Branch                               string `json:"branch,omitempty"`
	RepoIdentifier                       string `json:"repoIdentifier,omitempty"`
	GetDefaultFromOtherRepo              *bool  `json:"getDefaultFromOtherRepo,omitempty"`
	GetDistinctFromBranches              *bool  `json:"getDistinctFromBranches,omitempty"`
	Version                              string `json:"version,omitempty"`
	OnlyFavorites                        *bool  `json:"onlyFavorites,omitempty"`
	PageIndex                            *int   `json:"pageIndex,omitempty"`
	PageSize                             *int   `json:"pageSize,omitempty"`
	SortOrders                           string `json:"sortOrders,omitempty"`
	PageToken                            string `json:"pageToken,omitempty"`
}

ConnectorListQueryParams represents query parameters for listing connectors.

type ConnectorListRequestBody

type ConnectorListRequestBody struct {
	ConnectorNames                    []string          `json:"connectorNames,omitempty"`
	ConnectorIdentifiers              []string          `json:"connectorIdentifiers,omitempty"`
	Description                       string            `json:"description,omitempty"`
	Types                             []string          `json:"types,omitempty"`
	Categories                        []string          `json:"categories,omitempty"`
	ConnectivityStatuses              []string          `json:"connectivityStatuses,omitempty"`
	InheritingCredentialsFromDelegate *bool             `json:"inheritingCredentialsFromDelegate,omitempty"`
	ConnectorConnectivityModes        []string          `json:"connectorConnectivityModes,omitempty"`
	Tags                              map[string]string `json:"tags,omitempty"`
	FilterType                        string            `json:"filterType,omitempty"`
}

ConnectorListRequestBody represents the request body for listing connectors. Based on https://apidocs.harness.io/tag/Connectors#operation/getConnectorListV2

type ConnectorListResponse

type ConnectorListResponse struct {
	Status        string            `json:"status"`
	Data          ConnectorListData `json:"data"`
	MetaData      interface{}       `json:"metaData"`
	CorrelationID string            `json:"correlationId"`
}

ConnectorListResponse represents the response from listing connectors.

type ConnectorStatus

type ConnectorStatus struct {
	Status          string           `json:"status"`
	ErrorSummary    string           `json:"errorSummary"`
	Errors          []ConnectorError `json:"errors"`
	TestedAt        int64            `json:"testedAt"`
	LastTestedAt    int64            `json:"lastTestedAt"`
	LastConnectedAt int64            `json:"lastConnectedAt"`
	LastAlertSent   int64            `json:"lastAlertSent"`
}

ConnectorStatus represents the status information of a connector.

type ConnectorStatusResponse

type ConnectorStatusResponse struct {
	// Original fields from ConnectorStatus
	Status       string           `json:"status"`
	ErrorSummary string           `json:"errorSummary"`
	Errors       []ConnectorError `json:"errors"`
	// Human-readable timestamps instead of Unix timestamps
	TestedAtTime        string `json:"tested_at_time"`
	LastTestedAtTime    string `json:"last_tested_at_time"`
	LastConnectedAtTime string `json:"last_connected_at_time"`
	LastAlertSentTime   string `json:"last_alert_sent_time"`
}

ConnectorStatusResponse extends ConnectorStatus with human-readable timestamp fields

func ToConnectorStatus

func ToConnectorStatus(s ConnectorStatus) ConnectorStatusResponse

ToConnectorStatus converts ConnectorStatus adding RFC3339 time strings

type CreateExperimentFromTemplateRequest

type CreateExperimentFromTemplateRequest struct {
	IdentifiersQuery `json:",inline"`
	Name             string `json:"name"`
	Identity         string `json:"identity"`
	InfraRef         string `json:"infraRef"`
}

type CreatePullRequest

type CreatePullRequest struct {
	Title        string `json:"title"`
	Description  string `json:"description,omitempty"`
	SourceBranch string `json:"source_branch"`
	TargetBranch string `json:"target_branch,omitempty"`
	IsDraft      bool   `json:"is_draft,omitempty"`
}

CreatePullRequest represents the request body for creating a new pull request

type CreateResourceGroupOutputData

type CreateResourceGroupOutputData struct {
	ResourceGroup      ResourceGroup `json:"resourceGroup,omitempty"`
	CreatedAt          int64         `json:"createdAt,omitempty"`
	LastModifiedAt     int64         `json:"lastModifiedAt,omitempty"`
	HarnessManaged     bool          `json:"harnessManaged,omitempty"`
	CreatedAtTime      string
	LastModifiedAtTime string
}

type CreateResourceGroupRequestBody

type CreateResourceGroupRequestBody struct {
	ResourceGroup ResourceGroup `json:"resourceGroup,omitempty"`
}

type CreateRoleAssignmentOutputData

type CreateRoleAssignmentOutputData struct {
	RoleAssignment     RoleAssignment `json:"roleAssignment,omitempty"`
	Scope              Scope          `json:"scope,omitempty"`
	CreatedAt          int64          `json:"createdAt,omitempty"`
	LastModifiedAt     int64          `json:"lastModifiedAt,omitempty"`
	HarnessManaged     bool           `json:"harnessManaged,omitempty"`
	CreatedAtTime      string
	LastModifiedAtTime string
}

type CreateRoleAssignmentRequestBody

type CreateRoleAssignmentRequestBody struct {
	Identifier              string                 `json:"identifier,omitempty"`
	ResourceGroupIdentifier string                 `json:"resourceGroupIdentifier,omitempty"`
	RoleIdentifier          string                 `json:"roleIdentifier,omitempty"`
	Principal               AccessControlPrincipal `json:"principal,omitempty"`
	Managed                 bool                   `json:"managed,omitempty"`
	Internal                bool                   `json:"internal,omitempty"`
	Disabled                bool                   `json:"disabled,omitempty"`
	RoleReference           *RoleReference         `json:"roleReference,omitempty"`
}

type CreateRoleOutputData

type CreateRoleOutputData struct {
	Role               Role  `json:"role,omitempty"`
	CreatedAt          int64 `json:"createdAt,omitempty"`
	LastModifiedAt     int64 `json:"lastModifiedAt,omitempty"`
	HarnessManaged     bool  `json:"harnessManaged,omitempty"`
	Scope              Scope `json:"scope,omitempty"`
	CreatedAtTime      string
	LastModifiedAtTime string
}

type CreateSampleLoadTestRequest

type CreateSampleLoadTestRequest struct {
	Name          string `json:"name"`
	UseSampleTest bool   `json:"useSampleTest"`
	InfraID       string `json:"infraId"`
}

CreateSampleLoadTestRequest represents the request body to create a sample load test

type CreateServiceAccountRequestBody

type CreateServiceAccountRequestBody struct {
	Identifier        string `json:"identifier,omitempty"`
	Name              string `json:"name,omitempty"`
	Email             string `json:"email,omitempty"`
	Description       string `json:"description,omitempty"`
	AccountIdentifier string `json:"accountIdentifier,omitempty"`
	OrgIdentifier     string `json:"orgIdentifier,omitempty"`
	ProjectIdentifier string `json:"projectIdentifier,omitempty"`
}

type CreateUserGroupOutputData

type CreateUserGroupOutputData struct {
	AccountIdentifier string          `json:"accountIdentifier,omitempty"`
	OrgIdentifier     string          `json:"orgIdentifier,omitempty"`
	ProjectIdentifier string          `json:"projectIdentifier,omitempty"`
	Identifier        string          `json:"identifier,omitempty"`
	Name              string          `json:"name,omitempty"`
	Description       string          `json:"description,omitempty"`
	Users             []UserBasicInfo `json:"users,omitempty"`
}

type CreateUserGroupRequestBody

type CreateUserGroupRequestBody struct {
	AccountIdentifier string   `json:"accountIdentifier,omitempty"`
	OrgIdentifier     string   `json:"orgIdentifier,omitempty"`
	ProjectIdentifier string   `json:"projectIdentifier,omitempty"`
	Identifier        string   `json:"identifier,omitempty"`
	Name              string   `json:"name,omitempty"`
	Description       string   `json:"description,omitempty"`
	Users             []string `json:"users,omitempty"`
}

type CurrentUserData

type CurrentUserData struct {
	UUID                           string          `json:"uuid,omitempty"`
	Name                           string          `json:"name,omitempty"`
	Email                          string          `json:"email,omitempty"`
	Token                          interface{}     `json:"token,omitempty"`
	DefaultAccountId               string          `json:"defaultAccountId,omitempty"`
	Intent                         interface{}     `json:"intent,omitempty"`
	Accounts                       []AccountInfo   `json:"accounts,omitempty"`
	Admin                          bool            `json:"admin,omitempty"`
	TwoFactorAuthenticationEnabled bool            `json:"twoFactorAuthenticationEnabled,omitempty"`
	EmailVerified                  bool            `json:"emailVerified,omitempty"`
	Locked                         bool            `json:"locked,omitempty"`
	Disabled                       bool            `json:"disabled,omitempty"`
	SignupAction                   interface{}     `json:"signupAction,omitempty"`
	Edition                        interface{}     `json:"edition,omitempty"`
	BillingFrequency               interface{}     `json:"billingFrequency,omitempty"`
	UTMInfo                        UTMInfo         `json:"utmInfo,omitempty"`
	ExternallyManaged              bool            `json:"externallyManaged,omitempty"`
	GivenName                      interface{}     `json:"givenName,omitempty"`
	FamilyName                     interface{}     `json:"familyName,omitempty"`
	ExternalId                     interface{}     `json:"externalId,omitempty"`
	CreatedAt                      int64           `json:"createdAt,omitempty"`
	LastUpdatedAt                  int64           `json:"lastUpdatedAt,omitempty"`
	UserPreferences                UserPreferences `json:"userPreferences,omitempty"`
	IsEnrichedInfoCollected        bool            `json:"isEnrichedInfoCollected,omitempty"`
	LastLogin                      int64           `json:"lastLogin,omitempty"`
	CreatedAtTime                  string
	LastUpdatedAtTime              string
	LastLoginTime                  string
}

type Dashboard

type Dashboard struct {
	ID             string   `json:"id"`
	Title          string   `json:"title"`
	Description    string   `json:"description"`
	Models         []string `json:"models"`
	DataSource     []string `json:"data_source"`
	Type           string   `json:"type"`
	ViewCount      int      `json:"view_count"`
	FavoriteCount  int      `json:"favorite_count"`
	CreatedAt      string   `json:"created_at"`
	LastAccessedAt string   `json:"last_accessed_at"`
}

Dashboard represents a Harness dashboard

type DashboardData

type DashboardData struct {
	Tables map[string][]map[string]string `json:"tables"`
}

DashboardData represents structured data from a dashboard

type DashboardListOptions

type DashboardListOptions struct {
	Page     int    `json:"page"`
	PageSize int    `json:"pageSize"`
	FolderID string `json:"folderId"`
	Tags     string `json:"tags"`
}

DashboardListOptions represents options for listing dashboards

type DashboardListResponse

type DashboardListResponse struct {
	Items    int         `json:"items"`
	Pages    int         `json:"pages"`
	Resource []Dashboard `json:"resource"`
}

DashboardListResponse represents the response from the list dashboards API

type Delegate

type Delegate struct {
	Type             string            `json:"type,omitempty"`
	Name             string            `json:"name,omitempty"`
	Description      string            `json:"description,omitempty"`
	Tags             []string          `json:"tags,omitempty"`
	LastHeartBeat    int64             `json:"lastHeartBeat,omitempty"`
	Connected        bool              `json:"connected"`
	DelegateReplicas []DelegateReplica `json:"delegateReplicas,omitempty"`
	AutoUpgrade      string            `json:"autoUpgrade,omitempty"`
	Legacy           bool              `json:"legacy"`
	OrgName          string            `json:"orgName,omitempty"`
	ProjectName      string            `json:"projectName,omitempty"`
}

Delegate represents a delegate in Harness

type DelegateEntityOwner

type DelegateEntityOwner struct {
	Identifier string `json:"identifier"`
}

DelegateEntityOwner represents the scope ownership of a delegate token

func (*DelegateEntityOwner) GetOrgID

func (o *DelegateEntityOwner) GetOrgID() string

GetOrgID returns the organization ID from the identifier

func (*DelegateEntityOwner) GetProjectID

func (o *DelegateEntityOwner) GetProjectID() string

GetProjectID returns the project ID from the identifier, if present

type DelegateGroupDetail

type DelegateGroupDetail struct {
	GroupID                     string                   `json:"groupId"`
	DelegateGroupIdentifier     string                   `json:"delegateGroupIdentifier"`
	DelegateType                string                   `json:"delegateType"`
	GroupName                   string                   `json:"groupName"`
	GroupImplicitSelectors      map[string]string        `json:"groupImplicitSelectors"`
	LastHeartBeat               int64                    `json:"lastHeartBeat"`
	ConnectivityStatus          string                   `json:"connectivityStatus"`
	ActivelyConnected           bool                     `json:"activelyConnected"`
	GrpcActive                  bool                     `json:"grpcActive"`
	DelegateInstanceDetails     []DelegateInstanceDetail `json:"delegateInstanceDetails"`
	TokenActive                 bool                     `json:"tokenActive"`
	AutoUpgrade                 string                   `json:"autoUpgrade"`
	DelegateGroupExpirationTime int64                    `json:"delegateGroupExpirationTime"`
	UpgraderLastUpdated         int64                    `json:"upgraderLastUpdated"`
	Immutable                   bool                     `json:"immutable"`
	GroupVersion                string                   `json:"groupVersion"`
	DelegateGroupVersionStatus  string                   `json:"delegateGroupVersionStatus"`
	Unsupported                 bool                     `json:"unsupported"`
}

DelegateGroupDetail represents details of a delegate group

type DelegateGroupsResource

type DelegateGroupsResource struct {
	DelegateGroupDetails []DelegateGroupDetail `json:"delegateGroupDetails"`
	AutoUpgradeOffCount  int                   `json:"autoUpgradeOffCount"`
}

DelegateGroupsResource represents the resource in delegate groups response

type DelegateGroupsResponse

type DelegateGroupsResponse struct {
	MetaData         map[string]interface{} `json:"metaData"`
	Resource         DelegateGroupsResource `json:"resource"`
	ResponseMessages []string               `json:"responseMessages"`
}

DelegateGroupsResponse represents the response from the get delegate groups by token API

type DelegateInstanceDetail

type DelegateInstanceDetail struct {
	UUID                          string `json:"uuid"`
	LastHeartbeat                 int64  `json:"lastHeartbeat"`
	ActivelyConnected             bool   `json:"activelyConnected"`
	HostName                      string `json:"hostName"`
	TokenActive                   bool   `json:"tokenActive"`
	Version                       string `json:"version"`
	DelegateExpirationTime        int64  `json:"delegateExpirationTime"`
	PollingModeEnabled            bool   `json:"polllingModeEnabled"`
	DelegateInstanceVersionStatus string `json:"delegateInstanceVersionStatus"`
	Runner                        bool   `json:"runner"`
	Disabled                      bool   `json:"disabled"`
}

DelegateInstanceDetail represents details of a delegate instance

type DelegateListFilter

type DelegateListFilter struct {
	Status                  string            `json:"status,omitempty"`
	Description             string            `json:"description,omitempty"`
	HostName                string            `json:"hostName,omitempty"`
	DelegateName            string            `json:"delegateName,omitempty"`
	DelegateType            string            `json:"delegateType,omitempty"`
	DelegateGroupIdentifier string            `json:"delegateGroupIdentifier,omitempty"`
	DelegateTags            []string          `json:"delegateTags,omitempty"`
	DelegateInstanceFilter  string            `json:"delegateInstanceFilter,omitempty"`
	AutoUpgrade             string            `json:"autoUpgrade,omitempty"`
	VersionStatus           string            `json:"versionStatus,omitempty"`
	Tags                    map[string]string `json:"tags,omitempty"`
	FilterType              string            `json:"filterType"`
}

DelegateListFilter represents the filter options for listing delegates

type DelegateListOptions

type DelegateListOptions struct {
	All bool `json:"all,omitempty"`
}

DelegateListOptions represents the options for listing delegates

type DelegateListResponse

type DelegateListResponse struct {
	MetaData         interface{} `json:"metaData"`
	Resource         []Delegate  `json:"resource"`
	ResponseMessages []string    `json:"responseMessages"`
}

DelegateListResponse represents the response from the list delegates API

type DelegateReplica

type DelegateReplica struct {
	UUID          string `json:"uuid,omitempty"`
	LastHeartbeat int64  `json:"lastHeartbeat,omitempty"`
	HostName      string `json:"hostName,omitempty"`
	Version       string `json:"version,omitempty"`
	ExpiringAt    int64  `json:"expiringAt,omitempty"`
}

DelegateReplica represents a delegate replica instance

type DelegateToken

type DelegateToken struct {
	UUID            *string    `json:"uuid"`
	AccountID       string     `json:"accountId"`
	Name            string     `json:"name"`
	CreatedBy       *string    `json:"createdBy"`
	CreatedByNGUser *Principal `json:"createdByNgUser"`
	CreatedAt       int64      `json:"createdAt"`
	CreatedAtTime   string     `json:"createdAtTime"`
	Status          string     `json:"status"`
	Value           string     `json:"value"`
	OwnerIdentifier string     `json:"ownerIdentifier"`
	ParentUniqueID  string     `json:"parentUniqueId"`
	RevokeAfter     int64      `json:"revokeAfter"`
	RevokeAfterTime string     `json:"revokeAfterTime"`
	IsNG            bool       `json:"isNg"`
	LastUsedAt      int64      `json:"lastUsedAt"`
	LastUsedAtTime  string     `json:"lastUsedAtTime"`
	TokenHash       string     `json:"tokenHash"`
}

DelegateToken represents a delegate token

func (*DelegateToken) FormatTimestamps

func (d *DelegateToken) FormatTimestamps()

FormatTimestamps formats the Unix timestamps into human-readable format

type DelegateTokenListResponse

type DelegateTokenListResponse struct {
	MetaData         interface{}     `json:"metaData"`
	Resource         []DelegateToken `json:"resource"`
	ResponseMessages []string        `json:"responseMessages"`
}

DelegateTokenListResponse represents the response from the list delegate tokens API

type DelegateTokenOptions

type DelegateTokenOptions struct {
	Page       int    `json:"page,omitempty"`
	Limit      int    `json:"limit,omitempty"`
	Sort       string `json:"sort,omitempty"`
	Order      string `json:"order,omitempty"`
	Status     string `json:"status,omitempty"`     // Filter by token status
	SearchTerm string `json:"searchTerm,omitempty"` // Search by name
}

DelegateTokenOptions represents the options for listing delegate tokens

type DelegateTokenResponse

type DelegateTokenResponse struct {
	MetaData         map[string]interface{} `json:"metaData"`
	Resource         DelegateToken          `json:"resource"`
	ResponseMessages []string               `json:"responseMessages"`
}

DelegateTokenResponse represents the response from the create/get delegate token API

type DelegateTokenStatus

type DelegateTokenStatus string

DelegateTokenStatus represents the status of a delegate token

const (
	DelegateTokenStatusActive  DelegateTokenStatus = "ACTIVE"
	DelegateTokenStatusRevoked DelegateTokenStatus = "REVOKED"
)

type DeleteLoadTestResponse

type DeleteLoadTestResponse struct {
	Success bool   `json:"success"`
	Message string `json:"message"`
}

DeleteLoadTestResponse represents the response from deleting a load test

type EmbeddedUser

type EmbeddedUser struct {
	UUID string `json:"uuid"`
	Name string `json:"name"`
}

EmbeddedUser represents a user in the delegate token context

type EndpointAssertions

type EndpointAssertions struct {
	StatusCode int `json:"status_code"`
}

EndpointAssertions represents the assertions for an endpoint

type Entity

type Entity[T any] struct {
	Status string `json:"status,omitempty"`
	Data   T      `json:"data,omitempty"`
}

Entity represents a pipeline in the system

type EntityGitDetails

type EntityGitDetails struct {
	ObjectID   string `json:"object_id,omitempty"`
	BranchName string `json:"branch_name,omitempty"`
	FilePath   string `json:"file_path,omitempty"`
	RepoName   string `json:"repo_name,omitempty"`
	CommitID   string `json:"commit_id,omitempty"`
	FileURL    string `json:"file_url,omitempty"`
	RepoURL    string `json:"repo_url,omitempty"`
}

EntityGitDetails represents git details for an entity

type EntityResponse

type EntityResponse struct {
	Description           string `json:"description,omitempty"`
	EntityRef             string `json:"entity_ref"`
	EntityValidityDetails struct {
		ErrorMessages []string `json:"error_messages,omitempty"`
		IsValid       bool     `json:"is_valid,omitempty"`
	} `json:"entity_validity_details,omitempty"`
	GitDetails struct {
		BaseBranch        string `json:"base_branch,omitempty"`
		BranchName        string `json:"branch_name,omitempty"`
		CommitId          string `json:"commit_id,omitempty"`
		CommitMessage     string `json:"commit_message,omitempty"`
		ConnectorRef      string `json:"connector_ref,omitempty"`
		FilePath          string `json:"file_path,omitempty"`
		FileUrl           string `json:"file_url,omitempty"`
		IsHarnessCodeRepo bool   `json:"is_harness_code_repo,omitempty"`
		ObjectId          string `json:"object_id,omitempty"`
		RepoName          string `json:"repo_name,omitempty"`
		RepoUrl           string `json:"repo_url,omitempty"`
		StoreType         string `json:"store_type,omitempty"`
	} `json:"git_details,omitempty"`
	Groups []struct {
		GroupDescription  string `json:"group_description,omitempty"`
		GroupIcon         string `json:"group_icon,omitempty"`
		GroupIdentifier   string `json:"group_identifier,omitempty"`
		GroupName         string `json:"group_name,omitempty"`
		OrgIdentifier     string `json:"org_identifier,omitempty"`
		OrgName           string `json:"org_name,omitempty"`
		ProjectIdentifier string `json:"project_identifier,omitempty"`
		ProjectName       string `json:"project_name,omitempty"`
		Scope             string `json:"scope,omitempty"`
	} `json:"groups,omitempty"`
	Identifier        string         `json:"identifier"`
	Kind              string         `json:"kind"`
	Lifecycle         string         `json:"lifecycle,omitempty"`
	Metadata          map[string]any `json:"metadata,omitempty"`
	Name              string         `json:"name,omitempty"`
	OrgIdentifier     string         `json:"orgIdentifier,omitempty"`
	OrgName           string         `json:"org_name,omitempty"`
	Owner             string         `json:"owner,omitempty"`
	ProjectIdentifier string         `json:"projectIdentifier,omitempty"`
	ProjectName       string         `json:"project_name,omitempty"`
	ReferenceType     string         `json:"referenceType"`
	Scope             string         `json:"scope"`
	Scorecards        struct {
		Average float32 `json:"average,omitempty"`
		Scores  []struct {
			PassedChecks float32 `json:"passed_checks,omitempty"`
			Score        float32 `json:"score,omitempty"`
			Scorecard    string  `json:"scorecard,omitempty"`
			TotalChecks  float32 `json:"total_checks,omitempty"`
		} `json:"scores,omitempty"`
	} `json:"scorecards,omitempty"`
	Starred bool `json:"starred,omitempty"`
	Status  []struct {
		Level   string `json:"level,omitempty"`
		Message string `json:"message,omitempty"`
		Type    string `json:"type,omitempty"`
	} `json:"status,omitempty"`
	Tags []string `json:"tags,omitempty"`
	Type string   `json:"type,omitempty"`
	Yaml string   `json:"yaml"`
}

type EntityValidityDetails

type EntityValidityDetails struct {
	Valid       bool   `json:"valid,omitempty"`
	InvalidYaml string `json:"invalidYaml,omitempty"`
}

EntityValidityDetails represents the entity validity details of a pipeline

type Environment

type Environment struct {
	ID                string                   `json:"identifier"`
	Name              string                   `json:"name"`
	Description       string                   `json:"description,omitempty"`
	OrgIdentifier     string                   `json:"orgIdentifier"`
	ProjectIdentifier string                   `json:"projectIdentifier"`
	Color             string                   `json:"color,omitempty"`
	Type              string                   `json:"type,omitempty"` // e.g., "PreProduction", "Production"
	Tags              map[string]string        `json:"tags,omitempty"`
	YAML              string                   `json:"yaml,omitempty"`
	Variables         []map[string]interface{} `json:"variables,omitempty"`
	GitOpsEnabled     bool                     `json:"gitOpsEnabled,omitempty"`
	CreatedAt         int64                    `json:"createdAt,omitempty"`
	LastModifiedAt    int64                    `json:"lastModifiedAt,omitempty"`
}

Environment represents a Harness environment

type EnvironmentListResponse

type EnvironmentListResponse struct {
	Data struct {
		Content       []Environment `json:"content"`
		TotalPages    int           `json:"totalPages"`
		TotalElements int           `json:"totalElements"`
		PageSize      int           `json:"pageSize"`
		PageIndex     int           `json:"pageIndex"`
	} `json:"data"`
}

EnvironmentListResponse represents the response from the list environments API

type EnvironmentOptions

type EnvironmentOptions struct {
	Page  int    `json:"page,omitempty"`
	Limit int    `json:"limit,omitempty"`
	Sort  string `json:"sort,omitempty"`
	Order string `json:"order,omitempty"`
}

EnvironmentOptions represents the options for listing environments

type EnvironmentResponse

type EnvironmentResponse struct {
	Data Environment `json:"data"`
}

EnvironmentResponse represents the response from the get environment API

type ErrorData

type ErrorData struct {
	ErrorCode    string `json:"code"`
	ErrorMessage string `json:"message"`
}

type ErrorResponse

type ErrorResponse struct {
	Code    string `json:"code,omitempty"`
	Message string `json:"message,omitempty"`
}

ErrorResponse represents the standard error response format returned by the API when an error occurs

type EstimatedSavingsRemoteResponse

type EstimatedSavingsRemoteResponse struct {
	CurrentCoverage  float64 `json:"current_coverage"`
	TargetCoverage   float64 `json:"target_coverage"`
	CurrentSavings   float64 `json:"current_savings"`
	EstimatedSavings float64 `json:"estimated_savings"`
}

type ExecuteWorkflowRequest

type ExecuteWorkflowRequest struct {
	Identifier string      `json:"identifier"`
	Values     interface{} `json:"values,omitempty"`
}

type ExecuteWorkflowResponse

type ExecuteWorkflowResponse struct {
	ExecutionID string `json:"id"`
}

type ExecutedByExperiment

type ExecutedByExperiment struct {
	ExperimentID    string `json:"experimentID"`
	ExperimentRunID string `json:"experimentRunID"`
	NotifyID        string `json:"notifyID"`
	ExperimentName  string `json:"experimentName"`
	ExperimentType  string `json:"experimentType"`
	UpdatedAt       int    `json:"updatedAt"`
}

type ExecutionException

type ExecutionException struct {
	Message string `json:"message,omitempty"`
}

type ExecutionFailureInfo

type ExecutionFailureInfo struct {
	Message          string                     `json:"message,omitempty"`
	FailureTypeList  []string                   `json:"failureTypeList,omitempty"`
	ResponseMessages []ExecutionResponseMessage `json:"responseMessages,omitempty"`
}

ExecutionFailureInfo represents the failure information of a pipeline execution

type ExecutionGraph

type ExecutionGraph struct {
	RootNodeId string                   `json:"rootNodeId,omitempty"`
	NodeMap    map[string]ExecutionNode `json:"nodeMap,omitempty"`
}

type ExecutionNode

type ExecutionNode struct {
	Uuid           string         `json:"uuid,omitempty"`
	SetupId        string         `json:"setupId,omitempty"`
	Name           string         `json:"name,omitempty"`
	Identifier     string         `json:"identifier,omitempty"`
	BaseFqn        string         `json:"baseFqn,omitempty"`
	StepType       string         `json:"stepType,omitempty"`
	Status         string         `json:"status,omitempty"`
	UnitProgresses []UnitProgress `json:"unitProgresses,omitempty"`
	LogBaseKey     string         `json:"logBaseKey,omitempty"`
}

type ExecutionResponseMessage

type ExecutionResponseMessage struct {
	Code      string             `json:"code,omitempty"`
	Message   string             `json:"message,omitempty"`
	Level     string             `json:"level,omitempty"`
	Exception ExecutionException `json:"exception,omitempty"`
}

type ExecutionSummaryInfo

type ExecutionSummaryInfo struct {
	NumOfErrors         []int  `json:"numOfErrors,omitempty"`
	Deployments         []int  `json:"deployments,omitempty"`
	LastExecutionTs     int64  `json:"lastExecutionTs,omitempty"`
	LastExecutionTsTime string `json:"lastExecutionTsTime,omitempty"`
	LastExecutionStatus string `json:"lastExecutionStatus,omitempty"`
	LastExecutionId     string `json:"lastExecutionId,omitempty"`
}

ExecutionSummaryInfo represents summary information about pipeline executions

func (*ExecutionSummaryInfo) FormatTimestamps

func (e *ExecutionSummaryInfo) FormatTimestamps()

FormatTimestamps formats the Unix timestamps into human-readable format

type ExecutionTriggerInfo

type ExecutionTriggerInfo struct {
	TriggerType string               `json:"triggerType,omitempty"`
	TriggeredBy *PipelineTriggeredBy `json:"triggeredBy,omitempty"`
	IsRerun     bool                 `json:"isRerun,omitempty"`
}

ExecutionTriggerInfo represents the trigger information for a pipeline execution

type ExperimentCreationRequest

type ExperimentCreationRequest struct {
	InfraType              string   `json:"infraType"`
	ExperimentID           string   `json:"id"`
	Identity               string   `json:"identity"`
	ExperimentName         string   `json:"name"`
	ExperimentDescription  string   `json:"description"`
	Manifest               string   `json:"manifest"`
	InfraID                string   `json:"infraId"`
	CronSyntax             *string  `json:"cronSyntax"`
	IsSingleRunCronEnabled *bool    `json:"isSingleRunCronEnabled"`
	Tags                   []string `json:"tags"`
	ValidateManifest       bool     `json:"validateManifest"`
	ExperimentType         string   `json:"experimentType"`
}

type ExperimentCreationResponse

type ExperimentCreationResponse struct {
	Data ExperimentCreationRequest `json:"data"`
}

type ExperimentRunDetail

type ExperimentRunDetail struct {
	ResiliencyScore float64 `json:"ResiliencyScore"`
	ExperimentRunID string  `json:"ExperimentRunID"`
	Phase           string  `json:"Phase"`
	UpdatedAt       int64   `json:"updatedAt"`
}

type ExperimentRunRequest

type ExperimentRunRequest struct {
	InputsetIdentity string                       `json:"inputsetIdentity"`
	RuntimeInputs    *ChaosExperimentInputsetSpec `json:"runtimeInputs"`
}

type ExperimentV2

type ExperimentV2 struct {
	WorkflowType  *string       `json:"workflowType"`
	IsCronEnabled *bool         `json:"isCronEnabled"`
	Infra         *ChaosInfraV2 `json:"infra"`
	ExperimentID  string        `json:"experimentID"`
	WorkflowID    string        `json:"workflowID"`
	Name          string        `json:"name"`
	Description   string        `json:"description"`
	UpdatedAt     string        `json:"updatedAt"`
	CreatedAt     string        `json:"createdAt"`
}

type FMEBucket

type FMEBucket struct {
	Treatment string `json:"treatment"`
	Size      int    `json:"size"`
}

FMEBucket represents a bucket in a rule

type FMECondition

type FMECondition struct {
	Combiner string       `json:"combiner"`
	Matchers []FMEMatcher `json:"matchers"`
}

FMECondition represents a condition in a rule

type FMEDefaultRule

type FMEDefaultRule struct {
	Treatment string `json:"treatment"`
	Size      int    `json:"size"`
}

FMEDefaultRule represents a default rule bucket

type FMEEnvironment

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

FMEEnvironment represents an environment in Split.io

type FMEEnvironmentsResponse

type FMEEnvironmentsResponse []FMEEnvironment

FMEEnvironmentsResponse represents the response from listing environments GET /internal/api/v2/environments/ws/{wsId} Note: This endpoint returns a simple array, not a paginated object

type FMEFeatureFlag

type FMEFeatureFlag struct {
	Name                   string           `json:"name"`
	Description            string           `json:"description"`
	ID                     string           `json:"id"`
	TrafficType            FMETrafficType   `json:"trafficType"`
	CreationTime           int64            `json:"creationTime"`
	Tags                   []FMETag         `json:"tags"`
	RolloutStatus          FMERolloutStatus `json:"rolloutStatus"`
	RolloutStatusTimestamp int64            `json:"rolloutStatusTimestamp"`
}

FMEFeatureFlag represents a feature flag (split) in Split.io

type FMEFeatureFlagDefinition

type FMEFeatureFlagDefinition struct {
	Name                  string           `json:"name"`
	Environment           FMEEnvironment   `json:"environment"`
	TrafficType           FMETrafficType   `json:"trafficType"`
	Killed                bool             `json:"killed"`
	LastTrafficReceivedAt int64            `json:"lastTrafficReceivedAt"`
	Treatments            []FMETreatment   `json:"treatments"`
	DefaultTreatment      string           `json:"defaultTreatment"`
	BaselineTreatment     string           `json:"baselineTreatment"`
	TrafficAllocation     int              `json:"trafficAllocation"`
	Rules                 []FMERule        `json:"rules"`
	DefaultRule           []FMEDefaultRule `json:"defaultRule"`
	CreationTime          int64            `json:"creationTime"`
	LastUpdateTime        int64            `json:"lastUpdateTime"`
}

FMEFeatureFlagDefinition represents the complete definition of a feature flag in an environment

type FMEFeatureFlagDefinitionResponse

type FMEFeatureFlagDefinitionResponse = FMEFeatureFlagDefinition

FMEFeatureFlagDefinitionResponse represents the response from getting a feature flag definition GET /internal/api/v2/splits/ws/{wsId}/{feature_flag_name}/environments/{environment_id_or_name} Note: This endpoint returns the definition object directly, not wrapped

type FMEFeatureFlagsResponse

type FMEFeatureFlagsResponse struct {
	Objects    []FMEFeatureFlag `json:"objects"`
	Offset     int              `json:"offset"`
	Limit      int              `json:"limit"`
	TotalCount int              `json:"totalCount"`
}

FMEFeatureFlagsResponse represents the response from listing feature flags GET /internal/api/v2/splits/ws/{wsId}

type FMEMatcher

type FMEMatcher struct {
	Type   string `json:"type"`
	String string `json:"string"`
}

FMEMatcher represents a matcher in a rule condition

type FMERolloutStatus

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

FMERolloutStatus represents the rollout status of a feature flag

type FMERule

type FMERule struct {
	Buckets   []FMEBucket  `json:"buckets"`
	Condition FMECondition `json:"condition"`
}

FMERule represents a targeting rule in a feature flag

type FMETag

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

FMETag represents a tag in Split.io

type FMETrafficType

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

FMETrafficType represents a traffic type in Split.io

type FMETreatment

type FMETreatment struct {
	Name           string `json:"name"`
	Configurations string `json:"configurations"`
}

FMETreatment represents a treatment (variation) in a feature flag

type FMEWorkspace

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

FMEWorkspace represents a workspace in Split.io

type FMEWorkspacesResponse

type FMEWorkspacesResponse struct {
	Objects    []FMEWorkspace `json:"objects"`
	Offset     int            `json:"offset"`
	Limit      int            `json:"limit"`
	TotalCount int            `json:"totalCount"`
}

FMEWorkspacesResponse represents the response from listing workspaces GET /internal/api/v2/workspaces

type FaultData

type FaultData struct {
	Namespace        string             `json:"namespace"`
	Name             string             `json:"name"`
	HelperPodDetails []HelperPodDetails `json:"helperPodDetails"`
	Targets          []Targets          `json:"targets,omitempty"`
}

type FinalLogKeys

type FinalLogKeys struct {
	StepLogBaseKeys []string `json:"stepLogBaseKeys,omitempty"`
}

type GetAllScorecardSummaryParams

type GetAllScorecardSummaryParams struct {
	EntityIdentifier string `form:"entity_identifier" json:"entity_identifier"`
	HarnessAccount   string `json:"Harness-Account,omitempty"`
}

type GetChecksParams

type GetChecksParams struct {
	Page       int32
	Limit      int32
	Sort       string
	SearchTerm string
}

type GetEntitiesParams

type GetEntitiesParams struct {
	Page           int32  `form:"page,omitempty" json:"page,omitempty"`
	Limit          int32  `form:"limit,omitempty" json:"limit,omitempty"`
	Sort           string `form:"sort,omitempty" json:"sort,omitempty"`
	SearchTerm     string `form:"search_term,omitempty" json:"search_term,omitempty"`
	Scopes         string `form:"scopes,omitempty" json:"scopes,omitempty"`
	EntityRefs     string `form:"entity_refs,omitempty" json:"entity_refs,omitempty"`
	OwnedByMe      bool   `form:"owned_by_me,omitempty" json:"owned_by_me,omitempty"`
	Favorites      bool   `form:"favorites,omitempty" json:"favorites,omitempty"`
	Kind           string `form:"kind,omitempty" json:"kind,omitempty"`
	Type           string `form:"type,omitempty" json:"type,omitempty"`
	Owner          string `form:"owner,omitempty" json:"owner,omitempty"`
	Lifecycle      string `form:"lifecycle,omitempty" json:"lifecycle,omitempty"`
	Tags           string `form:"tags,omitempty" json:"tags,omitempty"`
	HarnessAccount string `json:"Harness-Account,omitempty"`
}

type GetEntityParams

type GetEntityParams struct {
	BranchName             string `form:"branch_name,omitempty" json:"branch_name,omitempty"`
	ConnectorRef           string `form:"connector_ref,omitempty" json:"connector_ref,omitempty"`
	RepoName               string `form:"repo_name,omitempty" json:"repo_name,omitempty"`
	LoadFromFallbackBranch bool   `form:"load_from_fallback_branch,omitempty" json:"load_from_fallback_branch,omitempty"`
	OrgIdentifier          string `form:"orgIdentifier,omitempty" json:"orgIdentifier,omitempty"`
	ProjectIdentifier      string `form:"projectIdentifier,omitempty" json:"projectIdentifier,omitempty"`
	HarnessAccount         string `json:"Harness-Account,omitempty"`
}

type GetExperimentResponse

type GetExperimentResponse struct {
	ExperimentID               string                `json:"ExperimentID"`
	Identity                   string                `json:"Identity"`
	InfraID                    string                `json:"InfraID"`
	InfraType                  string                `json:"InfraType"`
	ExperimentType             string                `json:"ExperimentType"`
	Revision                   []WorkflowRevision    `json:"Revision"`
	RecentExperimentRunDetails []ExperimentRunDetail `json:"RecentExperimentRunDetails"`
}

type GetProbeResponse

type GetProbeResponse struct {
	ProbeRequest `json:",inline"`
	CreatedAt    int64 `json:"createdAt"`
	UpdatedAt    int64 `json:"updatedAt"`
}

type GetScorecardsParams

type GetScorecardsParams struct {
	HarnessAccount string `json:"Harness-Account,omitempty"`
}

type GitDetails

type GitDetails struct {
	Valid       bool   `json:"valid,omitempty"`
	InvalidYaml string `json:"invalidYaml,omitempty"`
}

GitDetails represents the git details of a pipeline

type HTTPProbe

type HTTPProbe struct {
	StatusCode   int    `json:"statusCode"`
	ResponseBody []byte `json:"responseBody"`
	ResponseTime int    `json:"responseTime"`
}

type HarnessErrorMessage

type HarnessErrorMessage struct {
	Code           string                 `json:"code"`
	Level          string                 `json:"level"`
	Message        string                 `json:"message"`
	Exception      interface{}            `json:"exception"`
	FailureTypes   []string               `json:"failureTypes"`
	AdditionalInfo map[string]interface{} `json:"additionalInfo"`
}

type HelperPodDetails

type HelperPodDetails struct {
	Name        string `json:"name"`
	LogStreamID string `json:"logStreamID"`
}

type IDPUser

type IDPUser struct {
	Email string `json:"email,omitempty"`
	Name  string `json:"name,omitempty"`
	Uuid  string `json:"uuid,omitempty"`
}

type IdentifiersQuery

type IdentifiersQuery struct {
	AccountIdentifier      string `json:"accountIdentifier" validate:"required"`
	OrganizationIdentifier string `json:"organizationIdentifier"`
	ProjectIdentifier      string `json:"projectIdentifier"`
}

type Infrastructure

type Infrastructure struct {
	ID                string                   `json:"identifier"`
	Name              string                   `json:"name"`
	Description       string                   `json:"description,omitempty"`
	OrgIdentifier     string                   `json:"orgIdentifier"`
	ProjectIdentifier string                   `json:"projectIdentifier"`
	EnvironmentRef    string                   `json:"environmentRef"`
	Type              string                   `json:"type,omitempty"`
	DeploymentType    string                   `json:"deploymentType,omitempty"` // e.g., Kubernetes, ECS, etc.
	YAML              string                   `json:"yaml,omitempty"`
	Tags              map[string]string        `json:"tags,omitempty"`
	Variables         []map[string]interface{} `json:"variables,omitempty"`
	GitOpsEnabled     bool                     `json:"gitOpsEnabled,omitempty"`
	AccountID         string                   `json:"accountId,omitempty"`
	StoreType         string                   `json:"storeType,omitempty"`
}

Infrastructure represents a Harness infrastructure definition

type InfrastructureItem

type InfrastructureItem struct {
	Infrastructure        Infrastructure `json:"infrastructure"`
	CreatedAt             int64          `json:"createdAt,omitempty"`
	LastModifiedAt        int64          `json:"lastModifiedAt,omitempty"`
	EntityValidityDetails interface{}    `json:"entityValidityDetails"`
	GovernanceMetadata    interface{}    `json:"governanceMetadata"`
}

InfrastructureItem represents an item in the response list

type InfrastructureListResponse

type InfrastructureListResponse struct {
	Status        string      `json:"status,omitempty"`
	MetaData      interface{} `json:"metaData"`
	CorrelationID string      `json:"correlationId,omitempty"`
	Data          struct {
		Content       []InfrastructureItem `json:"content"`
		TotalPages    int                  `json:"totalPages"`
		TotalItems    int                  `json:"totalItems"`
		PageItemCount int                  `json:"pageItemCount"`
		PageSize      int                  `json:"pageSize"`
		PageIndex     int                  `json:"pageIndex"`
		Empty         bool                 `json:"empty"`
		PageToken     interface{}          `json:"pageToken"`
	} `json:"data"`
}

InfrastructureListResponse represents the response from the list infrastructures API

type InfrastructureOptions

type InfrastructureOptions struct {
	Page                  int    `json:"page,omitempty"`
	Limit                 int    `json:"limit,omitempty"`
	Sort                  string `json:"sort,omitempty"`
	Order                 string `json:"order,omitempty"`
	DeploymentType        string `json:"deploymentType,omitempty"`        // Filter by deployment type
	EnvironmentIdentifier string `json:"environmentIdentifier,omitempty"` // Filter by environment
}

InfrastructureOptions represents the options for listing infrastructures

type InputSetDetail

type InputSetDetail struct {
	AccountId             string                `json:"accountId,omitempty"`
	OrgIdentifier         string                `json:"orgIdentifier,omitempty"`
	ProjectIdentifier     string                `json:"projectIdentifier,omitempty"`
	PipelineIdentifier    string                `json:"pipelineIdentifier,omitempty"`
	Identifier            string                `json:"identifier,omitempty"`
	InputSetYaml          string                `json:"inputSetYaml,omitempty"`
	Name                  string                `json:"name,omitempty"`
	Description           string                `json:"description,omitempty"`
	Tags                  map[string]string     `json:"tags,omitempty"`
	InputSetErrorWrapper  InputSetErrorWrapper  `json:"inputSetErrorWrapper,omitempty"`
	GitDetails            GitDetails            `json:"gitDetails,omitempty"`
	EntityValidityDetails EntityValidityDetails `json:"entityValidityDetails,omitempty"`
	Outdated              bool                  `json:"outdated,omitempty"`
	ErrorResponse         bool                  `json:"errorResponse,omitempty"`
}

InputSetDetail represents the detailed information of a specific input set

type InputSetErrorDetails

type InputSetErrorDetails struct {
	ErrorPipelineYaml         string                 `json:"errorPipelineYaml,omitempty"`
	UuidToErrorResponseMap    map[string]interface{} `json:"uuidToErrorResponseMap,omitempty"`
	InvalidInputSetReferences []string               `json:"invalidInputSetReferences,omitempty"`
	Type                      string                 `json:"type,omitempty"`
}

InputSetErrorDetails represents error details for input sets

type InputSetErrorWrapper

type InputSetErrorWrapper struct {
	ErrorPipelineYaml         string                 `json:"errorPipelineYaml,omitempty"`
	UuidToErrorResponseMap    map[string]interface{} `json:"uuidToErrorResponseMap,omitempty"`
	InvalidInputSetReferences []string               `json:"invalidInputSetReferences,omitempty"`
	Type                      string                 `json:"type,omitempty"`
}

InputSetErrorWrapper represents the error wrapper for input sets

type InputSetListData

type InputSetListData struct {
	TotalPages    int                `json:"totalPages,omitempty"`
	TotalItems    int                `json:"totalItems,omitempty"`
	PageItemCount int                `json:"pageItemCount,omitempty"`
	PageSize      int                `json:"pageSize,omitempty"`
	Content       []InputSetListItem `json:"content,omitempty"`
	PageIndex     int                `json:"pageIndex,omitempty"`
	Empty         bool               `json:"empty,omitempty"`
	PageToken     string             `json:"pageToken,omitempty"`
}

InputSetListData represents the data field of input set list response

type InputSetListItem

type InputSetListItem struct {
	Identifier             string                `json:"identifier,omitempty"`
	Name                   string                `json:"name,omitempty"`
	PipelineIdentifier     string                `json:"pipelineIdentifier,omitempty"`
	Description            string                `json:"description,omitempty"`
	InputSetType           string                `json:"inputSetType,omitempty"`
	Tags                   map[string]string     `json:"tags,omitempty"`
	GitDetails             GitDetails            `json:"gitDetails,omitempty"`
	CreatedAt              int64                 `json:"createdAt,omitempty"`
	LastUpdatedAt          int64                 `json:"lastUpdatedAt,omitempty"`
	IsOutdated             bool                  `json:"isOutdated,omitempty"`
	InputSetErrorDetails   InputSetErrorDetails  `json:"inputSetErrorDetails,omitempty"`
	OverlaySetErrorDetails map[string]string     `json:"overlaySetErrorDetails,omitempty"`
	EntityValidityDetails  EntityValidityDetails `json:"entityValidityDetails,omitempty"`
	Modules                []string              `json:"modules,omitempty"`
}

InputSetListItem represents an item in the input set list

type InputSetListOptions

type InputSetListOptions struct {
	PaginationOptions
	PipelineIdentifier string `json:"pipelineIdentifier,omitempty"`
	SearchTerm         string `json:"searchTerm,omitempty"`
}

InputSetListOptions represents the options for listing input sets

type InputSetListResponse

type InputSetListResponse struct {
	Status        string                 `json:"status,omitempty"`
	Data          InputSetListData       `json:"data,omitempty"`
	MetaData      map[string]interface{} `json:"metaData,omitempty"`
	CorrelationId string                 `json:"correlationId,omitempty"`
}

InputSetListResponse represents the full response structure for listing input sets

type InputSetResponse

type InputSetResponse struct {
	Status        string                 `json:"status,omitempty"`
	Data          InputSetDetail         `json:"data,omitempty"`
	MetaData      map[string]interface{} `json:"metaData,omitempty"`
	CorrelationId string                 `json:"correlationId,omitempty"`
}

InputSetResponse represents the full response structure for getting a specific input set

type InputValue

type InputValue struct {
	Key   string `json:"key"`
	Value string `json:"value"`
}

type InviteUserOutputData

type InviteUserOutputData struct {
	AddUserResponseMap map[string]string `json:"addUserResponseMap,omitempty"`
}

type InviteUserRequestBody

type InviteUserRequestBody struct {
	Emails       []string      `json:"emails,omitempty"`
	UserGroups   []string      `json:"userGroups,omitempty"`
	RoleBindings []RoleBinding `json:"roleBindings,omitempty"`
}

type LinuxInfra

type LinuxInfra struct {
	InfraID          string      `json:"infraID"`
	Name             string      `json:"name"`
	Description      string      `json:"description"`
	Tags             []string    `json:"tags"`
	EnvironmentID    string      `json:"environmentID"`
	IsActive         bool        `json:"isActive"`
	IsInfraConfirmed bool        `json:"isInfraConfirmed"`
	IsRegistered     bool        `json:"isRegistered"`
	UpdatedAt        string      `json:"updatedAt"`
	CreatedAt        string      `json:"createdAt"`
	StartTime        string      `json:"startTime"`
	Version          string      `json:"version"`
	LastHeartbeat    string      `json:"lastHeartbeat"`
	Hostname         string      `json:"hostname"`
	Status           string      `json:"status"`
	CreatedBy        *UserDetail `json:"createdBy,omitempty"`
	UpdatedBy        *UserDetail `json:"updatedBy,omitempty"`
}

LinuxInfra represents a Linux infrastructure (load runner)

type ListAuditEventsFilter

type ListAuditEventsFilter struct {
	Scopes     []AuditResourceScope `json:"scopes,omitempty"`
	Principals []AuditPrincipal     `json:"principals,omitempty"`
	Actions    []string             `json:"actions,omitempty"`
	FilterType string               `json:"filterType,omitempty"`
	StartTime  int64                `json:"startTime,omitempty"`
	EndTime    int64                `json:"endTime,omitempty"`
	Resources  []AuditResource      `json:"resources,omitempty"`
}

type ListExperimentResponse

type ListExperimentResponse struct {
	Data       []ExperimentV2 `json:"data"`
	Pagination Pagination     `json:"pagination"`
}

type ListExperimentTemplateResponse

type ListExperimentTemplateResponse struct {
	Data       []ChaosExperimentTemplate `json:"data"`
	Pagination Pagination                `json:"pagination"`
}

type ListExperimentVariables

type ListExperimentVariables struct {
	Experiment []Variable            `json:"experiment" yaml:"experiment"`
	Tasks      map[string][]Variable `json:"tasks" yaml:"tasks"`
}

type ListLinuxInfraResponse

type ListLinuxInfraResponse struct {
	TotalNoOfInfras int          `json:"totalNoOfInfras"`
	Infras          []LinuxInfra `json:"infras"`
}

ListLinuxInfraResponse represents the REST response for listing Linux infrastructures

type ListLoadTestResponse

type ListLoadTestResponse struct {
	Items      []LoadTest `json:"items"`
	Pagination Pagination `json:"pagination"`
}

ListLoadTestResponse represents the response from listing load tests

type ListOutput

type ListOutput[T any] struct {
	Status string            `json:"status,omitempty"`
	Data   ListOutputData[T] `json:"data,omitempty"`
}

ListOutput represents a generic listing response

type ListOutputData

type ListOutputData[T any] struct {
	TotalElements    int          `json:"totalElements,omitempty"`
	TotalItems       int          `json:"totalItems,omitempty"`
	TotalPages       int          `json:"totalPages,omitempty"`
	Size             int          `json:"size,omitempty"`
	PageSize         int          `json:"pageSize,omitempty"`
	Content          []T          `json:"content,omitempty"`
	Number           int          `json:"number,omitempty"`
	PageIndex        int          `json:"pageIndex,omitempty"`
	PageItemCount    int          `json:"pageItemCount,omitempty"`
	Sort             SortInfo     `json:"sort,omitempty"`
	First            bool         `json:"first,omitempty"`
	Pageable         PageableInfo `json:"pageable,omitempty"`
	NumberOfElements int          `json:"numberOfElements,omitempty"`
	Last             bool         `json:"last,omitempty"`
	Empty            bool         `json:"empty,omitempty"`
}

ListOutputData represents the data field of a list response

type ListProbeResponse

type ListProbeResponse struct {
	TotalNoOfProbes int                `json:"totalNoOfProbes"`
	Probes          []GetProbeResponse `json:"data"`
}

type ListSecretsData

type ListSecretsData struct {
	TotalPages    int          `json:"totalPages"`
	TotalItems    int          `json:"totalItems"`
	PageItemCount int          `json:"pageItemCount"`
	PageSize      int          `json:"pageSize"`
	Content       []SecretData `json:"content"`
}

ListSecretsData represents the data field in the list secrets response

type ListSecretsResponse

type ListSecretsResponse struct {
	Status        string          `json:"status"`
	Data          ListSecretsData `json:"data"`
	MetaData      interface{}     `json:"metaData"`
	CorrelationID string          `json:"correlationId"`
}

ListSecretsResponse represents the response from the list secrets API

type LoadTest

type LoadTest struct {
	ID                 string                 `json:"id"`
	Name               string                 `json:"name"`
	Description        string                 `json:"description"`
	Tags               []string               `json:"tags"`
	AccountID          string                 `json:"accountId"`
	OrgID              string                 `json:"orgId"`
	ProjectID          string                 `json:"projectId"`
	InfraID            string                 `json:"infraId,omitempty"`
	EnvID              string                 `json:"envId,omitempty"`
	ScenarioID         string                 `json:"scenarioId,omitempty"`
	TargetURL          string                 `json:"targetUrl"`
	ScriptContent      string                 `json:"scriptContent,omitempty"`
	IsAPIGenerated     bool                   `json:"isApiGenerated"`
	IsSampleTest       bool                   `json:"isSampleTest"`
	JSONScript         string                 `json:"jsonScript,omitempty"`
	JSONSpecData       *LoadTestJSONSpec      `json:"jsonSpecData,omitempty"`
	LatestRevisionID   string                 `json:"latestRevisionId"`
	DefaultUsers       int                    `json:"defaultUsers"`
	DefaultSpawnRate   float64                `json:"defaultSpawnRate"`
	DefaultDurationSec int                    `json:"defaultDurationSec"`
	MaxDurationSec     int                    `json:"maxDurationSec"`
	Metadata           map[string]interface{} `json:"metadata,omitempty"`
	RecentRuns         []LoadTestRun          `json:"recentRuns,omitempty"`
	CreatedAt          string                 `json:"createdAt"`
	CreatedBy          string                 `json:"createdBy"`
	UpdatedAt          string                 `json:"updatedAt"`
	UpdatedBy          string                 `json:"updatedBy"`
}

LoadTest represents a load test entity

type LoadTestConfig

type LoadTestConfig struct {
	Host string `json:"host"`
}

LoadTestConfig represents the configuration section of a load test spec

type LoadTestEndpoint

type LoadTestEndpoint struct {
	Name        string                 `json:"name"`
	Method      string                 `json:"method"`
	Path        string                 `json:"path"`
	Headers     map[string]string      `json:"headers,omitempty"`
	QueryParams map[string]string      `json:"query_params,omitempty"`
	Body        map[string]interface{} `json:"body,omitempty"`
	Assertions  *EndpointAssertions    `json:"assertions,omitempty"`
}

LoadTestEndpoint represents an endpoint in the load test specification

type LoadTestJSONSpec

type LoadTestJSONSpec struct {
	Config    *LoadTestConfig    `json:"config,omitempty"`
	Endpoints []LoadTestEndpoint `json:"endpoints,omitempty"`
}

LoadTestJSONSpec represents the JSON specification for a load test

type LoadTestRun

type LoadTestRun struct {
	ID              string `json:"id"`
	Status          string `json:"status"`
	TargetUsers     int    `json:"targetUsers"`
	SpawnRate       int    `json:"spawnRate"`
	DurationSeconds int    `json:"durationSeconds"`
	StartedAt       string `json:"startedAt"`
	FinishedAt      string `json:"finishedAt,omitempty"`
	CreatedAt       string `json:"createdAt"`
	CreatedBy       string `json:"createdBy"`
}

LoadTestRun represents a single run of a load test

type LoadTestRunResponse

type LoadTestRunResponse struct {
	ID              string `json:"id"`
	LoadTestID      string `json:"loadTestId"`
	RunSequence     int    `json:"runSequence"`
	AccountID       string `json:"accountId"`
	OrgID           string `json:"orgId"`
	ProjectID       string `json:"projectId"`
	TargetUsers     int    `json:"targetUsers"`
	SpawnRate       int    `json:"spawnRate"`
	DurationSeconds int    `json:"durationSeconds"`
	Status          string `json:"status"`
	StartedAt       string `json:"startedAt"`
	CreatedAt       string `json:"createdAt"`
	CreatedBy       string `json:"createdBy"`
	UpdatedAt       string `json:"updatedAt"`
	UpdatedBy       string `json:"updatedBy"`
}

LoadTestRunResponse represents the full response from running or stopping a load test

type LogDownloadResponse

type LogDownloadResponse struct {
	Link    string    `json:"link"`
	Status  string    `json:"status"`
	Expires time.Time `json:"expires"`
}

LogDownloadResponse represents the response from the log download API

type MatchingDoc

type MatchingDoc struct {
	Content  string `json:"content"`
	EntityID string `json:"entity_id"`
	Kind     string `json:"kind"`
	Scope    string `json:"scope"`
	DocPath  string `json:"doc_path"`
}

type MoveConfigType

type MoveConfigType string
const (
	InlineToRemote MoveConfigType = "INLINE_TO_REMOTE"
	RemoteToInline MoveConfigType = "REMOTE_TO_INLINE"
)

type MoveEnvironmentConfigsRequest

type MoveEnvironmentConfigsRequest struct {
	EnvironmentIdentifier string `json:"-"` // Not part of the body but needed for the path

	AccountIdentifier string         `json:"-"` // Required
	OrgIdentifier     string         `json:"-"`
	ProjectIdentifier string         `json:"-"`
	ConnectorRef      string         `json:"-"`
	RepoName          string         `json:"-"`
	Branch            string         `json:"-"`
	FilePath          string         `json:"-"`
	CommitMsg         string         `json:"-"`
	IsNewBranch       *bool          `json:"-"`
	BaseBranch        string         `json:"-"`
	IsHarnessCodeRepo *bool          `json:"-"`
	MoveConfigType    MoveConfigType `json:"-"` // Required
}

type MoveEnvironmentConfigsResponse

type MoveEnvironmentConfigsResponse struct {
	Status        string `json:"status"`
	CorrelationId string `json:"correlationId"`
	MetaData      any    `json:"metaData"`

	Data struct {
		Identifier string `json:"identifier"`
		Success    bool   `json:"success"`
	} `json:"data,omitempty"`

	Code             string                `json:"code,omitempty"`
	Message          string                `json:"message,omitempty"`
	DetailedMessage  string                `json:"detailedMessage,omitempty"`
	ResponseMessages []HarnessErrorMessage `json:"responseMessages,omitempty"`
}

type MoveInfraConfigsRequest

type MoveInfraConfigsRequest struct {
	InfraIdentifier       string         `json:"-"` // Required - from path parameter
	EnvironmentIdentifier string         `json:"-"` // Required
	AccountIdentifier     string         `json:"-"` // Required
	OrgIdentifier         string         `json:"-"`
	ProjectIdentifier     string         `json:"-"`
	ConnectorRef          string         `json:"-"`
	RepoName              string         `json:"-"`
	Branch                string         `json:"-"`
	FilePath              string         `json:"-"`
	CommitMsg             string         `json:"-"`
	IsNewBranch           *bool          `json:"-"`
	BaseBranch            string         `json:"-"`
	IsHarnessCodeRepo     *bool          `json:"-"`
	MoveConfigType        MoveConfigType `json:"-"` // Required - enum: "INLINE_TO_REMOTE" "REMOTE_TO_INLINE"
}

MoveInfraConfigsRequest represents the request to move infrastructure configurations

type MoveInfraConfigsResponse

type MoveInfraConfigsResponse struct {
	Status        string `json:"status"`
	CorrelationId string `json:"correlationId"`
	MetaData      any    `json:"metaData"`

	Data struct {
		Identifier string `json:"identifier"`
		Success    bool   `json:"success"`
	} `json:"data,omitempty"`

	Code             string                `json:"code,omitempty"`
	Message          string                `json:"message,omitempty"`
	DetailedMessage  string                `json:"detailedMessage,omitempty"`
	ResponseMessages []HarnessErrorMessage `json:"responseMessages,omitempty"`
}

MoveInfraConfigsResponse represents the response from the move infrastructure configs API

type PageInfo

type PageInfo struct {
	Page    int  `json:"page"`
	Size    int  `json:"size"`
	HasNext bool `json:"hasNext"`
	HasPrev bool `json:"hasPrev"`
}

PageInfo represents pagination information.

type PageableInfo

type PageableInfo struct {
	Offset     int      `json:"offset,omitempty"`
	Sort       SortInfo `json:"sort,omitempty"`
	Paged      bool     `json:"paged,omitempty"`
	Unpaged    bool     `json:"unpaged,omitempty"`
	PageSize   int      `json:"pageSize,omitempty"`
	PageNumber int      `json:"pageNumber,omitempty"`
}

PageableInfo represents pagination information

type Pagination

type Pagination struct {
	Index      int64 `json:"index"`
	Limit      int64 `json:"limit"`
	TotalPages int64 `json:"totalPages"`
	TotalItems int64 `json:"totalItems"`
}

type PaginationOptions

type PaginationOptions struct {
	Page int `json:"page,omitempty"`
	Size int `json:"size,omitempty"`
}

type PermissionsOutputData

type PermissionsOutputData struct {
	Permission PermissionsOutputObject `json:"permission,omitempty"`
}

type PermissionsOutputObject

type PermissionsOutputObject struct {
	Identifier         string   `json:"identifier,omitempty"`
	Name               string   `json:"name,omitempty"`
	Status             string   `json:"status,omitempty"`
	IncludeInAllRoles  bool     `json:"includeInAllRoles,omitempty"`
	AllowedScopeLevels []string `json:"allowedScopeLevels,omitempty"`
	ResourceType       string   `json:"resourceType,omitempty"`
	Action             string   `json:"action,omitempty"`
}

type PipelineData

type PipelineData struct {
	YamlPipeline                  string                `json:"yamlPipeline,omitempty"`
	ResolvedTemplatesPipelineYaml string                `json:"resolvedTemplatesPipelineYaml,omitempty"`
	GitDetails                    GitDetails            `json:"gitDetails,omitempty"`
	EntityValidityDetails         EntityValidityDetails `json:"entityValidityDetails,omitempty"`
	Modules                       []string              `json:"modules,omitempty"`
	StoreType                     string                `json:"storeType,omitempty"`
	ConnectorRef                  string                `json:"connectorRef,omitempty"`
	AllowDynamicExecutions        bool                  `json:"allowDynamicExecutions,omitempty"`
	IsInlineHCEntity              bool                  `json:"isInlineHCEntity,omitempty"`
}

PipelineData represents the data field of a pipeline response

type PipelineExecution

type PipelineExecution struct {
	PipelineIdentifier         string                `json:"pipelineIdentifier,omitempty"`
	ProjectIdentifier          string                `json:"projectIdentifier,omitempty"`
	OrgIdentifier              string                `json:"orgIdentifier,omitempty"`
	PlanExecutionId            string                `json:"planExecutionId,omitempty"`
	Name                       string                `json:"name,omitempty"`
	Status                     string                `json:"status,omitempty"`
	FailureInfo                ExecutionFailureInfo  `json:"failureInfo,omitempty"`
	StartTs                    int64                 `json:"startTs,omitempty"`
	StartTsTime                string                `json:"startTsTime,omitempty"`
	EndTs                      int64                 `json:"endTs,omitempty"`
	EndTsTime                  string                `json:"endTsTime,omitempty"`
	CreatedAt                  int64                 `json:"createdAt,omitempty"`
	CreatedAtTime              string                `json:"createdAtTime,omitempty"`
	ConnectorRef               string                `json:"connectorRef,omitempty"`
	SuccessfulStagesCount      int                   `json:"successfulStagesCount,omitempty"`
	FailedStagesCount          int                   `json:"failedStagesCount,omitempty"`
	RunningStagesCount         int                   `json:"runningStagesCount,omitempty"`
	TotalStagesRunningCount    int                   `json:"totalStagesRunningCount,omitempty"`
	StagesExecuted             []string              `json:"stagesExecuted,omitempty"`
	AbortedBy                  User                  `json:"abortedBy,omitempty"`
	QueuedType                 string                `json:"queuedType,omitempty"`
	RunSequence                int32                 `json:"runSequence,omitempty"`
	ShouldUseSimplifiedBaseKey bool                  `json:"shouldUseSimplifiedKey,omitempty"`
	ExecutionTriggerInfo       *ExecutionTriggerInfo `json:"executionTriggerInfo,omitempty"`
}

PipelineExecution represents a pipeline execution

func (*PipelineExecution) FormatTimestamps

func (p *PipelineExecution) FormatTimestamps()

FormatTimestamps formats the Unix timestamps into human-readable format

type PipelineExecutionOptions

type PipelineExecutionOptions struct {
	PaginationOptions
	Status             string        `json:"status,omitempty"`
	MyDeployments      bool          `json:"myDeployments,omitempty"`
	Branch             string        `json:"branch,omitempty"`
	SearchTerm         string        `json:"searchTerm,omitempty"`
	PipelineIdentifier string        `json:"pipelineIdentifier,omitempty"`
	PipelineTags       []PipelineTag `json:"pipelineTags,omitempty"`
}

PipelineExecutionOptions represents the options for listing pipeline executions

type PipelineExecutionResponse

type PipelineExecutionResponse struct {
	PipelineExecutionSummary PipelineExecution `json:"pipelineExecutionSummary,omitempty"`
	ExecutionGraph           ExecutionGraph    `json:"executionGraph,omitempty"`
	ChildGraph               ChildGraph        `json:"childGraph,omitempty"`
}

PipelineExecutionResponse represents the full response structure for pipeline execution details

type PipelineListItem

type PipelineListItem struct {
	Name                 string                 `json:"name,omitempty"`
	Identifier           string                 `json:"identifier,omitempty"`
	Description          string                 `json:"description,omitempty"`
	Tags                 map[string]string      `json:"tags,omitempty"`
	Version              int                    `json:"version,omitempty"`
	NumOfStages          int                    `json:"numOfStages,omitempty"`
	CreatedAt            int64                  `json:"createdAt,omitempty"`
	LastUpdatedAt        int64                  `json:"lastUpdatedAt,omitempty"`
	Modules              []string               `json:"modules,omitempty"`
	ExecutionSummaryInfo ExecutionSummaryInfo   `json:"executionSummaryInfo,omitempty"`
	Filters              map[string]interface{} `json:"filters,omitempty"`
	StageNames           []string               `json:"stageNames,omitempty"`
	StoreType            string                 `json:"storeType,omitempty"`
	ConnectorRef         string                 `json:"connectorRef,omitempty"`
	IsDraft              bool                   `json:"isDraft,omitempty"`
	YamlVersion          string                 `json:"yamlVersion,omitempty"`
	IsInlineHCEntity     bool                   `json:"isInlineHCEntity,omitempty"`
}

PipelineListItem represents an item in the pipeline list

type PipelineListOptions

type PipelineListOptions struct {
	PaginationOptions
	SearchTerm string `json:"searchTerm,omitempty"`
}

PipelineListOptions represents the options for listing pipelines

type PipelineSummary

type PipelineSummary struct {
	Identifier           string                `json:"identifier,omitempty"`
	Name                 string                `json:"name,omitempty"`
	Description          string                `json:"description,omitempty"`
	Tags                 map[string]string     `json:"tags,omitempty"`
	OrgIdentifier        string                `json:"orgIdentifier,omitempty"`
	ProjectIdentifier    string                `json:"projectIdentifier,omitempty"`
	Version              int                   `json:"version,omitempty"`
	NumOfStages          int                   `json:"numOfStages,omitempty"`
	CreatedAt            int64                 `json:"createdAt,omitempty"`
	LastUpdatedAt        int64                 `json:"lastUpdatedAt,omitempty"`
	Modules              []string              `json:"modules,omitempty"`
	ExecutionSummaryInfo *ExecutionSummaryInfo `json:"executionSummaryInfo,omitempty"`
	StageNames           []string              `json:"stageNames,omitempty"`
	YamlVersion          string                `json:"yamlVersion,omitempty"`
}

PipelineSummary represents a summary of a pipeline

type PipelineTag

type PipelineTag struct {
	Key   string `json:"key,omitempty"`
	Value string `json:"value,omitempty"`
}

PipelineTag represents a key-value tag for filtering pipelines

type PipelineTriggeredBy

type PipelineTriggeredBy struct {
	UUID       string            `json:"uuid,omitempty"`
	Identifier string            `json:"identifier,omitempty"`
	ExtraInfo  *TriggerExtraInfo `json:"extraInfo,omitempty"`
}

PipelineTriggeredBy represents the user or entity that triggered the pipeline execution

type Principal

type Principal struct {
	Type                   string                 `json:"type"`
	Name                   string                 `json:"name"`
	Email                  string                 `json:"email"`
	Username               string                 `json:"username"`
	AccountID              string                 `json:"accountId"`
	Role                   interface{}            `json:"role"`
	UniqueID               string                 `json:"uniqueId"`
	ImpersonatingPrincipal interface{}            `json:"impersonatingPrincipal"`
	JWTClaims              map[string]interface{} `json:"jwtclaims"`
}

Principal represents an NG user in the delegate token context

type ProbeData

type ProbeData struct {
	Name            string            `json:"name"`
	ProbeType       string            `json:"probeType"`
	Weightage       int               `json:"weightage"`
	Description     string            `json:"description"`
	Iterations      []ProbeIterations `json:"iterations"`
	ResiliencyScore int               `json:"resiliencyScore"`
	FaultName       string            `json:"faultName"`
}

type ProbeIterations

type ProbeIterations struct {
	Duration     int           `json:"duration"`
	Phase        string        `json:"phase"`
	Timestamp    int64         `json:"timestamp"`
	HTTPProbe    *HTTPProbe    `json:"httpProbe"`
	CommandProbe *CommandProbe `json:"commandProbe"`
	PromProbe    *PromProbe    `json:"promProbe"`
}

type ProbeRecentExecutions

type ProbeRecentExecutions struct {
	FaultName            string                `json:"faultName"`
	Status               *Status               `json:"status"`
	ExecutedByExperiment *ExecutedByExperiment `json:"executedByExperiment"`
}

type ProbeRequest

type ProbeRequest struct {
	Identity            string                     `json:"identity"`
	ProbeID             string                     `json:"probeId"`
	Name                string                     `json:"name"`
	Description         *string                    `json:"description,omitempty"`
	Tags                []string                   `json:"tags,omitempty"`
	Type                string                     `json:"type"`
	IsEnabled           *bool                      `json:"isEnabled"`
	InfrastructureType  string                     `json:"infrastructureType"`
	RunProperties       ProbeTemplateRunProperties `json:"runProperties,omitempty"`
	RecentProbeRuns     []*ProbeRecentExecutions   `json:"recentProbeRuns,omitempty"`
	ProbeReferenceCount *int64                     `json:"probeReferenceCount,omitempty"`
}

type ProbeTemplateRunProperties

type ProbeTemplateRunProperties struct {
	ProbeTimeout         string       `json:"timeout,omitempty"`
	Interval             string       `json:"interval,omitempty"`
	Attempt              interface{}  `json:"attempt,omitempty"`
	ProbePollingInterval string       `json:"pollingInterval,omitempty"`
	InitialDelay         string       `json:"initialDelay,omitempty"`
	StopOnFailure        bool         `json:"stopOnFailure,omitempty"`
	Verbosity            *string      `json:"verbosity,omitempty"`
	Retry                *interface{} `json:"retry,omitempty"`
}

type PromProbe

type PromProbe struct {
	Metrics string `json:"metrics"`
}

type PullRequest

type PullRequest struct {
	Author            PullRequestAuthor       `json:"author,omitempty"`
	CheckSummary      PullRequestCheckSummary `json:"check_summary,omitempty"`
	Closed            int64                   `json:"closed,omitempty"`
	Created           int64                   `json:"created,omitempty"`
	Description       string                  `json:"description,omitempty"`
	Edited            int64                   `json:"edited,omitempty"`
	IsDraft           bool                    `json:"is_draft,omitempty"`
	Labels            []PullRequestLabel      `json:"labels,omitempty"`
	MergeBaseSha      string                  `json:"merge_base_sha,omitempty"`
	MergeCheckStatus  string                  `json:"merge_check_status,omitempty"`
	MergeConflicts    []string                `json:"merge_conflicts,omitempty"`
	MergeMethod       string                  `json:"merge_method,omitempty"`
	MergeTargetSha    string                  `json:"merge_target_sha,omitempty"`
	Merged            int64                   `json:"merged,omitempty"`
	Merger            PullRequestAuthor       `json:"merger,omitempty"`
	Number            int                     `json:"number,omitempty"`
	RebaseCheckStatus string                  `json:"rebase_check_status,omitempty"`
	RebaseConflicts   []string                `json:"rebase_conflicts,omitempty"`
	Rules             []PullRequestRule       `json:"rules,omitempty"`
	SourceBranch      string                  `json:"source_branch,omitempty"`
	SourceRepoID      int                     `json:"source_repo_id,omitempty"`
	SourceSha         string                  `json:"source_sha,omitempty"`
	State             string                  `json:"state,omitempty"`
	Stats             PullRequestStats        `json:"stats,omitempty"`
	TargetBranch      string                  `json:"target_branch,omitempty"`
	TargetRepoID      int                     `json:"target_repo_id,omitempty"`
	Title             string                  `json:"title,omitempty"`
	Updated           int64                   `json:"updated,omitempty"`
}

PullRequest represents a pull request in the system

type PullRequestActivitiesResponse

type PullRequestActivitiesResponse []PullRequestActivity

PullRequestActivitiesResponse represents the response from the activities API It's a direct slice of activities as the API returns an array

type PullRequestActivity

type PullRequestActivity struct {
	ID          int             `json:"id,omitempty"`
	Type        string          `json:"type,omitempty"`
	Created     int64           `json:"created,omitempty"`
	Updated     int64           `json:"updated,omitempty"`
	Edited      int64           `json:"edited,omitempty"`
	ParentID    int             `json:"parent_id,omitempty"`
	RepoID      int64           `json:"repo_id"`
	PullReqID   int64           `json:"pullreq_id"`
	Kind        string          `json:"kind,omitempty"`
	Text        string          `json:"text,omitempty"`
	CodeComment CodeComment     `json:"code_comment,omitempty"`
	Metadata    interface{}     `json:"metadata,omitempty"`
	Resolved    int64           `json:"resolved,omitempty"`
	PayloadRaw  json.RawMessage `json:"payload"`
}

PullRequestActivity represents an activity on a pull request

type PullRequestActivityOptions

type PullRequestActivityOptions struct {
	AccountIdentifier string   `json:"accountIdentifier,omitempty"`
	OrgIdentifier     string   `json:"orgIdentifier,omitempty"`
	ProjectIdentifier string   `json:"projectIdentifier,omitempty"`
	Kind              []string `json:"kind,omitempty"`
	Type              []string `json:"type,omitempty"`
	After             int64    `json:"after,omitempty"`
	Before            int64    `json:"before,omitempty"`
	Limit             int      `json:"limit,omitempty"`
	Page              int      `json:"page,omitempty"`
}

PullRequestActivityOptions defines options for listing PR activities

type PullRequestAuthor

type PullRequestAuthor struct {
	Created     int64  `json:"created,omitempty"`
	DisplayName string `json:"display_name,omitempty"`
	Email       string `json:"email,omitempty"`
	ID          int    `json:"id,omitempty"`
	Type        string `json:"type,omitempty"`
	UID         string `json:"uid,omitempty"`
	Updated     int64  `json:"updated,omitempty"`
}

PullRequestAuthor represents a user in the pull request system

type PullRequestCheck

type PullRequestCheck struct {
	Created    int64                    `json:"created,omitempty"`
	Ended      int64                    `json:"ended,omitempty"`
	ID         int                      `json:"id,omitempty"`
	Identifier string                   `json:"identifier,omitempty"`
	Link       string                   `json:"link,omitempty"`
	Metadata   interface{}              `json:"metadata"`
	Payload    PullRequestCheckPayload  `json:"payload,omitempty"`
	ReportedBy PullRequestCheckReporter `json:"reported_by,omitempty"`
	Started    int64                    `json:"started,omitempty"`
	Status     string                   `json:"status,omitempty"`
	Summary    string                   `json:"summary,omitempty"`
	Updated    int64                    `json:"updated,omitempty"`
}

PullRequestCheck represents a status check for a pull request

type PullRequestCheckInfo

type PullRequestCheckInfo struct {
	Bypassable bool             `json:"bypassable,omitempty"`
	Check      PullRequestCheck `json:"check,omitempty"`
	Required   bool             `json:"required,omitempty"`
}

PullRequestCheckInfo represents a check with additional information

type PullRequestCheckPayload

type PullRequestCheckPayload struct {
	Data    interface{} `json:"data"`
	Kind    string      `json:"kind"`
	Version string      `json:"version,omitempty"`
}

PullRequestCheckPayload represents the payload for a pull request check

type PullRequestCheckReporter

type PullRequestCheckReporter struct {
	Created     int64  `json:"created,omitempty"`
	DisplayName string `json:"display_name,omitempty"`
	Email       string `json:"email,omitempty"`
	ID          int    `json:"id,omitempty"`
	Type        string `json:"type,omitempty"`
	UID         string `json:"uid,omitempty"`
	Updated     int64  `json:"updated,omitempty"`
}

PullRequestCheckReporter represents the entity that reported a check

type PullRequestCheckSummary

type PullRequestCheckSummary struct {
	Error   int `json:"error,omitempty"`
	Failure int `json:"failure,omitempty"`
	Pending int `json:"pending,omitempty"`
	Running int `json:"running,omitempty"`
	Success int `json:"success,omitempty"`
}

PullRequestCheckSummary represents the summary of checks for a pull request

type PullRequestChecksResponse

type PullRequestChecksResponse struct {
	Checks    []PullRequestCheckInfo `json:"checks,omitempty"`
	CommitSha string                 `json:"commit_sha,omitempty"`
}

PullRequestChecksResponse represents the response from the checks API

type PullRequestLabel

type PullRequestLabel struct {
	Color      string `json:"color,omitempty"`
	ID         int    `json:"id,omitempty"`
	Key        string `json:"key,omitempty"`
	Scope      int    `json:"scope,omitempty"`
	Value      string `json:"value,omitempty"`
	ValueColor string `json:"value_color,omitempty"`
	ValueCount int    `json:"value_count,omitempty"`
	ValueID    int    `json:"value_id,omitempty"`
}

PullRequestLabel represents a label on a pull request

type PullRequestOptions

type PullRequestOptions struct {
	State         []string `json:"state,omitempty"`
	SourceRepoRef string   `json:"source_repo_ref,omitempty"`
	SourceBranch  string   `json:"source_branch,omitempty"`
	TargetBranch  string   `json:"target_branch,omitempty"`
	Query         string   `json:"query,omitempty"`
	CreatedBy     []int    `json:"created_by,omitempty"`
	Order         string   `json:"order,omitempty"`
	Sort          string   `json:"sort,omitempty"`
	CreatedLt     int64    `json:"created_lt,omitempty"`
	CreatedGt     int64    `json:"created_gt,omitempty"`
	UpdatedLt     int64    `json:"updated_lt,omitempty"`
	UpdatedGt     int64    `json:"updated_gt,omitempty"`
	Page          int      `json:"page,omitempty"`
	Limit         int      `json:"limit,omitempty"`
	AuthorID      int      `json:"author_id,omitempty"`
	IncludeChecks bool     `json:"include_checks,omitempty"`
}

PullRequestOptions represents the options for listing pull requests

type PullRequestRule

type PullRequestRule struct {
	Identifier string `json:"identifier,omitempty"`
	RepoPath   string `json:"repo_path,omitempty"`
	SpacePath  string `json:"space_path,omitempty"`
	State      string `json:"state,omitempty"`
	Type       string `json:"type,omitempty"`
}

PullRequestRule represents a rule for a pull request

type PullRequestStats

type PullRequestStats struct {
	Additions       int `json:"additions,omitempty"`
	Commits         int `json:"commits,omitempty"`
	Conversations   int `json:"conversations,omitempty"`
	Deletions       int `json:"deletions,omitempty"`
	FilesChanged    int `json:"files_changed,omitempty"`
	UnresolvedCount int `json:"unresolved_count,omitempty"`
}

PullRequestStats represents statistics for a pull request

type Repository

type Repository struct {
	Archived       bool   `json:"archived,omitempty"`
	Created        int64  `json:"created,omitempty"`
	CreatedBy      int    `json:"created_by,omitempty"`
	DefaultBranch  string `json:"default_branch,omitempty"`
	Deleted        int64  `json:"deleted,omitempty"`
	Description    string `json:"description,omitempty"`
	ForkID         int    `json:"fork_id,omitempty"`
	GitSSHURL      string `json:"git_ssh_url,omitempty"`
	GitURL         string `json:"git_url,omitempty"`
	ID             int    `json:"id,omitempty"`
	Identifier     string `json:"identifier,omitempty"`
	Importing      bool   `json:"importing,omitempty"`
	IsEmpty        bool   `json:"is_empty,omitempty"`
	IsPublic       bool   `json:"is_public,omitempty"`
	LastGitPush    int64  `json:"last_git_push,omitempty"`
	NumClosedPulls int    `json:"num_closed_pulls,omitempty"`
	NumForks       int    `json:"num_forks,omitempty"`
	NumMergedPulls int    `json:"num_merged_pulls,omitempty"`
	NumOpenPulls   int    `json:"num_open_pulls,omitempty"`
	NumPulls       int    `json:"num_pulls,omitempty"`
	ParentID       int    `json:"parent_id,omitempty"`
	Path           string `json:"path,omitempty"`
	Size           int64  `json:"size,omitempty"`
	SizeUpdated    int64  `json:"size_updated,omitempty"`
	State          int    `json:"state,omitempty"`
	Updated        int64  `json:"updated,omitempty"`
}

Repository represents a repository in the system

type RepositoryOptions

type RepositoryOptions struct {
	Query string `json:"query,omitempty"`
	Sort  string `json:"sort,omitempty"`
	Order string `json:"order,omitempty"`
	Page  int    `json:"page,omitempty"`
	Limit int    `json:"limit,omitempty"`
}

RepositoryOptions represents the options for listing repositories

type ResourceGroup

type ResourceGroup struct {
	AccountIdentifier string                      `json:"accountIdentifier,omitempty"`
	OrgIdentifier     string                      `json:"orgIdentifier,omitempty"`
	ProjectIdentifier string                      `json:"projectIdentifier,omitempty"`
	Identifier        string                      `json:"identifier,omitempty"`
	Name              string                      `json:"name,omitempty"`
	Color             string                      `json:"color,omitempty"`
	Description       string                      `json:"description,omitempty"`
	ResourceFilter    ResourceGroupResourceFilter `json:"resourceFilter,omitempty"`
}

type ResourceGroupResourceFilter

type ResourceGroupResourceFilter struct {
	Resources []ResourceSelectorV2 `json:"resources,omitempty"`
}

type ResourceSelectorV2

type ResourceSelectorV2 struct {
	Identifiers  []string `json:"identifiers,omitempty"`
	ResourceType string   `json:"resourceType,omitempty"`
}

type Role

type Role struct {
	Identifier         string   `json:"identifier,omitempty"`
	Name               string   `json:"name,omitempty"`
	Permissions        []string `json:"permissions,omitempty"`
	AllowedScopeLevels []string `json:"allowedScopeLevels,omitempty"`
	Description        string   `json:"description,omitempty"`
}

type RoleAssignment

type RoleAssignment struct {
	Identifier              string                 `json:"identifier,omitempty"`
	ResourceGroupIdentifier string                 `json:"resourceGroupIdentifier,omitempty"`
	RoleIdentifier          string                 `json:"roleIdentifier,omitempty"`
	Principal               AccessControlPrincipal `json:"principal,omitempty"`
	Managed                 bool                   `json:"managed,omitempty"`
	Internal                bool                   `json:"internal,omitempty"`
	Disabled                bool                   `json:"disabled,omitempty"`
	RoleReference           *RoleReference         `json:"roleReference,omitempty"`
}

type RoleAssignmentMetadataObject

type RoleAssignmentMetadataObject struct {
	Identifier              string `json:"identifier,omitempty"`
	RoleIdentifier          string `json:"roleIdentifier,omitempty"`
	RoleName                string `json:"roleName,omitempty"`
	RoleScopeLevel          string `json:"roleScopeLevel,omitempty"`
	ResourceGroupIdentifier string `json:"resourceGroupIdentifier,omitempty"`
	ResourceGroupName       string `json:"resourceGroupName,omitempty"`
	ManagedRole             bool   `json:"managedRole,omitempty"`
	ManagedRoleAssignment   bool   `json:"managedRoleAssignment,omitempty"`
}

type RoleAssignmentPrincipalFilter

type RoleAssignmentPrincipalFilter struct {
	ScopeLevel string `json:"scopeLevel,omitempty"`
	Identifier string `json:"identifier,omitempty"`
	Type       string `json:"type,omitempty"`
	UniqueId   string `json:"uniqueId,omitempty"`
}

type RoleAssignmentRequestBody

type RoleAssignmentRequestBody struct {
	ResourceGroupFilter       []string                        `json:"resourceGroupFilter,omitempty"`
	RoleFilter                []string                        `json:"roleFilter,omitempty"`
	PrincipalTypeFilter       []string                        `json:"principalTypeFilter,omitempty"`
	PrincipalScopeLevelFilter []string                        `json:"principalScopeLevelFilter,omitempty"`
	PrincipalFilter           []RoleAssignmentPrincipalFilter `json:"principalFilter,omitempty"`
}

type RoleAssignmentsOutputData

type RoleAssignmentsOutputData struct {
	TotalPages    int64                              `json:"totalPages,omitempty"`
	TotalItems    int64                              `json:"totalItems,omitempty"`
	PageItemCount int64                              `json:"pageItemCount,omitempty"`
	PageSize      int64                              `json:"pageSize,omitempty"`
	Content       []RoleAssignmentsOutputDataContent `json:"content,omitempty"`
}

type RoleAssignmentsOutputDataContent

type RoleAssignmentsOutputDataContent struct {
	RoleAssignment     RoleAssignment `json:"roleAssignment,omitempty"`
	Scope              Scope          `json:"scope,omitempty"`
	CreatedAt          int64          `json:"createdAt,omitempty"`
	LastModifiedAt     int64          `json:"lastModifiedAt,omitempty"`
	HarnessManaged     bool           `json:"harnessManaged,omitempty"`
	CreatedAtTime      string
	LastModifiedAtTime string
}

type RoleBinding

type RoleBinding struct {
	ResourceGroupIdentifier string `json:"resourceGroupIdentifier,omitempty"`
	RoleIdentifier          string `json:"roleIdentifier,omitempty"`
	RoleScopeLevel          string `json:"roleScopeLevel,omitempty"`
	RoleName                string `json:"roleName,omitempty"`
	ResourceGroupName       string `json:"resourceGroupName,omitempty"`
	ManagedRole             bool   `json:"managedRole"`
}

type RoleData

type RoleData struct {
	Identifier  string   `json:"identifier,omitempty"`
	Name        string   `json:"name,omitempty"`
	Permissions []string `json:"permissions,omitempty"`
}

type RoleInfoOutputData

type RoleInfoOutputData struct {
	Role               Role  `json:"role,omitempty"`
	Scope              Scope `json:"scope,omitempty"`
	HarnessManaged     bool  `json:"harnessManaged,omitempty"`
	CreatedAt          int64 `json:"createdAt,omitempty"`
	LastModifiedAt     int64 `json:"lastModifiedAt,omitempty"`
	CreatedAtTime      string
	LastModifiedAtTime string
}

type RoleReference

type RoleReference struct {
	Identifier string `json:"identifier,omitempty"`
	ScopeLevel string `json:"scopeLevel,omitempty"`
}

type RolesOutputData

type RolesOutputData struct {
	TotalPages    int64                    `json:"totalPages,omitempty"`
	TotalItems    int64                    `json:"totalItems,omitempty"`
	PageItemCount int64                    `json:"pageItemCount,omitempty"`
	PageSize      int64                    `json:"pageSize,omitempty"`
	Content       []RolesOutputDataContent `json:"content,omitempty"`
}

type RolesOutputDataContent

type RolesOutputDataContent struct {
	Role                              RoleData `json:"role,omitempty"`
	CreatedAt                         int64    `json:"createdAt,omitempty"`
	LastModifiedAt                    int64    `json:"lastModifiedAt,omitempty"`
	CreatedAtTime                     string
	LastModifiedAtTime                string
	RoleAssignedToUserCount           int64 `json:"roleAssignedToUserCount,omitempty"`
	RoleAssignedToUserGroupCount      int64 `json:"roleAssignedToUserGroupCount,omitempty"`
	RoleAssignedToServiceAccountCount int64 `json:"roleAssignedToServiceAccountCount,omitempty"`
}

type Rule

type Rule struct {
	DataPointIdentifier  string        `json:"data_point_identifier"`
	DataSourceIdentifier string        `json:"data_source_identifier"`
	Identifier           *string       `json:"identifier,omitempty"`
	InputValues          *[]InputValue `json:"input_values,omitempty"`
	Operator             string        `json:"operator"`
	Value                *string       `json:"value,omitempty"`
}

type RunChaosExperimentResponse

type RunChaosExperimentResponse struct {
	NotifyID        string `json:"notifyId"`
	DelegateTaskID  string `json:"delegateTaskId"`
	ExperimentRunID string `json:"experimentRunId"`
	ExperimentID    string `json:"experimentId"`
	ExperimentName  string `json:"experimentName"`
}

type RunLoadTestRequest

type RunLoadTestRequest struct {
	LoadTestID      string `json:"loadTestId"`
	TargetUsers     int    `json:"targetUsers,omitempty"`
	DurationSeconds int    `json:"durationSeconds,omitempty"`
	SpawnRate       int    `json:"spawnRate,omitempty"`
}

RunLoadTestRequest represents the request body to run a load test

type SavingsDetail

type SavingsDetail struct {
	Table *SavingsDetailTable   `json:"table,omitempty"`
	Chart []*SavingsDetailChart `json:"chart,omitempty"`
}

type SavingsDetailChart

type SavingsDetailChart struct {
	Day     time.Time `json:"date"`
	Savings float64   `json:"savings"`
}

type SavingsDetailTable

type SavingsDetailTable struct {
	Total      float64  `json:"total"`
	Percentage float64  `json:"percentage"`
	Trend      *float64 `json:"trend,omitempty"`
}

type Scope

type Scope struct {
	AccountID string `json:"accountIdentifier"`
	OrgID     string `json:"orgIdentifier"`
	ProjectID string `json:"projectIdentifier"`
}

Scope represents a scope in the system

func (Scope) GetRef

func (s Scope) GetRef() string

type Scorecard

type Scorecard struct {
	Checks        []Check  `json:"checks"`
	ChecksMissing []string `json:"checks_missing,omitempty"`
	Components    int      `json:"components,omitempty"`
	Description   string   `json:"description,omitempty"`
	Identifier    string   `json:"identifier"`
	Name          string   `json:"name"`
	Percentage    float64  `json:"percentage,omitempty"`
	Published     bool     `json:"published,omitempty"`
}

type ScorecardChecksDetails

type ScorecardChecksDetails struct {
	Custom      bool    `json:"custom"`
	Description string  `json:"description,omitempty"`
	Identifier  string  `json:"identifier"`
	Name        string  `json:"name"`
	Weightage   float64 `json:"weightage,omitempty"`
}

type ScorecardDetails

type ScorecardDetails struct {
	ChecksMissing []string `json:"checks_missing,omitempty"`
	Components    int      `json:"components,omitempty"`
	Description   string   `json:"description,omitempty"`
	Filter        struct {
		Kind      string   `json:"kind"`
		Lifecycle []string `json:"lifecycle,omitempty"`
		Owners    []string `json:"owners,omitempty"`
		Scopes    []string `json:"scopes,omitempty"`
		Tags      []string `json:"tags,omitempty"`
		Type      string   `json:"type,omitempty"`
	} `json:"filter"`
	Identifier        string  `json:"identifier"`
	Name              string  `json:"name"`
	OnDemand          bool    `json:"on_demand,omitempty"`
	Percentage        float64 `json:"percentage,omitempty"`
	Published         bool    `json:"published"`
	WeightageStrategy string  `json:"weightage_strategy,omitempty"`
}

type ScorecardDetailsResponse

type ScorecardDetailsResponse struct {
	Checks    []ScorecardChecksDetails `json:"checks"`
	Scorecard ScorecardDetails         `json:"scorecard"`
}

type ScorecardRecalibrateInfo

type ScorecardRecalibrateInfo struct {
	StartTime int64   `json:"start_time,omitempty"`
	StartedBy IDPUser `json:"started_by,omitempty"`
}

type ScorecardResponse

type ScorecardResponse struct {
	Scorecard Scorecard `json:"scorecard,omitempty"`
}

type ScorecardScore

type ScorecardScore struct {
	Description   string `json:"description"`
	Score         int    `json:"score"`
	ScorecardName string `json:"scorecard_name"`
}

type ScorecardScoreResponse

type ScorecardScoreResponse struct {
	OverallScore    int              `json:"overall_score"`
	ScorecardScores []ScorecardScore `json:"scorecard_scores"`
}

type ScorecardStats

type ScorecardStats struct {
	Kind      string `json:"kind"`
	Name      string `json:"name"`
	Namespace string `json:"namespace"`
	Owner     string `json:"owner"`
	Score     int    `json:"score"`
	System    string `json:"system"`
	Type      string `json:"type"`
}

ScorecardStats ScorecardStats

type ScorecardStatsResponse

type ScorecardStatsResponse struct {
	Name      string           `json:"name"`
	Stats     []ScorecardStats `json:"stats"`
	Timestamp *int64           `json:"timestamp,omitempty"`
}

ScorecardStatsResponse ScorecardStatsResponse

type ScorecardStatsResponseWithHumanReadableTime

type ScorecardStatsResponseWithHumanReadableTime struct {
	Name  string           `json:"name"`
	Stats []ScorecardStats `json:"stats"`
	Time  string           `json:"time,omitempty"`
}

type ScorecardSummaryInfo

type ScorecardSummaryInfo struct {
	ChecksStatuses      []CheckStatus            `json:"checks_statuses"`
	Description         string                   `json:"description"`
	RecalibrateInfo     ScorecardRecalibrateInfo `json:"recalibrate_info,omitempty"`
	Score               int                      `json:"score"`
	ScorecardIdentifier string                   `json:"scorecard_identifier"`
	ScorecardName       string                   `json:"scorecard_name"`
	Timestamp           int64                    `json:"timestamp"`
}

type ScorecardSummaryResponse

type ScorecardSummaryResponse struct {
	ScorecardsSummary []ScorecardSummaryInfo `json:"scorecards_summary"`
}

type SearchTechDocsRequest

type SearchTechDocsRequest struct {
	Query string `json:"query"`
}

type SearchTechDocsResponse

type SearchTechDocsResponse []MatchingDoc

type Secret

type Secret struct {
	Type        string            `json:"type"`
	Name        string            `json:"name"`
	Identifier  string            `json:"identifier"`
	Tags        map[string]string `json:"tags"`
	Description string            `json:"description"`
	Spec        SecretSpec        `json:"spec"`
}

Secret represents the details of a Harness secret

type SecretData

type SecretData struct {
	Secret    Secret `json:"secret"`
	CreatedAt int64  `json:"createdAt"`
	UpdatedAt int64  `json:"updatedAt"`
	Draft     bool   `json:"draft"`
}

SecretData represents the data field in the secret response

type SecretFilterProperties

type SecretFilterProperties struct {
	SecretName                         string            `json:"secretName,omitempty"`
	SecretIdentifier                   string            `json:"secretIdentifier,omitempty"`
	SecretTypes                        []string          `json:"secretTypes,omitempty"`
	SecretManagerIdentifiers           []string          `json:"secretManagerIdentifiers,omitempty"`
	Description                        string            `json:"description,omitempty"`
	SearchTerm                         string            `json:"searchTerm,omitempty"`
	IncludeSecretsFromEverySubScope    bool              `json:"includeSecretsFromEverySubScope,omitempty"`
	IncludeAllSecretsAccessibleAtScope bool              `json:"includeAllSecretsAccessibleAtScope,omitempty"`
	Tags                               map[string]string `json:"tags,omitempty"`
	Labels                             map[string]string `json:"labels,omitempty"`
	FilterType                         string            `json:"filterType,omitempty"`
}

SecretFilterProperties represents the filter properties for listing secrets

type SecretGetOptions

type SecretGetOptions struct {
}

SecretGetOptions represents options for getting a secret

type SecretResponse

type SecretResponse struct {
	Status        string      `json:"status"`
	Data          SecretData  `json:"data"`
	MetaData      interface{} `json:"metaData"`
	CorrelationID string      `json:"correlationId"`
}

SecretResponse represents the response from the Harness secrets API

type SecretSpec

type SecretSpec struct {
	SecretManagerIdentifier string      `json:"secretManagerIdentifier"`
	AdditionalMetadata      interface{} `json:"additionalMetadata"`
}

SecretSpec represents the specification of a secret

type Service

type Service struct {
	ID                string                   `json:"identifier"`
	Name              string                   `json:"name"`
	Description       string                   `json:"description,omitempty"`
	OrgIdentifier     string                   `json:"orgIdentifier"`
	ProjectIdentifier string                   `json:"projectIdentifier"`
	YAML              string                   `json:"yaml,omitempty"`
	Tags              map[string]string        `json:"tags,omitempty"`
	Variables         []map[string]interface{} `json:"variables,omitempty"`
	GitOpsEnabled     bool                     `json:"gitOpsEnabled,omitempty"`
	CreatedAt         int64                    `json:"createdAt,omitempty"`
	LastModifiedAt    int64                    `json:"lastModifiedAt,omitempty"`
}

Service represents a service in Harness

type ServiceAccountData

type ServiceAccountData struct {
	ServiceAccount               ServiceAccountInfo             `json:"serviceAccount,omitempty"`
	CreatedAt                    int64                          `json:"createdAt,omitempty"`
	LastModifiedAt               int64                          `json:"lastModifiedAt,omitempty"`
	TokensCount                  int64                          `json:"tokensCount,omitempty"`
	RoleAssignmentMetadataObject []RoleAssignmentMetadataObject `json:"roleAssignmentsMetadataDTO,omitempty"`
	CreatedAtTime                string
	LastModifiedAtTime           string
}

type ServiceAccountInfo

type ServiceAccountInfo struct {
	Identifier        string `json:"identifier,omitempty"`
	Name              string `json:"name,omitempty"`
	Email             string `json:"email,omitempty"`
	Description       string `json:"description,omitempty"`
	AccountIdentifier string `json:"accountIdentifier,omitempty"`
	OrgIdentifier     string `json:"orgIdentifier,omitempty"`
	ProjectIdentifier string `json:"projectIdentifier,omitempty"`
}

type ServiceListResponse

type ServiceListResponse struct {
	Data struct {
		Content       []Service `json:"content"`
		TotalPages    int       `json:"totalPages"`
		TotalElements int       `json:"totalElements"`
		PageSize      int       `json:"pageSize"`
		PageIndex     int       `json:"pageIndex"`
	} `json:"data"`
}

ServiceListResponse represents the response from the list services API

type ServiceOptions

type ServiceOptions struct {
	Page  int    `json:"page,omitempty"`
	Limit int    `json:"limit,omitempty"`
	Sort  string `json:"sort,omitempty"`
	Order string `json:"order,omitempty"`
}

ServiceOptions represents the options for listing services

type ServiceResponse

type ServiceResponse struct {
	Data Service `json:"data"`
}

ServiceResponse represents the response from the get service API

type Setting

type Setting struct {
	Identifier        string   `json:"identifier"`
	Name              string   `json:"name"`
	OrgIdentifier     *string  `json:"orgIdentifier"`
	ProjectIdentifier *string  `json:"projectIdentifier"`
	Category          string   `json:"category"`
	GroupIdentifier   string   `json:"groupIdentifier"`
	ValueType         string   `json:"valueType"`
	AllowedValues     []string `json:"allowedValues"`
	AllowOverrides    bool     `json:"allowOverrides"`
	Value             *string  `json:"value"`
	DefaultValue      *string  `json:"defaultValue"`
	SettingSource     string   `json:"settingSource"`
	IsSettingEditable bool     `json:"isSettingEditable"`
	AllowedScopes     []string `json:"allowedScopes"`
}

Setting represents the details of a Harness setting

type SettingItem

type SettingItem struct {
	Setting        Setting `json:"setting"`
	LastModifiedAt *int64  `json:"lastModifiedAt"`
}

SettingItem represents a single setting in the Harness settings API response

type SettingsListOptions

type SettingsListOptions struct {
	Category            string
	Group               string
	IncludeParentScopes bool
	PaginationOptions
}

SettingsListOptions represents options for listing settings

type SettingsResponse

type SettingsResponse struct {
	Status        string        `json:"status"`
	Data          []SettingItem `json:"data"`
	MetaData      interface{}   `json:"metaData"`
	CorrelationID string        `json:"correlationId"`
}

SettingsResponse represents the response from the Harness settings API

type SortInfo

type SortInfo struct {
	Empty    bool `json:"empty,omitempty"`
	Unsorted bool `json:"unsorted,omitempty"`
	Sorted   bool `json:"sorted,omitempty"`
}

SortInfo represents sorting information

type Status

type Status struct {
	Verdict     string  `json:"verdict"`
	Description *string `json:"description"`
}

type StopLoadTestResponse

type StopLoadTestResponse struct {
	Success bool   `json:"success"`
	Message string `json:"message"`
}

StopLoadTestResponse represents the response from stopping a load test run

type Targets

type Targets struct {
	ID        string `json:"ID"`
	Name      string `json:"name"`
	Type      string `json:"type"`
	SubType   string `json:"subType"`
	Kind      string `json:"kind"`
	Namespace string `json:"namespace"`
}

type TemplateListOptions

type TemplateListOptions struct {
	// Pagination parameters
	Page  int `json:"page,omitempty"`  // Default: 0
	Limit int `json:"limit,omitempty"` // Default: 30

	// Sorting parameters
	Sort  string `json:"sort,omitempty"`  // Enum: "identifier" "name" "updated"
	Order string `json:"order,omitempty"` // Enum: "ASC" "DESC"

	// Filtering parameters
	SearchTerm string `json:"search_term,omitempty"` // Filter resources having attributes matching with search term
	Type       string `json:"type,omitempty"`        // Template List Type: Enum: "STABLE_TEMPLATE" "LAST_UPDATES_TEMPLATE" "ALL"
	Recursive  bool   `json:"recursive,omitempty"`   // Default: false - Specify true if all accessible Templates are to be included

	// List filtering
	Names       []string `json:"names,omitempty"`        // Template names for filtering
	Identifiers []string `json:"identifiers,omitempty"`  // Template Ids for Filtering
	EntityTypes []string `json:"entity_types,omitempty"` // Type of Template - Enum: "Step" "Stage" "Pipeline" "CustomDeployment" "MonitoredService" "SecretManager"
	ChildTypes  []string `json:"child_types,omitempty"`  // Child types describe the type of Step or stage
}

TemplateListOptions represents options for listing templates

type TemplateListOutput

type TemplateListOutput struct {
	Templates []TemplateOutput `json:"templates"`
}

TemplateListOutput is a custom struct for template list output with numeric timestamps

func ToTemplateResponse

func ToTemplateResponse(data *TemplateMetaDataList) *TemplateListOutput

ToTemplateResponse processes the raw API response and adds human-readable timestamps

type TemplateMetaDataList

type TemplateMetaDataList []TemplateMetadataSummaryResponse

TemplateMetaDataList represents a list of template metadata

type TemplateMetadataSummaryResponse

type TemplateMetadataSummaryResponse struct {
	Account        string            `json:"account,omitempty"`
	Org            string            `json:"org,omitempty"`
	Project        string            `json:"project,omitempty"`
	Identifier     string            `json:"identifier,omitempty"`
	Name           string            `json:"name,omitempty"`
	Description    string            `json:"description,omitempty"`
	Tags           map[string]string `json:"tags,omitempty"`
	VersionLabel   string            `json:"version_label,omitempty"`
	EntityType     string            `json:"entity_type,omitempty"`
	ChildType      string            `json:"child_type,omitempty"`
	Scope          string            `json:"scope,omitempty"`
	Version        int64             `json:"version,omitempty"`
	GitDetails     *EntityGitDetails `json:"git_details,omitempty"`
	Updated        int64             `json:"updated,omitempty"`
	StoreType      string            `json:"store_type,omitempty"`
	ConnectorRef   string            `json:"connector_ref,omitempty"`
	StableTemplate bool              `json:"stable_template,omitempty"`
}

TemplateMetadataSummaryResponse represents a template metadata summary

type TemplateOutput

type TemplateOutput struct {
	Account        string            `json:"account,omitempty"`
	Org            string            `json:"org,omitempty"`
	Project        string            `json:"project,omitempty"`
	Identifier     string            `json:"identifier,omitempty"`
	Name           string            `json:"name,omitempty"`
	Description    string            `json:"description,omitempty"`
	Tags           map[string]string `json:"tags,omitempty"`
	VersionLabel   string            `json:"version_label,omitempty"`
	EntityType     string            `json:"entity_type,omitempty"`
	ChildType      string            `json:"child_type,omitempty"`
	Scope          string            `json:"scope,omitempty"`
	Version        int64             `json:"version,omitempty"`
	GitDetails     *EntityGitDetails `json:"git_details,omitempty"`
	Updated        string            `json:"updated,omitempty"`
	StoreType      string            `json:"store_type,omitempty"`
	ConnectorRef   string            `json:"connector_ref,omitempty"`
	StableTemplate bool              `json:"stable_template,omitempty"`
}

TemplateOutput is a custom struct for template output with numeric timestamps

type TimeSeriesDataPoints

type TimeSeriesDataPoints struct {
	Values []CcmDataPoint `json:"values,omitempty"`
	Time   int64          `json:"time,omitempty"`
}

TimeSeriesDataPoints represents the data points for a time series

type TriggerExtraInfo

type TriggerExtraInfo struct {
	Email    string `json:"email,omitempty"`
	UniqueID string `json:"uniqueId,omitempty"`
}

TriggerExtraInfo represents additional information about the trigger

type TriggerListItem

type TriggerListItem struct {
	Name                  string            `json:"name,omitempty"`
	Identifier            string            `json:"identifier,omitempty"`
	Description           string            `json:"description,omitempty"`
	Tags                  map[string]string `json:"tags,omitempty"`
	Type                  string            `json:"type,omitempty"`
	Enabled               bool              `json:"enabled,omitempty"`
	Yaml                  string            `json:"yaml,omitempty"`
	WebhookUrl            string            `json:"webhookUrl,omitempty"`
	RegistrationStatus    string            `json:"registrationStatus,omitempty"`
	YamlVersion           string            `json:"yamlVersion,omitempty"`
	TriggerStatus         *TriggerStatus    `json:"triggerStatus,omitempty"`
	WebhookDetails        *WebhookDetails   `json:"webhookDetails,omitempty"`
	Executions            []int             `json:"executions,omitempty"`
	WebhookCurlCommand    string            `json:"webhookCurlCommand,omitempty"`
	PipelineInputOutdated bool              `json:"pipelineInputOutdated,omitempty"`
	// Keeping these fields for backward compatibility
	CreatedAt          int64  `json:"createdAt,omitempty"`
	LastUpdatedAt      int64  `json:"lastUpdatedAt,omitempty"`
	TargetIdentifier   string `json:"targetIdentifier,omitempty"`
	PipelineIdentifier string `json:"pipelineIdentifier,omitempty"`
}

type TriggerListOptions

type TriggerListOptions struct {
	PaginationOptions
	TriggerNames       []string          `json:"triggerNames,omitempty"`
	TriggerIdentifiers []string          `json:"triggerIdentifiers,omitempty"`
	TriggerTypes       []string          `json:"triggerTypes,omitempty"`
	Tags               map[string]string `json:"tags,omitempty"`
	SearchTerm         string            `json:"searchTerm,omitempty"`
	TargetIdentifier   string            `json:"targetIdentifier,omitempty"`
	Filter             string            `json:"filter,omitempty"`
}

TriggerListOptions represents the options for listing triggers

type TriggerStatus

type TriggerStatus struct {
	PollingSubscriptionStatus     interface{}                    `json:"pollingSubscriptionStatus,omitempty"`
	ValidationStatus              *ValidationStatus              `json:"validationStatus,omitempty"`
	WebhookAutoRegistrationStatus *WebhookAutoRegistrationStatus `json:"webhookAutoRegistrationStatus,omitempty"`
	WebhookInfo                   *WebhookInfo                   `json:"webhookInfo,omitempty"`
	Status                        string                         `json:"status,omitempty"`
	DetailMessages                []string                       `json:"detailMessages,omitempty"`
	LastPollingUpdate             interface{}                    `json:"lastPollingUpdate,omitempty"`
	LastPolled                    interface{}                    `json:"lastPolled,omitempty"`
}

TriggerStatus contains the status information for a trigger

type UTMInfo

type UTMInfo struct {
	UTMSource   interface{} `json:"utmSource,omitempty"`
	UTMContent  interface{} `json:"utmContent,omitempty"`
	UTMMedium   interface{} `json:"utmMedium,omitempty"`
	UTMTerm     interface{} `json:"utmTerm,omitempty"`
	UTMCampaign interface{} `json:"utmCampaign,omitempty"`
}

type UnitProgress

type UnitProgress struct {
	UnitName  string `json:"unitName,omitempty"`
	Status    string `json:"status,omitempty"`
	StartTime string `json:"startTime,omitempty"`
	EndTime   string `json:"endTime,omitempty"`
}

type User

type User struct {
	Email     string `json:"email,omitempty"`
	UserName  string `json:"userName,omitempty"`
	CreatedAt int64  `json:"createdAt,omitempty"`
}

type UserBasicInfo

type UserBasicInfo struct {
	ID    string `json:"id,omitempty"`
	Email string `json:"email,omitempty"`
}

type UserData

type UserData struct {
	Name              string `json:"name,omitempty"`
	Email             string `json:"email,omitempty"`
	UUID              string `json:"uuid,omitempty"`
	Locked            bool   `json:"locked,omitempty"`
	Disabled          bool   `json:"disabled,omitempty"`
	ExternallyManaged bool   `json:"externallyManaged,omitempty"`
}

type UserDetail

type UserDetail struct {
	UserID   string `json:"userID"`
	Username string `json:"username"`
	Email    string `json:"email"`
}

UserDetail represents user information in chaos responses

type UserGroupInfoData

type UserGroupInfoData struct {
	AccountIdentifier string          `json:"accountIdentifier,omitempty"`
	OrgIdentifier     string          `json:"orgIdentifier,omitempty"`
	ProjectIdentifier string          `json:"projectIdentifier,omitempty"`
	Identifier        string          `json:"identifier,omitempty"`
	Name              string          `json:"name,omitempty"`
	Users             []UserBasicInfo `json:"users,omitempty"`
	Description       string          `json:"description,omitempty"`
}

type UserGroupInfoDataId

type UserGroupInfoDataId struct {
	AccountIdentifier string   `json:"accountIdentifier,omitempty"`
	OrgIdentifier     string   `json:"orgIdentifier,omitempty"`
	ProjectIdentifier string   `json:"projectIdentifier,omitempty"`
	Identifier        string   `json:"identifier,omitempty"`
	Name              string   `json:"name,omitempty"`
	Users             []string `json:"users,omitempty"`
	Description       string   `json:"description,omitempty"`
}

type UserInfoData

type UserInfoData struct {
	User                   UserData                       `json:"user,omitempty"`
	RoleAssignmentMetadata []RoleAssignmentMetadataObject `json:"roleAssignmentMetadata,omitempty"`
}

type UserPreferences

type UserPreferences struct {
	RecentSelectedScopes string      `json:"recent_selected_scopes,omitempty"`
	EnableNewNav         string      `json:"enable_new_nav,omitempty"`
	LandingPageURL       interface{} `json:"landing_page_url,omitempty"`
}

type UsersOutput

type UsersOutput struct {
	TotalPages    int64          `json:"totalPages,omitempty"`
	TotalItems    int64          `json:"totalItems,omitempty"`
	PageItemCount int64          `json:"pageItemCount,omitempty"`
	PageSize      int64          `json:"pageSize,omitempty"`
	Content       []UserInfoData `json:"content,omitempty"`
}

type UsersRequestBody

type UsersRequestBody struct {
	ResourceGroupIdentifier string `json:"resourceGroupIdentifiers,omitempty"`
	RoleIdentifier          string `json:"roleIdentifiers,omitempty"`
}

type ValidationStatus

type ValidationStatus struct {
	StatusResult    string `json:"statusResult,omitempty"`
	DetailedMessage string `json:"detailedMessage,omitempty"`
}

ValidationStatus represents the validation status of a trigger

type Variable

type Variable struct {
	VariableMinimum `json:",inline"`
	Path            string        `json:"path"`
	Category        string        `json:"category"`
	Description     string        `json:"description"`
	TooltipID       string        `json:"tooltipId"`
	Type            string        `json:"type"`
	Stringify       bool          `json:"stringify"`
	Required        bool          `json:"required"`
	AllowedValues   []interface{} `json:"allowedValues"`
	Default         interface{}   `json:"default"`
	Tags            []string      `json:"tags"`
	Validator       string        `json:"validator"`
}

type VariableMinimum

type VariableMinimum struct {
	Name  string      `json:"name"`
	Value interface{} `json:"value"`
}

type WebhookAutoRegistrationStatus

type WebhookAutoRegistrationStatus struct {
	RegistrationResult string `json:"registrationResult,omitempty"`
	DetailedMessage    string `json:"detailedMessage,omitempty"`
}

WebhookAutoRegistrationStatus represents the webhook registration status

type WebhookDetails

type WebhookDetails struct {
	WebhookSecret     string `json:"webhookSecret,omitempty"`
	WebhookSourceRepo string `json:"webhookSourceRepo,omitempty"`
}

WebhookDetails contains webhook configuration details

type WebhookInfo

type WebhookInfo struct {
	WebhookId string `json:"webhookId,omitempty"`
}

WebhookInfo contains webhook identification information

type WorkflowRevision

type WorkflowRevision struct {
	RevisionID         string `json:"RevisionID"`
	ExperimentManifest string `json:"ExperimentManifest"`
	UpdatedAt          int64  `json:"UpdatedAt"`
}

Jump to

Keyboard shortcuts

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