model

package
v0.0.18 Latest Latest
Warning

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

Go to latest
Published: Nov 19, 2024 License: Apache-2.0 Imports: 0 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AWSProviderSpecificDetail added in v0.0.17

type AWSProviderSpecificDetail struct {
	Provider           string                `json:"provider"` // "aws"
	BucketName         string                `json:"bucket_name"`
	BucketARN          string                `json:"bucket_arn"`
	BucketRegion       string                `json:"bucket_region"`
	RegionalDomainName string                `json:"regional_domain_name"`
	VersioningEnabled  bool                  `json:"versioning_enabled"`
	PublicAccessConfig AWSPublicAccessConfig `json:"public_access_config"`
}

AWS specific structures

type AWSPublicAccessConfig added in v0.0.17

type AWSPublicAccessConfig struct {
	BlockPublicACLs       bool `json:"block_public_acls"`
	BlockPublicPolicy     bool `json:"block_public_policy"`
	IgnorePublicACLs      bool `json:"ignore_public_acls"`
	RestrictPublicBuckets bool `json:"restrict_public_buckets"`
}

type AzureEndpoints added in v0.0.17

type AzureEndpoints struct {
	Blob     string `json:"blob"`
	BlobHost string `json:"blob_host"`
	DFS      string `json:"dfs"`
	Web      string `json:"web"`
}

type AzureNetworkRules added in v0.0.17

type AzureNetworkRules struct {
	DefaultAction string   `json:"default_action"`
	Bypass        []string `json:"bypass"`
}

type AzureProviderSpecificDetail added in v0.0.17

type AzureProviderSpecificDetail struct {
	Provider           string            `json:"provider"` // "azure"
	StorageAccountName string            `json:"storage_account_name"`
	ResourceGroup      string            `json:"resource_group"`
	AccountTier        string            `json:"account_tier"`
	ReplicationType    string            `json:"replication_type"`
	AccessTier         string            `json:"access_tier"`
	Endpoints          AzureEndpoints    `json:"endpoints"`
	NetworkRules       AzureNetworkRules `json:"network_rules"`
}

Azure specific structures

type CreateInfracodeOfGcpAwsVpnRequest

type CreateInfracodeOfGcpAwsVpnRequest struct {
	TfVars TfVarsGcpAwsVpnTunnel `json:"tfVars"`
}

Reqeust bodies for GCP-AWS VPN

type CreateInfracodeOfGcpAzureVpnRequest

type CreateInfracodeOfGcpAzureVpnRequest struct {
	TfVars TfVarsGcpAzureVpnTunnel `json:"tfVars"`
}

Reqeust bodies for GCP-Azure VPN

type CreateInfracodeOfObjectStorageRequest added in v0.0.17

type CreateInfracodeOfObjectStorageRequest struct {
	TfVars TfVarsObjectStorage `json:"tfVars"`
}

Request body for object-storage

type CreateInfracodeOfSqlDbRequest added in v0.0.11

type CreateInfracodeOfSqlDbRequest struct {
	TfVars TfVarsSqlDb `json:"tfVars"`
}

Request body for sql-db

type CreateInfracodeOfTestEnvRequest

type CreateInfracodeOfTestEnvRequest struct {
	TfVars TfVarsTestEnv `json:"tfVars"`
}

Reqeust bodies for test-env

type MyUser

type MyUser struct {
	ID    int    `json:"id"`
	Name  string `json:"name"`
	Email string `json:"email"`
}

type ObjectStorageDetail added in v0.0.17

type ObjectStorageDetail struct {
	// Basic Information
	StorageName string            `json:"storage_name"`
	Location    string            `json:"location"`
	Tags        map[string]string `json:"tags"`

	// Access Configuration
	PublicAccessEnabled bool   `json:"public_access_enabled"`
	HTTPSOnly           bool   `json:"https_only"`
	PrimaryEndpoint     string `json:"primary_endpoint"`

	// Provider Specific Details
	ProviderSpecificDetail interface{} `json:"provider_specific_detail"`
}

type OutputGcpAwsVpnInfo added in v0.0.10

