models

package
v0.0.1-beta.1 Latest Latest
Warning

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

Go to latest
Published: Jan 10, 2021 License: GPL-2.0 Imports: 2 Imported by: 0

Documentation

Overview

models contains struct definitions for various structures used through out the DeathStar codebase

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type LambdaFunctionConfig

type LambdaFunctionConfig struct {

	// LambdaRole is the role that will be used by the lambda function. This will
	// hild the role ARN
	LambdaRole string `json:"lambdaRole" yaml:"lambdaRole"`

	// LambdaMemorySize is the max memory size that the lambda function will be allowed
	// to attain.
	LambdaMemorySize int64 `json:"lambdaMemorySize" yaml:"lambdaMemorySize"`

	// LambdaTimeOut is the max time in seconds after which the lambda function will timeout
	LambdaTimeOut int64 `json:"lambdaTimeOut" yaml:"lambdaTimeOut"`

	// LambdaRegion is the region where the lambda function will be deployed
	LambdaRegion string `json:"lambdaRegion" yaml:"lambdaRegion"`
}

LambdaFunctionConfig contains fields required to configutre the lambda function

type LambdaRequest

type LambdaRequest struct {

	// AttackName if the name of the attack. This can be used as a unique identifier for the attack.
	AttackName string `json:"attackName" yaml:"attackName"`

	// AttackDesc is the description of the attack
	AttackDesc string `json:"attackDesc" yaml:"attackDesc"`

	// VegetaParams contains the data required by vegeta.
	VegetaParams VegetaAttackParams `json:"vegetaAttackParams" yaml:"vegetaAttackParams"`
}

LambdaRequest holds properties to represent a request to the deployed lambda function

type LambdaResponse

type LambdaResponse struct {

	// ResultMetrics is same as the metrics struct returned by the vegeta llibrary
	// More about this can be found in vegeta doc.
	ResultMetrics *vegeta.Metrics `json:"AttackResponseMetrics" yaml:"AttackResponseMetrics"`

	// AttackDetails contains the details of a particualar attack. This is included here
	// so that user knows the above metrics are for which attack.
	AttackDetails LambdaRequest `json:"attackDetails" yaml:"attackDetails"`
}

LambdaRequest holds fields tp represent the attack response.

type VegetaAttackParams

type VegetaAttackParams struct {
	Method   string        `json:"httpMethod" yaml:"httpMethod"`
	Url      string        `json:"url" yaml:"url"`
	Rate     int           `json:"rate" yaml:"rate"`
	Duration time.Duration `json:"duration" yaml:"duration"`
}

type YAMLConfig

type YAMLConfig struct {

	// Attacks is the list of attack configs
	Attacks []LambdaRequest `json:"attacks" yaml:"attacks"`

	// LambdaConfig is the configs for the lambda function itself that
	// will be created in order to carry out the attack.
	LambdaConfig LambdaFunctionConfig `json:"lambdaConfig" yaml:"lambdaConfig"`
}

YAMLConfig holds the config attributes for the yaml config file required to configure DeathStar in order to carry out attacks.

Jump to

Keyboard shortcuts

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