ccw

package module
v0.7.0 Latest Latest
Warning

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

Go to latest
Published: Jun 22, 2022 License: MIT Imports: 22 Imported by: 0

README

Cisco Commerce Workspace Library

Status GitHub tag (latest SemVer) GitHub GoDoc Go Report Card

A Go library for interacting with the Cisco Commerce Workspace APIs.

Currently a work in progress. This README will get updated as it progresses.

Usage

Import the library

import "github.com/darrenparkinson/ccw"

Initialise a client:

c, err := ccw.NewClient(username, password, clientID, clientSecret, nil)

You can optionally provide your own HTTP client.

Acquire a Quote By Deal ID

qr, err := c.QuoteService.AcquireByDealID(context.Background(), "123456")

Documentation

Index

Constants

View Source
const (
	ErrBadRequest    = Err("ccw: bad request")
	ErrUnauthorized  = Err("ccw: unauthorized request")
	ErrForbidden     = Err("ccw: forbidden")
	ErrInternalError = Err("ccw: internal error")
	ErrUnknown       = Err("ccw: unexpected error occurred")
	ErrNotFound      = Err("ccw: not found")
)

Error Constants

Variables

This section is empty.

Functions

func FloatOrNil added in v0.5.0

func FloatOrNil(v float64) *float64

FloatOrNil is a helper routine that allocates a new float64 value to store v and returns a pointer to it, unless it's zero in which case it will return nil. Use this for values you don't want to appear in output if they're zero.

func Int64 added in v0.2.0

func Int64(v int64) *int64

Int64 is a helper routine that allocates a new int64 value to store v and returns a pointer to it.

func IntOrNil added in v0.3.0

func IntOrNil(v int64) *int64

IntOrNil is a helper routine that allocates a new int64 value to store v and returns a pointer to it, unless it's zero in which case it will return nil. Use this for values you don't want to appear in output if they're zero.

func String added in v0.2.0

func String(v string) *string

String is a helper routine that allocates a new string value to store v and returns a pointer to it.

Types

type AcquireQuoteRequest

type AcquireQuoteRequest struct {
	DealID string
}

type AcquireQuoteResponse

type AcquireQuoteResponse struct {
	QuoteName   string                     `json:"quoteName"`
	QuoteOwner  string                     `json:"quoteOwner"`
	QuoteStatus string                     `json:"quoteStatus"`
	PriceList   string                     `json:"priceList"`
	PriceListID string                     `json:"priceListId"`
	DealID      string                     `json:"dealId"`
	Customer    Company                    `json:"customer"`
	Partner     Company                    `json:"partner"`
	LineItems   []AcquireQuoteResponseItem `json:"items"`
}

type AcquireQuoteResponseItem

type AcquireQuoteResponseItem struct {
	LineNumber                string      `json:"lineNumber"`
	PartNumber                string      `json:"partNumber"`
	Description               string      `json:"description"`
	CCWLineNumber             string      `json:"ccwLineNumber"`
	UnitNetPriceBeforeCredits float64     `json:"unitNetPriceBeforeCredits"`
	UnitNetPrice              float64     `json:"unitNetPrice"`
	OriginalUnitListPrice     float64     `json:"originalUnitListPrice"`
	Quantity                  int64       `json:"quantity"`
	UnitPrice                 float64     `json:"unitPrice"`
	ExtendedAmount            float64     `json:"extendedAmount"`
	TotalAmount               float64     `json:"totalAmount"`
	TotalDiscount             float64     `json:"totalDiscount"`
	StandardDiscount          float64     `json:"standardDiscount"`
	PromotionalDiscount       float64     `json:"promotionalDiscount"`
	ContractualDiscount       float64     `json:"contractualDiscount"`
	NonStandardDiscount       float64     `json:"nonStandardDiscount"`
	PrePayDiscount            float64     `json:"prePayDiscount"`
	EffectiveDiscount         float64     `json:"effectiveDiscount"`
	ImportCurrency            string      `json:"importCurrency"`
	ISO8601ServiceDuration    string      `json:"iso8601ServiceDuration"`
	ServiceDurationMonths     floatOrNull `json:"serviceDurationMonths"`
	ISO8601LeadTime           string      `json:"iso8601LeadTime"`
	LeadTimeDays              floatOrNull `json:"leadTimeDays"`
	ProductTypeClassification string      `json:"productTypeClassification"`
	ServiceLevelName          string      `json:"serviceLevelName"`
	ServiceType               string      `json:"serviceType"`
	ParentLineNumber          *string     `json:"parentLineNumber,omitempty"`
	// UserArea fields
	MagicKey           *string  `json:"magicKey,omitempty"`
	RequestedStartDate *string  `json:"requestedStartDate,omitempty"`
	InitialTerm        *float64 `json:"initialTerm,omitempty"`
	AutoRenewalTerm    *int64   `json:"autoRenewalTerm,omitempty"`
	BillingModel       *string  `json:"billingModel,omitempty"`
	ChargeType         *string  `json:"chargeType,omitempty"`
	UnitOfMeasurement  *string  `json:"unitOfMeasurement,omitempty"`
	AdditionalItemInfo *string  `json:"additionalItemInfo,omitempty"`
	PricingTerm        *int64   `json:"pricingTerm,omitempty"`

	RemainingTerm           *float64 `json:"remainingTerm,omitempty"`
	SubscriptionReferenceID *string  `json:"subscriptionReferenceID,omitempty"`
}

