api

package
v0.1.1 Latest Latest
Warning

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

Go to latest
Published: Oct 9, 2023 License: MPL-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	BaseURL string `mapstructure:"base_url"`
}

type CreateDestinationRequest

type CreateDestinationRequest struct {
	ID        string                 `json:"-"`
	Name      string                 `json:"name"`
	Connector string                 `json:"connector"`
	Config    map[string]interface{} `json:"config"`
}

type CreatePipelineDestination

type CreatePipelineDestination struct {
	Connector string `json:"connector"`
	Name      string `json:"name"`
	ID        struct {
		OID string `json:"$oid"`
	} `json:"id"`
}

type CreatePipelineRequest

type CreatePipelineRequest struct {
	ID          string                    `json:"-"`
	Name        string                    `json:"name"`
	Destination CreatePipelineDestination `json:"destination"`
	Source      CreatePipelineSource      `json:"source"`
	Transforms  []string                  `json:"transforms"`
}

type CreatePipelineSource

type CreatePipelineSource struct {
	Connector string   `json:"connector"`
	Name      string   `json:"name"`
	Topics    []string `json:"topics"`
	ID        struct {
		OID string `json:"$oid"`
	} `json:"id"`
}

type CreateSourceRequest

type CreateSourceRequest struct {
	ID        string                 `json:"-"`
	Name      string                 `json:"name"`
	Connector string                 `json:"connector"`
	Config    map[string]interface{} `json:"config"`
}

type CreateSourceResponse

type CreateSourceResponse struct {
	Cursor struct {
		TimestampFrom time.Time `json:"timestamp_from"`
		TimestampTo   time.Time `json:"timestamp_to"`
		TopicListFrom int       `json:"topic_list_from"`
		TopicListSize int       `json:"topic_list_size"`
		TopicListSort string    `json:"topic_list_sort"`
	} `json:"cursor"`
	EntityType string   `json:"entity_type"`
	Data       []Source `json:"data"`
}

type Destination

type Destination struct {
	ID           string `json:"id"`
	Name         string `json:"name"`
	SubId        string `json:"sub_id"`
	TenantId     string `json:"tenant_id"`
	Connector    string `json:"connector"`
	TaskStatuses struct {
		Field1 struct {
			Status string `json:"status"`
		} `json:"0"`
	} `json:"task_statuses"`
	Tasks           []int    `json:"tasks"`
	ConnectorStatus string   `json:"connector_status"`
	TopicIds        []string `json:"topic_ids"`
	Topics          []string `json:"topics"`
	InlineMetrics   struct {
		ConnectorStatus []struct {
			Timestamp string `json:"timestamp"`
			Value     string `json:"value"`
		} `json:"connector_status"`
		Latency []struct {
			Timestamp string `json:"timestamp"`
			Value     string `json:"value"`
		} `json:"latency"`
		SourceRecordWriteTotal []struct {
			Timestamp string `json:"timestamp"`
			Value     int    `json:"value"`
		} `json:"sourceRecordWriteTotal"`
	} `json:"inline_metrics"`
	Config struct {
		Key string `json:"key"`
	} `json:"config"`
}

type GetAccessTokenRequest

type GetAccessTokenRequest struct {
	ClientID string `json:"client_id"`
	Secret   string `json:"secret"`
}

type Pipeline