type OutputGcpAwsVpnInfo struct {
	Terrarium struct {
		ID string `json:"id"`
	} `json:"terrarium"`
	AWS struct {
		VpnGateway struct {
			ResourceType string `json:"resource_type"`
			Name         string `json:"name"`
			ID           string `json:"id"`
			VpcID        string `json:"vpc_id"`
		} `json:"vpn_gateway"`
		CustomerGateways []struct {
			ResourceType string `json:"resource_type"`
			Name         string `json:"name"`
			ID           string `json:"id"`
			IPAddress    string `json:"ip_address"`
			BgpAsn       string `json:"bgp_asn"`
		} `json:"customer_gateways"`
		VpnConnections []struct {
			ResourceType   string `json:"resource_type"`
			Name           string `json:"name"`
			ID             string `json:"id"`
			Tunnel1Address string `json:"tunnel1_address"`
			Tunnel2Address string `json:"tunnel2_address"`
		} `json:"vpn_connections"`
	} `json:"aws"`
	GCP struct {
		Router struct {
			ResourceType string `json:"resource_type"`
			Name         string `json:"name"`
			ID           string `json:"id"`
			Network      string `json:"network"`
			BgpAsn       int    `json:"bgp_asn"`
		} `json:"router"`
		HaVpnGateway struct {
			ResourceType string   `json:"resource_type"`
			Name         string   `json:"name"`
			ID           string   `json:"id"`
			Network      string   `json:"network"`
			IPAddresses  []string `json:"ip_addresses"`
		} `json:"ha_vpn_gateway"`
		VpnTunnels []struct {
			ResourceType string `json:"resource_type"`
			Name         string `json:"name"`
			ID           string `json:"id"`
			IkeVersion   int    `json:"ike_version"`
			Interface    int    `json:"interface"`
		} `json:"vpn_tunnels"`
	} `json:"gcp"`
}

type OutputGcpAzureVpnInfo added in v0.0.10

type OutputGcpAzureVpnInfo struct {
	Terrarium struct {
		ID string `json:"id"`
	} `json:"terrarium"`
	Azure struct {
		VirtualNetworkGateway struct {
			ResourceType string `json:"resource_type"`
			Name         string `json:"name"`
			ID           string `json:"id"`
			Location     string `json:"location"`
			VpnType      string `json:"vpn_type"`
			Sku          string `json:"sku"`
			BgpSettings  struct {
				ASN              int `json:"asn"`
				PeeringAddresses []struct {
					IPAddressConfig string `json:"ip_configuration"`
					Address         string `json:"address"`
				} `json:"peering_addresses"`
			} `json:"bgp_settings"`
		} `json:"virtual_network_gateway"`
		PublicIPs struct {
			IP1 struct {
				ResourceType string `json:"resource_type"`
				Name         string `json:"name"`
				ID           string `json:"id"`
				IPAddress    string `json:"ip_address"`
			} `json:"ip1"`
			IP2 struct {
				ResourceType string `json:"resource_type"`
				Name         string `json:"name"`
				ID           string `json:"id"`
				IPAddress    string `json:"ip_address"`
			} `json:"ip2"`
		} `json:"public_ips"`
		Connections []struct {
			ResourceType string `json:"resource_type"`
			Name         string `json:"name"`
			ID           string `json:"id"`
			Type         string `json:"type"`
			EnableBgp    bool   `json:"enable_bgp"`
		} `json:"connections"`
	} `json:"azure"`
	GCP struct {
		Router struct {
			ResourceType string `json:"resource_type"`
			Name         string `json:"name"`
			ID           string `json:"id"`
			Network      string `json:"network"`
			Bgp          struct {
				ASN           int    `json:"asn"`
				AdvertiseMode string `json:"advertise_mode"`
			} `json:"bgp"`
		} `json:"router"`
		HaVpnGateway struct {
			ResourceType string `json:"resource_type"`
			Name         string `json:"name"`
			ID           string `json:"id"`
			Network      string `json:"network"`
			Interfaces   []struct {
			} `json:"interfaces"`
		} `json:"ha_vpn_gateway"`
		VpnTunnels []struct {
			ResourceType string `json:"resource_type"`
			Name         string `json:"name"`
			ID           string `json:"id"`
			Router       string `json:"router"`
			Interface    int    `json:"interface"`
		} `json:"vpn_tunnels"`
		BgpPeers []struct {
			ResourceType  string `json:"resource_type"`
			Name          string `json:"name"`
			PeerIP        string `json:"peer_ip"`
			PeerASN       int    `json:"peer_asn"`
			InterfaceName string `json:"interface_name"`
		} `json:"bgp_peers"`
	} `json:"gcp"`
}

type OutputObjectStorageInfo added in v0.0.18

type OutputObjectStorageInfo struct {
	Terrarium           TerrariumInfo       `json:"terrarium"`
	ObjectStorageDetail ObjectStorageDetail `json:"object_storage_detail"`
}

OutputObjectStorageInfo represents the Object Storage information structure

type OutputSQLDBInfo added in v0.0.13

type OutputSQLDBInfo struct {
	Terrarium   Terrarium   `json:"terrarium"`
	SQLDBDetail SQLDBDetail `json:"sql_db_detail"`
}