type AcquireQuoteXMLResponse

type AcquireQuoteXMLResponse struct {
	XMLName xml.Name `xml:"Envelope"`
	Text    string   `xml:",chardata"`
	Soapenv string   `xml:"soapenv,attr"`
	Header  struct {
		Text      string `xml:",chardata"`
		Messaging struct {
			Text           string `xml:",chardata"`
			Xsi            string `xml:"xsi,attr"`
			Eb             string `xml:"eb,attr"`
			MustUnderstand string `xml:"mustUnderstand,attr"`
			SchemaLocation string `xml:"schemaLocation,attr"`
			UserMessage    struct {
				Text        string `xml:",chardata"`
				MessageInfo struct {
					Text           string `xml:",chardata"`
					Timestamp      string `xml:"Timestamp"`
					MessageId      string `xml:"MessageId"`
					RefToMessageId string `xml:"RefToMessageId"`
				} `xml:"MessageInfo"`
				PartyInfo struct {
					Text string `xml:",chardata"`
					From struct {
						Text    string `xml:",chardata"`
						PartyId string `xml:"PartyId"`
						Role    string `xml:"Role"`
					} `xml:"From"`
					To struct {
						Text    string `xml:",chardata"`
						PartyId string `xml:"PartyId"`
						Role    string `xml:"Role"`
					} `xml:"To"`
				} `xml:"PartyInfo"`
				CollaborationInfo struct {
					Text    string `xml:",chardata"`
					Service struct {
						Text string `xml:",chardata"`
						Type string `xml:"type,attr"`
					} `xml:"Service"`
					Action         string `xml:"Action"`
					ConversationId string `xml:"ConversationId"`
				} `xml:"CollaborationInfo"`
				PayloadInfo struct {
					Text     string `xml:",chardata"`
					PartInfo struct {
						Text   string `xml:",chardata"`
						Schema struct {
							Text     string `xml:",chardata"`
							Location string `xml:"location,attr"`
						} `xml:"Schema"`
						PartProperties struct {
							Text     string `xml:",chardata"`
							Property []struct {
								Text string `xml:",chardata"`
								Name string `xml:"name,attr"`
							} `xml:"Property"`
						} `xml:"PartProperties"`
					} `xml:"PartInfo"`
				} `xml:"PayloadInfo"`
			} `xml:"UserMessage"`
		} `xml:"Messaging"`
		MeshaDoneBlock struct {
			Text      string `xml:",chardata"`
			Mesha     string `xml:"mesha,attr"`
			MeshaDone string `xml:"MeshaDone"`
		} `xml:"MeshaDoneBlock"`
	} `xml:"Header"`
	Body struct {
		Text      string `xml:",chardata"`
		ShowQuote struct {
			Text            string `xml:",chardata"`
			Ns1             string `xml:"ns1,attr"`
			Oa              string `xml:"oa,attr"`
			Xmlns           string `xml:"xmlns,attr"`
			Xs              string `xml:"xs,attr"`
			Cisco           string `xml:"cisco,attr"`
			ApplicationArea struct {
				Text   string `xml:",chardata"`
				Sender struct {
					Text      string `xml:",chardata"`
					LogicalID struct {
						Text             string `xml:",chardata"`
						SchemeAgencyName string `xml:"schemeAgencyName,attr"`
					} `xml:"LogicalID"`
					ReferenceID string `xml:"ReferenceID"`
				} `xml:"Sender"`
				Receiver struct {
					Text      string `xml:",chardata"`
					LogicalID struct {
						Text             string `xml:",chardata"`
						SchemeAgencyName string `xml:"schemeAgencyName,attr"`
					} `xml:"LogicalID"`
				} `xml:"Receiver"`
				CreationDateTime string `xml:"CreationDateTime"`
				BODID            string `xml:"BODID"`
			} `xml:"ApplicationArea"`
			DataArea struct {
				Text string `xml:",chardata"`
				Show struct {
					Text             string `xml:",chardata"`
					ResponseCriteria struct {
						Text         string `xml:",chardata"`
						ChangeStatus struct {
							Text   string `xml:",chardata"`
							Reason string `xml:"Reason"`
						} `xml:"ChangeStatus"`
					} `xml:"ResponseCriteria"`
				} `xml:"Show"`
				Quote struct {
					Text        string `xml:",chardata"`
					QuoteHeader struct {
						Text       string `xml:",chardata"`
						DocumentID struct {
							Text string `xml:",chardata"`
							ID   string `xml:"ID"`
						} `xml:"DocumentID"`
						LastModificationDateTime string `xml:"LastModificationDateTime"`
						DocumentDateTime         string `xml:"DocumentDateTime"`
						Description              []struct {
							Text string `xml:",chardata"`
							Type string `xml:"type,attr"`
						} `xml:"Description"`
						Status struct {
							Text string `xml:",chardata"`
							Code struct {
								Text           string `xml:",chardata"`
								ListName       string `xml:"listName,attr"`
								ListAgencyName string `xml:"listAgencyName,attr"`
							} `xml:"Code"`
						} `xml:"Status"`
						Party []struct {
							Text    string `xml:",chardata"`
							Role    string `xml:"role,attr"`
							Contact struct {
								Text string `xml:",chardata"`
								ID   struct {
									Text       string `xml:",chardata"`
									SchemeName string `xml:"schemeName,attr"`
								} `xml:"ID"`
								Name []struct {
									Text         string `xml:",chardata"`
									SequenceName string `xml:"sequenceName,attr"`
								} `xml:"Name"`
								JobTitle               string `xml:"JobTitle"`
								TelephoneCommunication struct {
									Text            string `xml:",chardata"`
									FormattedNumber string `xml:"FormattedNumber"`
								} `xml:"TelephoneCommunication"`
								EMailAddressCommunication struct {
									Text           string `xml:",chardata"`
									EMailAddressID string `xml:"EMailAddressID"`
								} `xml:"EMailAddressCommunication"`
							} `xml:"Contact"`
							Name     string `xml:"Name"`
							Location struct {
								Text    string `xml:",chardata"`
								Address struct {
									Text                   string `xml:",chardata"`
									LineOne                string `xml:"LineOne"`
									LineTwo                string `xml:"LineTwo"`
									LineThree              string `xml:"LineThree"`
									CityName               string `xml:"CityName"`
									CountrySubDivisionCode string `xml:"CountrySubDivisionCode"`
									CountryCode            string `xml:"CountryCode"`
									PostalCode             string `xml:"PostalCode"`
								} `xml:"Address"`
							} `xml:"Location"`
							PartyIDs struct {
								Text string `xml:",chardata"`
								ID   string `xml:"ID"`
							} `xml:"PartyIDs"`
						} `xml:"Party"`
						BillToParty struct {
							Text     string `xml:",chardata"`
							Location struct {
								Text    string `xml:",chardata"`
								Address struct {
									Text string `xml:",chardata"`
									ID   string `xml:"ID"`
								} `xml:"Address"`
								Description struct {
									Text string `xml:",chardata"`
									Type string `xml:"type,attr"`
								} `xml:"Description"`
							} `xml:"Location"`
						} `xml:"BillToParty"`
						EffectiveTimePeriod struct {
							Text        string `xml:",chardata"`
							EndDateTime string `xml:"EndDateTime"`
						} `xml:"EffectiveTimePeriod"`
						QualificationTerm struct {
							Text          string `xml:",chardata"`
							TypeAttribute string `xml:"typeAttribute,attr"`
							ID            struct {
								Text             string `xml:",chardata"`
								SchemeAgencyName string `xml:"schemeAgencyName,attr"`
							} `xml:"ID"`
						} `xml:"QualificationTerm"`
						UserArea struct {
							Text            string `xml:",chardata"`
							CiscoExtensions struct {
								Text        string `xml:",chardata"`
								CiscoHeader struct {
									Text            string `xml:",chardata"`
									IntendedUseCode string `xml:"IntendedUseCode"`
									PriceList       []struct {
										Text        string `xml:",chardata"`
										ID          string `xml:"ID"`
										Description string `xml:"Description"`
										ShortName   string `xml:"ShortName"`
									} `xml:"PriceList"`
									ConfigurationMessages struct {
										Text        string `xml:",chardata"`
										ID          string `xml:"ID"`
										Description string `xml:"Description"`
										Reason      string `xml:"Reason"`
									} `xml:"ConfigurationMessages"`
									NetPriceProtectionDate string `xml:"NetPriceProtectionDate"`
								} `xml:"CiscoHeader"`
							} `xml:"CiscoExtensions"`
						} `xml:"UserArea"`
						Extension struct {
							Text      string `xml:",chardata"`
							ValueText struct {
								Text     string `xml:",chardata"`
								TypeCode string `xml:"typeCode,attr"`
							} `xml:"ValueText"`
						} `xml:"Extension"`
					} `xml:"QuoteHeader"`
					QuoteLine []struct {
						Text       string `xml:",chardata"`
						LineNumber string `xml:"LineNumber"`
						Item       struct {
							Text   string `xml:",chardata"`
							ItemID struct {
								Text string `xml:",chardata"`
								ID   struct {
									Text             string `xml:",chardata"`
									SchemeName       string `xml:"schemeName,attr"`
									SchemeAgencyName string `xml:"schemeAgencyName,attr"`
								} `xml:"ID"`
							} `xml:"ItemID"`
							Description []struct {
								Text string `xml:",chardata"`
								Type string `xml:"type,attr"`
							} `xml:"Description"`
							Classification struct {
								Text  string `xml:",chardata"`
								Codes struct {
									Text string `xml:",chardata"`
									Code struct {
										Text           string `xml:",chardata"`
										ListAgencyName string `xml:"listAgencyName,attr"`
									} `xml:"Code"`
								} `xml:"Codes"`
								Type struct {
									Text           string `xml:",chardata"`
									ListName       string `xml:"listName,attr"`
									ListAgencyName string `xml:"listAgencyName,attr"`
								} `xml:"Type"`
							} `xml:"Classification"`
							Specification struct {
								Text     string `xml:",chardata"`
								Property []struct {
									Text      string `xml:",chardata"`
									ParentID  string `xml:"ParentID"`
									NameValue struct {
										Text string `xml:",chardata"`
										Name string `xml:"name,attr"`
									} `xml:"NameValue"`
									Description []struct {
										Text string `xml:",chardata"`
										Type string `xml:"type,attr"`
									} `xml:"Description"`
									Effectivity []struct {
										Text                string `xml:",chardata"`
										Type                string `xml:"Type"`
										EffectiveTimePeriod struct {
											Text     string `xml:",chardata"`
											Duration string `xml:"Duration"`
										} `xml:"EffectiveTimePeriod"`
									} `xml:"Effectivity"`
								} `xml:"Property"`
							} `xml:"Specification"`
						} `xml:"Item"`
						Quantity  string `xml:"Quantity"`
						UnitPrice struct {
							Text   string `xml:",chardata"`
							Amount struct {
								Text       string `xml:",chardata"`
								CurrencyID string `xml:"currencyID,attr"`
							} `xml:"Amount"`
						} `xml:"UnitPrice"`
						ExtendedAmount struct {
							Text       string `xml:",chardata"`
							CurrencyID string `xml:"currencyID,attr"`
						} `xml:"ExtendedAmount"`
						TotalAmount struct {
							Text       string `xml:",chardata"`
							CurrencyID string `xml:"currencyID,attr"`
						} `xml:"TotalAmount"`
						PaymentTerm struct {
							Text     string `xml:",chardata"`
							Discount []struct {
								Text string `xml:",chardata"`
								Type struct {
									Text     string `xml:",chardata"`
									ListName string `xml:"listName,attr"`
								} `xml:"Type"`
								DiscountPercent string `xml:"DiscountPercent"`
							} `xml:"Discount"`
						} `xml:"PaymentTerm"`
						Allowance []struct {
							Text string `xml:",chardata"`
							Type struct {
								Text     string `xml:",chardata"`
								ListName string `xml:"listName,attr"`
							} `xml:"Type"`
							Amount struct {
								Text       string `xml:",chardata"`
								CurrencyID string `xml:"currencyID,attr"`
							} `xml:"Amount"`
						} `xml:"Allowance"`
						UserArea struct {
							Text            string `xml:",chardata"`
							CiscoExtensions struct {
								Text      string `xml:",chardata"`
								CiscoLine struct {
									Text      string `xml:",chardata"`
									BuyMethod string `xml:"BuyMethod"`
									Party     []struct {
										Text     string `xml:",chardata"`
										Category string `xml:"category,attr"`
										Location struct {
											Text    string `xml:",chardata"`
											Address struct {
												Text                   string `xml:",chardata"`
												LineOne                string `xml:"LineOne"`
												LineTwo                string `xml:"LineTwo"`
												LineThree              string `xml:"LineThree"`
												CityName               string `xml:"CityName"`
												CountrySubDivisionCode string `xml:"CountrySubDivisionCode"`
												CountryCode            string `xml:"CountryCode"`
												PostalCode             string `xml:"PostalCode"`
											} `xml:"Address"`
										} `xml:"Location"`
									} `xml:"Party"`
									ConfigurationReference []struct {
										Text   string `xml:",chardata"`
										Status struct {
											Text   string `xml:",chardata"`
											Reason string `xml:"Reason"`
										} `xml:"Status"`
										VerifiedConfigurationIndicator string `xml:"VerifiedConfigurationIndicator"`
									} `xml:"ConfigurationReference"`
									ConfiguratorInformation struct {
										Text                          string `xml:",chardata"`
										ConfigurationPath             string `xml:"ConfigurationPath"`
										ProductConfigurationReference string `xml:"ProductConfigurationReference"`
										ConfigurationSelectCode       string `xml:"ConfigurationSelectCode"`
									} `xml:"ConfiguratorInformation"`
									MagicKey                string `xml:"MagicKey"`
									RequestedStartDate      string `xml:"RequestedStartDate"`
									InitialTerm             string `xml:"InitialTerm"`
									AutoRenewalTerm         string `xml:"AutoRenewalTerm"`
									BillingModel            string `xml:"BillingModel"`
									AdditionalItemInfo      string `xml:"AdditionalItemInfo"`
									ListPriceVersion        string `xml:"ListPriceVersion"`
									UtilityDrawdownAmount   string `xml:"UtilityDrawdownAmount"`
									TransactionInfoID       string `xml:"TransactionInfoID"`
									ChargeType              string `xml:"ChargeType"`
									UnitOfMeasurement       string `xml:"UnitOfMeasurement"`
									UsageQuantity           string `xml:"UsageQuantity"`
									PricingTerm             string `xml:"PricingTerm"`
									CIExtNetPrice           string `xml:"CIExtNetPrice"`
									SubscriptionReferenceID string `xml:"SubscriptionReferenceID"`
									CurrentBillingAmount    string `xml:"CurrentBillingAmount"`
									NewBillingAmount        string `xml:"NewBillingAmount"`
									BillingAmountNetChange  string `xml:"BillingAmountNetChange"`
									UnitNetPriceWithCredits string `xml:"UnitNetPriceWithCredits"`
									CurrentContractAmount   string `xml:"CurrentContractAmount"`
									NewContractAmount       string `xml:"NewContractAmount"`
									ContractAmountNetChange string `xml:"ContractAmountNetChange"`
									RemainingTerm           string `xml:"RemainingTerm"`
									OldQuantity             string `xml:"OldQuantity"`
									ShipToParty             struct {
										Text     string `xml:",chardata"`
										Location struct {
											Text    string `xml:",chardata"`
											Address struct {
												Text        string `xml:",chardata"`
												CountryCode string `xml:"CountryCode"`
											} `xml:"Address"`
										} `xml:"Location"`
									} `xml:"ShipToParty"`
									NetPriceProtectionDate string `xml:"NetPriceProtectionDate"`
								} `xml:"CiscoLine"`
							} `xml:"CiscoExtensions"`
						} `xml:"UserArea"`
					} `xml:"QuoteLine"`
				} `xml:"Quote"`
			} `xml:"DataArea"`
		} `xml:"ShowQuote"`
	} `xml:"Body"`
}