type Pipeline struct {
	ID       string   `json:"id"`
	Name     string   `json:"name"`
	SubID    string   `json:"sub_id"`
	TenantID string   `json:"tenant_id"`
	TopicIds []string `json:"topic_ids"`
	Source   struct {
		Name            string `json:"name"`
		Connector       string `json:"connector"`
		ID              string `json:"id"`
		Tasks           []int  `json:"tasks"`
		ConnectorStatus string `json:"connector_status"`
		TaskStatuses    struct {
			Field1 struct {
				Status string `json:"status"`
			} `json:"0"`
		} `json:"task_statuses"`
		SnapshotState  string `json:"snapshot_state"`
		SnapshotStatus []struct {
			Status          string `json:"status"`
			Topic           string `json:"topic"`
			SubmitTimestamp string `json:"submit_timestamp"`
		} `json:"snapshot_status"`
		Topics []string `json:"topics"`
	} `json:"source"`
	Destination struct {
		Name            string `json:"name"`
		Connector       string `json:"connector"`
		ID              string `json:"id"`
		Tasks           []int  `json:"tasks"`
		ConnectorStatus string `json:"connector_status"`
		TaskStatuses    struct {
			Field1 struct {
				Status string `json:"status"`
			} `json:"0"`
		} `json:"task_statuses"`
	} `json:"destination"`
	Transforms []interface{} `json:"transforms"`
}

type Source

type Source struct {
	ID           string `json:"id"`
	Name         string `json:"name"`
	SubID        string `json:"sub_id"`
	TenantID     string `json:"tenant_id"`
	Connector    string `json:"connector"`
	TaskStatuses struct {
		Field1 struct {
			Status string `json:"status"`
		} `json:"0"`
	} `json:"task_statuses"`
	Tasks           []int    `json:"tasks"`
	ConnectorStatus string   `json:"connector_status"`
	TopicIds        []string `json:"topic_ids"`
	Topics          []string `json:"topics"`
	InlineMetrics   struct {
		ConnectorStatus []struct {
			Timestamp string `json:"timestamp"`
			Value     string `json:"value"`
		} `json:"connector_status"`
		Latency []struct {
			Timestamp string `json:"timestamp"`
			Value     string `json:"value"`
		} `json:"latency"`
		SnapshotState []struct {
			Timestamp string `json:"timestamp"`
			Value     string `json:"value"`
		} `json:"snapshotState"`
		State []struct {
			Timestamp string `json:"timestamp"`
			Value     string `json:"value"`
		} `json:"state"`
		StreamingState []struct {
			Timestamp string `json:"timestamp"`
			Value     string `json:"value"`
		} `json:"streamingState"`
		SourceRecordWriteTotal []struct {
			Timestamp string `json:"timestamp"`
			Value     int    `json:"value"`
		} `json:"sourceRecordWriteTotal"`
	} `json:"inline_metrics"`
	Server string `json:"server"`
	Config struct {
		Key string `json:"key"`
	} `json:"config"`
}

type StreamkapAPI

type StreamkapAPI interface {
	GetAccessToken(clientID, secret string) (*Token, error)
	SetToken(token *Token)

	//Source APIs
	CreateSource(ctx context.Context, reqPayload CreateSourceRequest) (*Source, error)
	UpdateSource(ctx context.Context, reqPayload CreateSourceRequest) (*Source, error)
	GetSource(ctx context.Context, sourceID string) ([]Source, error)
	DeleteSource(ctx context.Context, sourceID string) error

	// Destination APIs
	CreateDestination(ctx context.Context, reqPayload CreateDestinationRequest) (*Destination, error)
	UpdateDestination(ctx context.Context, reqPayload CreateDestinationRequest) (*Destination, error)
	GetDestination(ctx context.Context, destinationID string) ([]Destination, error)
	DeleteDestination(ctx context.Context, destinationID string) error

	// Pipeline APIs
	CreatePipeline(ctx context.Context, reqPayload CreatePipelineRequest) (*Pipeline, error)
	UpdatePipeline(ctx context.Context, reqPayload CreatePipelineRequest) (*Pipeline, error)
	GetPipeline(ctx context.Context, pipelineID string) ([]Pipeline, error)
	DeletePipeline(ctx context.Context, pipelineID string) error
}

func NewClient

func NewClient(cfg *Config) StreamkapAPI

type Token

type Token struct {
	AccessToken  string `json:"accessToken"`
	Expires      string `json:"expires"`
	ExpiresIn    int64  `json:"expiresIn"`
	RefreshToken string `json:"refreshToken"`
}

Jump to

Keyboard shortcuts

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