OutputSQLDBInfo represents the SQL Database information structure

type ProviderSpecificDetail added in v0.0.13

type ProviderSpecificDetail struct {
	// Common Fields
	Provider           string `json:"provider"` // aws, azure, gcp, ncp
	Region             string `json:"region,omitempty"`
	Zone               string `json:"zone,omitempty"`
	ResourceIdentifier string `json:"resource_identifier"`

	// AWS Specific
	Status            string   `json:"status,omitempty"`
	DNSZoneID         string   `json:"dns_zone_id,omitempty"`
	SecurityGroupIDs  []string `json:"security_group_ids,omitempty"`
	SubnetGroupName   string   `json:"subnet_group_name,omitempty"`
	StorageEncrypted  bool     `json:"storage_encrypted,omitempty"`
	StorageThroughput int      `json:"storage_throughput,omitempty"`
	StorageIOPS       int      `json:"storage_iops,omitempty"`
	Replicas          []string `json:"replicas,omitempty"`
	IsMultiAZ         bool     `json:"is_multi_az,omitempty"`

	// Azure Specific
	ResourceGroupName         string `json:"resource_group_name,omitempty"`
	DatabaseName              string `json:"database_name,omitempty"`
	Charset                   string `json:"charset,omitempty"`
	Collation                 string `json:"collation,omitempty"`
	StorageAutogrowEnabled    bool   `json:"storage_autogrow_enabled,omitempty"`
	IOScalingEnabled          bool   `json:"io_scaling_enabled,omitempty"`
	BackupRetentionDays       int    `json:"backup_retention_days,omitempty"`
	GeoRedundantBackupEnabled bool   `json:"geo_redundant_backup_enabled,omitempty"`
	ReplicaCapacity           int    `json:"replica_capacity,omitempty"`
	ReplicationRole           string `json:"replication_role,omitempty"`

	// GCP Specific
	Project          string `json:"project,omitempty"`
	AvailabilityType string `json:"availability_type,omitempty"`

	// NCP Specific
	HostIP                    string           `json:"host_ip,omitempty"`
	ServerNamePrefix          string           `json:"server_name_prefix,omitempty"`
	ServerInstances           []ServerInstance `json:"server_instances,omitempty"`
	VpcNo                     string           `json:"vpc_no,omitempty"`
	SubnetNo                  string           `json:"subnet_no,omitempty"`
	AccessControlGroupNoList  []string         `json:"access_control_group_no_list,omitempty"`
	BackupEnabled             bool             `json:"backup_enabled,omitempty"`
	BackupTime                string           `json:"backup_time,omitempty"`
	BackupFileRetentionPeriod int              `json:"backup_file_retention_period,omitempty"`
	IsMultiZone               bool             `json:"is_multi_zone,omitempty"`
	IsStorageEncryption       bool             `json:"is_storage_encryption,omitempty"`
}

type Response

type Response struct {
	Success bool                   `json:"success" example:"true"`
	Status  int                    `json:"status,omitempty" example:"200"`
	Message string                 `json:"message" example:"Any message"`
	Detail  string                 `json:"details,omitempty" example:"Any details"`
	Object  map[string]interface{} `json:"object,omitempty"`
	List    []interface{}          `json:"list,omitempty"`
}

type SQLDBDetail added in v0.0.13

type SQLDBDetail struct {
	// Basic Information
	InstanceName       string            `json:"instance_name"`
	InstanceResourceID string            `json:"instance_resource_id"`
	InstanceSpec       string            `json:"instance_spec"`
	Location           string            `json:"location"`
	Tags               map[string]string `json:"tags,omitempty"`

	// Storage Configuration
	StorageType string `json:"storage_type"`
	StorageSize int    `json:"storage_size"` // GB

	// Database Engine Information
	EngineName    string `json:"engine_name"`
	EngineVersion string `json:"engine_version"`

	// Database Connection Details
	ConnectionEndpoint  string `json:"connection_endpoint"`
	ConnectionHost      string `json:"connection_host"`
	ConnectionPort      int    `json:"connection_port"`
	PublicAccessEnabled bool   `json:"public_access_enabled"`

	// Authentication
	AdminUsername string `json:"admin_username"`

	// Provider Specific Details
	ProviderSpecificDetail ProviderSpecificDetail `json:"provider_specific_detail"`
}

type ServerInstance added in v0.0.13

type ServerInstance struct {
	Name             string `json:"name"`
	Role             string `json:"role"`
	CPUCount         int    `json:"cpu_count"`
	MemorySize       int64  `json:"memory_size"`
	CreateDate       string `json:"create_date"`
	Uptime           string `json:"uptime"`
	ServerInstanceNo string `json:"server_instance_no"`
}