type Address

type Address struct {
	LineOne                string `json:"lineOne"`
	LineTwo                string `json:"lineTwo"`
	LineThree              string `json:"lineThree"`
	CityName               string `json:"cityName"`
	CountrySubDivisionCode string `json:"countrySubDivisionCode"`
	CountryCode            string `json:"countryCode"`
	PostalCode             string `json:"postalCode"`
}

type Client

type Client struct {
	//HTTP Client to use for making requests, allowing the user to supply their own if required.
	HTTPClient *http.Client

	// EstimateService represents the CCW Estimate Service
	EstimateService *EstimateService

	// QuoteService represents the CCW Quote Service
	QuoteService *QuoteService
	// contains filtered or unexported fields
}

func NewClient

func NewClient(username, password, clientID, secret string, client *http.Client) (*Client, error)

NewClient is a helper function that returns an new ccw client given the required parameters. Optionally you can provide your own http client or use nil to use the default. This is done to ensure you're aware of the decision you're making to not provide your own http client. Each service maintains it's own BaseURL which you can change after calling NewClient if you wish to use a different URL.

type Company

type Company struct {
	Name     string  `json:"name"`
	Location Address `json:"location"`
	Contact  Contact `json:"contact"`
}

type Contact

type Contact struct {
	FirstName string `json:"firstName"`
	LastName  string `json:"lastName"`
	JobTitle  string `json:"jobTitle"`
	Telephone string `json:"telephone"`
	Email     string `json:"email"`
	Website   string `json:"website"`
}

