200 lines
6.9 KiB
Go
200 lines
6.9 KiB
Go
|
package servicefabric
|
||
|
|
||
|
import "encoding/xml"
|
||
|
|
||
|
// ApplicationItemsPage encapsulates the paged response
|
||
|
// model for Applications in the Service Fabric API
|
||
|
type ApplicationItemsPage struct {
|
||
|
ContinuationToken *string `json:"ContinuationToken"`
|
||
|
Items []ApplicationItem `json:"Items"`
|
||
|
}
|
||
|
|
||
|
// AppParameter Application parameter
|
||
|
type AppParameter struct {
|
||
|
Key string `json:"Key"`
|
||
|
Value string `json:"Value"`
|
||
|
}
|
||
|
|
||
|
// ApplicationItem encapsulates the embedded model for
|
||
|
// ApplicationItems within the ApplicationItemsPage model
|
||
|
type ApplicationItem struct {
|
||
|
HealthState string `json:"HealthState"`
|
||
|
ID string `json:"Id"`
|
||
|
Name string `json:"Name"`
|
||
|
Parameters []*AppParameter `json:"Parameters"`
|
||
|
Status string `json:"Status"`
|
||
|
TypeName string `json:"TypeName"`
|
||
|
TypeVersion string `json:"TypeVersion"`
|
||
|
}
|
||
|
|
||
|
// ServiceItemsPage encapsulates the paged response
|
||
|
// model for Services in the Service Fabric API
|
||
|
type ServiceItemsPage struct {
|
||
|
ContinuationToken *string `json:"ContinuationToken"`
|
||
|
Items []ServiceItem `json:"Items"`
|
||
|
}
|
||
|
|
||
|
// ServiceItem encapsulates the embedded model for
|
||
|
// ServiceItems within the ServiceItemsPage model
|
||
|
type ServiceItem struct {
|
||
|
HasPersistedState bool `json:"HasPersistedState"`
|
||
|
HealthState string `json:"HealthState"`
|
||
|
ID string `json:"Id"`
|
||
|
IsServiceGroup bool `json:"IsServiceGroup"`
|
||
|
ManifestVersion string `json:"ManifestVersion"`
|
||
|
Name string `json:"Name"`
|
||
|
ServiceKind string `json:"ServiceKind"`
|
||
|
ServiceStatus string `json:"ServiceStatus"`
|
||
|
TypeName string `json:"TypeName"`
|
||
|
}
|
||
|
|
||
|
// PartitionItemsPage encapsulates the paged response
|
||
|
// model for PartitionItems in the Service Fabric API
|
||
|
type PartitionItemsPage struct {
|
||
|
ContinuationToken *string `json:"ContinuationToken"`
|
||
|
Items []PartitionItem `json:"Items"`
|
||
|
}
|
||
|
|
||
|
// PartitionItem encapsulates the service information
|
||
|
// returned for each PartitionItem under the service
|
||
|
type PartitionItem struct {
|
||
|
CurrentConfigurationEpoch ConfigurationEpoch `json:"CurrentConfigurationEpoch"`
|
||
|
HealthState string `json:"HealthState"`
|
||
|
MinReplicaSetSize int64 `json:"MinReplicaSetSize"`
|
||
|
PartitionInformation PartitionInformation `json:"PartitionInformation"`
|
||
|
PartitionStatus string `json:"PartitionStatus"`
|
||
|
ServiceKind string `json:"ServiceKind"`
|
||
|
TargetReplicaSetSize int64 `json:"TargetReplicaSetSize"`
|
||
|
}
|
||
|
|
||
|
// ConfigurationEpoch Partition configuration epoch
|
||
|
type ConfigurationEpoch struct {
|
||
|
ConfigurationVersion string `json:"ConfigurationVersion"`
|
||
|
DataLossVersion string `json:"DataLossVersion"`
|
||
|
}
|
||
|
|
||
|
// PartitionInformation Partition information
|
||
|
type PartitionInformation struct {
|
||
|
HighKey string `json:"HighKey"`
|
||
|
ID string `json:"Id"`
|
||
|
LowKey string `json:"LowKey"`
|
||
|
ServicePartitionKind string `json:"ServicePartitionKind"`
|
||
|
}
|
||
|
|
||
|
// ReplicaItemBase shared data used
|
||
|
// in both replicas and instances
|
||
|
type ReplicaItemBase struct {
|
||
|
Address string `json:"Address"`
|
||
|
HealthState string `json:"HealthState"`
|
||
|
LastInBuildDurationInSeconds string `json:"LastInBuildDurationInSeconds"`
|
||
|
NodeName string `json:"NodeName"`
|
||
|
ReplicaRole string `json:"ReplicaRole"`
|
||
|
ReplicaStatus string `json:"ReplicaStatus"`
|
||
|
ServiceKind string `json:"ServiceKind"`
|
||
|
}
|
||
|
|
||
|
// ReplicaItemsPage encapsulates the response
|
||
|
// model for Replicas in the Service Fabric API
|
||
|
type ReplicaItemsPage struct {
|
||
|
ContinuationToken *string `json:"ContinuationToken"`
|
||
|
Items []ReplicaItem `json:"Items"`
|
||
|
}
|
||
|
|
||
|
// ReplicaItem holds replica specific data
|
||
|
type ReplicaItem struct {
|
||
|
*ReplicaItemBase
|
||
|
ID string `json:"ReplicaId"`
|
||
|
}
|
||
|
|
||
|
// GetReplicaData returns replica data
|
||
|
func (m *ReplicaItem) GetReplicaData() (string, *ReplicaItemBase) {
|
||
|
return m.ID, m.ReplicaItemBase
|
||
|
}
|
||
|
|
||
|
// InstanceItemsPage encapsulates the response
|
||
|
// model for Instances in the Service Fabric API
|
||
|
type InstanceItemsPage struct {
|
||
|
ContinuationToken *string `json:"ContinuationToken"`
|
||
|
Items []InstanceItem `json:"Items"`
|
||
|
}
|
||
|
|
||
|
// InstanceItem hold instance specific data
|
||
|
type InstanceItem struct {
|
||
|
*ReplicaItemBase
|
||
|
ID string `json:"InstanceId"`
|
||
|
}
|
||
|
|
||
|
// GetReplicaData returns replica data from an instance
|
||
|
func (m *InstanceItem) GetReplicaData() (string, *ReplicaItemBase) {
|
||
|
return m.ID, m.ReplicaItemBase
|
||
|
}
|
||
|
|
||
|
// ServiceType encapsulates the response model for
|
||
|
// Service types in the Service Fabric API
|
||
|
type ServiceType struct {
|
||
|
ServiceTypeDescription ServiceTypeDescription `json:"ServiceTypeDescription"`
|
||
|
ServiceManifestVersion string `json:"ServiceManifestVersion"`
|
||
|
ServiceManifestName string `json:"ServiceManifestName"`
|
||
|
IsServiceGroup bool `json:"IsServiceGroup"`
|
||
|
}
|
||
|
|
||
|
// ServiceTypeDescription Service Type Description
|
||
|
type ServiceTypeDescription struct {
|
||
|
IsStateful bool `json:"IsStateful"`
|
||
|
ServiceTypeName string `json:"ServiceTypeName"`
|
||
|
PlacementConstraints string `json:"PlacementConstraints"`
|
||
|
HasPersistedState bool `json:"HasPersistedState"`
|
||
|
Kind string `json:"Kind"`
|
||
|
Extensions []KeyValuePair `json:"Extensions"`
|
||
|
LoadMetrics []interface{} `json:"LoadMetrics"`
|
||
|
ServicePlacementPolicies []interface{} `json:"ServicePlacementPolicies"`
|
||
|
}
|
||
|
|
||
|
// PropertiesListPage encapsulates the response model for
|
||
|
// PagedPropertyInfoList in the Service Fabric API
|
||
|
type PropertiesListPage struct {
|
||
|
ContinuationToken string `json:"ContinuationToken"`
|
||
|
IsConsistent bool `json:"IsConsistent"`
|
||
|
Properties []Property `json:"Properties"`
|
||
|
}
|
||
|
|
||
|
// Property Paged Property Info
|
||
|
type Property struct {
|
||
|
Metadata Metadata `json:"Metadata"`
|
||
|
Name string `json:"Name"`
|
||
|
Value PropValue `json:"Value"`
|
||
|
}
|
||
|
|
||
|
// Metadata Property Metadata
|
||
|
type Metadata struct {
|
||
|
CustomTypeID string `json:"CustomTypeId"`
|
||
|
LastModifiedUtcTimestamp string `json:"LastModifiedUtcTimestamp"`
|
||
|
Parent string `json:"Parent"`
|
||
|
SequenceNumber string `json:"SequenceNumber"`
|
||
|
SizeInBytes int64 `json:"SizeInBytes"`
|
||
|
TypeID string `json:"TypeId"`
|
||
|
}
|
||
|
|
||
|
// PropValue Property value
|
||
|
type PropValue struct {
|
||
|
Data string `json:"Data"`
|
||
|
Kind string `json:"Kind"`
|
||
|
}
|
||
|
|
||
|
// KeyValuePair represents a key value pair structure
|
||
|
type KeyValuePair struct {
|
||
|
Key string `json:"Key"`
|
||
|
Value string `json:"Value"`
|
||
|
}
|
||
|
|
||
|
// ServiceExtensionLabels provides the structure for
|
||
|
// deserialising the XML document used to store labels in an Extension
|
||
|
type ServiceExtensionLabels struct {
|
||
|
XMLName xml.Name `xml:"Labels"`
|
||
|
Label []struct {
|
||
|
XMLName xml.Name `xml:"Label"`
|
||
|
Value string `xml:",chardata"`
|
||
|
Key string `xml:"Key,attr"`
|
||
|
}
|
||
|
}
|