github.com/Axway/agent-sdk@v1.1.101/pkg/transaction/definitions.go (about) 1 package transaction 2 3 import ( 4 "github.com/Axway/agent-sdk/pkg/transaction/models" 5 "github.com/Axway/agent-sdk/pkg/transaction/util" 6 ) 7 8 // TypeTransactionSummary - Transaction summary type 9 const TypeTransactionSummary = "transactionSummary" 10 11 // TypeTransactionEvent - Transaction Event type 12 const TypeTransactionEvent = "transactionEvent" 13 14 // SummaryEventProxyIDPrefix - Prefix for proxyID in summary event 15 const SummaryEventProxyIDPrefix = util.SummaryEventProxyIDPrefix 16 17 // SummaryEventApplicationIDPrefix - Prefix for application.ID in summary event 18 const SummaryEventApplicationIDPrefix = util.SummaryEventApplicationIDPrefix 19 20 // TxEventStatus - Type def for transaction event status 21 type TxEventStatus string 22 23 // Constants for transaction event status 24 const ( 25 // TxEventStatusPass - Constant for Pass transaction event status 26 TxEventStatusPass TxEventStatus = "Pass" 27 28 // TxEventStatusFail - Constant for Fail transaction event status 29 TxEventStatusFail TxEventStatus = "Fail" 30 ) 31 32 // TxSummaryStatus - Type def for transaction event status 33 type TxSummaryStatus string 34 35 // Constants for transaction summary status 36 const ( 37 // TxSummaryStatusSuccess - Constant for Success transaction summary status 38 TxSummaryStatusSuccess TxSummaryStatus = "Success" 39 40 // TxSummaryStatusFailure - Constant for Success transaction summary status 41 TxSummaryStatusFailure TxSummaryStatus = "Failure" 42 43 // TxSummaryStatusException - Constant for Exception transaction summary status 44 TxSummaryStatusException TxSummaryStatus = "Exception" 45 46 // TxSummaryStatusUnknown - Constant for Exception transaction summary status 47 TxSummaryStatusUnknown TxSummaryStatus = "Unknown" 48 ) 49 50 const ( 51 unknown = "unknown" 52 ) 53 54 // LogEvent - Log event to be sent to Condor 55 type LogEvent struct { 56 Version string `json:"version"` 57 Stamp int64 `json:"timestamp"` 58 TransactionID string `json:"transactionId"` 59 Environment string `json:"environment,omitempty"` 60 APICDeployment string `json:"apicDeployment,omitempty"` 61 EnvironmentName string `json:"environmentName,omitempty"` 62 EnvironmentID string `json:"environmentId"` 63 TenantID string `json:"tenantId"` 64 TrcbltPartitionID string `json:"trcbltPartitionId"` 65 Type string `json:"type"` 66 TargetPath string `json:"targetPath,omitempty"` 67 ResourcePath string `json:"resourcePath,omitempty"` 68 TransactionEvent *Event `json:"transactionEvent,omitempty"` 69 TransactionSummary *Summary `json:"transactionSummary,omitempty"` 70 } 71 72 // Summary - Represent the transaction summary event 73 type Summary struct { 74 Status string `json:"status,omitempty"` 75 StatusDetail string `json:"statusDetail,omitempty"` 76 Duration int `json:"duration"` 77 Team *Team `json:"team,omitempty"` 78 Proxy *Proxy `json:"proxy,omitempty"` 79 Runtime *Runtime `json:"runtime,omitempty"` 80 EntryPoint *EntryPoint `json:"entryPoint,omitempty"` 81 IsInMetricEvent bool `json:"isInMetricEvent,omitempty"` 82 Application *Application `json:"application,omitempty"` 83 AssetResource *models.AssetResource `json:"assetResource,omitempty"` 84 API *models.APIDetails `json:"api,omitempty"` 85 Product *models.Product `json:"product,omitempty"` 86 ProductPlan *models.ProductPlan `json:"productPlan,omitempty"` 87 Quota *models.Quota `json:"quota,omitempty"` 88 ConsumerDetails *models.ConsumerDetails `json:"consumerDetails,omitempty"` 89 } 90 91 // Application - Represents the application used in transaction summary event (dataplane) 92 type Application struct { 93 ID string `json:"id,omitempty"` 94 Name string `json:"name,omitempty"` 95 } 96 97 // Team - Represents the team used in transaction summary event 98 type Team struct { 99 ID string `json:"id,omitempty"` 100 } 101 102 // Proxy - Represents the proxy definition in summary event 103 type Proxy struct { 104 ID string `json:"id,omitempty"` 105 Revision int `json:"revision,omitempty"` 106 Name string `json:"name,omitempty"` 107 Stage string `json:"-"` 108 Version string `json:"-"` 109 } 110 111 // Runtime - Represents the runtime group details if applicable in summary event 112 type Runtime struct { 113 ID string `json:"id,omitempty"` 114 Name string `json:"name,omitempty"` 115 } 116 117 // EntryPoint - represents the entry point details for API in summary event 118 type EntryPoint struct { 119 Type string `json:"type,omitempty"` 120 Method string `json:"method,omitempty"` 121 Path string `json:"path,omitempty"` 122 Host string `json:"host,omitempty"` 123 } 124 125 // TransportProtocol - Interface for transport protocol detail 126 type TransportProtocol interface{} 127 128 // Event - Represents the transaction detail event 129 type Event struct { 130 ID string `json:"id,omitempty"` 131 ParentID string `json:"parentId,omitempty"` 132 Source string `json:"source,omitempty"` 133 Destination string `json:"destination,omitempty"` 134 Duration int `json:"duration"` 135 Direction string `json:"direction,omitempty"` 136 Status string `json:"status,omitempty"` 137 Protocol TransportProtocol `json:"protocol,omitempty"` 138 } 139 140 // Protocol - Represents the protocol details in transaction detail events 141 type Protocol struct { 142 Type string `json:"type,omitempty"` 143 URI string `json:"uri,omitempty"` 144 Args string `json:"args,omitempty"` 145 Method string `json:"method,omitempty"` 146 Status int `json:"status,omitempty"` 147 StatusText string `json:"statusText,omitempty"` 148 UserAgent string `json:"userAgent,omitempty"` 149 Host string `json:"host,omitempty"` 150 Version string `json:"version,omitempty"` 151 BytesReceived int `json:"bytesReceived,omitempty"` 152 BytesSent int `json:"bytesSent,omitempty"` 153 RemoteName string `json:"remoteName,omitempty"` 154 RemoteAddr string `json:"remoteAddr,omitempty"` 155 RemotePort int `json:"remotePort,omitempty"` 156 LocalAddr string `json:"localAddr,omitempty"` 157 LocalPort int `json:"localPort,omitempty"` 158 SslServerName string `json:"sslServerName,omitempty"` 159 SslProtocol string `json:"sslProtocol,omitempty"` 160 Referer string `json:"referer,omitempty"` 161 SslSubject string `json:"sslSubject,omitempty"` 162 AuthSubjectID string `json:"authSubjectId,omitempty"` 163 RequestHeaders string `json:"requestHeaders,omitempty"` 164 IndexedRequestHeaders string `json:"indexedRequestHeaders,omitempty"` 165 ResponseHeaders string `json:"responseHeaders,omitempty"` 166 IndexedResponseHeaders string `json:"indexedResponseHeaders,omitempty"` 167 RequestPayload string `json:"requestPayload,omitempty"` 168 ResponsePayload string `json:"responsePayload,omitempty"` 169 WafStatus int `json:"wafStatus,omitempty"` 170 Timing string `json:"timing,omitempty"` 171 uriRaw string 172 }