type Err

type Err string

Err implements the error interface so we can have constant errors.

func (Err) Error

func (e Err) Error() string

type EstimateService

type EstimateService struct {
	BaseURL string
	// contains filtered or unexported fields
}

EstimateService represents the CCW Quote Service

func (*EstimateService) List

func (s *EstimateService) List(ctx context.Context) error

type ListEstimateRequest

type ListEstimateRequest struct {
	Description string
}

type ListEstimateXMLResponse

type ListEstimateXMLResponse struct {
	XMLName xml.Name `xml:"Envelope"`
	Text    string   `xml:",chardata"`
	Soapenv string   `xml:"soapenv,attr"`
	Header  struct {
		Text      string `xml:",chardata"`
		Messaging struct {
			Text           string `xml:",chardata"`
			Xsi            string `xml:"xsi,attr"`
			Eb             string `xml:"eb,attr"`
			MustUnderstand string `xml:"mustUnderstand,attr"`
			SchemaLocation string `xml:"schemaLocation,attr"`
			UserMessage    struct {
				Text        string `xml:",chardata"`
				MessageInfo struct {
					Text           string `xml:",chardata"`
					Timestamp      string `xml:"Timestamp"`
					MessageId      string `xml:"MessageId"`
					RefToMessageId string `xml:"RefToMessageId"`
				} `xml:"MessageInfo"`
				PartyInfo struct {
					Text string `xml:",chardata"`
					From struct {
						Text    string `xml:",chardata"`
						PartyId string `xml:"PartyId"`
						Role    string `xml:"Role"`
					} `xml:"From"`
					To struct {
						Text    string `xml:",chardata"`
						PartyId string `xml:"PartyId"`
						Role    string `xml:"Role"`
					} `xml:"To"`
				} `xml:"PartyInfo"`
				CollaborationInfo struct {
					Text    string `xml:",chardata"`
					Service struct {
						Text string `xml:",chardata"`
						Type string `xml:"type,attr"`
					} `xml:"Service"`
					Action         string `xml:"Action"`
					ConversationId string `xml:"ConversationId"`
				} `xml:"CollaborationInfo"`
				PayloadInfo struct {
					Text     string `xml:",chardata"`
					PartInfo struct {
						Text   string `xml:",chardata"`
						Schema struct {
							Text     string `xml:",chardata"`
							Location string `xml:"location,attr"`
						} `xml:"Schema"`
						PartProperties struct {
							Text     string `xml:",chardata"`
							Property []struct {
								Text string `xml:",chardata"`
								Name string `xml:"name,attr"`
							} `xml:"Property"`
						} `xml:"PartProperties"`
					} `xml:"PartInfo"`
				} `xml:"PayloadInfo"`
			} `xml:"UserMessage"`
		} `xml:"Messaging"`
		MeshaDoneBlock struct {
			Text      string `xml:",chardata"`
			Mesha     string `xml:"mesha,attr"`
			MeshaDone string `xml:"MeshaDone"`
		} `xml:"MeshaDoneBlock"`
	} `xml:"Header"`
	Body struct {
		Text      string `xml:",chardata"`
		ShowQuote struct {
			Text            string `xml:",chardata"`
			Xmlns           string `xml:"xmlns,attr"`
			B2bapi          string `xml:"b2bapi,attr"`
			ApplicationArea struct {
				Text   string `xml:",chardata"`
				Sender struct {
					Text        string `xml:",chardata"`
					LogicalID   string `xml:"LogicalID"`
					ReferenceID string `xml:"ReferenceID"`
				} `xml:"Sender"`
				Receiver struct {
					Text      string `xml:",chardata"`
					LogicalID string `xml:"LogicalID"`
					ID        string `xml:"ID"`
				} `xml:"Receiver"`
				CreationDateTime string `xml:"CreationDateTime"`
				BODID            struct {
					Text            string `xml:",chardata"`
					SchemeAgencyID  string `xml:"schemeAgencyID,attr"`
					SchemeVersionID string `xml:"schemeVersionID,attr"`
				} `xml:"BODID"`
			} `xml:"ApplicationArea"`
			DataArea struct {
				Text string `xml:",chardata"`
				Show struct {
					Text             string `xml:",chardata"`
					ResponseCriteria struct {
						Text         string `xml:",chardata"`
						ChangeStatus struct {
							Text   string `xml:",chardata"`
							Reason string `xml:"Reason"`
						} `xml:"ChangeStatus"`
					} `xml:"ResponseCriteria"`
				} `xml:"Show"`
				Quote struct {
					Text        string `xml:",chardata"`
					QuoteHeader struct {
						Text    string `xml:",chardata"`
						Message struct {
							Text        string `xml:",chardata"`
							ID          string `xml:"ID"`
							Description string `xml:"Description"`
							Extension   struct {
								Text      string `xml:",chardata"`
								ValueText struct {
									Text     string `xml:",chardata"`
									TypeCode string `xml:"typeCode,attr"`
								} `xml:"ValueText"`
							} `xml:"Extension"`
						} `xml:"Message"`
					} `xml:"QuoteHeader"`
				} `xml:"Quote"`
			} `xml:"DataArea"`
		} `xml:"ShowQuote"`
	} `xml:"Body"`
}