type Terrarium added in v0.0.13

type Terrarium struct {
	ID string `json:"id"`
}

type TerrariumInfo added in v0.0.7

type TerrariumInfo struct {
	Id          string `json:"id" default:"tr01" example:"tr01" validate:"required"`
	Description string `json:"description,omitempty" default:"This terrarium enriches ..." example:"This terrarium enriches ..."`
	Enrichments string `json:"enrichments,omitempty"`
}

type TfVarsGcpAwsVpnTunnel

type TfVarsGcpAwsVpnTunnel struct {
	TerrariumId       string `json:"terrarium-id,omitempty" default:"" example:""`
	AwsRegion         string `json:"aws-region" default:"ap-northeast-2" example:"ap-northeast-2"`
	AwsVpcId          string `json:"aws-vpc-id" example:"vpc-xxxxx"`
	AwsSubnetId       string `json:"aws-subnet-id" example:"subnet-xxxxx"`
	GcpRegion         string `json:"gcp-region" default:"asia-northeast3" example:"asia-northeast3"`
	GcpVpcNetworkName string `json:"gcp-vpc-network-name" default:"tr-gcp-vpc" example:"tr-gcp-vpc"`
}

type TfVarsGcpAzureVpnTunnel

type TfVarsGcpAzureVpnTunnel struct {
	TerrariumId                 string `json:"terrarium-id,omitempty" default:"" example:""`
	AzureRegion                 string `json:"azure-region" default:"koreacentral" example:"koreacentral"`
	AzureResourceGroupName      string `json:"azure-resource-group-name" default:"tr-rg-01" example:"tr-rg-01"`
	AzureVirtualNetworkName     string `json:"azure-virtual-network-name" default:"tr-azure-vnet" example:"tr-azure-vnet"`
	AzureGatewaySubnetCidrBlock string `json:"azure-gateway-subnet-cidr-block" default:"192.168.130.0/24" example:"192.168.130.0/24"`
	GcpRegion                   string `json:"gcp-region" default:"asia-northeast3" example:"asia-northeast3"`
	GcpVpcNetworkName           string `json:"gcp-vpc-network-name" default:"tr-gcp-vpc" example:"tr-gcp-vpc"`
}

type TfVarsObjectStorage added in v0.0.17

type TfVarsObjectStorage struct {
	TerrariumID      string `json:"terrarium_id" default:"" example:""`
	CSPRegion        string `json:"csp_region" example:"ap-northeast-2"`
	CSPResourceGroup string `json:"csp_resource_group,omitempty" example:"koreacentral"`
}

TfVarsObjectStorage represents the configuration structure based on the Terraform variables

type TfVarsSqlDb added in v0.0.11

type TfVarsSqlDb struct {
	TerrariumID      string `json:"terrarium_id" default:"" example:""`
	CSPRegion        string `json:"csp_region" example:"ap-northeast-2"`
	CSPResourceGroup string `json:"csp_resource_group,omitempty" example:"rg-12345678"`
	CSPVNetID        string `json:"csp_vnet_id,omitempty" example:"vpc-12345678"`
	CSPSubnet1ID     string `json:"csp_subnet1_id,omitempty" example:"subnet-1234abcd"`
	CSPSubnet2ID     string `json:"csp_subnet2_id,omitempty" example:"subnet-abcd1234"`
	DBEnginePort     int    `json:"db_engine_port,omitempty" example:"3306"`
	IngressCIDRBlock string `json:"ingress_cidr_block,omitempty" example:"0.0.0.0/0"`
	EgressCIDRBlock  string `json:"egress_cidr_block,omitempty" example:"0.0.0.0/0"`
	DBEngineVersion  string `json:"db_engine_version,omitempty" example:"8.0.39"`
	DBInstanceSpec   string `json:"db_instance_spec,omitempty" example:"db.t3.micro"`
	DBAdminUsername  string `json:"db_admin_username" example:"mydbadmin"`
	DBAdminPassword  string `json:"db_admin_password" example:"Password1234!"`
}

TfVarsSqlDb represents the configuration structure based on the Terraform variables

type TfVarsTestEnv

type TfVarsTestEnv struct {
	AzureRegion            string `json:"azure-region" default:"koreacentral" example:"koreacentral"`
	AzureResourceGroupName string `json:"azure-resource-group-name" default:"tr-rg-01" example:"tr-rg-01"`
	GcpRegion              string `json:"gcp-region" default:"asia-northeast3" example:"asia-northeast3"`
	AwsRegion              string `json:"aws-region" default:"ap-northeast-2" example:"ap-northeast-2"`
}

Jump to

Keyboard shortcuts

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