type ListQuoteRequest

type ListQuoteRequest struct {
	DealID string
}

type ListQuoteXMLResponse

type ListQuoteXMLResponse struct {
	XMLName xml.Name `xml:"Envelope"`
	Text    string   `xml:",chardata"`
	Soapenv string   `xml:"soapenv,attr"`
	Header  struct {
		Text      string `xml:",chardata"`
		Messaging struct {
			Text           string `xml:",chardata"`
			Xsi            string `xml:"xsi,attr"`
			Eb             string `xml:"eb,attr"`
			MustUnderstand string `xml:"mustUnderstand,attr"`
			SchemaLocation string `xml:"schemaLocation,attr"`
			UserMessage    struct {
				Text        string `xml:",chardata"`
				MessageInfo struct {
					Text           string `xml:",chardata"`
					Timestamp      string `xml:"Timestamp"`
					MessageId      string `xml:"MessageId"`
					RefToMessageId string `xml:"RefToMessageId"`
				} `xml:"MessageInfo"`
				PartyInfo struct {
					Text string `xml:",chardata"`
					From struct {
						Text    string `xml:",chardata"`
						PartyId string `xml:"PartyId"`
						Role    string `xml:"Role"`
					} `xml:"From"`
					To struct {
						Text    string `xml:",chardata"`
						PartyId string `xml:"PartyId"`
						Role    string `xml:"Role"`
					} `xml:"To"`
				} `xml:"PartyInfo"`
				CollaborationInfo struct {
					Text    string `xml:",chardata"`
					Service struct {
						Text string `xml:",chardata"`
						Type string `xml:"type,attr"`
					} `xml:"Service"`
					Action         string `xml:"Action"`
					ConversationId string `xml:"ConversationId"`
				} `xml:"CollaborationInfo"`
				PayloadInfo struct {
					Text     string `xml:",chardata"`
					PartInfo struct {
						Text   string `xml:",chardata"`
						Schema struct {
							Text     string `xml:",chardata"`
							Location string `xml:"location,attr"`
						} `xml:"Schema"`
						PartProperties struct {
							Text     string `xml:",chardata"`
							Property []struct {
								Text string `xml:",chardata"`
								Name string `xml:"name,attr"`
							} `xml:"Property"`
						} `xml:"PartProperties"`
					} `xml:"PartInfo"`
				} `xml:"PayloadInfo"`
			} `xml:"UserMessage"`
		} `xml:"Messaging"`
		MeshaDoneBlock struct {
			Text      string `xml:",chardata"`
			Mesha     string `xml:"mesha,attr"`
			MeshaDone string `xml:"MeshaDone"`
		} `xml:"MeshaDoneBlock"`
	} `xml:"Header"`
	Body struct {
		Text      string `xml:",chardata"`
		ShowQuote struct {
			Text            string `xml:",chardata"`
			Ns1             string `xml:"ns1,attr"`
			Oa              string `xml:"oa,attr"`
			Xs              string `xml:"xs,attr"`
			Cisco           string `xml:"cisco,attr"`
			P               string `xml:"p,attr"`
			B2b             string `xml:"b2b,attr"`
			ReleaseID       string `xml:"releaseID,attr"`
			ApplicationArea struct {
				Text             string `xml:",chardata"`
				CreationDateTime string `xml:"CreationDateTime"`
			} `xml:"ApplicationArea"`
			DataArea struct {
				Text  string `xml:",chardata"`
				Show  string `xml:"Show"`
				Quote []struct {
					Text        string `xml:",chardata"`
					QuoteHeader struct {
						Text       string `xml:",chardata"`
						DocumentID struct {
							Text string `xml:",chardata"`
							ID   string `xml:"ID"`
						} `xml:"DocumentID"`
						LastModificationDateTime string `xml:"LastModificationDateTime"`
						DocumentDateTime         string `xml:"DocumentDateTime"`
						Description              struct {
							Text string `xml:",chardata"`
							Type string `xml:"type,attr"`
						} `xml:"Description"`
						Status struct {
							Text string `xml:",chardata"`
							Code struct {
								Text           string `xml:",chardata"`
								ListName       string `xml:"listName,attr"`
								ListAgencyName string `xml:"listAgencyName,attr"`
							} `xml:"Code"`
						} `xml:"Status"`
						Party struct {
							Text     string `xml:",chardata"`
							Role     string `xml:"role,attr"`
							Name     string `xml:"Name"`
							Location struct {
								Text    string `xml:",chardata"`
								Address struct {
									Text        string `xml:",chardata"`
									AddressLine struct {
										Text     string `xml:",chardata"`
										Sequence string `xml:"sequence,attr"`
									} `xml:"AddressLine"`
									CityName               string `xml:"CityName"`
									CountrySubDivisionCode string `xml:"CountrySubDivisionCode"`
									CountryCode            string `xml:"CountryCode"`
									PostalCode             string `xml:"PostalCode"`
								} `xml:"Address"`
							} `xml:"Location"`
						} `xml:"Party"`
						QualificationTerm struct {
							Text string `xml:",chardata"`
							ID   struct {
								Text             string `xml:",chardata"`
								SchemeAgencyName string `xml:"schemeAgencyName,attr"`
							} `xml:"ID"`
						} `xml:"QualificationTerm"`
						UserArea struct {
							Text            string `xml:",chardata"`
							CiscoExtensions struct {
								Text        string `xml:",chardata"`
								CiscoHeader struct {
									Text      string `xml:",chardata"`
									PriceList struct {
										Text        string `xml:",chardata"`
										Description string `xml:"Description"`
									} `xml:"PriceList"`
									ConfigurationMessages struct {
										Text        string `xml:",chardata"`
										ID          string `xml:"ID"`
										Description string `xml:"Description"`
										Reason      string `xml:"Reason"`
									} `xml:"ConfigurationMessages"`
								} `xml:"CiscoHeader"`
							} `xml:"CiscoExtensions"`
						} `xml:"UserArea"`
						Extension struct {
							Chardata string `xml:",chardata"`
							Amount   []struct {
								Text     string `xml:",chardata"`
								TypeCode string `xml:"typeCode,attr"`
							} `xml:"Amount"`
							Text []struct {
								Text     string `xml:",chardata"`
								TypeCode string `xml:"typeCode,attr"`
							} `xml:"Text"`
						} `xml:"Extension"`
						EffectiveTimePeriod struct {
							Text        string `xml:",chardata"`
							EndDateTime string `xml:"EndDateTime"`
						} `xml:"EffectiveTimePeriod"`
					} `xml:"QuoteHeader"`
				} `xml:"Quote"`
			} `xml:"DataArea"`
		} `xml:"ShowQuote"`
	} `xml:"Body"`
}

type QuoteService

type QuoteService struct {
	BaseURL string
	// contains filtered or unexported fields
}

QuoteService represents the CCW Quote Service

func (*QuoteService) AcquireByDealID

func (s *QuoteService) AcquireByDealID(ctx context.Context, dealID string) (*AcquireQuoteResponse, error)

type ValidUTF8Reader added in v0.6.0

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

ValidUTF8Reader implements a Reader which reads only bytes that constitute valid UTF-8

func NewValidUTF8Reader added in v0.6.0

func NewValidUTF8Reader(rd io.Reader) ValidUTF8Reader

NewValidUTF8Reader constructs a new ValidUTF8Reader that wraps an existing io.Reader

func (ValidUTF8Reader) Read added in v0.6.0

func (rd ValidUTF8Reader) Read(b []byte) (n int, err error)

Function Read reads bytes in the byte array b. n is the number of bytes read.

Directories

Path Synopsis
cmd
api
cli

Jump to

Keyboard shortcuts

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