diff --git a/README.md b/README.md index 66394d5d..54a36496 100644 --- a/README.md +++ b/README.md @@ -12,14 +12,15 @@ Use the `vpcgen` CLI tool with one of the following commands to specify the type ### nACLs Generation Specifying the `--single` flag results in generating a single nACL for all subnets in the same VPC. Otherwise, an nACL is generated for each subnet separately. -The input supports subnets, subnet segments, CIDR segments, NIFs, instances (VSIs) and externals. -**Note 1**: The segments are defined in the `conn_spec.json` file. -**Note 2**: A required connection between NIFs or VSIs implies connectivity will be allowed between the subnets they are contained in. +**Note**: A required connection between NIFs/VSIs/VPEs implies connectivity will be allowed between the subnets they are contained in. -### SGs Generation -The input supports Instances (VSIs), NIFs, VPEs and externals. +### SGs Generation **Note**: A Security Group, generated for a specific VSI (or for one of its NIFs), will be applied to all the NIFs of the VSI. The same goes for Reserved IPs of a VPE. +### Supported types +The input supports subnets, subnet segments, CIDR segments, NIFs, NIF segments, instances (VSIs), instance segments, VPEs, VPE segments and externals. +**Note 1**: The segments are defined in the `conn_spec.json` file. + ### Output 1. If the `output-dir` flag is used, the specified folder will be created, containing one file per VPC. Each generated file will contain the network resources (Security Groups or Network ACLs) relevant to its VPC. File names are set as `prefix_vpc`, where prefix is ​​the value received in the `prefix` flag. If the `prefix` flag is omitted, file names will match VPC names. 2. If the `output-file` flag is used, all generated resources will be written to the specified file. diff --git a/cmd/subcmds/synth.go b/cmd/subcmds/synth.go index ef0f81d4..83bfc550 100644 --- a/cmd/subcmds/synth.go +++ b/cmd/subcmds/synth.go @@ -30,16 +30,12 @@ func NewSynthCommand(args *inArgs) *cobra.Command { return cmd } -func synthesis(cmd *cobra.Command, args *inArgs, newSynthesizer func(*ir.Spec, bool) synth.Synthesizer, single bool) error { +func synthesis(cmd *cobra.Command, args *inArgs, newSynthesizer func(*ir.Spec, bool) synth.Synthesizer, singleacl, isSG bool) error { cmd.SilenceUsage = true // if we got this far, flags are syntactically correct, so no need to print usage - spec, err := unmarshal(args) + spec, err := unmarshal(args, isSG) if err != nil { return err } - synthesizer := newSynthesizer(spec, single) - collection, err := synthesizer.Synth() - if err != nil { - return err - } - return writeOutput(args, collection, utils.MapKeys(spec.Defs.ConfigDefs.VPCs)) + synthesizer := newSynthesizer(spec, singleacl) + return writeOutput(args, synthesizer.Synth(), utils.MapKeys(spec.Defs.ConfigDefs.VPCs)) } diff --git a/cmd/subcmds/synthACL.go b/cmd/subcmds/synthACL.go index 4aee4040..0aa05e61 100644 --- a/cmd/subcmds/synthACL.go +++ b/cmd/subcmds/synthACL.go @@ -19,7 +19,7 @@ func NewSynthACLCommand(args *inArgs) *cobra.Command { Endpoints in the required-connectivity specification may be subnets, subnet segments, CIDR segments and externals.`, Args: cobra.NoArgs, RunE: func(cmd *cobra.Command, _ []string) error { - return synthesis(cmd, args, synth.NewACLSynthesizer, args.singleacl) + return synthesis(cmd, args, synth.NewACLSynthesizer, args.singleacl, false) }, } diff --git a/cmd/subcmds/synthSG.go b/cmd/subcmds/synthSG.go index 88bb4a56..a93497e9 100644 --- a/cmd/subcmds/synthSG.go +++ b/cmd/subcmds/synthSG.go @@ -19,7 +19,7 @@ func NewSynthSGCommand(args *inArgs) *cobra.Command { Endpoints in the required-connectivity specification may be Instances (VSIs), Network Interfaces, VPEs and externals.`, Args: cobra.NoArgs, RunE: func(cmd *cobra.Command, _ []string) error { - return synthesis(cmd, args, synth.NewSGSynthesizer, false) + return synthesis(cmd, args, synth.NewSGSynthesizer, false, true) }, } return cmd diff --git a/cmd/subcmds/unmarshal.go b/cmd/subcmds/unmarshal.go index 5fa7c720..c1321f97 100644 --- a/cmd/subcmds/unmarshal.go +++ b/cmd/subcmds/unmarshal.go @@ -13,13 +13,13 @@ import ( "github.com/np-guard/vpc-network-config-synthesis/pkg/ir" ) -func unmarshal(args *inArgs) (*ir.Spec, error) { +func unmarshal(args *inArgs, isSG bool) (*ir.Spec, error) { defs, err := confio.ReadDefs(args.configFile) if err != nil { return nil, fmt.Errorf("could not parse config file %v: %w", args.configFile, err) } - model, err := jsonio.NewReader().ReadSpec(args.specFile, defs) + model, err := jsonio.NewReader().ReadSpec(args.specFile, defs, isSG) if err != nil { return nil, fmt.Errorf("could not parse connectivity file %s: %w", args.specFile, err) } diff --git a/go.mod b/go.mod index f36b0570..20636ba2 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.23.0 require ( github.com/IBM/vpc-go-sdk v0.60.0 github.com/np-guard/cloud-resource-collector v0.16.0 - github.com/np-guard/models v0.5.1 + github.com/np-guard/models v0.5.2-0.20241010083230-9425a786fb15 github.com/spf13/cobra v1.8.1 ) diff --git a/go.sum b/go.sum index 6dced4d1..d0880f33 100644 --- a/go.sum +++ b/go.sum @@ -134,8 +134,8 @@ github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWb github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/np-guard/cloud-resource-collector v0.16.0 h1:KxFLcH19ZIvfGU63jJuMNN5sxW1uSdOrhCDwKHOyy0M= github.com/np-guard/cloud-resource-collector v0.16.0/go.mod h1:93qwf/IT1L2Bv+6C6kund2GmKrSupTPujT0Nh6qB+mg= -github.com/np-guard/models v0.5.1 h1:qxewCB3cBLkBdcpMk05gKJkV1D7qkbteQdIXbN1juW0= -github.com/np-guard/models v0.5.1/go.mod h1:29M8utxinyUpYaDuIuOyCcMBf7EsMWZcIrRWCjFm0Bw= +github.com/np-guard/models v0.5.2-0.20241010083230-9425a786fb15 h1:UYBqJOLWWP3WX9duDDZqsZ4axHnnzOodw9BUZ63MYAY= +github.com/np-guard/models v0.5.2-0.20241010083230-9425a786fb15/go.mod h1:29M8utxinyUpYaDuIuOyCcMBf7EsMWZcIrRWCjFm0Bw= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= diff --git a/pkg/io/jsonio/unmarshal.go b/pkg/io/jsonio/unmarshal.go index 0c7ca5f3..6bf2b9ee 100644 --- a/pkg/io/jsonio/unmarshal.go +++ b/pkg/io/jsonio/unmarshal.go @@ -8,13 +8,10 @@ package jsonio import ( "encoding/json" + "errors" "fmt" - "log" "os" - "slices" - "github.com/np-guard/models/pkg/netp" - "github.com/np-guard/models/pkg/netset" "github.com/np-guard/models/pkg/spec" "github.com/np-guard/vpc-network-config-synthesis/pkg/ir" @@ -28,169 +25,73 @@ func NewReader() *Reader { return &Reader{} } -func (*Reader) ReadSpec(filename string, configDefs *ir.ConfigDefs) (*ir.Spec, error) { +func (r *Reader) ReadSpec(filename string, configDefs *ir.ConfigDefs, isSG bool) (*ir.Spec, error) { jsonSpec, err := unmarshal(filename) if err != nil { return nil, err } - - err = validateSegments(jsonSpec.Segments) - if err != nil { - return nil, err - } - - subnetSegments := parseSubnetSegments(jsonSpec.Segments) - - cidrSegments, err := parseCidrSegments(jsonSpec.Segments, configDefs) + defs, err := r.readDefinitions(jsonSpec, configDefs) if err != nil { return nil, err } // replace to fully qualified name - jsonSpec, finalSubnetSegments, err := replaceResourcesName(jsonSpec, subnetSegments, configDefs) + jsonSpec, defs, err = replaceResourcesName(jsonSpec, defs) if err != nil { return nil, err } - externals, err := translateExternals(jsonSpec.Externals) + connections, err := r.transalteConnections(jsonSpec.RequiredConnections, defs, isSG) if err != nil { return nil, err } - defs := &ir.Definitions{ - ConfigDefs: *configDefs, - SubnetSegments: finalSubnetSegments, - CidrSegments: cidrSegments, - Externals: externals, - } - - var connections []ir.Connection - for i := range jsonSpec.RequiredConnections { - bidiConns, err := translateConnection(defs, &jsonSpec.RequiredConnections[i], i) - if err != nil { - return nil, err - } - connections = append(connections, bidiConns...) - } - return &ir.Spec{ Connections: connections, - Defs: *defs, + Defs: defs, }, nil } -func validateSegments(jsonSegments spec.SpecSegments) error { - for _, v := range jsonSegments { - if v.Type != spec.SegmentTypeSubnet && v.Type != spec.SegmentTypeCidr { - return fmt.Errorf("only subnet and cidr segments are supported, not %q", v.Type) - } - } - return nil -} - -func filterSegmentsByType(jsonSegments spec.SpecSegments, segmentType spec.SegmentType) map[string][]string { - result := make(map[string][]string) - for k, v := range jsonSegments { - if v.Type == segmentType { - result[k] = v.Items - } - } - return result -} - -func parseSubnetSegments(jsonSegments spec.SpecSegments) map[string][]ir.ID { - subnetSegments := filterSegmentsByType(jsonSegments, spec.SegmentTypeSubnet) - result := make(map[string][]ir.ID) - for segmentName, subnets := range subnetSegments { - result[segmentName] = subnets - } - return result -} - -func parseCidrSegments(jsonSegments spec.SpecSegments, configDefs *ir.ConfigDefs) (map[ir.ID]*ir.CidrSegmentDetails, error) { - cidrSegments := filterSegmentsByType(jsonSegments, spec.SegmentTypeCidr) - result := make(map[ir.ID]*ir.CidrSegmentDetails) - for segmentName, segment := range cidrSegments { - cidrs := netset.NewIPBlock() - containedSubnets := make([]ir.ID, 0) - overlappingVPCs := make([]ir.ID, 0) - - for _, cidr := range segment { - c, err := netset.IPBlockFromCidr(cidr) - if err != nil { - return nil, err - } - vpcs := parseOverlappingVpcs(c, configDefs.VPCs) - subnets, err := configDefs.SubnetsContainedInCidr(*c) - if err != nil { - return nil, err - } - - cidrs = cidrs.Union(c) - overlappingVPCs = append(overlappingVPCs, vpcs...) - containedSubnets = append(containedSubnets, subnets...) - } - cidrSegmentDetails := ir.CidrSegmentDetails{ - Cidrs: cidrs, - ContainedSubnets: slices.Compact(slices.Sorted(slices.Values(containedSubnets))), - OverlappingVPCs: slices.Compact(slices.Sorted(slices.Values(overlappingVPCs))), - } - result[segmentName] = &cidrSegmentDetails - } - return result, nil -} +// replace all resources names to fully qualified name +func replaceResourcesName(jsonSpec *spec.Spec, defs *ir.Definitions) (*spec.Spec, *ir.Definitions, error) { + config := defs.ConfigDefs -// read externals from conn-spec -func translateExternals(m map[string]string) (map[ir.ID]*ir.ExternalDetails, error) { - result := make(map[ir.ID]*ir.ExternalDetails) - for k, v := range m { - address, err := netset.IPBlockFromCidrOrAddress(v) - if err != nil { - return nil, err - } - result[k] = &ir.ExternalDetails{ExternalAddrs: address} - } - return result, nil -} + // calculate distinct and ambiguous names for every endpoint type + distinctSubnets, ambiguousSubnets := inverseMapToFullyQualifiedName(config.Subnets) + distinctNifs, ambiguousNifs := inverseMapToFullyQualifiedName(config.NIFs) + distinctInstances, ambiguousInstances := inverseMapToFullyQualifiedName(config.Instances) + distinctVpes, ambiguousVpes := inverseMapToFullyQualifiedName(config.VPEs) -// replace all resources names in conn-spec to fully qualified name -func replaceResourcesName(jsonSpec *spec.Spec, subnetSegments map[string][]ir.ID, - config *ir.ConfigDefs) (*spec.Spec, map[ir.ID]*ir.SubnetSegmentDetails, error) { - subnetsCache, ambiguousSubnets := inverseMapToFullyQualifiedName(config.Subnets) - nifsCache, ambiguousNifs := inverseMapToFullyQualifiedName(config.NIFs) - instancesCache, ambiguousInstances := inverseMapToFullyQualifiedName(config.Instances) - vpesCache, ambiguousVpes := inverseMapToFullyQualifiedName(config.VPEs) + // translate segments to fully qualified names + nifSegments, err2 := replaceSegmentNames(defs.NifSegments, distinctNifs, ambiguousNifs, spec.ResourceType(spec.SegmentTypeNif)) + vpeSegments, err4 := replaceSegmentNames(defs.VpeSegments, distinctVpes, ambiguousVpes, spec.ResourceType(spec.SegmentTypeVpe)) + subnetSegments, err1 := replaceSegmentNames(defs.SubnetSegments, distinctSubnets, ambiguousSubnets, + spec.ResourceType(spec.SegmentTypeSubnet)) + instanceSegments, err3 := replaceSegmentNames(defs.InstanceSegments, distinctInstances, ambiguousInstances, + spec.ResourceType(spec.SegmentTypeInstance)) - // go over subnetSegments - finalSubnetSegments := make(map[ir.ID]*ir.SubnetSegmentDetails) - for segmentName, subnets := range subnetSegments { - subnetsNames := make([]ir.ID, 0) - VPCs := make([]ir.ID, 0) - for _, subnet := range subnets { - fullyQualifiedName, err := replaceResourceName(subnetsCache, ambiguousSubnets, subnet, spec.ResourceTypeSubnet) - if err != nil { - return nil, nil, err - } - subnetsNames = append(subnetsNames, fullyQualifiedName) - VPCs = append(VPCs, config.Subnets[fullyQualifiedName].VPC) - } - finalSubnetSegments[segmentName] = &ir.SubnetSegmentDetails{Subnets: subnetsNames, OverlappingVPCs: ir.UniqueIDValues(VPCs)} + if err := errors.Join(err1, err2, err3, err4); err != nil { + return nil, nil, err } + defs.SubnetSegments = subnetSegments + defs.NifSegments = nifSegments + defs.InstanceSegments = instanceSegments + defs.VpeSegments = vpeSegments + // translate connections resources to fully qualified names var err error - // go over Spec for i := range jsonSpec.RequiredConnections { conn := &jsonSpec.RequiredConnections[i] fullyQualifiedSrc := conn.Src.Name switch conn.Src.Type { case spec.ResourceTypeSubnet: - fullyQualifiedSrc, err = replaceResourceName(subnetsCache, ambiguousSubnets, conn.Src.Name, spec.ResourceTypeSubnet) + fullyQualifiedSrc, err = replaceResourceName(distinctSubnets, ambiguousSubnets, conn.Src.Name, spec.ResourceTypeSubnet) case spec.ResourceTypeNif: - fullyQualifiedSrc, err = replaceResourceName(nifsCache, ambiguousNifs, conn.Src.Name, spec.ResourceTypeNif) + fullyQualifiedSrc, err = replaceResourceName(distinctNifs, ambiguousNifs, conn.Src.Name, spec.ResourceTypeNif) case spec.ResourceTypeInstance: - fullyQualifiedSrc, err = replaceResourceName(instancesCache, ambiguousInstances, conn.Src.Name, spec.ResourceTypeInstance) + fullyQualifiedSrc, err = replaceResourceName(distinctInstances, ambiguousInstances, conn.Src.Name, spec.ResourceTypeInstance) case spec.ResourceTypeVpe: - fullyQualifiedSrc, err = replaceResourceName(vpesCache, ambiguousVpes, conn.Src.Name, spec.ResourceTypeVpe) + fullyQualifiedSrc, err = replaceResourceName(distinctVpes, ambiguousVpes, conn.Src.Name, spec.ResourceTypeVpe) } if err != nil { return nil, nil, err @@ -200,109 +101,70 @@ func replaceResourcesName(jsonSpec *spec.Spec, subnetSegments map[string][]ir.ID fullyQualifiedDst := conn.Dst.Name switch conn.Dst.Type { case spec.ResourceTypeSubnet: - fullyQualifiedDst, err = replaceResourceName(subnetsCache, ambiguousSubnets, conn.Dst.Name, spec.ResourceTypeSubnet) + fullyQualifiedDst, err = replaceResourceName(distinctSubnets, ambiguousSubnets, conn.Dst.Name, spec.ResourceTypeSubnet) case spec.ResourceTypeNif: - fullyQualifiedDst, err = replaceResourceName(nifsCache, ambiguousNifs, conn.Dst.Name, spec.ResourceTypeNif) + fullyQualifiedDst, err = replaceResourceName(distinctNifs, ambiguousNifs, conn.Dst.Name, spec.ResourceTypeNif) case spec.ResourceTypeInstance: - fullyQualifiedDst, err = replaceResourceName(instancesCache, ambiguousInstances, conn.Dst.Name, spec.ResourceTypeInstance) + fullyQualifiedDst, err = replaceResourceName(distinctInstances, ambiguousInstances, conn.Dst.Name, spec.ResourceTypeInstance) case spec.ResourceTypeVpe: - fullyQualifiedDst, err = replaceResourceName(vpesCache, ambiguousVpes, conn.Dst.Name, spec.ResourceTypeVpe) + fullyQualifiedDst, err = replaceResourceName(distinctVpes, ambiguousVpes, conn.Dst.Name, spec.ResourceTypeVpe) } if err != nil { return nil, nil, err } conn.Dst.Name = fullyQualifiedDst } - return jsonSpec, finalSubnetSegments, nil + return jsonSpec, defs, nil } -func translateConnection(defs *ir.Definitions, v *spec.SpecRequiredConnectionsElem, connectionIndex int) ([]ir.Connection, error) { - p, err := translateProtocols(v.AllowedProtocols) - if err != nil { - return nil, err - } - srcResourceType, err := translateResourceType(v.Src.Type) - if err != nil { - return nil, err - } - src, err := defs.Lookup(srcResourceType, v.Src.Name) - if err != nil { - return nil, err - } - dstResourceType, err := translateResourceType(v.Dst.Type) - if err != nil { - return nil, err - } - dst, err := defs.Lookup(dstResourceType, v.Dst.Name) - if err != nil { - return nil, err - } - if srcResourceType == ir.ResourceTypeExternal && dstResourceType == ir.ResourceTypeExternal { - return nil, fmt.Errorf("both source (%s) and destination (%s) are external in required connection", v.Src.Name, v.Dst.Name) - } - - origin := connectionOrigin{ - connectionIndex: connectionIndex, - srcName: resourceName(v.Src), - dstName: resourceName(v.Dst), - } - out := ir.Connection{Src: src, Dst: dst, TrackedProtocols: p, Origin: origin} - if v.Bidirectional { - backOrigin := origin - backOrigin.inverse = true - in := ir.Connection{Src: dst, Dst: src, TrackedProtocols: p, Origin: &backOrigin} - return []ir.Connection{out, in}, nil - } - return []ir.Connection{out}, nil -} - -func translateProtocols(protocols spec.ProtocolList) ([]ir.TrackedProtocol, error) { - var result = make([]ir.TrackedProtocol, len(protocols)) - for i, _p := range protocols { - result[i].Origin = protocolOrigin{protocolIndex: i} - switch p := _p.(type) { - case spec.AnyProtocol: - if len(protocols) != 1 { - log.Println("when allowing any protocol, there is no need in other protocols") - } - result[i].Protocol = netp.AnyProtocol{} - case spec.Icmp: - icmp, err := netp.ICMPFromTypeAndCode(p.Type, p.Code) +func replaceSegmentNames(segments map[ir.ID]*ir.SegmentDetails, distinctNames map[string]ir.ID, ambiguousNames map[string]struct{}, + resourceType spec.ResourceType) (map[ir.ID]*ir.SegmentDetails, error) { + for i, segmentDetails := range segments { + for j, el := range segmentDetails.Elements { + fullName, err := replaceResourceName(distinctNames, ambiguousNames, el, resourceType) if err != nil { return nil, err } - result[i].Protocol = icmp - case spec.TcpUdp: - tcpudp, err := netp.NewTCPUDP(p.Protocol == spec.TcpUdpProtocolTCP, p.MinSourcePort, p.MaxSourcePort, - p.MinDestinationPort, p.MaxDestinationPort) - if err != nil { - return nil, err - } - result[i].Protocol = tcpudp - default: - return nil, fmt.Errorf("impossible protocol: %v", p) + segmentDetails.Elements[j] = fullName } + segments[i] = segmentDetails } - return result, nil + return segments, nil } -func translateResourceType(resourceType spec.ResourceType) (ir.ResourceType, error) { - switch resourceType { - case spec.ResourceTypeExternal: - return ir.ResourceTypeExternal, nil - case spec.ResourceTypeSegment: - return ir.ResourceTypeSegment, nil - case spec.ResourceTypeSubnet: - return ir.ResourceTypeSubnet, nil - case spec.ResourceTypeNif: - return ir.ResourceTypeNIF, nil - case spec.ResourceTypeInstance: - return ir.ResourceTypeInstance, nil - case spec.ResourceTypeVpe: - return ir.ResourceTypeVPE, nil - default: - return ir.ResourceTypeSubnet, fmt.Errorf("unsupported resource type %v", resourceType) +func replaceResourceName(distinctNames map[string]ir.ID, ambiguousNames map[string]struct{}, resourceName string, + resourceType spec.ResourceType) (string, error) { + if len(ir.ScopingComponents(resourceName)) != 1 { + return resourceName, nil + } + if val, ok := distinctNames[resourceName]; ok { + return val, nil } + if _, ok := ambiguousNames[resourceName]; ok { + return "", fmt.Errorf("ambiguous resource name: %s", resourceName) + } + return "", fmt.Errorf("unknown resource name %s (resource type: %q)", resourceName, resourceType) +} + +// inverseMapToFullyQualifiedName returns two maps: one from a name to a fully qualified name, +// and the second is a set of ambiguous names +func inverseMapToFullyQualifiedName[T ir.Named](m map[ir.ID]T) (distinctNames map[string]ir.ID, ambiguousNames map[string]struct{}) { + ambiguousNames = make(map[string]struct{}) + distinctNames = make(map[string]ir.ID) + + for fullNifName, nif := range m { + nifName := nif.Name() + if _, ok := ambiguousNames[nifName]; ok { + continue + } + if _, ok := distinctNames[nifName]; !ok { + distinctNames[nifName] = fullNifName + } else { + delete(distinctNames, nifName) + ambiguousNames[nifName] = struct{}{} + } + } + return distinctNames, ambiguousNames } // unmarshal returns a Spec struct given a file adhering to spec_schema.input @@ -351,46 +213,3 @@ func unmarshal(filename string) (*spec.Spec, error) { } return jsonSpec, err } - -func parseOverlappingVpcs(cidr *netset.IPBlock, vpcs map[ir.ID]*ir.VPCDetails) []ir.ID { - result := make([]ir.ID, 0) - for vpcName, vpcDetails := range vpcs { - if vpcDetails.AddressPrefixes.Overlap(cidr) { - result = append(result, vpcName) - } - } - return result -} - -func replaceResourceName(cache map[string]ir.ID, ambiguous map[string]struct{}, resourceName string, - resourceType spec.ResourceType) (string, error) { - if len(ir.ScopingComponents(resourceName)) != 1 { - return resourceName, nil - } - if val, ok := cache[resourceName]; ok { - return val, nil - } - if _, ok := ambiguous[resourceName]; ok { - return "", fmt.Errorf("ambiguous resource name: %s", resourceName) - } - return "", fmt.Errorf("unknown resource name %s (resource type: %q)", resourceName, resourceType) -} - -func inverseMapToFullyQualifiedName[T ir.Named](m map[ir.ID]T) (cache map[string]ir.ID, ambiguous map[string]struct{}) { - ambiguous = make(map[string]struct{}) - cache = make(map[string]ir.ID) - - for fullNifName, nif := range m { - nifName := nif.Name() - if _, ok := ambiguous[nifName]; ok { - continue - } - if _, ok := cache[nifName]; !ok { - cache[nifName] = fullNifName - } else { - delete(cache, nifName) - ambiguous[nifName] = struct{}{} - } - } - return cache, ambiguous -} diff --git a/pkg/io/jsonio/unmarshalConns.go b/pkg/io/jsonio/unmarshalConns.go new file mode 100644 index 00000000..e28f904a --- /dev/null +++ b/pkg/io/jsonio/unmarshalConns.go @@ -0,0 +1,155 @@ +/* +Copyright 2023- IBM Inc. All Rights Reserved. +SPDX-License-Identifier: Apache-2.0 +*/ + +// Package jsonio handles global specification written in a JSON file, as described by spec_schema.input +package jsonio + +import ( + "errors" + "fmt" + "log" + + "github.com/np-guard/models/pkg/netp" + "github.com/np-guard/models/pkg/spec" + "github.com/np-guard/vpc-network-config-synthesis/pkg/ir" +) + +// transalteConnections translate requires connections from spec.Spec to []*ir.Connection +func (r *Reader) transalteConnections(conns []spec.SpecRequiredConnectionsElem, defs *ir.Definitions, isSG bool) ([]*ir.Connection, error) { + var connections []*ir.Connection + for i := range conns { + conns, err := translateConnection(defs, &conns[i], i, isSG) + if err != nil { + return nil, err + } + connections = append(connections, conns...) + } + return connections, nil +} + +func translateConnection(defs *ir.Definitions, conn *spec.SpecRequiredConnectionsElem, connIdx int, isSG bool) ([]*ir.Connection, error) { + protocols, err1 := translateProtocols(conn.AllowedProtocols) + srcResource, isSrcExternal, err2 := transalteConnectionResource(defs, &conn.Src, isSG) + dstResource, isDstExternal, err3 := transalteConnectionResource(defs, &conn.Dst, isSG) + if err := errors.Join(err1, err2, err3); err != nil { + return nil, err + } + if isSrcExternal && isDstExternal { + return nil, fmt.Errorf("both source (%s) and destination (%s) are external in required connection", conn.Src.Name, conn.Dst.Name) + } + + origin := connectionOrigin{ + connectionIndex: connIdx, + srcName: resourceName(conn.Src), + dstName: resourceName(conn.Dst), + } + out := &ir.Connection{Src: srcResource, Dst: dstResource, TrackedProtocols: protocols, Origin: origin} + if conn.Bidirectional { + backOrigin := origin + backOrigin.inverse = true + in := &ir.Connection{Src: dstResource, Dst: srcResource, TrackedProtocols: protocols, Origin: &backOrigin} + return []*ir.Connection{out, in}, nil + } + return []*ir.Connection{out}, nil +} + +func transalteConnectionResource(defs *ir.Definitions, resource *spec.Resource, isSG bool) (r *ir.Resource, isExternal bool, err error) { + resourceType, err := translateResourceType(defs, resource) + if err != nil { + return nil, false, err + } + var res *ir.Resource + if isSG { + res, err = defs.LookupForSGSynth(resourceType, resource.Name) + updateBlockedResourcesSGSynth(defs, res) + } else { + res, err = defs.LookupForACLSynth(resourceType, resource.Name) + updateBlockedResourcesACLSynth(defs, res) + } + return res, resourceType == ir.ResourceTypeExternal, err +} + +func translateProtocols(protocols spec.ProtocolList) ([]*ir.TrackedProtocol, error) { + var result = make([]*ir.TrackedProtocol, len(protocols)) + for i, _p := range protocols { + res := &ir.TrackedProtocol{Origin: protocolOrigin{protocolIndex: i}} + switch p := _p.(type) { + case spec.AnyProtocol: + if len(protocols) != 1 { + log.Println("when allowing any protocol, there is no need in other protocols") + } + res.Protocol = netp.AnyProtocol{} + case spec.Icmp: + icmp, err := netp.ICMPFromTypeAndCode(p.Type, p.Code) + if err != nil { + return nil, err + } + res.Protocol = icmp + case spec.TcpUdp: + tcpudp, err := netp.NewTCPUDP(p.Protocol == spec.TcpUdpProtocolTCP, p.MinSourcePort, p.MaxSourcePort, + p.MinDestinationPort, p.MaxDestinationPort) + if err != nil { + return nil, err + } + res.Protocol = tcpudp + default: + return nil, fmt.Errorf("impossible protocol: %v", p) + } + result[i] = res + } + return result, nil +} + +func translateResourceType(defs *ir.Definitions, resource *spec.Resource) (ir.ResourceType, error) { + switch resource.Type { + case spec.ResourceTypeExternal: + return ir.ResourceTypeExternal, nil + case spec.ResourceTypeSubnet: + return ir.ResourceTypeSubnet, nil + case spec.ResourceTypeNif: + return ir.ResourceTypeNIF, nil + case spec.ResourceTypeInstance: + return ir.ResourceTypeInstance, nil + case spec.ResourceTypeVpe: + return ir.ResourceTypeVPE, nil + case spec.ResourceTypeSegment: + if _, ok := defs.SubnetSegments[resource.Name]; ok { + return ir.ResourceTypeSubnetSegment, nil + } + if _, ok := defs.CidrSegments[resource.Name]; ok { + return ir.ResourceTypeCidrSegment, nil + } + if _, ok := defs.NifSegments[resource.Name]; ok { + return ir.ResourceTypeNifSegment, nil + } + if _, ok := defs.InstanceSegments[resource.Name]; ok { + return ir.ResourceTypeInstanceSegment, nil + } + if _, ok := defs.VpeSegments[resource.Name]; ok { + return ir.ResourceTypeVpeSegment, nil + } + return ir.ResourceTypeSubnet, fmt.Errorf("could not find segment %v", resource.Name) + } + return ir.ResourceTypeSubnet, fmt.Errorf("unsupported resource type %v (%v)", resource.Type, resource.Name) +} + +func updateBlockedResourcesSGSynth(defs *ir.Definitions, resource *ir.Resource) { + for _, namedAddrs := range resource.NamedAddrs { + if _, ok := defs.BlockedInstances[*namedAddrs.Name]; ok { + defs.BlockedInstances[*namedAddrs.Name] = false + } + if _, ok := defs.BlockedVPEs[*namedAddrs.Name]; ok { + defs.BlockedVPEs[*namedAddrs.Name] = false + } + } +} + +func updateBlockedResourcesACLSynth(defs *ir.Definitions, resource *ir.Resource) { + for _, namedAddrs := range resource.NamedAddrs { + if _, ok := defs.BlockedSubnets[*namedAddrs.Name]; ok { + defs.BlockedSubnets[*namedAddrs.Name] = false + } + } +} diff --git a/pkg/io/jsonio/unmarshalDefinitions.go b/pkg/io/jsonio/unmarshalDefinitions.go new file mode 100644 index 00000000..2a550bc4 --- /dev/null +++ b/pkg/io/jsonio/unmarshalDefinitions.go @@ -0,0 +1,164 @@ +/* +Copyright 2023- IBM Inc. All Rights Reserved. +SPDX-License-Identifier: Apache-2.0 +*/ + +// Package jsonio handles global specification written in a JSON file, as described by spec_schema.input +package jsonio + +import ( + "fmt" + "slices" + + "github.com/np-guard/models/pkg/netset" + "github.com/np-guard/models/pkg/spec" + "github.com/np-guard/vpc-network-config-synthesis/pkg/ir" + "github.com/np-guard/vpc-network-config-synthesis/pkg/utils" +) + +type segmentsTypes struct { + subnetSegment map[string][]string + cidrSegment map[string][]string + nifSegment map[string][]string + instanceSegment map[string][]string + vpeSegment map[string][]string +} + +// ReadDefinitions translates segments and externals +func (r *Reader) readDefinitions(jsonSpec *spec.Spec, configDefs *ir.ConfigDefs) (*ir.Definitions, error) { + if err := validateSegments(&jsonSpec.Segments); err != nil { + return nil, err + } + segments := divideSegmentsByType(&jsonSpec.Segments) + subnetSegments := parseSegments(segments.subnetSegment) + nifSegments := parseSegments(segments.nifSegment) + instanceSegments := parseSegments(segments.instanceSegment) + vpeSegments := parseSegments(segments.vpeSegment) + cidrSegments, err := parseCidrSegments(segments.cidrSegment, configDefs) + if err != nil { + return nil, err + } + externals, err := translateExternals(jsonSpec.Externals) + if err != nil { + return nil, err + } + return &ir.Definitions{ + ConfigDefs: *configDefs, + BlockedResources: prepareBlockedResources(configDefs), + SubnetSegments: subnetSegments, + CidrSegments: cidrSegments, + NifSegments: nifSegments, + InstanceSegments: instanceSegments, + VpeSegments: vpeSegments, + Externals: externals, + }, nil +} + +// validateSegments validates that all segments are supported +func validateSegments(jsonSegments *spec.SpecSegments) error { + for _, v := range *jsonSegments { + if v.Type != spec.SegmentTypeSubnet && v.Type != spec.SegmentTypeCidr && + v.Type != spec.SegmentTypeInstance && v.Type != spec.SegmentTypeNif && + v.Type != spec.SegmentTypeVpe { + return fmt.Errorf("only subnet, cidr, instance, nif and vpe segments are supported, not %q", v.Type) + } + } + return nil +} + +// translates segment to ir ds +func parseSegments(segments map[string][]string) map[ir.ID]*ir.SegmentDetails { + result := make(map[string]*ir.SegmentDetails) + for segmentName, elements := range segments { + result[segmentName] = &ir.SegmentDetails{Elements: elements} + } + return result +} + +// parseCidrSegments translates cidr segments +func parseCidrSegments(cidrSegments map[string][]string, configDefs *ir.ConfigDefs) (map[ir.ID]*ir.CidrSegmentDetails, error) { + result := make(map[ir.ID]*ir.CidrSegmentDetails) + for segmentName, segment := range cidrSegments { + cidrs := netset.NewIPBlock() + containedSubnets := make([]ir.ID, 0) + + for _, cidr := range segment { + c, err := netset.IPBlockFromCidr(cidr) + if err != nil { + return nil, err + } + subnets, err := configDefs.SubnetsContainedInCidr(c) + if err != nil { + return nil, err + } + + cidrs = cidrs.Union(c) + containedSubnets = append(containedSubnets, subnets...) + } + if !internalCidr(configDefs, cidrs) { + return nil, fmt.Errorf("only internal cidrs are supportd in cidr segment resource type (segment name: %v)", segmentName) + } + cidrSegmentDetails := ir.CidrSegmentDetails{ + Cidrs: cidrs, + ContainedSubnets: slices.Compact(slices.Sorted(slices.Values(containedSubnets))), + } + result[segmentName] = &cidrSegmentDetails + } + return result, nil +} + +// translateExternals reads externals from spec file +func translateExternals(m map[string]string) (map[ir.ID]*ir.ExternalDetails, error) { + result := make(map[ir.ID]*ir.ExternalDetails) + for k, v := range m { + address, err := netset.IPBlockFromCidrOrAddress(v) + if err != nil { + return nil, err + } + result[k] = &ir.ExternalDetails{ExternalAddrs: address} + } + return result, nil +} + +func divideSegmentsByType(jsonSegments *spec.SpecSegments) segmentsTypes { + res := segmentsTypes{subnetSegment: make(map[string][]string), nifSegment: make(map[string][]string), + instanceSegment: make(map[string][]string), vpeSegment: make(map[string][]string), + cidrSegment: make(map[string][]string)} + for k, v := range *jsonSegments { + switch v.Type { + case spec.SegmentTypeSubnet: + res.subnetSegment[k] = v.Items + case spec.SegmentTypeCidr: + res.cidrSegment[k] = v.Items + case spec.SegmentTypeInstance: + res.instanceSegment[k] = v.Items + case spec.SegmentTypeNif: + res.nifSegment[k] = v.Items + case spec.SegmentTypeVpe: + res.vpeSegment[k] = v.Items + } + } + return res +} + +func internalCidr(configDefs *ir.ConfigDefs, cidr *netset.IPBlock) bool { + res := cidr + for _, vpcDetails := range configDefs.VPCs { + res = res.Subtract(vpcDetails.AddressPrefixes) + } + return res.IsEmpty() +} + +func prepareBlockedResources(configDefs *ir.ConfigDefs) ir.BlockedResources { + return ir.BlockedResources{BlockedSubnets: sliceToMap(utils.SortedMapKeys(configDefs.Subnets)), + BlockedInstances: sliceToMap(utils.SortedMapKeys(configDefs.Instances)), + BlockedVPEs: sliceToMap(utils.SortedMapKeys(configDefs.VPEs))} +} + +func sliceToMap(slice []string) map[string]bool { + res := make(map[string]bool, len(slice)) + for _, elem := range slice { + res[elem] = true + } + return res +} diff --git a/pkg/ir/lookupForACLSynth.go b/pkg/ir/lookupForACLSynth.go new file mode 100644 index 00000000..8f207435 --- /dev/null +++ b/pkg/ir/lookupForACLSynth.go @@ -0,0 +1,92 @@ +/* +Copyright 2023- IBM Inc. All Rights Reserved. +SPDX-License-Identifier: Apache-2.0 +*/ + +// Package ir describes the input-format-agnostic specification of the required connectivity +package ir + +import ( + "fmt" + + "github.com/np-guard/vpc-network-config-synthesis/pkg/utils" +) + +func (s *Definitions) LookupForACLSynth(t ResourceType, name string) (*Resource, error) { + switch t { + case ResourceTypeExternal: + return lookupSingle(s.Externals, name, t) + case ResourceTypeSubnet: + return lookupSingle(s.Subnets, name, t) + case ResourceTypeNIF: + return lookupSingleForACLSynth(s.NIFs, s.Subnets, name, t) + case ResourceTypeInstance: + return lookupContainerForACLSynth(s.Instances, s, name, ResourceTypeInstance) + case ResourceTypeVPE: + return lookupContainerForACLSynth(s.VPEs, s, name, ResourceTypeVPE) + case ResourceTypeSubnetSegment: + return s.lookupSegment(s.SubnetSegments, name, t, ResourceTypeSubnet, s.LookupForACLSynth) + case ResourceTypeCidrSegment: + return s.lookupCidrSegmentACL(name) + case ResourceTypeNifSegment: + return s.lookupSegment(s.NifSegments, name, t, ResourceTypeNIF, s.LookupForACLSynth) + case ResourceTypeInstanceSegment: + return s.lookupSegment(s.InstanceSegments, name, t, ResourceTypeInstance, s.LookupForACLSynth) + case ResourceTypeVpeSegment: + return s.lookupSegment(s.VpeSegments, name, t, ResourceTypeVPE, s.LookupForACLSynth) + } + return nil, nil // should not get here +} + +func lookupSingleForACLSynth[T INWResource](m map[ID]T, subnets map[ID]*SubnetDetails, name string, t ResourceType) (*Resource, error) { + details, ok := m[name] + if !ok { + return nil, fmt.Errorf(resourceNotFound, name, t) + } + + res, err := lookupSingle(subnets, details.SubnetName(), ResourceTypeSubnet) + if err != nil { + return nil, err + } + res.Name = &name // save NIF's name as resource name + return res, nil +} + +func lookupContainerForACLSynth[T EndpointProvider](m map[ID]T, defs *Definitions, name string, t ResourceType) (*Resource, error) { + containerDetails, ok := m[name] + if !ok { + return nil, fmt.Errorf(containerNotFound, name, t) + } + + res := &Resource{Name: &name, NamedAddrs: []*NamedAddrs{}, Cidrs: []*NamedAddrs{}, Type: utils.Ptr(ResourceTypeSubnet)} + endpointMap := containerDetails.endpointMap(defs) + for _, endpointName := range containerDetails.endpointNames() { + subnet, err := lookupSingleForACLSynth(endpointMap, defs.Subnets, endpointName, containerDetails.endpointType()) + if err != nil { + return nil, err + } + res.Cidrs = append(res.Cidrs, subnet.Cidrs...) + res.NamedAddrs = append(res.NamedAddrs, subnet.NamedAddrs...) + } + return res, nil +} + +func (s *Definitions) lookupCidrSegmentACL(name string) (*Resource, error) { + segmentDetails, ok := s.CidrSegments[name] + if !ok { + return nil, fmt.Errorf(containerNotFound, name, ResourceTypeCidrSegment) + } + + res := &Resource{Name: &name, NamedAddrs: []*NamedAddrs{}, Cidrs: []*NamedAddrs{}, Type: utils.Ptr(ResourceTypeSubnet)} + for _, subnetName := range segmentDetails.ContainedSubnets { + subnet, err := lookupSingle(s.Subnets, subnetName, ResourceTypeSubnet) + if err != nil { + return nil, fmt.Errorf("%w while looking up %v %v for cidr segment %v", err, ResourceTypeSubnet, subnetName, name) + } + res.NamedAddrs = append(res.NamedAddrs, subnet.NamedAddrs...) + } + for _, cidr := range segmentDetails.Cidrs.SplitToCidrs() { + res.Cidrs = append(res.Cidrs, &NamedAddrs{Name: &name, IPAddrs: cidr}) + } + return res, nil +} diff --git a/pkg/ir/lookupForSGSynth.go b/pkg/ir/lookupForSGSynth.go new file mode 100644 index 00000000..177bfb9d --- /dev/null +++ b/pkg/ir/lookupForSGSynth.go @@ -0,0 +1,119 @@ +/* +Copyright 2023- IBM Inc. All Rights Reserved. +SPDX-License-Identifier: Apache-2.0 +*/ + +// Package ir describes the input-format-agnostic specification of the required connectivity +package ir + +import ( + "fmt" + "slices" + + "github.com/np-guard/models/pkg/netset" + "github.com/np-guard/vpc-network-config-synthesis/pkg/utils" +) + +func (s *Definitions) LookupForSGSynth(t ResourceType, name string) (*Resource, error) { + switch t { + case ResourceTypeExternal: + return lookupSingle(s.Externals, name, t) + case ResourceTypeSubnet: + return s.lookupSubnetForSGSynth(name) + case ResourceTypeNIF: + return s.lookupNIFForSGSynth(name) + case ResourceTypeInstance: + return lookupContainerForSGSynth(s.Instances, name, ResourceTypeInstance) + case ResourceTypeVPE: + return lookupContainerForSGSynth(s.VPEs, name, ResourceTypeVPE) + case ResourceTypeSubnetSegment: + return s.lookupSegment(s.SubnetSegments, name, t, ResourceTypeSubnet, s.LookupForSGSynth) + case ResourceTypeCidrSegment: + return s.lookupCidrSegmentForSGSynth(name) + case ResourceTypeNifSegment: + return s.lookupSegment(s.NifSegments, name, t, ResourceTypeNIF, s.LookupForSGSynth) + case ResourceTypeInstanceSegment: + return s.lookupSegment(s.InstanceSegments, name, t, ResourceTypeInstance, s.LookupForSGSynth) + case ResourceTypeVpeSegment: + return s.lookupSegment(s.VpeSegments, name, t, ResourceTypeVPE, s.LookupForSGSynth) + } + return nil, nil // should not get here +} + +func (s *Definitions) lookupNIFForSGSynth(name string) (*Resource, error) { + if _, ok := s.NIFs[name]; ok { + return &Resource{ + Name: &name, + NamedAddrs: []*NamedAddrs{{Name: &s.NIFs[name].Instance}}, + Cidrs: []*NamedAddrs{{Name: &s.NIFs[name].Instance}}, + Type: utils.Ptr(ResourceTypeNIF), + }, nil + } + return nil, fmt.Errorf(resourceNotFound, ResourceTypeNIF, name) +} + +func lookupContainerForSGSynth[T EndpointProvider](m map[string]T, name string, t ResourceType) (*Resource, error) { + if _, ok := m[name]; ok { + return &Resource{ + Name: &name, + NamedAddrs: []*NamedAddrs{{Name: &name}}, + Cidrs: []*NamedAddrs{{Name: &name}}, + Type: utils.Ptr(t), + }, nil + } + return nil, fmt.Errorf(containerNotFound, t, name) +} + +func (s *Definitions) lookupSubnetForSGSynth(name string) (*Resource, error) { + if subnetDetails, ok := s.Subnets[name]; ok { + return &Resource{Name: &name, + NamedAddrs: s.containedResourcesInCidr(subnetDetails.CIDR), + Cidrs: []*NamedAddrs{{IPAddrs: subnetDetails.CIDR}}, + Type: utils.Ptr(ResourceTypeSubnet), + }, nil + } + return nil, fmt.Errorf(resourceNotFound, ResourceTypeSubnet, name) +} + +func (s *Definitions) lookupCidrSegmentForSGSynth(name string) (*Resource, error) { + if segmentDetails, ok := s.CidrSegments[name]; ok { + return &Resource{Name: &name, + NamedAddrs: s.containedResourcesInCidr(segmentDetails.Cidrs), + Cidrs: cidrToNamedAddrs(segmentDetails.Cidrs), + Type: utils.Ptr(ResourceTypeCidr), + }, nil + } + return nil, fmt.Errorf(containerNotFound, ResourceTypeCidrSegment, name) +} + +func (s *Definitions) containedResourcesInCidr(cidr *netset.IPBlock) []*NamedAddrs { + names := make([]string, 0) + for _, nifDetails := range s.NIFs { + if nifDetails.IP.IsSubset(cidr) { + names = append(names, nifDetails.Instance) + } + } + for _, reservedIPName := range s.VPEReservedIPs { + if reservedIPName.IP.IsSubset(cidr) { + names = append(names, reservedIPName.VPEName) + } + } + return namesToNamedAddrs(slices.Compact(slices.Sorted(slices.Values(names)))) +} + +func cidrToNamedAddrs(cidr *netset.IPBlock) []*NamedAddrs { + cidrs := cidr.SplitToCidrs() + res := make([]*NamedAddrs, len(cidrs)) + for i, c := range cidrs { + res[i] = &NamedAddrs{IPAddrs: c} + } + return res +} + +func namesToNamedAddrs(names []string) []*NamedAddrs { + res := make([]*NamedAddrs, len(names)) + for i, name := range names { + res[i] = &NamedAddrs{Name: &name} + } + return res +} diff --git a/pkg/ir/spec.go b/pkg/ir/spec.go index aa262729..83258e3e 100644 --- a/pkg/ir/spec.go +++ b/pkg/ir/spec.go @@ -8,33 +8,36 @@ package ir import ( "fmt" + "log" "sort" "strings" "github.com/np-guard/models/pkg/netp" "github.com/np-guard/models/pkg/netset" + "github.com/np-guard/vpc-network-config-synthesis/pkg/utils" ) type ( - ID = string - NamedEntity string + ID = string + NamedEntity string + ResourceType string Spec struct { // Required connections - Connections []Connection + Connections []*Connection - Defs Definitions + Defs *Definitions } Connection struct { // Egress resource - Src Resource + Src *Resource // Ingress resource - Dst Resource + Dst *Resource // Allowed protocols - TrackedProtocols []TrackedProtocol + TrackedProtocols []*TrackedProtocol // Provenance information Origin fmt.Stringer @@ -42,13 +45,21 @@ type ( Resource struct { // Symbolic name of resource, if available - Name string + Name *string // list of CIDR / Ip addresses. - IPAddrs []*netset.IPBlock + NamedAddrs []*NamedAddrs + + // Cidr list + Cidrs []*NamedAddrs // Type of resource - Type ResourceType + Type *ResourceType + } + + NamedAddrs struct { + IPAddrs *netset.IPBlock + Name *string } TrackedProtocol struct { @@ -75,20 +86,31 @@ type ( Definitions struct { ConfigDefs + BlockedResources + // Segments are a way for users to create aggregations. - SubnetSegments map[ID]*SubnetSegmentDetails + SubnetSegments map[ID]*SegmentDetails - // Cidr segment might contain some cidrs CidrSegments map[ID]*CidrSegmentDetails + NifSegments map[ID]*SegmentDetails + + InstanceSegments map[ID]*SegmentDetails + + VpeSegments map[ID]*SegmentDetails + // Externals are a way for users to name IP addresses or ranges external to the VPC. Externals map[ID]*ExternalDetails } + BlockedResources struct { + BlockedSubnets map[ID]bool + BlockedInstances map[ID]bool + BlockedVPEs map[ID]bool + } + VPCDetails struct { AddressPrefixes *netset.IPBlock - // tg - // lb } SubnetDetails struct { @@ -125,21 +147,23 @@ type ( VPC ID } - SubnetSegmentDetails struct { - Subnets []ID - OverlappingVPCs []ID + SegmentDetails struct { + Elements []ID } CidrSegmentDetails struct { Cidrs *netset.IPBlock ContainedSubnets []ID - OverlappingVPCs []ID } ExternalDetails struct { ExternalAddrs *netset.IPBlock } + Reader interface { + ReadSpec(filename string, defs *ConfigDefs) (*Spec, error) + } + Named interface { Name() string } @@ -147,6 +171,37 @@ type ( NWResource interface { Address() *netset.IPBlock } + + INWResource interface { + NWResource + SubnetName() ID + } + + EndpointProvider interface { + endpointNames() []ID + endpointMap(s *Definitions) map[ID]INWResource + endpointType() ResourceType + } +) + +const ( + ResourceTypeExternal ResourceType = "external" + ResourceTypeCidr ResourceType = "cidr" + ResourceTypeSubnet ResourceType = "subnet" + ResourceTypeNIF ResourceType = "nif" + ResourceTypeVPE ResourceType = "vpe" + ResourceTypeInstance ResourceType = "instance" + ResourceTypeSubnetSegment ResourceType = "subnetSegment" + ResourceTypeCidrSegment ResourceType = "cidrSegment" + ResourceTypeNifSegment ResourceType = "nifSegment" + ResourceTypeInstanceSegment ResourceType = "instanceSegment" + ResourceTypeVpeSegment ResourceType = "vpeSegment" + + resourceNotFound = "%v %v not found" + containerNotFound = "container %v %v not found" + + WarningUnspecifiedACL = "The following subnets do not have required connections; the generated ACL will block all traffic: " + WarningUnspecifiedSG = "The following endpoints do not have required connections; the generated SGs will block all traffic: " ) func (n *NamedEntity) Name() string { @@ -161,135 +216,89 @@ func (n *NifDetails) Address() *netset.IPBlock { return n.IP } +func (n *NifDetails) SubnetName() ID { + return n.Subnet +} + func (v *VPEReservedIPsDetails) Address() *netset.IPBlock { return v.IP } +func (v *VPEReservedIPsDetails) SubnetName() ID { + return v.Subnet +} + func (e *ExternalDetails) Address() *netset.IPBlock { return e.ExternalAddrs } -type ResourceType string - -const ( - ResourceTypeExternal ResourceType = "external" - ResourceTypeSegment ResourceType = "segment" - ResourceTypeCidr ResourceType = "cidr" - ResourceTypeSubnet ResourceType = "subnet" - ResourceTypeNIF ResourceType = "nif" - ResourceTypeVPE ResourceType = "vpe" - ResourceTypeInstance ResourceType = "instance" - ResourceTypeAny ResourceType = "any" -) - -func lookupSingle[T NWResource](m map[ID]T, name string, t ResourceType) (Resource, error) { - if details, ok := m[name]; ok { - return Resource{name, []*netset.IPBlock{details.Address()}, t}, nil - } - return Resource{}, resourceNotFoundError(name, t) +func (i *InstanceDetails) endpointNames() []ID { + return i.Nifs } -func (s *Definitions) lookupInstance(name string) (Resource, error) { - if instanceDetails, ok := s.Instances[name]; ok { - ips := make([]*netset.IPBlock, len(instanceDetails.Nifs)) - for i, elemName := range instanceDetails.Nifs { - nif, err := s.Lookup(ResourceTypeNIF, elemName) - if err != nil { - return Resource{}, fmt.Errorf("%w while looking up %v %v for instance %v", err, ResourceTypeNIF, elemName, name) - } - // each nif has only one IP address - ips[i] = nif.IPAddrs[0] - } - return Resource{name, ips, ResourceTypeNIF}, nil +func (i *InstanceDetails) endpointMap(s *Definitions) map[ID]INWResource { + res := make(map[ID]INWResource, len(s.NIFs)) + for k, v := range s.NIFs { + res[k] = v } - return Resource{}, containerNotFoundError(name, ResourceTypeInstance) + return res } -func (s *Definitions) lookupVPE(name string) (Resource, error) { - VPEDetails, ok := s.VPEs[name] - if !ok { - return Resource{}, resourceNotFoundError(name, ResourceTypeVPE) - } - ips := make([]*netset.IPBlock, len(VPEDetails.VPEReservedIPs)) - for i, vpeEndPoint := range VPEDetails.VPEReservedIPs { - ips[i] = s.VPEReservedIPs[vpeEndPoint].IP - } - return Resource{name, ips, ResourceTypeVPE}, nil +func (i *InstanceDetails) endpointType() ResourceType { + return ResourceTypeNIF } -func (s *Definitions) lookupSubnetSegment(name string) (Resource, error) { - if subnetSegmentDetails, ok := s.SubnetSegments[name]; ok { - cidrs := make([]*netset.IPBlock, len(subnetSegmentDetails.Subnets)) - for i, subnetName := range subnetSegmentDetails.Subnets { - subnet, err := s.Lookup(ResourceTypeSubnet, subnetName) - if err != nil { - return Resource{}, fmt.Errorf("%w while looking up %v %v for subnet %v", err, ResourceTypeSubnet, subnetName, name) - } - // each subnet has only one CIDR block. - cidrs[i] = subnet.IPAddrs[0] - } - return Resource{name, cidrs, ResourceTypeSubnet}, nil - } - return Resource{}, containerNotFoundError(name, ResourceTypeSegment) +func (v *VPEDetails) endpointNames() []ID { + return v.VPEReservedIPs } -func (s *Definitions) lookupCidrSegment(name string) (Resource, error) { - cidrSegmentDetails, ok := s.CidrSegments[name] - if !ok { - return Resource{}, containerNotFoundError(name, ResourceTypeSegment) +func (v *VPEDetails) endpointMap(s *Definitions) map[ID]INWResource { + res := make(map[ID]INWResource, len(s.VPEReservedIPs)) + for k, v := range s.VPEReservedIPs { + res[k] = v } - return Resource{name, cidrSegmentDetails.Cidrs.SplitToCidrs(), ResourceTypeCidr}, nil + return res } -func (s *Definitions) Lookup(t ResourceType, name string) (Resource, error) { - err := fmt.Errorf("invalid type %v (resource %v)", t, name) - switch t { - case ResourceTypeExternal: - return lookupSingle(s.Externals, name, t) - case ResourceTypeSubnet: - return lookupSingle(s.Subnets, name, t) - case ResourceTypeCidr: - return lookupSingle(s.Subnets, name, t) - case ResourceTypeNIF: - return lookupSingle(s.NIFs, name, t) - case ResourceTypeVPE: - return s.lookupVPE(name) - case ResourceTypeInstance: - return s.lookupInstance(name) - case ResourceTypeSegment: - if _, ok := s.SubnetSegments[name]; ok { // subnet segment - return s.lookupSubnetSegment(name) - } else if _, ok := s.CidrSegments[name]; ok { // cidr segment - return s.lookupCidrSegment(name) - } else { - return Resource{}, err - } - default: - return Resource{}, err - } +func (v *VPEDetails) endpointType() ResourceType { + return ResourceTypeVPE } -func inverseLookup[T NWResource](m map[ID]T, address *netset.IPBlock) (result string, ok bool) { - for name, details := range m { - if details.Address().Equal(address) { - return name, true - } +func lookupSingle[T NWResource](m map[ID]T, name string, t ResourceType) (*Resource, error) { + if details, ok := m[name]; ok { + return &Resource{ + Name: &name, + NamedAddrs: []*NamedAddrs{{Name: &name, IPAddrs: details.Address()}}, + Cidrs: []*NamedAddrs{{Name: &name, IPAddrs: details.Address()}}, + Type: utils.Ptr(t), + }, nil } - return "", false + return nil, fmt.Errorf(resourceNotFound, name, t) } -func (s *ConfigDefs) NIFFromIP(ip *netset.IPBlock) (string, bool) { - return inverseLookup(s.NIFs, ip) -} +func (s *Definitions) lookupSegment(segment map[ID]*SegmentDetails, name string, t, elementType ResourceType, + lookup func(ResourceType, string) (*Resource, error)) (*Resource, error) { + segmentDetails, ok := segment[name] + if !ok { + return nil, fmt.Errorf(containerNotFound, name, t) + } -type Reader interface { - ReadSpec(filename string, defs *ConfigDefs) (*Spec, error) + res := &Resource{Name: &name, NamedAddrs: []*NamedAddrs{}, Cidrs: []*NamedAddrs{}, Type: utils.Ptr(elementType)} + for _, elementName := range segmentDetails.Elements { + subnet, err := lookup(elementType, elementName) + if err != nil { + return nil, err + } + res.NamedAddrs = append(res.NamedAddrs, subnet.NamedAddrs...) + res.Cidrs = append(res.Cidrs, subnet.Cidrs...) + } + return res, nil } -func (s *ConfigDefs) SubnetsContainedInCidr(cidr netset.IPBlock) ([]ID, error) { +func (s *ConfigDefs) SubnetsContainedInCidr(cidr *netset.IPBlock) ([]ID, error) { var containedSubnets []string for subnet, subnetDetails := range s.Subnets { - if subnetDetails.CIDR.IsSubset(&cidr) { + if subnetDetails.CIDR.IsSubset(cidr) { containedSubnets = append(containedSubnets, subnet) } } @@ -297,28 +306,6 @@ func (s *ConfigDefs) SubnetsContainedInCidr(cidr netset.IPBlock) ([]ID, error) { return containedSubnets, nil } -func resourceNotFoundError(name string, resource ResourceType) error { - return fmt.Errorf("%v %v not found", resource, name) -} - -func containerNotFoundError(name string, resource ResourceType) error { - return fmt.Errorf("container %v %v not found", resource, name) -} - -func UniqueIDValues(s []ID) []ID { - result := make([]ID, 0) - seenValues := make(map[ID]struct{}) - - for _, item := range s { - if _, seen := seenValues[item]; !seen { - seenValues[item] = struct{}{} - result = append(result, item) - } - } - - return result -} - func ScopingComponents(s string) []string { return strings.Split(s, "/") } @@ -330,3 +317,9 @@ func VpcFromScopedResource(resource ID) ID { func ChangeScoping(s string) string { return strings.ReplaceAll(s, "/", "--") } + +func PrintUnspecifiedWarning(warning string, blockedResources []ID) { + if len(blockedResources) > 0 { + log.Println(warning, strings.Join(blockedResources, ", ")) + } +} diff --git a/pkg/ir/unspecified.go b/pkg/ir/unspecified.go deleted file mode 100644 index 3553e582..00000000 --- a/pkg/ir/unspecified.go +++ /dev/null @@ -1,140 +0,0 @@ -/* -Copyright 2023- IBM Inc. All Rights Reserved. -SPDX-License-Identifier: Apache-2.0 -*/ - -package ir - -import ( - "log" - "sort" - "strings" -) - -const ( - warningUnspecifiedACL = "The following subnets do not have required connections; the generated ACL will block all traffic: " - warningUnspecifiedSG = "The following endpoints do not have required connections; the generated SGs will block all traffic: " -) - -//nolint:gocyclo // look for the subnet in spec -func (s *Spec) ComputeBlockedSubnets() []ID { - var blockedSubnets []ID - - for subnet := range s.Defs.Subnets { - if s.findResourceInConnections([]ID{subnet}, ResourceTypeSubnet) { - continue - } - - // subnet segments which include the subnet - segments := []ID{} - for segmentName, segmentDetails := range s.Defs.SubnetSegments { - for _, s := range segmentDetails.Subnets { - if subnet == s { - segments = append(segments, segmentName) - break - } - } - } - if s.findResourceInConnections(segments, ResourceTypeSubnet) { - continue - } - - // cidr segments which include the subnet - cidrSegments := []ID{} - for segmentName, cidrSegmentDetails := range s.Defs.CidrSegments { - for _, s := range cidrSegmentDetails.ContainedSubnets { - if subnet == s { - cidrSegments = append(cidrSegments, segmentName) - break - } - } - } - if s.findResourceInConnections(cidrSegments, ResourceTypeCidr) { - continue - } - - // nifs in the subnet - nifs := []ID{} - for instanceName, instance := range s.Defs.Instances { - instanceInList := false - for _, nif := range instance.Nifs { - if subnet == s.Defs.NIFs[nif].Subnet { - nifs = append(nifs, nif) - if !instanceInList { - nifs = append(nifs, instanceName) - instanceInList = true - } - } - } - } - if !s.findResourceInConnections(nifs, ResourceTypeNIF) { - blockedSubnets = append(blockedSubnets, subnet) - } - } - sort.Strings(blockedSubnets) - printUnspecifiedWarning(warningUnspecifiedACL, blockedSubnets) - return blockedSubnets -} - -func (s *Spec) ComputeBlockedResources() []ID { - blockedResources := append(s.computeBlockedNIFs(), s.computeBlockedVPEs()...) - sort.Strings(blockedResources) - printUnspecifiedWarning(warningUnspecifiedSG, blockedResources) - return blockedResources -} - -func (s *Spec) computeBlockedVPEs() []ID { - var blockedVPEs []ID - for vpe := range s.Defs.VPEs { - if !s.findResourceInConnections([]ID{vpe}, ResourceTypeVPE) { - blockedVPEs = append(blockedVPEs, vpe) - } - } - return blockedVPEs -} - -func (s *Spec) computeBlockedNIFs() []ID { - var blockedResources []ID - for instanceName, instanceDetails := range s.Defs.Instances { - if s.findResourceInConnections([]ID{instanceName}, ResourceTypeNIF) { - continue - } - - // instance is not in spec. look for its NIFs - var blockedNIFs []ID - for _, nif := range instanceDetails.Nifs { - if !s.findResourceInConnections([]ID{nif}, ResourceTypeNIF) { - blockedNIFs = append(blockedNIFs, nif) - } - } - - // instance has only one NIF which was not found - if len(blockedNIFs) > 0 && len(instanceDetails.Nifs) == 1 { - blockedResources = append(blockedResources, instanceName) - } else { - blockedResources = append(blockedResources, blockedNIFs...) - } - } - return blockedResources -} - -func (s *Spec) findResourceInConnections(resources []ID, resourceType ResourceType) bool { - // The slice of IDs represents all resources that include the resource we are looking for - for c := range s.Connections { - for _, resource := range resources { - if s.Connections[c].Src.Type == resourceType && resource == s.Connections[c].Src.Name { - return true - } - if s.Connections[c].Dst.Type == resourceType && resource == s.Connections[c].Dst.Name { - return true - } - } - } - return false -} - -func printUnspecifiedWarning(warning string, blockedResources []ID) { - if len(blockedResources) > 0 { - log.Println(warning, strings.Join(blockedResources, ", ")) - } -} diff --git a/pkg/synth/acl.go b/pkg/synth/acl.go index 044d72ce..9b4dc8f4 100644 --- a/pkg/synth/acl.go +++ b/pkg/synth/acl.go @@ -12,6 +12,7 @@ import ( "github.com/np-guard/models/pkg/netset" "github.com/np-guard/vpc-network-config-synthesis/pkg/ir" + "github.com/np-guard/vpc-network-config-synthesis/pkg/utils" ) const ACLTypeNotSupported = "ACL: src/dst of type %s is not supported" @@ -27,156 +28,70 @@ func NewACLSynthesizer(s *ir.Spec, single bool) Synthesizer { return &ACLSynthesizer{spec: s, singleACL: single, result: ir.NewACLCollection()} } -func (a *ACLSynthesizer) Synth() (ir.Collection, error) { +func (a *ACLSynthesizer) Synth() ir.Collection { return a.makeACL() } // makeACL translates Spec to a collection of nACLs // 1. generate nACL rules for relevant subnets for each connection // 2. generate nACL rules for blocked subnets (subnets that do not appear in Spec) -func (a *ACLSynthesizer) makeACL() (*ir.ACLCollection, error) { - for c := range a.spec.Connections { - err := a.generateACLRulesFromConnection(&a.spec.Connections[c]) - if err != nil { - return nil, err - } +func (a *ACLSynthesizer) makeACL() *ir.ACLCollection { + for i := range a.spec.Connections { + conn := a.spec.Connections[i] + a.generateACLRulesFromConnection(conn, conn.Src, conn.Dst, a.allowConnectionSrc) + a.generateACLRulesFromConnection(conn, conn.Dst, conn.Src, a.allowConnectionDst) } a.generateACLRulesForBlockedSubnets() - return a.result, nil + return a.result } -// 1. check that both resources are supported in nACL generation. -// 2. check that at least one resource is internal. -// 3. convert src and dst resources to namedAddrs slices to make it more convenient to go through the addrs -// and add the rule to the relevant acl. Note: in case where the resource in a nif, src/dst will be -// updated to be its subnet. -// 4. generate rules and add them to relevant ACL to allow traffic for all pairs of IPAddrs of both resources. -func (a *ACLSynthesizer) generateACLRulesFromConnection(conn *ir.Connection) error { - if !resourceRelevantToACL(conn.Src.Type) { - return fmt.Errorf(ACLTypeNotSupported, string(conn.Src.Type)) - } - if !resourceRelevantToACL(conn.Dst.Type) { - return fmt.Errorf(ACLTypeNotSupported, string(conn.Dst.Type)) - } - for _, src := range conn.Src.IPAddrs { - srcSubnets, srcCidr := adjustResource(&a.spec.Defs, src, conn.Src) - for _, dst := range conn.Dst.IPAddrs { - dstSubnets, dstCidr := adjustResource(&a.spec.Defs, dst, conn.Dst) - if src == dst && conn.Src.Type != ir.ResourceTypeCidr && conn.Dst.Type != ir.ResourceTypeCidr { +func (a *ACLSynthesizer) generateACLRulesFromConnection(conn *ir.Connection, thisResource, otherResource *ir.Resource, + allowConnection func(*ir.Connection, *ir.TrackedProtocol, *ir.NamedAddrs, *netset.IPBlock)) { + for _, thisSubnet := range thisResource.NamedAddrs { + for _, otherCidr := range otherResource.Cidrs { + if thisSubnet.IPAddrs.Equal(otherCidr.IPAddrs) && *thisResource.Type != ir.ResourceTypeCidr && + *otherResource.Type != ir.ResourceTypeCidr { continue } for _, trackedProtocol := range conn.TrackedProtocols { - a.allowConnectionFromSrc(conn, trackedProtocol, srcSubnets, dstCidr) - a.allowConnectionToDst(conn, trackedProtocol, dstSubnets, srcCidr) + allowConnection(conn, trackedProtocol, thisSubnet, otherCidr.IPAddrs) } } } - return nil } // if the src in internal, rule(s) will be created to allow traffic. // if the protocol allows response, more rules will be created. -func (a *ACLSynthesizer) allowConnectionFromSrc(conn *ir.Connection, trackedProtocol ir.TrackedProtocol, - srcSubnets []*namedAddrs, dstCidr *netset.IPBlock) { - internalSrc, _, internal := internalConn(conn) +func (a *ACLSynthesizer) allowConnectionSrc(conn *ir.Connection, p *ir.TrackedProtocol, srcSubnet *ir.NamedAddrs, dstCidr *netset.IPBlock) { + internalSrc, _, internal := internalConnection(conn) - if !internalSrc { + if !internalSrc || srcSubnet.IPAddrs.Equal(dstCidr) { return } - reason := explanation{internal: internal, connectionOrigin: conn.Origin, protocolOrigin: trackedProtocol.Origin} - for _, srcSubnet := range srcSubnets { - if srcSubnet.Addrs.Equal(dstCidr) { // srcSubnet and dstCidr are the same subnet - continue - } - request := &ir.Packet{Src: srcSubnet.Addrs, Dst: dstCidr, Protocol: trackedProtocol.Protocol, Explanation: reason.String()} - a.addRuleToACL(ir.AllowSend(request), srcSubnet, internal, a.singleACL) - if inverseProtocol := trackedProtocol.Protocol.InverseDirection(); inverseProtocol != nil { - response := &ir.Packet{Src: dstCidr, Dst: srcSubnet.Addrs, Protocol: inverseProtocol, Explanation: reason.response().String()} - a.addRuleToACL(ir.AllowReceive(response), srcSubnet, internal, a.singleACL) - } + reason := explanation{internal: internal, connectionOrigin: conn.Origin, protocolOrigin: p.Origin} + request := &ir.Packet{Src: srcSubnet.IPAddrs, Dst: dstCidr, Protocol: p.Protocol, Explanation: reason.String()} + a.addRuleToACL(ir.AllowSend(request), *srcSubnet.Name, internal, a.singleACL) + if inverseProtocol := p.Protocol.InverseDirection(); inverseProtocol != nil { + response := &ir.Packet{Src: dstCidr, Dst: srcSubnet.IPAddrs, Protocol: inverseProtocol, Explanation: reason.response().String()} + a.addRuleToACL(ir.AllowReceive(response), *srcSubnet.Name, internal, a.singleACL) } } // if the dst in internal, rule(s) will be created to allow traffic. // if the protocol allows response, more rules will be created. -func (a *ACLSynthesizer) allowConnectionToDst(conn *ir.Connection, trackedProtocol ir.TrackedProtocol, - dstSubnets []*namedAddrs, srcCidr *netset.IPBlock) { - _, internalDst, internal := internalConn(conn) +func (a *ACLSynthesizer) allowConnectionDst(conn *ir.Connection, p *ir.TrackedProtocol, dstSubnet *ir.NamedAddrs, srcCidr *netset.IPBlock) { + _, internalDst, internal := internalConnection(conn) - if !internalDst { + if !internalDst || dstSubnet.IPAddrs.Equal(srcCidr) { return } - reason := explanation{internal: internal, connectionOrigin: conn.Origin, protocolOrigin: trackedProtocol.Origin} - for _, dstSubnet := range dstSubnets { - if dstSubnet.Addrs.Equal(srcCidr) { // dstSubnet and srcCidr are the same subnet - continue - } - request := &ir.Packet{Src: srcCidr, Dst: dstSubnet.Addrs, Protocol: trackedProtocol.Protocol, Explanation: reason.String()} - a.addRuleToACL(ir.AllowReceive(request), dstSubnet, internal, a.singleACL) - if inverseProtocol := trackedProtocol.Protocol.InverseDirection(); inverseProtocol != nil { - response := &ir.Packet{Src: dstSubnet.Addrs, Dst: srcCidr, Protocol: inverseProtocol, Explanation: reason.response().String()} - a.addRuleToACL(ir.AllowSend(response), dstSubnet, internal, a.singleACL) - } - } -} - -// generate nACL rules for blocked subnets (subnets that do not appear in Spec) -func (a *ACLSynthesizer) generateACLRulesForBlockedSubnets() { - blockedSubnets := a.spec.ComputeBlockedSubnets() - for _, subnet := range blockedSubnets { - acl := a.result.LookupOrCreate(aclSelector(subnet, a.singleACL)) - cidr := a.spec.Defs.Subnets[subnet].Address() - acl.AppendInternal(ir.DenyAllReceive(subnet, cidr)) - acl.AppendInternal(ir.DenyAllSend(subnet, cidr)) - } -} - -// convert src and dst resources to namedAddrs slices to make it more convenient to go through the addrs and add -// the rule to the relevant acl. Note: in case where the resource in a nif, src/dst will be updated to be its subnet. -func adjustResource(s *ir.Definitions, addrs *netset.IPBlock, resource ir.Resource) ([]*namedAddrs, *netset.IPBlock) { - switch resource.Type { - case ir.ResourceTypeSubnet: - return adjustSubnet(s, addrs, resource.Name), addrs - case ir.ResourceTypeExternal: - return []*namedAddrs{{Name: resource.Name, Addrs: addrs}}, addrs - case ir.ResourceTypeNIF: - result := expandNifToSubnet(s, addrs) - return result, result[0].Addrs // return nif's subnet, not its IP address - case ir.ResourceTypeCidr: - return adjustCidrSegment(s, resource.Name), addrs + reason := explanation{internal: internal, connectionOrigin: conn.Origin, protocolOrigin: p.Origin} + request := &ir.Packet{Src: srcCidr, Dst: dstSubnet.IPAddrs, Protocol: p.Protocol, Explanation: reason.String()} + a.addRuleToACL(ir.AllowReceive(request), *dstSubnet.Name, internal, a.singleACL) + if inverseProtocol := p.Protocol.InverseDirection(); inverseProtocol != nil { + response := &ir.Packet{Src: dstSubnet.IPAddrs, Dst: srcCidr, Protocol: inverseProtocol, Explanation: reason.response().String()} + a.addRuleToACL(ir.AllowSend(response), *dstSubnet.Name, internal, a.singleACL) } - return []*namedAddrs{}, nil // shouldn't happen -} - -func adjustSubnet(s *ir.Definitions, addrs *netset.IPBlock, resourceName string) []*namedAddrs { - // Todo: Handle the case where there is a subnet and a subnetSegment with the same name - if subnetDetails, ok := s.Subnets[resourceName]; ok { // resource is a subnet - return []*namedAddrs{{Name: resourceName, Addrs: subnetDetails.Address()}} - } - // resource is a subnet segment - for _, subnetName := range s.SubnetSegments[resourceName].Subnets { - if s.Subnets[subnetName].Address().Equal(addrs) { - return []*namedAddrs{{Name: subnetName, Addrs: s.Subnets[subnetName].Address()}} - } - } - return []*namedAddrs{} // shouldn't happen -} - -func adjustCidrSegment(s *ir.Definitions, resourceName string) []*namedAddrs { - cidrSegmentDetails := s.CidrSegments[resourceName] - result := make([]*namedAddrs, len(cidrSegmentDetails.ContainedSubnets)) - for i, subnet := range cidrSegmentDetails.ContainedSubnets { - result[i] = &namedAddrs{Name: subnet, Addrs: s.Subnets[subnet].Address()} - } - return result -} - -func expandNifToSubnet(s *ir.Definitions, addr *netset.IPBlock) []*namedAddrs { - nifName, _ := s.NIFFromIP(addr) // already checked before (Lookup function) that the NIF exists - subnetName := s.NIFs[nifName].Subnet - subnetCidr := s.Subnets[subnetName].Address() - - return []*namedAddrs{{Name: subnetName, Addrs: subnetCidr}} } func aclSelector(subnetName ir.ID, single bool) string { @@ -186,15 +101,23 @@ func aclSelector(subnetName ir.ID, single bool) string { return subnetName } -func resourceRelevantToACL(e ir.ResourceType) bool { - return e == ir.ResourceTypeSubnet || e == ir.ResourceTypeCidr || e == ir.ResourceTypeNIF || e == ir.ResourceTypeExternal -} - -func (a *ACLSynthesizer) addRuleToACL(rule *ir.ACLRule, resource *namedAddrs, internal, single bool) { - acl := a.result.LookupOrCreate(aclSelector(resource.Name, single)) +func (a *ACLSynthesizer) addRuleToACL(rule *ir.ACLRule, resourceName ir.ID, internal, single bool) { + acl := a.result.LookupOrCreate(aclSelector(resourceName, single)) if internal { acl.AppendInternal(rule) } else { acl.AppendExternal(rule) } } + +// generate nACL rules for blocked subnets (subnets that do not appear in Spec) +func (a *ACLSynthesizer) generateACLRulesForBlockedSubnets() { + blockedSubnets := utils.TrueKeyValues(a.spec.Defs.BlockedSubnets) + ir.PrintUnspecifiedWarning(ir.WarningUnspecifiedACL, blockedSubnets) + for _, subnet := range blockedSubnets { + acl := a.result.LookupOrCreate(aclSelector(subnet, a.singleACL)) + cidr := a.spec.Defs.Subnets[subnet].Address() + acl.AppendInternal(ir.DenyAllReceive(subnet, cidr)) + acl.AppendInternal(ir.DenyAllSend(subnet, cidr)) + } +} diff --git a/pkg/synth/common.go b/pkg/synth/common.go index e6e516f3..101b01c9 100644 --- a/pkg/synth/common.go +++ b/pkg/synth/common.go @@ -8,19 +8,12 @@ package synth import ( "fmt" - "github.com/np-guard/models/pkg/netset" - "github.com/np-guard/vpc-network-config-synthesis/pkg/ir" ) type ( Synthesizer interface { - Synth() (ir.Collection, error) - } - - namedAddrs struct { - Name ir.ID - Addrs *netset.IPBlock + Synth() ir.Collection } explanation struct { @@ -49,9 +42,9 @@ func (e explanation) String() string { return result } -func internalConn(conn *ir.Connection) (internalSrc, internalDst, internal bool) { - internalSrc = conn.Src.Type != ir.ResourceTypeExternal - internalDst = conn.Dst.Type != ir.ResourceTypeExternal +func internalConnection(conn *ir.Connection) (internalSrc, internalDst, internal bool) { + internalSrc = *conn.Src.Type != ir.ResourceTypeExternal + internalDst = *conn.Dst.Type != ir.ResourceTypeExternal internal = internalSrc && internalDst return } diff --git a/pkg/synth/sg.go b/pkg/synth/sg.go index c90b1783..1a1fd993 100644 --- a/pkg/synth/sg.go +++ b/pkg/synth/sg.go @@ -6,11 +6,10 @@ SPDX-License-Identifier: Apache-2.0 package synth import ( - "fmt" - "github.com/np-guard/models/pkg/netp" "github.com/np-guard/vpc-network-config-synthesis/pkg/ir" + "github.com/np-guard/vpc-network-config-synthesis/pkg/utils" ) const SGTypeNotSupported = "SG: src/dst of type %s is not supported" @@ -20,114 +19,89 @@ type SGSynthesizer struct { result *ir.SGCollection } -// NewSGSynthesizer creates and returns a new SGSynthesizer instance +// NewSGSynthesizer creates and returns a new SGSynthesizer instances func NewSGSynthesizer(s *ir.Spec, _ bool) Synthesizer { return &SGSynthesizer{spec: s, result: ir.NewSGCollection()} } -func (s *SGSynthesizer) Synth() (ir.Collection, error) { +func (s *SGSynthesizer) Synth() ir.Collection { return s.makeSG() } // this method translates spec to a collection of Security Groups // 1. generate SGs for relevant endpoints for each connection // 2. generate SGs for blocked endpoints (endpoints that do not appear in Spec) -func (s *SGSynthesizer) makeSG() (*ir.SGCollection, error) { +func (s *SGSynthesizer) makeSG() *ir.SGCollection { for c := range s.spec.Connections { - err := s.generateSGRulesFromConnection(&s.spec.Connections[c]) - if err != nil { - return nil, err - } + s.generateSGRulesFromConnection(s.spec.Connections[c], ir.Outbound) + s.generateSGRulesFromConnection(s.spec.Connections[c], ir.Inbound) } s.generateSGsForBlockedResources() - return s.result, nil + return s.result } -// 1. check that both resources are supported in SG generation. -// 2. check that at least one resource is internal. -// 3. convert src and dst resources to namedAddrs slices to make it more convenient to go through the addrs -// and add the rule to the relevant SG. -// 4. generate rules and add them to relevant SG to allow traffic for all pairs of IPAddrs of both resources. -func (s *SGSynthesizer) generateSGRulesFromConnection(conn *ir.Connection) error { - if !resourceRelevantToSG(conn.Src.Type) { - return fmt.Errorf(SGTypeNotSupported, string(conn.Src.Type)) - } - if !resourceRelevantToSG(conn.Dst.Type) { - return fmt.Errorf(SGTypeNotSupported, string(conn.Dst.Type)) - } - internalSrc, internalDst, internalConn := internalConn(conn) - - srcEndpoints := updateEndpoints(&s.spec.Defs, conn.Src) - dstEndpoints := updateEndpoints(&s.spec.Defs, conn.Dst) - - for _, srcEndpoint := range srcEndpoints { - for _, dstEndpoint := range dstEndpoints { - if srcEndpoint.Addrs.Equal(dstEndpoint.Addrs) { - continue - } +func (s *SGSynthesizer) generateSGRulesFromConnection(conn *ir.Connection, direction ir.Direction) { + localResource, remoteResource, internalEndpoint, internalConn := connSettings(conn, direction) + for _, localEndpoint := range localResource.NamedAddrs { + for _, remoteCidr := range remoteResource.Cidrs { for _, trackedProtocol := range conn.TrackedProtocols { ruleExplanation := explanation{internal: internalConn, connectionOrigin: conn.Origin, protocolOrigin: trackedProtocol.Origin}.String() - s.allowConnectionEndpoint(srcEndpoint, dstEndpoint, trackedProtocol.Protocol, ir.Outbound, internalSrc, ruleExplanation) - s.allowConnectionEndpoint(dstEndpoint, srcEndpoint, trackedProtocol.Protocol, ir.Inbound, internalDst, ruleExplanation) + s.allowConnectionEndpoint(localEndpoint, remoteCidr, remoteResource.Type, trackedProtocol.Protocol, direction, + internalEndpoint, ruleExplanation) } } } - return nil } // if the endpoint in internal, a rule will be created to allow traffic. -func (s *SGSynthesizer) allowConnectionEndpoint(localEndpoint, remoteEndpoint *namedAddrs, protocol netp.Protocol, - direction ir.Direction, internalEndpoint bool, ruleExplanation string) { +func (s *SGSynthesizer) allowConnectionEndpoint(localEndpoint, remoteEndpoint *ir.NamedAddrs, remoteType *ir.ResourceType, + p netp.Protocol, direction ir.Direction, internalEndpoint bool, ruleExplanation string) { if !internalEndpoint { return } - localSGName := ir.SGName(localEndpoint.Name) + localSGName := ir.SGName(*localEndpoint.Name) localSG := s.result.LookupOrCreate(localSGName) localSG.Attached = []ir.ID{ir.ID(localSGName)} rule := &ir.SGRule{ - Remote: sgRemote(&s.spec.Defs, remoteEndpoint), + Remote: sgRemote(remoteEndpoint, remoteType), Direction: direction, - Protocol: protocol, + Protocol: p, Explanation: ruleExplanation, } localSG.Add(rule) } -// generate SGs for blocked endpoints (endpoints that do not appear in Spec) -func (s *SGSynthesizer) generateSGsForBlockedResources() { - blockedResources := s.spec.ComputeBlockedResources() - for _, resource := range blockedResources { - sg := s.result.LookupOrCreate(ir.SGName(resource)) // an empty SG allows no connections - sg.Attached = []ir.ID{resource} +func sgRemote(resource *ir.NamedAddrs, t *ir.ResourceType) ir.RemoteType { + if isSGRemote(*t) { + return ir.SGName(*resource.Name) } + return resource.IPAddrs } -// convert src and dst resources to namedAddrs slices to make it more convenient to go through the addrs and add -// the rule to the relevant sg. -func updateEndpoints(s *ir.Definitions, resource ir.Resource) []*namedAddrs { - if resource.Type == ir.ResourceTypeExternal { - return []*namedAddrs{{Name: resource.Name, Addrs: resource.IPAddrs[0]}} - } - result := make([]*namedAddrs, len(resource.IPAddrs)) - for i, ip := range resource.IPAddrs { - name := resource.Name - // TODO: delete the following if statement when there will be a support in VSIs with multiple NIFs - if nifDetails, ok := s.NIFs[resource.Name]; ok { - name = nifDetails.Instance - } - result[i] = &namedAddrs{Name: name, Addrs: ip} +func connSettings(conn *ir.Connection, direction ir.Direction) (local, remote *ir.Resource, internalEndpoint, internalConn bool) { + internalSrc, internalDst, internalConn := internalConnection(conn) + local = conn.Src + remote = conn.Dst + internalEndpoint = internalSrc + if direction == ir.Inbound { + local = conn.Dst + remote = conn.Src + internalEndpoint = internalDst } - return result + return } -func sgRemote(s *ir.Definitions, resource *namedAddrs) ir.RemoteType { - if _, ok := s.Externals[resource.Name]; ok { - return resource.Addrs - } - return ir.SGName(resource.Name) +func isSGRemote(t ir.ResourceType) bool { + return t == ir.ResourceTypeInstance || t == ir.ResourceTypeNIF || t == ir.ResourceTypeVPE } -func resourceRelevantToSG(e ir.ResourceType) bool { - return e == ir.ResourceTypeNIF || e == ir.ResourceTypeExternal || e == ir.ResourceTypeVPE +// generate SGs for blocked endpoints (endpoints that do not appear in Spec) +func (s *SGSynthesizer) generateSGsForBlockedResources() { + blockedResources := append(utils.TrueKeyValues(s.spec.Defs.BlockedInstances), utils.TrueKeyValues(s.spec.Defs.BlockedVPEs)...) + ir.PrintUnspecifiedWarning(ir.WarningUnspecifiedSG, blockedResources) + for _, resource := range blockedResources { + sg := s.result.LookupOrCreate(ir.SGName(resource)) // an empty SG allows no connections + sg.Attached = []ir.ID{resource} + } } diff --git a/pkg/utils/utils.go b/pkg/utils/utils.go index acf9e3d2..a1fb8c32 100644 --- a/pkg/utils/utils.go +++ b/pkg/utils/utils.go @@ -31,3 +31,13 @@ func SortedAllInnerMapsKeys[T, K cmp.Ordered, V any](m map[K]map[T]V) []T { slices.Sort(keys) return keys } + +func TrueKeyValues[T comparable](m map[T]bool) []T { + keys := make([]T, 0) + for k, v := range m { + if v { + keys = append(keys, k) + } + } + return keys +} diff --git a/test/data/acl_nif_instance_segments/conn_spec.json b/test/data/acl_nif_instance_segments/conn_spec.json new file mode 100644 index 00000000..362acd27 --- /dev/null +++ b/test/data/acl_nif_instance_segments/conn_spec.json @@ -0,0 +1,57 @@ +{ + "segments": { + "instanceSegment": { + "type": "instance", + "items": [ + "vsi0-subnet0", + "vsi1-subnet2" + ] + }, + "nifSegment": { + "type": "nif", + "items": [ + "squatted-fastball-vacant-knoll", + "snout-given-twiddle-splinter" + ] + } + }, + "required-connections": [ + { + "src": { + "name": "instanceSegment", + "type": "segment" + }, + "dst": { + "name": "instanceSegment", + "type": "segment" + }, + "allowed-protocols": [ + { + "protocol": "UDP", + "min_destination_port": 53, + "max_destination_port": 54 + } + ] + }, + { + "src": { + "name": "nifSegment", + "type": "segment" + }, + "dst": { + "name": "nifSegment", + "type": "segment" + } + }, + { + "src": { + "name": "instanceSegment", + "type": "segment" + }, + "dst": { + "name": "nifSegment", + "type": "segment" + } + } + ] +} \ No newline at end of file diff --git a/test/data/acl_protocols/config_object.json b/test/data/acl_protocols/config_object.json deleted file mode 100644 index 7e94d3b8..00000000 --- a/test/data/acl_protocols/config_object.json +++ /dev/null @@ -1,6269 +0,0 @@ -{ - "collector_version": "0.11.0", - "provider": "ibm", - "vpcs": [ - { - "classic_access": false, - "created_at": "2024-06-25T15:40:20.000Z", - "crn": "crn:1", - "cse_source_ips": [ - { - "ip": { - "address": "10.22.215.5" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - } - }, - { - "ip": { - "address": "10.22.220.2" - }, - "zone": { - "href": "href:6", - "name": "us-south-2" - } - }, - { - "ip": { - "address": "10.249.82.12" - }, - "zone": { - "href": "href:7", - "name": "us-south-3" - } - } - ], - "default_network_acl": { - "crn": "crn:8", - "href": "href:9", - "id": "id:10", - "name": "automaker-castle-bird-worried" - }, - "default_routing_table": { - "href": "href:11", - "id": "id:12", - "name": "overtone-sputter-overspend-gorge", - "resource_type": "routing_table" - }, - "default_security_group": { - "crn": "crn:13", - "href": "href:14", - "id": "id:15", - "name": "brute-upon-angles-cubbyhole" - }, - "dns": { - "enable_hub": false, - "resolution_binding_count": 0, - "resolver": { - "servers": [ - { - "address": "161.26.0.10" - }, - { - "address": "161.26.0.11" - } - ], - "type": "system", - "configuration": "default" - } - }, - "health_reasons": null, - "health_state": "ok", - "href": "href:2", - "id": "id:3", - "name": "test-vpc1", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "vpc", - "status": "available", - "region": "us-south", - "address_prefixes": [ - { - "cidr": "10.240.80.0/20", - "created_at": "2024-06-25T15:40:39.000Z", - "has_subnets": true, - "href": "href:18", - "id": "id:19", - "is_default": false, - "name": "address-prefix-vpc-1", - "zone": { - "href": "href:6", - "name": "us-south-2" - } - }, - { - "cidr": "10.240.64.0/20", - "created_at": "2024-06-25T15:40:40.000Z", - "has_subnets": true, - "href": "href:20", - "id": "id:21", - "is_default": false, - "name": "address-prefix-vpc-0", - "zone": { - "href": "href:6", - "name": "us-south-2" - } - } - ], - "tags": [] - }, - { - "classic_access": false, - "created_at": "2024-06-25T15:40:19.000Z", - "crn": "crn:22", - "cse_source_ips": [ - { - "ip": { - "address": "10.16.238.56" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - } - }, - { - "ip": { - "address": "10.249.200.205" - }, - "zone": { - "href": "href:6", - "name": "us-south-2" - } - }, - { - "ip": { - "address": "10.249.212.88" - }, - "zone": { - "href": "href:7", - "name": "us-south-3" - } - } - ], - "default_network_acl": { - "crn": "crn:25", - "href": "href:26", - "id": "id:27", - "name": "ebullient-slacks-revert-turkey" - }, - "default_routing_table": { - "href": "href:28", - "id": "id:29", - "name": "escapade-dynamite-upstage-context", - "resource_type": "routing_table" - }, - "default_security_group": { - "crn": "crn:30", - "href": "href:31", - "id": "id:32", - "name": "basically-drank-bulk-jam" - }, - "dns": { - "enable_hub": false, - "resolution_binding_count": 0, - "resolver": { - "servers": [ - { - "address": "161.26.0.10" - }, - { - "address": "161.26.0.11" - } - ], - "type": "system", - "configuration": "default" - } - }, - "health_reasons": null, - "health_state": "ok", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "vpc", - "status": "available", - "region": "us-south", - "address_prefixes": [ - { - "cidr": "10.240.0.0/22", - "created_at": "2024-06-25T15:40:37.000Z", - "has_subnets": true, - "href": "href:33", - "id": "id:34", - "is_default": false, - "name": "address-prefix-vpc-0", - "zone": { - "href": "href:5", - "name": "us-south-1" - } - }, - { - "cidr": "10.240.4.0/22", - "created_at": "2024-06-25T15:40:38.000Z", - "has_subnets": true, - "href": "href:35", - "id": "id:36", - "is_default": false, - "name": "address-prefix-vpc-1", - "zone": { - "href": "href:5", - "name": "us-south-1" - } - }, - { - "cidr": "10.240.8.0/22", - "created_at": "2024-06-25T15:40:39.000Z", - "has_subnets": true, - "href": "href:37", - "id": "id:38", - "is_default": false, - "name": "address-prefix-vpc-2", - "zone": { - "href": "href:5", - "name": "us-south-1" - } - } - ], - "tags": [] - }, - { - "classic_access": false, - "created_at": "2024-06-25T15:40:19.000Z", - "crn": "crn:39", - "cse_source_ips": [ - { - "ip": { - "address": "10.12.125.16" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - } - }, - { - "ip": { - "address": "10.22.27.134" - }, - "zone": { - "href": "href:6", - "name": "us-south-2" - } - }, - { - "ip": { - "address": "10.22.231.90" - }, - "zone": { - "href": "href:7", - "name": "us-south-3" - } - } - ], - "default_network_acl": { - "crn": "crn:42", - "href": "href:43", - "id": "id:44", - "name": "afoot-grape-fineness-zestfully" - }, - "default_routing_table": { - "href": "href:45", - "id": "id:46", - "name": "quintuple-severity-caddie-manuals", - "resource_type": "routing_table" - }, - "default_security_group": { - "crn": "crn:47", - "href": "href:48", - "id": "id:49", - "name": "glance-cactus-unease-bankroll" - }, - "dns": { - "enable_hub": false, - "resolution_binding_count": 0, - "resolver": { - "servers": [ - { - "address": "161.26.0.10" - }, - { - "address": "161.26.0.11" - } - ], - "type": "system", - "configuration": "default" - } - }, - "health_reasons": null, - "health_state": "ok", - "href": "href:40", - "id": "id:41", - "name": "test-vpc2", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "vpc", - "status": "available", - "region": "us-south", - "address_prefixes": [ - { - "cidr": "10.240.128.0/20", - "created_at": "2024-06-25T15:40:39.000Z", - "has_subnets": true, - "href": "href:50", - "id": "id:51", - "is_default": false, - "name": "address-prefix-vpc-0", - "zone": { - "href": "href:7", - "name": "us-south-3" - } - } - ], - "tags": [] - }, - { - "classic_access": false, - "created_at": "2024-06-25T15:40:19.000Z", - "crn": "crn:52", - "cse_source_ips": [ - { - "ip": { - "address": "10.22.219.155" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - } - }, - { - "ip": { - "address": "10.12.159.11" - }, - "zone": { - "href": "href:6", - "name": "us-south-2" - } - }, - { - "ip": { - "address": "10.16.253.109" - }, - "zone": { - "href": "href:7", - "name": "us-south-3" - } - } - ], - "default_network_acl": { - "crn": "crn:55", - "href": "href:56", - "id": "id:57", - "name": "untracked-repayment-triumph-cat" - }, - "default_routing_table": { - "href": "href:58", - "id": "id:59", - "name": "probational-herring-undone-daintily", - "resource_type": "routing_table" - }, - "default_security_group": { - "crn": "crn:60", - "href": "href:61", - "id": "id:62", - "name": "repeater-upcountry-agreeing-acutely" - }, - "dns": { - "enable_hub": false, - "resolution_binding_count": 0, - "resolver": { - "servers": [ - { - "address": "161.26.0.10" - }, - { - "address": "161.26.0.11" - } - ], - "type": "system", - "configuration": "default" - } - }, - "health_reasons": null, - "health_state": "ok", - "href": "href:53", - "id": "id:54", - "name": "test-vpc3", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "vpc", - "status": "available", - "region": "us-south", - "address_prefixes": [ - { - "cidr": "10.240.192.0/20", - "created_at": "2024-06-25T15:40:38.000Z", - "has_subnets": true, - "href": "href:63", - "id": "id:64", - "is_default": false, - "name": "address-prefix-vpc-0", - "zone": { - "href": "href:7", - "name": "us-south-3" - } - } - ], - "tags": [] - } - ], - "subnets": [ - { - "available_ipv4_address_count": 249, - "created_at": "2024-06-25T15:41:47.000Z", - "crn": "crn:65", - "href": "href:66", - "id": "id:67", - "ip_version": "ipv4", - "ipv4_cidr_block": "10.240.9.0/24", - "name": "subnet5", - "network_acl": { - "crn": "crn:68", - "href": "href:69", - "id": "id:70", - "name": "acl3" - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "subnet", - "routing_table": { - "href": "href:28", - "id": "id:29", - "name": "escapade-dynamite-upstage-context", - "resource_type": "routing_table" - }, - "status": "available", - "total_ipv4_address_count": 256, - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "reserved_ips": [ - { - "address": "10.240.9.0", - "auto_delete": false, - "created_at": "2024-06-25T15:41:47.000Z", - "href": "href:71", - "id": "id:72", - "lifecycle_state": "stable", - "name": "ibm-network-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.9.1", - "auto_delete": false, - "created_at": "2024-06-25T15:41:47.000Z", - "href": "href:73", - "id": "id:74", - "lifecycle_state": "stable", - "name": "ibm-default-gateway", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.9.2", - "auto_delete": false, - "created_at": "2024-06-25T15:41:47.000Z", - "href": "href:75", - "id": "id:76", - "lifecycle_state": "stable", - "name": "ibm-dns-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.9.3", - "auto_delete": false, - "created_at": "2024-06-25T15:41:47.000Z", - "href": "href:77", - "id": "id:78", - "lifecycle_state": "stable", - "name": "ibm-reserved-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.9.4", - "auto_delete": false, - "created_at": "2024-06-25T15:42:00.000Z", - "href": "href:79", - "id": "id:80", - "lifecycle_state": "stable", - "name": "ideally-grain-bagpipe-luxuriant", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:81", - "id": "id:82", - "name": "stooped-camera-excluded-juke", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.9.5", - "auto_delete": false, - "created_at": "2024-06-25T15:42:20.000Z", - "href": "href:83", - "id": "id:84", - "lifecycle_state": "stable", - "name": "outskirts-unaligned-passivism-parchment", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:85", - "id": "id:86", - "name": "scratch-outward-raging-hunchback", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.9.255", - "auto_delete": false, - "created_at": "2024-06-25T15:41:47.000Z", - "href": "href:87", - "id": "id:88", - "lifecycle_state": "stable", - "name": "ibm-broadcast-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - } - ], - "tags": [] - }, - { - "available_ipv4_address_count": 249, - "created_at": "2024-06-25T15:41:35.000Z", - "crn": "crn:89", - "href": "href:90", - "id": "id:91", - "ip_version": "ipv4", - "ipv4_cidr_block": "10.240.5.0/24", - "name": "subnet3", - "network_acl": { - "crn": "crn:92", - "href": "href:93", - "id": "id:94", - "name": "acl2" - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "subnet", - "routing_table": { - "href": "href:28", - "id": "id:29", - "name": "escapade-dynamite-upstage-context", - "resource_type": "routing_table" - }, - "status": "available", - "total_ipv4_address_count": 256, - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "reserved_ips": [ - { - "address": "10.240.5.0", - "auto_delete": false, - "created_at": "2024-06-25T15:41:35.000Z", - "href": "href:95", - "id": "id:96", - "lifecycle_state": "stable", - "name": "ibm-network-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.5.1", - "auto_delete": false, - "created_at": "2024-06-25T15:41:35.000Z", - "href": "href:97", - "id": "id:98", - "lifecycle_state": "stable", - "name": "ibm-default-gateway", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.5.2", - "auto_delete": false, - "created_at": "2024-06-25T15:41:35.000Z", - "href": "href:99", - "id": "id:100", - "lifecycle_state": "stable", - "name": "ibm-dns-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.5.3", - "auto_delete": false, - "created_at": "2024-06-25T15:41:35.000Z", - "href": "href:101", - "id": "id:102", - "lifecycle_state": "stable", - "name": "ibm-reserved-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.5.4", - "auto_delete": false, - "created_at": "2024-06-25T15:42:00.000Z", - "href": "href:103", - "id": "id:104", - "lifecycle_state": "stable", - "name": "rising-gopher-reentry-graveness", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:105", - "id": "id:106", - "name": "icky-balsamic-outgoing-leached", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.5.5", - "auto_delete": false, - "created_at": "2024-06-25T15:42:16.000Z", - "href": "href:107", - "id": "id:108", - "lifecycle_state": "stable", - "name": "recognize-citable-exerciser-unsecured", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:109", - "id": "id:110", - "name": "squatted-fastball-vacant-knoll", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.5.255", - "auto_delete": false, - "created_at": "2024-06-25T15:41:35.000Z", - "href": "href:111", - "id": "id:112", - "lifecycle_state": "stable", - "name": "ibm-broadcast-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - } - ], - "tags": [] - }, - { - "available_ipv4_address_count": 249, - "created_at": "2024-06-25T15:41:23.000Z", - "crn": "crn:113", - "href": "href:114", - "id": "id:115", - "ip_version": "ipv4", - "ipv4_cidr_block": "10.240.0.0/24", - "name": "subnet0", - "network_acl": { - "crn": "crn:116", - "href": "href:117", - "id": "id:118", - "name": "acl1" - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "subnet", - "routing_table": { - "href": "href:28", - "id": "id:29", - "name": "escapade-dynamite-upstage-context", - "resource_type": "routing_table" - }, - "status": "available", - "total_ipv4_address_count": 256, - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "reserved_ips": [ - { - "address": "10.240.0.0", - "auto_delete": false, - "created_at": "2024-06-25T15:41:23.000Z", - "href": "href:119", - "id": "id:120", - "lifecycle_state": "stable", - "name": "ibm-network-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.0.1", - "auto_delete": false, - "created_at": "2024-06-25T15:41:23.000Z", - "href": "href:121", - "id": "id:122", - "lifecycle_state": "stable", - "name": "ibm-default-gateway", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.0.2", - "auto_delete": false, - "created_at": "2024-06-25T15:41:23.000Z", - "href": "href:123", - "id": "id:124", - "lifecycle_state": "stable", - "name": "ibm-dns-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.0.3", - "auto_delete": false, - "created_at": "2024-06-25T15:41:23.000Z", - "href": "href:125", - "id": "id:126", - "lifecycle_state": "stable", - "name": "ibm-reserved-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.0.4", - "auto_delete": false, - "created_at": "2024-06-25T15:42:08.000Z", - "href": "href:127", - "id": "id:128", - "lifecycle_state": "stable", - "name": "pundit-tight-arbitrate-grace", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:129", - "id": "id:130", - "name": "writer-crusher-unsuited-cash", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.0.5", - "auto_delete": false, - "created_at": "2024-06-25T15:42:39.000Z", - "href": "href:131", - "id": "id:132", - "lifecycle_state": "stable", - "name": "relatable-antiques-maturing-brulee", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:133", - "id": "id:134", - "name": "consonant-imperial-simply-ceramics", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.0.255", - "auto_delete": false, - "created_at": "2024-06-25T15:41:23.000Z", - "href": "href:135", - "id": "id:136", - "lifecycle_state": "stable", - "name": "ibm-broadcast-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - } - ], - "tags": [] - }, - { - "available_ipv4_address_count": 250, - "created_at": "2024-06-25T15:41:20.000Z", - "crn": "crn:137", - "href": "href:138", - "id": "id:139", - "ip_version": "ipv4", - "ipv4_cidr_block": "10.240.80.0/24", - "name": "subnet11", - "network_acl": { - "crn": "crn:140", - "href": "href:141", - "id": "id:142", - "name": "acl11" - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "subnet", - "routing_table": { - "href": "href:11", - "id": "id:12", - "name": "overtone-sputter-overspend-gorge", - "resource_type": "routing_table" - }, - "status": "available", - "total_ipv4_address_count": 256, - "vpc": { - "crn": "crn:1", - "href": "href:2", - "id": "id:3", - "name": "test-vpc1", - "resource_type": "vpc" - }, - "zone": { - "href": "href:6", - "name": "us-south-2" - }, - "reserved_ips": [ - { - "address": "10.240.80.0", - "auto_delete": false, - "created_at": "2024-06-25T15:41:20.000Z", - "href": "href:143", - "id": "id:144", - "lifecycle_state": "stable", - "name": "ibm-network-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.80.1", - "auto_delete": false, - "created_at": "2024-06-25T15:41:20.000Z", - "href": "href:145", - "id": "id:146", - "lifecycle_state": "stable", - "name": "ibm-default-gateway", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.80.2", - "auto_delete": false, - "created_at": "2024-06-25T15:41:20.000Z", - "href": "href:147", - "id": "id:148", - "lifecycle_state": "stable", - "name": "ibm-dns-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.80.3", - "auto_delete": false, - "created_at": "2024-06-25T15:41:20.000Z", - "href": "href:149", - "id": "id:150", - "lifecycle_state": "stable", - "name": "ibm-reserved-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.80.4", - "auto_delete": false, - "created_at": "2024-06-25T15:41:40.000Z", - "href": "href:151", - "id": "id:152", - "lifecycle_state": "stable", - "name": "childlike-publish-retainer-movie", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:153", - "id": "id:154", - "name": "stride-woken-backsight-dynastic", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.80.255", - "auto_delete": false, - "created_at": "2024-06-25T15:41:20.000Z", - "href": "href:155", - "id": "id:156", - "lifecycle_state": "stable", - "name": "ibm-broadcast-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - } - ], - "tags": [] - }, - { - "available_ipv4_address_count": 249, - "created_at": "2024-06-25T15:41:08.000Z", - "crn": "crn:157", - "href": "href:158", - "id": "id:159", - "ip_version": "ipv4", - "ipv4_cidr_block": "10.240.4.0/24", - "name": "subnet2", - "network_acl": { - "crn": "crn:92", - "href": "href:93", - "id": "id:94", - "name": "acl2" - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "subnet", - "routing_table": { - "href": "href:28", - "id": "id:29", - "name": "escapade-dynamite-upstage-context", - "resource_type": "routing_table" - }, - "status": "available", - "total_ipv4_address_count": 256, - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "reserved_ips": [ - { - "address": "10.240.4.0", - "auto_delete": false, - "created_at": "2024-06-25T15:41:08.000Z", - "href": "href:160", - "id": "id:161", - "lifecycle_state": "stable", - "name": "ibm-network-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.4.1", - "auto_delete": false, - "created_at": "2024-06-25T15:41:08.000Z", - "href": "href:162", - "id": "id:163", - "lifecycle_state": "stable", - "name": "ibm-default-gateway", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.4.2", - "auto_delete": false, - "created_at": "2024-06-25T15:41:08.000Z", - "href": "href:164", - "id": "id:165", - "lifecycle_state": "stable", - "name": "ibm-dns-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.4.3", - "auto_delete": false, - "created_at": "2024-06-25T15:41:08.000Z", - "href": "href:166", - "id": "id:167", - "lifecycle_state": "stable", - "name": "ibm-reserved-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.4.4", - "auto_delete": false, - "created_at": "2024-06-25T15:42:21.000Z", - "href": "href:168", - "id": "id:169", - "lifecycle_state": "stable", - "name": "stood-sitcom-whoops-hurled", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:170", - "id": "id:171", - "name": "graveyard-handmade-ransack-acquaint", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.4.5", - "auto_delete": false, - "created_at": "2024-06-25T15:42:22.000Z", - "href": "href:172", - "id": "id:173", - "lifecycle_state": "stable", - "name": "bark-gatherer-rope-unrivaled", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:174", - "id": "id:175", - "name": "quantum-handbag-dimmed-reassign", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.4.255", - "auto_delete": false, - "created_at": "2024-06-25T15:41:08.000Z", - "href": "href:176", - "id": "id:177", - "lifecycle_state": "stable", - "name": "ibm-broadcast-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - } - ], - "tags": [] - }, - { - "available_ipv4_address_count": 250, - "created_at": "2024-06-25T15:41:08.000Z", - "crn": "crn:178", - "href": "href:179", - "id": "id:180", - "ip_version": "ipv4", - "ipv4_cidr_block": "10.240.64.0/24", - "name": "subnet10", - "network_acl": { - "crn": "crn:140", - "href": "href:141", - "id": "id:142", - "name": "acl11" - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "subnet", - "routing_table": { - "href": "href:11", - "id": "id:12", - "name": "overtone-sputter-overspend-gorge", - "resource_type": "routing_table" - }, - "status": "available", - "total_ipv4_address_count": 256, - "vpc": { - "crn": "crn:1", - "href": "href:2", - "id": "id:3", - "name": "test-vpc1", - "resource_type": "vpc" - }, - "zone": { - "href": "href:6", - "name": "us-south-2" - }, - "reserved_ips": [ - { - "address": "10.240.64.0", - "auto_delete": false, - "created_at": "2024-06-25T15:41:08.000Z", - "href": "href:181", - "id": "id:182", - "lifecycle_state": "stable", - "name": "ibm-network-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.64.1", - "auto_delete": false, - "created_at": "2024-06-25T15:41:08.000Z", - "href": "href:183", - "id": "id:184", - "lifecycle_state": "stable", - "name": "ibm-default-gateway", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.64.2", - "auto_delete": false, - "created_at": "2024-06-25T15:41:08.000Z", - "href": "href:185", - "id": "id:186", - "lifecycle_state": "stable", - "name": "ibm-dns-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.64.3", - "auto_delete": false, - "created_at": "2024-06-25T15:41:08.000Z", - "href": "href:187", - "id": "id:188", - "lifecycle_state": "stable", - "name": "ibm-reserved-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.64.4", - "auto_delete": false, - "created_at": "2024-06-25T15:41:36.000Z", - "href": "href:189", - "id": "id:190", - "lifecycle_state": "stable", - "name": "starry-smasher-ladle-dioxide", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:191", - "id": "id:192", - "name": "enlace-prominent-overhear-perfume", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.64.255", - "auto_delete": false, - "created_at": "2024-06-25T15:41:08.000Z", - "href": "href:193", - "id": "id:194", - "lifecycle_state": "stable", - "name": "ibm-broadcast-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - } - ], - "tags": [] - }, - { - "available_ipv4_address_count": 248, - "created_at": "2024-06-25T15:40:57.000Z", - "crn": "crn:195", - "href": "href:196", - "id": "id:197", - "ip_version": "ipv4", - "ipv4_cidr_block": "10.240.128.0/24", - "name": "subnet20", - "network_acl": { - "crn": "crn:198", - "href": "href:199", - "id": "id:200", - "name": "acl21" - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "subnet", - "routing_table": { - "href": "href:45", - "id": "id:46", - "name": "quintuple-severity-caddie-manuals", - "resource_type": "routing_table" - }, - "status": "available", - "total_ipv4_address_count": 256, - "vpc": { - "crn": "crn:39", - "href": "href:40", - "id": "id:41", - "name": "test-vpc2", - "resource_type": "vpc" - }, - "zone": { - "href": "href:7", - "name": "us-south-3" - }, - "reserved_ips": [ - { - "address": "10.240.128.0", - "auto_delete": false, - "created_at": "2024-06-25T15:40:57.000Z", - "href": "href:201", - "id": "id:202", - "lifecycle_state": "stable", - "name": "ibm-network-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.128.1", - "auto_delete": false, - "created_at": "2024-06-25T15:40:57.000Z", - "href": "href:203", - "id": "id:204", - "lifecycle_state": "stable", - "name": "ibm-default-gateway", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.128.2", - "auto_delete": false, - "created_at": "2024-06-25T15:40:57.000Z", - "href": "href:205", - "id": "id:206", - "lifecycle_state": "stable", - "name": "ibm-dns-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.128.3", - "auto_delete": false, - "created_at": "2024-06-25T15:40:57.000Z", - "href": "href:207", - "id": "id:208", - "lifecycle_state": "stable", - "name": "ibm-reserved-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.128.4", - "auto_delete": false, - "created_at": "2024-06-25T15:41:21.000Z", - "href": "href:209", - "id": "id:210", - "lifecycle_state": "stable", - "name": "unmixed-qualify-prescribe-railcar", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:211", - "id": "id:212", - "name": "tavern-far-imprudent-labored", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.128.5", - "auto_delete": false, - "created_at": "2024-06-25T15:41:21.000Z", - "href": "href:213", - "id": "id:214", - "lifecycle_state": "stable", - "name": "customs-recollect-drippy-primate", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:215", - "id": "id:216", - "name": "ought-football-shorter-aviator", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.128.6", - "auto_delete": false, - "created_at": "2024-06-25T15:41:24.000Z", - "href": "href:217", - "id": "id:218", - "lifecycle_state": "stable", - "name": "uniquely-shelter-gracious-sudden", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:219", - "id": "id:220", - "name": "clicker-grumbly-outskirts-greatly", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.128.255", - "auto_delete": false, - "created_at": "2024-06-25T15:40:57.000Z", - "href": "href:221", - "id": "id:222", - "lifecycle_state": "stable", - "name": "ibm-broadcast-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - } - ], - "tags": [] - }, - { - "available_ipv4_address_count": 249, - "created_at": "2024-06-25T15:40:56.000Z", - "crn": "crn:223", - "href": "href:224", - "id": "id:225", - "ip_version": "ipv4", - "ipv4_cidr_block": "10.240.1.0/24", - "name": "subnet1", - "network_acl": { - "crn": "crn:116", - "href": "href:117", - "id": "id:118", - "name": "acl1" - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "subnet", - "routing_table": { - "href": "href:28", - "id": "id:29", - "name": "escapade-dynamite-upstage-context", - "resource_type": "routing_table" - }, - "status": "available", - "total_ipv4_address_count": 256, - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "reserved_ips": [ - { - "address": "10.240.1.0", - "auto_delete": false, - "created_at": "2024-06-25T15:40:56.000Z", - "href": "href:226", - "id": "id:227", - "lifecycle_state": "stable", - "name": "ibm-network-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.1.1", - "auto_delete": false, - "created_at": "2024-06-25T15:40:56.000Z", - "href": "href:228", - "id": "id:229", - "lifecycle_state": "stable", - "name": "ibm-default-gateway", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.1.2", - "auto_delete": false, - "created_at": "2024-06-25T15:40:56.000Z", - "href": "href:230", - "id": "id:231", - "lifecycle_state": "stable", - "name": "ibm-dns-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.1.3", - "auto_delete": false, - "created_at": "2024-06-25T15:40:56.000Z", - "href": "href:232", - "id": "id:233", - "lifecycle_state": "stable", - "name": "ibm-reserved-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.1.4", - "auto_delete": false, - "created_at": "2024-06-25T15:42:00.000Z", - "href": "href:234", - "id": "id:235", - "lifecycle_state": "stable", - "name": "excluded-unfair-jailbird-foil", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:236", - "id": "id:237", - "name": "hankie-excitable-outclass-unmanaged", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.1.5", - "auto_delete": false, - "created_at": "2024-06-25T15:42:40.000Z", - "href": "href:238", - "id": "id:239", - "lifecycle_state": "stable", - "name": "affected-johnniecake-monorail-ungraded", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:240", - "id": "id:241", - "name": "scale-clambake-endearing-abridged", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.1.255", - "auto_delete": false, - "created_at": "2024-06-25T15:40:56.000Z", - "href": "href:242", - "id": "id:243", - "lifecycle_state": "stable", - "name": "ibm-broadcast-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - } - ], - "tags": [] - }, - { - "available_ipv4_address_count": 250, - "created_at": "2024-06-25T15:40:48.000Z", - "crn": "crn:244", - "href": "href:245", - "id": "id:246", - "ip_version": "ipv4", - "ipv4_cidr_block": "10.240.192.0/24", - "name": "subnet30", - "network_acl": { - "crn": "crn:247", - "href": "href:248", - "id": "id:249", - "name": "acl31" - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "subnet", - "routing_table": { - "href": "href:58", - "id": "id:59", - "name": "probational-herring-undone-daintily", - "resource_type": "routing_table" - }, - "status": "available", - "total_ipv4_address_count": 256, - "vpc": { - "crn": "crn:52", - "href": "href:53", - "id": "id:54", - "name": "test-vpc3", - "resource_type": "vpc" - }, - "zone": { - "href": "href:7", - "name": "us-south-3" - }, - "reserved_ips": [ - { - "address": "10.240.192.0", - "auto_delete": false, - "created_at": "2024-06-25T15:40:48.000Z", - "href": "href:250", - "id": "id:251", - "lifecycle_state": "stable", - "name": "ibm-network-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.192.1", - "auto_delete": false, - "created_at": "2024-06-25T15:40:48.000Z", - "href": "href:252", - "id": "id:253", - "lifecycle_state": "stable", - "name": "ibm-default-gateway", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.192.2", - "auto_delete": false, - "created_at": "2024-06-25T15:40:48.000Z", - "href": "href:254", - "id": "id:255", - "lifecycle_state": "stable", - "name": "ibm-dns-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.192.3", - "auto_delete": false, - "created_at": "2024-06-25T15:40:48.000Z", - "href": "href:256", - "id": "id:257", - "lifecycle_state": "stable", - "name": "ibm-reserved-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.192.4", - "auto_delete": false, - "created_at": "2024-06-25T15:41:01.000Z", - "href": "href:258", - "id": "id:259", - "lifecycle_state": "stable", - "name": "legacy-shore-molecule-barometer", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:260", - "id": "id:261", - "name": "snout-given-twiddle-splinter", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.192.255", - "auto_delete": false, - "created_at": "2024-06-25T15:40:48.000Z", - "href": "href:262", - "id": "id:263", - "lifecycle_state": "stable", - "name": "ibm-broadcast-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - } - ], - "tags": [] - }, - { - "available_ipv4_address_count": 249, - "created_at": "2024-06-25T15:40:44.000Z", - "crn": "crn:264", - "href": "href:265", - "id": "id:266", - "ip_version": "ipv4", - "ipv4_cidr_block": "10.240.8.0/24", - "name": "subnet4", - "network_acl": { - "crn": "crn:68", - "href": "href:69", - "id": "id:70", - "name": "acl3" - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "subnet", - "routing_table": { - "href": "href:28", - "id": "id:29", - "name": "escapade-dynamite-upstage-context", - "resource_type": "routing_table" - }, - "status": "available", - "total_ipv4_address_count": 256, - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "reserved_ips": [ - { - "address": "10.240.8.0", - "auto_delete": false, - "created_at": "2024-06-25T15:40:44.000Z", - "href": "href:267", - "id": "id:268", - "lifecycle_state": "stable", - "name": "ibm-network-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.8.1", - "auto_delete": false, - "created_at": "2024-06-25T15:40:44.000Z", - "href": "href:269", - "id": "id:270", - "lifecycle_state": "stable", - "name": "ibm-default-gateway", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.8.2", - "auto_delete": false, - "created_at": "2024-06-25T15:40:44.000Z", - "href": "href:271", - "id": "id:272", - "lifecycle_state": "stable", - "name": "ibm-dns-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.8.3", - "auto_delete": false, - "created_at": "2024-06-25T15:40:44.000Z", - "href": "href:273", - "id": "id:274", - "lifecycle_state": "stable", - "name": "ibm-reserved-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.8.4", - "auto_delete": false, - "created_at": "2024-06-25T15:42:00.000Z", - "href": "href:275", - "id": "id:276", - "lifecycle_state": "stable", - "name": "bagged-posture-glaring-cojoined", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:277", - "id": "id:278", - "name": "bullring-ransack-feint-cheer", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.8.5", - "auto_delete": false, - "created_at": "2024-06-25T15:42:16.000Z", - "href": "href:279", - "id": "id:280", - "lifecycle_state": "stable", - "name": "frighten-mystified-freeway-hurtling", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:281", - "id": "id:282", - "name": "speak-princess-washcloth-companion", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.8.255", - "auto_delete": false, - "created_at": "2024-06-25T15:40:44.000Z", - "href": "href:283", - "id": "id:284", - "lifecycle_state": "stable", - "name": "ibm-broadcast-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - } - ], - "tags": [] - } - ], - "public_gateways": [], - "floating_ips": [ - { - "address": "52.118.151.238", - "created_at": "2024-06-25T15:43:30.000Z", - "crn": "crn:285", - "href": "href:286", - "id": "id:287", - "name": "fip-0-subnet0", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "status": "available", - "target": { - "href": "href:129", - "id": "id:130", - "name": "writer-crusher-unsuited-cash", - "primary_ip": { - "address": "10.240.0.4", - "href": "href:127", - "id": "id:128", - "name": "pundit-tight-arbitrate-grace", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "tags": [] - }, - { - "address": "150.239.167.146", - "created_at": "2024-06-25T15:41:59.000Z", - "crn": "crn:288", - "href": "href:289", - "id": "id:290", - "name": "fip-0-subnet10", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "status": "available", - "target": { - "href": "href:191", - "id": "id:192", - "name": "enlace-prominent-overhear-perfume", - "primary_ip": { - "address": "10.240.64.4", - "href": "href:189", - "id": "id:190", - "name": "starry-smasher-ladle-dioxide", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface" - }, - "zone": { - "href": "href:6", - "name": "us-south-2" - }, - "tags": [] - }, - { - "address": "169.48.95.165", - "created_at": "2024-06-25T15:41:50.000Z", - "crn": "crn:291", - "href": "href:292", - "id": "id:293", - "name": "fip-0-subnet20", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "status": "available", - "target": { - "href": "href:219", - "id": "id:220", - "name": "clicker-grumbly-outskirts-greatly", - "primary_ip": { - "address": "10.240.128.6", - "href": "href:217", - "id": "id:218", - "name": "uniquely-shelter-gracious-sudden", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface" - }, - "zone": { - "href": "href:7", - "name": "us-south-3" - }, - "tags": [] - }, - { - "address": "52.118.100.239", - "created_at": "2024-06-25T15:41:33.000Z", - "crn": "crn:294", - "href": "href:295", - "id": "id:296", - "name": "fip-0-subnet30", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "status": "available", - "target": { - "href": "href:260", - "id": "id:261", - "name": "snout-given-twiddle-splinter", - "primary_ip": { - "address": "10.240.192.4", - "href": "href:258", - "id": "id:259", - "name": "legacy-shore-molecule-barometer", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface" - }, - "zone": { - "href": "href:7", - "name": "us-south-3" - }, - "tags": [] - } - ], - "network_acls": [ - { - "created_at": "2024-06-25T15:40:41.000Z", - "crn": "crn:140", - "href": "href:141", - "id": "id:142", - "name": "acl11", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "action": "deny", - "before": { - "href": "href:299", - "id": "id:300", - "name": "acl11-out-2" - }, - "created_at": "2024-06-25T15:40:42.000Z", - "destination": "10.240.4.0/24", - "direction": "outbound", - "href": "href:297", - "id": "id:298", - "ip_version": "ipv4", - "name": "acl11-out-1", - "source": "0.0.0.0/0", - "protocol": "all" - }, - { - "action": "allow", - "before": { - "href": "href:301", - "id": "id:302", - "name": "acl11-in-1" - }, - "created_at": "2024-06-25T15:40:43.000Z", - "destination": "0.0.0.0/0", - "direction": "outbound", - "href": "href:299", - "id": "id:300", - "ip_version": "ipv4", - "name": "acl11-out-2", - "source": "0.0.0.0/0", - "protocol": "all" - }, - { - "action": "allow", - "created_at": "2024-06-25T15:40:43.000Z", - "destination": "0.0.0.0/0", - "direction": "inbound", - "href": "href:301", - "id": "id:302", - "ip_version": "ipv4", - "name": "acl11-in-1", - "source": "0.0.0.0/0", - "protocol": "all" - } - ], - "subnets": [ - { - "crn": "crn:137", - "href": "href:138", - "id": "id:139", - "name": "subnet11", - "resource_type": "subnet" - }, - { - "crn": "crn:178", - "href": "href:179", - "id": "id:180", - "name": "subnet10", - "resource_type": "subnet" - } - ], - "vpc": { - "crn": "crn:1", - "href": "href:2", - "id": "id:3", - "name": "test-vpc1", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:40.000Z", - "crn": "crn:247", - "href": "href:248", - "id": "id:249", - "name": "acl31", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "action": "allow", - "before": { - "href": "href:305", - "id": "id:306", - "name": "acl31-in-1" - }, - "created_at": "2024-06-25T15:40:41.000Z", - "destination": "0.0.0.0/0", - "direction": "outbound", - "href": "href:303", - "id": "id:304", - "ip_version": "ipv4", - "name": "acl31-out-1", - "source": "0.0.0.0/0", - "protocol": "all" - }, - { - "action": "allow", - "created_at": "2024-06-25T15:40:41.000Z", - "destination": "0.0.0.0/0", - "direction": "inbound", - "href": "href:305", - "id": "id:306", - "ip_version": "ipv4", - "name": "acl31-in-1", - "source": "0.0.0.0/0", - "protocol": "all" - } - ], - "subnets": [ - { - "crn": "crn:244", - "href": "href:245", - "id": "id:246", - "name": "subnet30", - "resource_type": "subnet" - } - ], - "vpc": { - "crn": "crn:52", - "href": "href:53", - "id": "id:54", - "name": "test-vpc3", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:40.000Z", - "crn": "crn:198", - "href": "href:199", - "id": "id:200", - "name": "acl21", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "action": "allow", - "before": { - "href": "href:309", - "id": "id:310", - "name": "acl21-in-1" - }, - "created_at": "2024-06-25T15:40:41.000Z", - "destination": "0.0.0.0/0", - "direction": "outbound", - "href": "href:307", - "id": "id:308", - "ip_version": "ipv4", - "name": "acl21-out-1", - "source": "0.0.0.0/0", - "protocol": "all" - }, - { - "action": "allow", - "created_at": "2024-06-25T15:40:42.000Z", - "destination": "0.0.0.0/0", - "direction": "inbound", - "href": "href:309", - "id": "id:310", - "ip_version": "ipv4", - "name": "acl21-in-1", - "source": "0.0.0.0/0", - "protocol": "all" - } - ], - "subnets": [ - { - "crn": "crn:195", - "href": "href:196", - "id": "id:197", - "name": "subnet20", - "resource_type": "subnet" - } - ], - "vpc": { - "crn": "crn:39", - "href": "href:40", - "id": "id:41", - "name": "test-vpc2", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:38.000Z", - "crn": "crn:92", - "href": "href:93", - "id": "id:94", - "name": "acl2", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "action": "allow", - "before": { - "href": "href:313", - "id": "id:314", - "name": "acl1-in-1" - }, - "created_at": "2024-06-25T15:40:38.000Z", - "destination": "0.0.0.0/0", - "direction": "outbound", - "href": "href:311", - "id": "id:312", - "ip_version": "ipv4", - "name": "acl1-out-1", - "source": "0.0.0.0/0", - "protocol": "all" - }, - { - "action": "allow", - "created_at": "2024-06-25T15:40:39.000Z", - "destination": "0.0.0.0/0", - "direction": "inbound", - "href": "href:313", - "id": "id:314", - "ip_version": "ipv4", - "name": "acl1-in-1", - "source": "0.0.0.0/0", - "protocol": "all" - } - ], - "subnets": [ - { - "crn": "crn:89", - "href": "href:90", - "id": "id:91", - "name": "subnet3", - "resource_type": "subnet" - }, - { - "crn": "crn:157", - "href": "href:158", - "id": "id:159", - "name": "subnet2", - "resource_type": "subnet" - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:37.000Z", - "crn": "crn:68", - "href": "href:69", - "id": "id:70", - "name": "acl3", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "action": "allow", - "before": { - "href": "href:317", - "id": "id:318", - "name": "acl1-in-1" - }, - "created_at": "2024-06-25T15:40:38.000Z", - "destination": "0.0.0.0/0", - "direction": "outbound", - "href": "href:315", - "id": "id:316", - "ip_version": "ipv4", - "name": "acl1-out-1", - "source": "0.0.0.0/0", - "protocol": "all" - }, - { - "action": "allow", - "created_at": "2024-06-25T15:40:38.000Z", - "destination": "0.0.0.0/0", - "direction": "inbound", - "href": "href:317", - "id": "id:318", - "ip_version": "ipv4", - "name": "acl1-in-1", - "source": "0.0.0.0/0", - "protocol": "all" - } - ], - "subnets": [ - { - "crn": "crn:65", - "href": "href:66", - "id": "id:67", - "name": "subnet5", - "resource_type": "subnet" - }, - { - "crn": "crn:264", - "href": "href:265", - "id": "id:266", - "name": "subnet4", - "resource_type": "subnet" - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:37.000Z", - "crn": "crn:116", - "href": "href:117", - "id": "id:118", - "name": "acl1", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "action": "allow", - "before": { - "href": "href:321", - "id": "id:322", - "name": "acl1-in-1" - }, - "created_at": "2024-06-25T15:40:38.000Z", - "destination": "0.0.0.0/0", - "direction": "outbound", - "href": "href:319", - "id": "id:320", - "ip_version": "ipv4", - "name": "acl1-out-1", - "source": "0.0.0.0/0", - "protocol": "all" - }, - { - "action": "allow", - "created_at": "2024-06-25T15:40:38.000Z", - "destination": "0.0.0.0/0", - "direction": "inbound", - "href": "href:321", - "id": "id:322", - "ip_version": "ipv4", - "name": "acl1-in-1", - "source": "0.0.0.0/0", - "protocol": "all" - } - ], - "subnets": [ - { - "crn": "crn:113", - "href": "href:114", - "id": "id:115", - "name": "subnet0", - "resource_type": "subnet" - }, - { - "crn": "crn:223", - "href": "href:224", - "id": "id:225", - "name": "subnet1", - "resource_type": "subnet" - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:20.000Z", - "crn": "crn:8", - "href": "href:9", - "id": "id:10", - "name": "automaker-castle-bird-worried", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "action": "allow", - "before": { - "href": "href:325", - "id": "id:326", - "name": "allow-outbound" - }, - "created_at": "2024-06-25T15:40:20.000Z", - "destination": "0.0.0.0/0", - "direction": "inbound", - "href": "href:323", - "id": "id:324", - "ip_version": "ipv4", - "name": "allow-inbound", - "source": "0.0.0.0/0", - "protocol": "all" - }, - { - "action": "allow", - "created_at": "2024-06-25T15:40:20.000Z", - "destination": "0.0.0.0/0", - "direction": "outbound", - "href": "href:325", - "id": "id:326", - "ip_version": "ipv4", - "name": "allow-outbound", - "source": "0.0.0.0/0", - "protocol": "all" - } - ], - "subnets": [], - "vpc": { - "crn": "crn:1", - "href": "href:2", - "id": "id:3", - "name": "test-vpc1", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:19.000Z", - "crn": "crn:42", - "href": "href:43", - "id": "id:44", - "name": "afoot-grape-fineness-zestfully", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "action": "allow", - "before": { - "href": "href:329", - "id": "id:330", - "name": "allow-outbound" - }, - "created_at": "2024-06-25T15:40:19.000Z", - "destination": "0.0.0.0/0", - "direction": "inbound", - "href": "href:327", - "id": "id:328", - "ip_version": "ipv4", - "name": "allow-inbound", - "source": "0.0.0.0/0", - "protocol": "all" - }, - { - "action": "allow", - "created_at": "2024-06-25T15:40:19.000Z", - "destination": "0.0.0.0/0", - "direction": "outbound", - "href": "href:329", - "id": "id:330", - "ip_version": "ipv4", - "name": "allow-outbound", - "source": "0.0.0.0/0", - "protocol": "all" - } - ], - "subnets": [], - "vpc": { - "crn": "crn:39", - "href": "href:40", - "id": "id:41", - "name": "test-vpc2", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:19.000Z", - "crn": "crn:25", - "href": "href:26", - "id": "id:27", - "name": "ebullient-slacks-revert-turkey", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "action": "allow", - "before": { - "href": "href:333", - "id": "id:334", - "name": "allow-outbound" - }, - "created_at": "2024-06-25T15:40:19.000Z", - "destination": "0.0.0.0/0", - "direction": "inbound", - "href": "href:331", - "id": "id:332", - "ip_version": "ipv4", - "name": "allow-inbound", - "source": "0.0.0.0/0", - "protocol": "all" - }, - { - "action": "allow", - "created_at": "2024-06-25T15:40:19.000Z", - "destination": "0.0.0.0/0", - "direction": "outbound", - "href": "href:333", - "id": "id:334", - "ip_version": "ipv4", - "name": "allow-outbound", - "source": "0.0.0.0/0", - "protocol": "all" - } - ], - "subnets": [], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:19.000Z", - "crn": "crn:55", - "href": "href:56", - "id": "id:57", - "name": "untracked-repayment-triumph-cat", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "action": "allow", - "before": { - "href": "href:337", - "id": "id:338", - "name": "allow-outbound" - }, - "created_at": "2024-06-25T15:40:19.000Z", - "destination": "0.0.0.0/0", - "direction": "inbound", - "href": "href:335", - "id": "id:336", - "ip_version": "ipv4", - "name": "allow-inbound", - "source": "0.0.0.0/0", - "protocol": "all" - }, - { - "action": "allow", - "created_at": "2024-06-25T15:40:19.000Z", - "destination": "0.0.0.0/0", - "direction": "outbound", - "href": "href:337", - "id": "id:338", - "ip_version": "ipv4", - "name": "allow-outbound", - "source": "0.0.0.0/0", - "protocol": "all" - } - ], - "subnets": [], - "vpc": { - "crn": "crn:52", - "href": "href:53", - "id": "id:54", - "name": "test-vpc3", - "resource_type": "vpc" - }, - "tags": [] - } - ], - "security_groups": [ - { - "created_at": "2024-06-25T15:40:40.000Z", - "crn": "crn:339", - "href": "href:340", - "id": "id:341", - "name": "sg21", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "direction": "outbound", - "href": "href:342", - "id": "id:343", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "cidr_block": "0.0.0.0/0" - }, - "protocol": "all" - }, - { - "direction": "inbound", - "href": "href:344", - "id": "id:345", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "cidr_block": "0.0.0.0/0" - }, - "protocol": "all" - } - ], - "targets": [ - { - "href": "href:211", - "id": "id:212", - "name": "tavern-far-imprudent-labored", - "resource_type": "network_interface" - }, - { - "href": "href:215", - "id": "id:216", - "name": "ought-football-shorter-aviator", - "resource_type": "network_interface" - }, - { - "href": "href:219", - "id": "id:220", - "name": "clicker-grumbly-outskirts-greatly", - "resource_type": "network_interface" - } - ], - "vpc": { - "crn": "crn:39", - "href": "href:40", - "id": "id:41", - "name": "test-vpc2", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:40.000Z", - "crn": "crn:346", - "href": "href:347", - "id": "id:348", - "name": "sg31", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "direction": "outbound", - "href": "href:349", - "id": "id:350", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "cidr_block": "0.0.0.0/0" - }, - "protocol": "all" - }, - { - "direction": "inbound", - "href": "href:351", - "id": "id:352", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "cidr_block": "0.0.0.0/0" - }, - "protocol": "all" - } - ], - "targets": [ - { - "href": "href:260", - "id": "id:261", - "name": "snout-given-twiddle-splinter", - "resource_type": "network_interface" - } - ], - "vpc": { - "crn": "crn:52", - "href": "href:53", - "id": "id:54", - "name": "test-vpc3", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:40.000Z", - "crn": "crn:353", - "href": "href:354", - "id": "id:355", - "name": "sg11", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "direction": "outbound", - "href": "href:356", - "id": "id:357", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "cidr_block": "0.0.0.0/0" - }, - "protocol": "all" - }, - { - "direction": "inbound", - "href": "href:358", - "id": "id:359", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "cidr_block": "0.0.0.0/0" - }, - "protocol": "all" - } - ], - "targets": [ - { - "href": "href:191", - "id": "id:192", - "name": "enlace-prominent-overhear-perfume", - "resource_type": "network_interface" - }, - { - "href": "href:153", - "id": "id:154", - "name": "stride-woken-backsight-dynastic", - "resource_type": "network_interface" - } - ], - "vpc": { - "crn": "crn:1", - "href": "href:2", - "id": "id:3", - "name": "test-vpc1", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:37.000Z", - "crn": "crn:360", - "href": "href:361", - "id": "id:362", - "name": "sg1", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "direction": "inbound", - "href": "href:363", - "id": "id:364", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "cidr_block": "0.0.0.0/0" - }, - "protocol": "all" - }, - { - "direction": "outbound", - "href": "href:365", - "id": "id:366", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "cidr_block": "0.0.0.0/0" - }, - "protocol": "all" - } - ], - "targets": [ - { - "href": "href:105", - "id": "id:106", - "name": "icky-balsamic-outgoing-leached", - "resource_type": "network_interface" - }, - { - "href": "href:236", - "id": "id:237", - "name": "hankie-excitable-outclass-unmanaged", - "resource_type": "network_interface" - }, - { - "href": "href:277", - "id": "id:278", - "name": "bullring-ransack-feint-cheer", - "resource_type": "network_interface" - }, - { - "href": "href:81", - "id": "id:82", - "name": "stooped-camera-excluded-juke", - "resource_type": "network_interface" - }, - { - "href": "href:129", - "id": "id:130", - "name": "writer-crusher-unsuited-cash", - "resource_type": "network_interface" - }, - { - "href": "href:281", - "id": "id:282", - "name": "speak-princess-washcloth-companion", - "resource_type": "network_interface" - }, - { - "href": "href:109", - "id": "id:110", - "name": "squatted-fastball-vacant-knoll", - "resource_type": "network_interface" - }, - { - "href": "href:85", - "id": "id:86", - "name": "scratch-outward-raging-hunchback", - "resource_type": "network_interface" - }, - { - "href": "href:170", - "id": "id:171", - "name": "graveyard-handmade-ransack-acquaint", - "resource_type": "network_interface" - }, - { - "href": "href:174", - "id": "id:175", - "name": "quantum-handbag-dimmed-reassign", - "resource_type": "network_interface" - }, - { - "href": "href:133", - "id": "id:134", - "name": "consonant-imperial-simply-ceramics", - "resource_type": "network_interface" - }, - { - "href": "href:240", - "id": "id:241", - "name": "scale-clambake-endearing-abridged", - "resource_type": "network_interface" - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:20.000Z", - "crn": "crn:13", - "href": "href:14", - "id": "id:15", - "name": "brute-upon-angles-cubbyhole", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "direction": "outbound", - "href": "href:367", - "id": "id:368", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "cidr_block": "0.0.0.0/0" - }, - "protocol": "all" - }, - { - "direction": "inbound", - "href": "href:369", - "id": "id:370", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "crn": "crn:13", - "href": "href:14", - "id": "id:15", - "name": "brute-upon-angles-cubbyhole" - }, - "protocol": "all" - } - ], - "targets": [], - "vpc": { - "crn": "crn:1", - "href": "href:2", - "id": "id:3", - "name": "test-vpc1", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:19.000Z", - "crn": "crn:30", - "href": "href:31", - "id": "id:32", - "name": "basically-drank-bulk-jam", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "direction": "outbound", - "href": "href:371", - "id": "id:372", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "cidr_block": "0.0.0.0/0" - }, - "protocol": "all" - }, - { - "direction": "inbound", - "href": "href:373", - "id": "id:374", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "crn": "crn:30", - "href": "href:31", - "id": "id:32", - "name": "basically-drank-bulk-jam" - }, - "protocol": "all" - } - ], - "targets": [], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:19.000Z", - "crn": "crn:47", - "href": "href:48", - "id": "id:49", - "name": "glance-cactus-unease-bankroll", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "direction": "outbound", - "href": "href:375", - "id": "id:376", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "cidr_block": "0.0.0.0/0" - }, - "protocol": "all" - }, - { - "direction": "inbound", - "href": "href:377", - "id": "id:378", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "crn": "crn:47", - "href": "href:48", - "id": "id:49", - "name": "glance-cactus-unease-bankroll" - }, - "protocol": "all" - } - ], - "targets": [], - "vpc": { - "crn": "crn:39", - "href": "href:40", - "id": "id:41", - "name": "test-vpc2", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:19.000Z", - "crn": "crn:60", - "href": "href:61", - "id": "id:62", - "name": "repeater-upcountry-agreeing-acutely", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "direction": "outbound", - "href": "href:379", - "id": "id:380", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "cidr_block": "0.0.0.0/0" - }, - "protocol": "all" - }, - { - "direction": "inbound", - "href": "href:381", - "id": "id:382", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "crn": "crn:60", - "href": "href:61", - "id": "id:62", - "name": "repeater-upcountry-agreeing-acutely" - }, - "protocol": "all" - } - ], - "targets": [], - "vpc": { - "crn": "crn:52", - "href": "href:53", - "id": "id:54", - "name": "test-vpc3", - "resource_type": "vpc" - }, - "tags": [] - } - ], - "endpoint_gateways": [], - "instances": [ - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:388" - }, - "href": "href:386", - "id": "id:387", - "name": "thief-monastery-blinks-verdict", - "volume": { - "crn": "crn:389", - "href": "href:390", - "id": "id:391", - "name": "scrabble-gorged-baton-angled", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:42:40.000Z", - "crn": "crn:383", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:384", - "id": "id:385", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi0-subnet1", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:240", - "id": "id:241", - "name": "scale-clambake-endearing-abridged", - "primary_ip": { - "address": "10.240.1.5", - "href": "href:238", - "id": "id:239", - "name": "affected-johnniecake-monorail-ungraded", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:223", - "href": "href:224", - "id": "id:225", - "name": "subnet1", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:388" - }, - "href": "href:386", - "id": "id:387", - "name": "thief-monastery-blinks-verdict", - "volume": { - "crn": "crn:389", - "href": "href:390", - "id": "id:391", - "name": "scrabble-gorged-baton-angled", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:42:40.000Z", - "floating_ips": [], - "href": "href:240", - "id": "id:241", - "name": "scale-clambake-endearing-abridged", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.1.5", - "href": "href:238", - "id": "id:239", - "name": "affected-johnniecake-monorail-ungraded", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:360", - "href": "href:361", - "id": "id:362", - "name": "sg1" - } - ], - "status": "available", - "subnet": { - "crn": "crn:223", - "href": "href:224", - "id": "id:225", - "name": "subnet1", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:401" - }, - "href": "href:399", - "id": "id:400", - "name": "hunchback-enginous-dividend-atrium", - "volume": { - "crn": "crn:402", - "href": "href:403", - "id": "id:404", - "name": "subsoil-bobble-bovine-unmoving", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:42:39.000Z", - "crn": "crn:396", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:397", - "id": "id:398", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi1-subnet0", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:133", - "id": "id:134", - "name": "consonant-imperial-simply-ceramics", - "primary_ip": { - "address": "10.240.0.5", - "href": "href:131", - "id": "id:132", - "name": "relatable-antiques-maturing-brulee", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:113", - "href": "href:114", - "id": "id:115", - "name": "subnet0", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:401" - }, - "href": "href:399", - "id": "id:400", - "name": "hunchback-enginous-dividend-atrium", - "volume": { - "crn": "crn:402", - "href": "href:403", - "id": "id:404", - "name": "subsoil-bobble-bovine-unmoving", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:42:39.000Z", - "floating_ips": [], - "href": "href:133", - "id": "id:134", - "name": "consonant-imperial-simply-ceramics", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.0.5", - "href": "href:131", - "id": "id:132", - "name": "relatable-antiques-maturing-brulee", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:360", - "href": "href:361", - "id": "id:362", - "name": "sg1" - } - ], - "status": "available", - "subnet": { - "crn": "crn:113", - "href": "href:114", - "id": "id:115", - "name": "subnet0", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:410" - }, - "href": "href:408", - "id": "id:409", - "name": "laboring-overbuilt-growl-headland", - "volume": { - "crn": "crn:411", - "href": "href:412", - "id": "id:413", - "name": "tamper-salvaging-stick-giddily", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:42:22.000Z", - "crn": "crn:405", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:406", - "id": "id:407", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi1-subnet2", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:174", - "id": "id:175", - "name": "quantum-handbag-dimmed-reassign", - "primary_ip": { - "address": "10.240.4.5", - "href": "href:172", - "id": "id:173", - "name": "bark-gatherer-rope-unrivaled", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:157", - "href": "href:158", - "id": "id:159", - "name": "subnet2", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:410" - }, - "href": "href:408", - "id": "id:409", - "name": "laboring-overbuilt-growl-headland", - "volume": { - "crn": "crn:411", - "href": "href:412", - "id": "id:413", - "name": "tamper-salvaging-stick-giddily", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:42:22.000Z", - "floating_ips": [], - "href": "href:174", - "id": "id:175", - "name": "quantum-handbag-dimmed-reassign", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.4.5", - "href": "href:172", - "id": "id:173", - "name": "bark-gatherer-rope-unrivaled", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:360", - "href": "href:361", - "id": "id:362", - "name": "sg1" - } - ], - "status": "available", - "subnet": { - "crn": "crn:157", - "href": "href:158", - "id": "id:159", - "name": "subnet2", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:419" - }, - "href": "href:417", - "id": "id:418", - "name": "dollop-partition-helping-palmtree", - "volume": { - "crn": "crn:420", - "href": "href:421", - "id": "id:422", - "name": "ravage-deny-amusable-settling", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:42:20.000Z", - "crn": "crn:414", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:415", - "id": "id:416", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi1-subnet5", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:85", - "id": "id:86", - "name": "scratch-outward-raging-hunchback", - "primary_ip": { - "address": "10.240.9.5", - "href": "href:83", - "id": "id:84", - "name": "outskirts-unaligned-passivism-parchment", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:65", - "href": "href:66", - "id": "id:67", - "name": "subnet5", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:419" - }, - "href": "href:417", - "id": "id:418", - "name": "dollop-partition-helping-palmtree", - "volume": { - "crn": "crn:420", - "href": "href:421", - "id": "id:422", - "name": "ravage-deny-amusable-settling", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:42:20.000Z", - "floating_ips": [], - "href": "href:85", - "id": "id:86", - "name": "scratch-outward-raging-hunchback", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.9.5", - "href": "href:83", - "id": "id:84", - "name": "outskirts-unaligned-passivism-parchment", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:360", - "href": "href:361", - "id": "id:362", - "name": "sg1" - } - ], - "status": "available", - "subnet": { - "crn": "crn:65", - "href": "href:66", - "id": "id:67", - "name": "subnet5", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:428" - }, - "href": "href:426", - "id": "id:427", - "name": "petted-ethanol-voicing-rocklike", - "volume": { - "crn": "crn:429", - "href": "href:430", - "id": "id:431", - "name": "uptown-striving-unrevised-earthlike", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:42:20.000Z", - "crn": "crn:423", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:424", - "id": "id:425", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi0-subnet2", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:170", - "id": "id:171", - "name": "graveyard-handmade-ransack-acquaint", - "primary_ip": { - "address": "10.240.4.4", - "href": "href:168", - "id": "id:169", - "name": "stood-sitcom-whoops-hurled", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:157", - "href": "href:158", - "id": "id:159", - "name": "subnet2", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:428" - }, - "href": "href:426", - "id": "id:427", - "name": "petted-ethanol-voicing-rocklike", - "volume": { - "crn": "crn:429", - "href": "href:430", - "id": "id:431", - "name": "uptown-striving-unrevised-earthlike", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:42:20.000Z", - "floating_ips": [], - "href": "href:170", - "id": "id:171", - "name": "graveyard-handmade-ransack-acquaint", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.4.4", - "href": "href:168", - "id": "id:169", - "name": "stood-sitcom-whoops-hurled", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:360", - "href": "href:361", - "id": "id:362", - "name": "sg1" - } - ], - "status": "available", - "subnet": { - "crn": "crn:157", - "href": "href:158", - "id": "id:159", - "name": "subnet2", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:437" - }, - "href": "href:435", - "id": "id:436", - "name": "promenade-spyglass-flattop-pushpin", - "volume": { - "crn": "crn:438", - "href": "href:439", - "id": "id:440", - "name": "relax-shaded-prism-jaunt", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:42:16.000Z", - "crn": "crn:432", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:433", - "id": "id:434", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi1-subnet3", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:109", - "id": "id:110", - "name": "squatted-fastball-vacant-knoll", - "primary_ip": { - "address": "10.240.5.5", - "href": "href:107", - "id": "id:108", - "name": "recognize-citable-exerciser-unsecured", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:89", - "href": "href:90", - "id": "id:91", - "name": "subnet3", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:437" - }, - "href": "href:435", - "id": "id:436", - "name": "promenade-spyglass-flattop-pushpin", - "volume": { - "crn": "crn:438", - "href": "href:439", - "id": "id:440", - "name": "relax-shaded-prism-jaunt", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:42:16.000Z", - "floating_ips": [], - "href": "href:109", - "id": "id:110", - "name": "squatted-fastball-vacant-knoll", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.5.5", - "href": "href:107", - "id": "id:108", - "name": "recognize-citable-exerciser-unsecured", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:360", - "href": "href:361", - "id": "id:362", - "name": "sg1" - } - ], - "status": "available", - "subnet": { - "crn": "crn:89", - "href": "href:90", - "id": "id:91", - "name": "subnet3", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:446" - }, - "href": "href:444", - "id": "id:445", - "name": "sandbox-federal-sculptor-jugum", - "volume": { - "crn": "crn:447", - "href": "href:448", - "id": "id:449", - "name": "convent-ramrod-cloning-afterward", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:42:15.000Z", - "crn": "crn:441", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:442", - "id": "id:443", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi1-subnet4", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:281", - "id": "id:282", - "name": "speak-princess-washcloth-companion", - "primary_ip": { - "address": "10.240.8.5", - "href": "href:279", - "id": "id:280", - "name": "frighten-mystified-freeway-hurtling", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:264", - "href": "href:265", - "id": "id:266", - "name": "subnet4", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:446" - }, - "href": "href:444", - "id": "id:445", - "name": "sandbox-federal-sculptor-jugum", - "volume": { - "crn": "crn:447", - "href": "href:448", - "id": "id:449", - "name": "convent-ramrod-cloning-afterward", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:42:15.000Z", - "floating_ips": [], - "href": "href:281", - "id": "id:282", - "name": "speak-princess-washcloth-companion", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.8.5", - "href": "href:279", - "id": "id:280", - "name": "frighten-mystified-freeway-hurtling", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:360", - "href": "href:361", - "id": "id:362", - "name": "sg1" - } - ], - "status": "available", - "subnet": { - "crn": "crn:264", - "href": "href:265", - "id": "id:266", - "name": "subnet4", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:455" - }, - "href": "href:453", - "id": "id:454", - "name": "affidavit-chastise-elsewhere-viewer", - "volume": { - "crn": "crn:456", - "href": "href:457", - "id": "id:458", - "name": "fancy-destiny-shuffling-sandbank", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:42:07.000Z", - "crn": "crn:450", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:451", - "id": "id:452", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi0-subnet0", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:129", - "id": "id:130", - "name": "writer-crusher-unsuited-cash", - "primary_ip": { - "address": "10.240.0.4", - "href": "href:127", - "id": "id:128", - "name": "pundit-tight-arbitrate-grace", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:113", - "href": "href:114", - "id": "id:115", - "name": "subnet0", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:455" - }, - "href": "href:453", - "id": "id:454", - "name": "affidavit-chastise-elsewhere-viewer", - "volume": { - "crn": "crn:456", - "href": "href:457", - "id": "id:458", - "name": "fancy-destiny-shuffling-sandbank", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:42:07.000Z", - "floating_ips": [ - { - "address": "52.118.151.238", - "crn": "crn:285", - "href": "href:286", - "id": "id:287", - "name": "fip-0-subnet0" - } - ], - "href": "href:129", - "id": "id:130", - "name": "writer-crusher-unsuited-cash", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.0.4", - "href": "href:127", - "id": "id:128", - "name": "pundit-tight-arbitrate-grace", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:360", - "href": "href:361", - "id": "id:362", - "name": "sg1" - } - ], - "status": "available", - "subnet": { - "crn": "crn:113", - "href": "href:114", - "id": "id:115", - "name": "subnet0", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:464" - }, - "href": "href:462", - "id": "id:463", - "name": "uneven-armoire-scabiosa-letter", - "volume": { - "crn": "crn:465", - "href": "href:466", - "id": "id:467", - "name": "cognition-blinks-humid-oxidant", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:42:00.000Z", - "crn": "crn:459", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:460", - "id": "id:461", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi0-subnet3", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:105", - "id": "id:106", - "name": "icky-balsamic-outgoing-leached", - "primary_ip": { - "address": "10.240.5.4", - "href": "href:103", - "id": "id:104", - "name": "rising-gopher-reentry-graveness", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:89", - "href": "href:90", - "id": "id:91", - "name": "subnet3", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:464" - }, - "href": "href:462", - "id": "id:463", - "name": "uneven-armoire-scabiosa-letter", - "volume": { - "crn": "crn:465", - "href": "href:466", - "id": "id:467", - "name": "cognition-blinks-humid-oxidant", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:42:00.000Z", - "floating_ips": [], - "href": "href:105", - "id": "id:106", - "name": "icky-balsamic-outgoing-leached", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.5.4", - "href": "href:103", - "id": "id:104", - "name": "rising-gopher-reentry-graveness", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:360", - "href": "href:361", - "id": "id:362", - "name": "sg1" - } - ], - "status": "available", - "subnet": { - "crn": "crn:89", - "href": "href:90", - "id": "id:91", - "name": "subnet3", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:473" - }, - "href": "href:471", - "id": "id:472", - "name": "perplexed-impulsivity-august-jaws", - "volume": { - "crn": "crn:474", - "href": "href:475", - "id": "id:476", - "name": "tartar-sixties-fructose-parmesan", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:42:00.000Z", - "crn": "crn:468", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:469", - "id": "id:470", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi1-subnet1", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:236", - "id": "id:237", - "name": "hankie-excitable-outclass-unmanaged", - "primary_ip": { - "address": "10.240.1.4", - "href": "href:234", - "id": "id:235", - "name": "excluded-unfair-jailbird-foil", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:223", - "href": "href:224", - "id": "id:225", - "name": "subnet1", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:473" - }, - "href": "href:471", - "id": "id:472", - "name": "perplexed-impulsivity-august-jaws", - "volume": { - "crn": "crn:474", - "href": "href:475", - "id": "id:476", - "name": "tartar-sixties-fructose-parmesan", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:42:00.000Z", - "floating_ips": [], - "href": "href:236", - "id": "id:237", - "name": "hankie-excitable-outclass-unmanaged", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.1.4", - "href": "href:234", - "id": "id:235", - "name": "excluded-unfair-jailbird-foil", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:360", - "href": "href:361", - "id": "id:362", - "name": "sg1" - } - ], - "status": "available", - "subnet": { - "crn": "crn:223", - "href": "href:224", - "id": "id:225", - "name": "subnet1", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:482" - }, - "href": "href:480", - "id": "id:481", - "name": "litter-snipping-unclasp-dust", - "volume": { - "crn": "crn:483", - "href": "href:484", - "id": "id:485", - "name": "untried-sulphate-hypnosis-subsidize", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:42:00.000Z", - "crn": "crn:477", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:478", - "id": "id:479", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi0-subnet4", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:277", - "id": "id:278", - "name": "bullring-ransack-feint-cheer", - "primary_ip": { - "address": "10.240.8.4", - "href": "href:275", - "id": "id:276", - "name": "bagged-posture-glaring-cojoined", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:264", - "href": "href:265", - "id": "id:266", - "name": "subnet4", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:482" - }, - "href": "href:480", - "id": "id:481", - "name": "litter-snipping-unclasp-dust", - "volume": { - "crn": "crn:483", - "href": "href:484", - "id": "id:485", - "name": "untried-sulphate-hypnosis-subsidize", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:42:00.000Z", - "floating_ips": [], - "href": "href:277", - "id": "id:278", - "name": "bullring-ransack-feint-cheer", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.8.4", - "href": "href:275", - "id": "id:276", - "name": "bagged-posture-glaring-cojoined", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:360", - "href": "href:361", - "id": "id:362", - "name": "sg1" - } - ], - "status": "available", - "subnet": { - "crn": "crn:264", - "href": "href:265", - "id": "id:266", - "name": "subnet4", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:491" - }, - "href": "href:489", - "id": "id:490", - "name": "unlawful-overreach-yarn-rippling", - "volume": { - "crn": "crn:492", - "href": "href:493", - "id": "id:494", - "name": "finer-voter-roving-jailer", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:42:00.000Z", - "crn": "crn:486", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:487", - "id": "id:488", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi0-subnet5", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:81", - "id": "id:82", - "name": "stooped-camera-excluded-juke", - "primary_ip": { - "address": "10.240.9.4", - "href": "href:79", - "id": "id:80", - "name": "ideally-grain-bagpipe-luxuriant", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:65", - "href": "href:66", - "id": "id:67", - "name": "subnet5", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:491" - }, - "href": "href:489", - "id": "id:490", - "name": "unlawful-overreach-yarn-rippling", - "volume": { - "crn": "crn:492", - "href": "href:493", - "id": "id:494", - "name": "finer-voter-roving-jailer", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:42:00.000Z", - "floating_ips": [], - "href": "href:81", - "id": "id:82", - "name": "stooped-camera-excluded-juke", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.9.4", - "href": "href:79", - "id": "id:80", - "name": "ideally-grain-bagpipe-luxuriant", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:360", - "href": "href:361", - "id": "id:362", - "name": "sg1" - } - ], - "status": "available", - "subnet": { - "crn": "crn:65", - "href": "href:66", - "id": "id:67", - "name": "subnet5", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:500" - }, - "href": "href:498", - "id": "id:499", - "name": "mashed-thing-headache-estate", - "volume": { - "crn": "crn:501", - "href": "href:502", - "id": "id:503", - "name": "mountain-harpist-libraries-dreaming", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:41:39.000Z", - "crn": "crn:495", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:496", - "id": "id:497", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi0-subnet11", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:153", - "id": "id:154", - "name": "stride-woken-backsight-dynastic", - "primary_ip": { - "address": "10.240.80.4", - "href": "href:151", - "id": "id:152", - "name": "childlike-publish-retainer-movie", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:137", - "href": "href:138", - "id": "id:139", - "name": "subnet11", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:500" - }, - "href": "href:498", - "id": "id:499", - "name": "mashed-thing-headache-estate", - "volume": { - "crn": "crn:501", - "href": "href:502", - "id": "id:503", - "name": "mountain-harpist-libraries-dreaming", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:1", - "href": "href:2", - "id": "id:3", - "name": "test-vpc1", - "resource_type": "vpc" - }, - "zone": { - "href": "href:6", - "name": "us-south-2" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:41:39.000Z", - "floating_ips": [], - "href": "href:153", - "id": "id:154", - "name": "stride-woken-backsight-dynastic", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.80.4", - "href": "href:151", - "id": "id:152", - "name": "childlike-publish-retainer-movie", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:353", - "href": "href:354", - "id": "id:355", - "name": "sg11" - } - ], - "status": "available", - "subnet": { - "crn": "crn:137", - "href": "href:138", - "id": "id:139", - "name": "subnet11", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:509" - }, - "href": "href:507", - "id": "id:508", - "name": "calzone-cacti-moonlight-subarctic", - "volume": { - "crn": "crn:510", - "href": "href:511", - "id": "id:512", - "name": "blurred-dream-pectin-tapping", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:41:36.000Z", - "crn": "crn:504", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:505", - "id": "id:506", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi0-subnet10", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:191", - "id": "id:192", - "name": "enlace-prominent-overhear-perfume", - "primary_ip": { - "address": "10.240.64.4", - "href": "href:189", - "id": "id:190", - "name": "starry-smasher-ladle-dioxide", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:178", - "href": "href:179", - "id": "id:180", - "name": "subnet10", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:509" - }, - "href": "href:507", - "id": "id:508", - "name": "calzone-cacti-moonlight-subarctic", - "volume": { - "crn": "crn:510", - "href": "href:511", - "id": "id:512", - "name": "blurred-dream-pectin-tapping", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:1", - "href": "href:2", - "id": "id:3", - "name": "test-vpc1", - "resource_type": "vpc" - }, - "zone": { - "href": "href:6", - "name": "us-south-2" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:41:36.000Z", - "floating_ips": [ - { - "address": "150.239.167.146", - "crn": "crn:288", - "href": "href:289", - "id": "id:290", - "name": "fip-0-subnet10" - } - ], - "href": "href:191", - "id": "id:192", - "name": "enlace-prominent-overhear-perfume", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.64.4", - "href": "href:189", - "id": "id:190", - "name": "starry-smasher-ladle-dioxide", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:353", - "href": "href:354", - "id": "id:355", - "name": "sg11" - } - ], - "status": "available", - "subnet": { - "crn": "crn:178", - "href": "href:179", - "id": "id:180", - "name": "subnet10", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:518" - }, - "href": "href:516", - "id": "id:517", - "name": "recoup-blinks-ebullient-renewed", - "volume": { - "crn": "crn:519", - "href": "href:520", - "id": "id:521", - "name": "manmade-unequal-disinfect-cone", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:41:24.000Z", - "crn": "crn:513", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:514", - "id": "id:515", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi1-subnet20", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:219", - "id": "id:220", - "name": "clicker-grumbly-outskirts-greatly", - "primary_ip": { - "address": "10.240.128.6", - "href": "href:217", - "id": "id:218", - "name": "uniquely-shelter-gracious-sudden", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:195", - "href": "href:196", - "id": "id:197", - "name": "subnet20", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:518" - }, - "href": "href:516", - "id": "id:517", - "name": "recoup-blinks-ebullient-renewed", - "volume": { - "crn": "crn:519", - "href": "href:520", - "id": "id:521", - "name": "manmade-unequal-disinfect-cone", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:39", - "href": "href:40", - "id": "id:41", - "name": "test-vpc2", - "resource_type": "vpc" - }, - "zone": { - "href": "href:7", - "name": "us-south-3" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:41:24.000Z", - "floating_ips": [ - { - "address": "169.48.95.165", - "crn": "crn:291", - "href": "href:292", - "id": "id:293", - "name": "fip-0-subnet20" - } - ], - "href": "href:219", - "id": "id:220", - "name": "clicker-grumbly-outskirts-greatly", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.128.6", - "href": "href:217", - "id": "id:218", - "name": "uniquely-shelter-gracious-sudden", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:339", - "href": "href:340", - "id": "id:341", - "name": "sg21" - } - ], - "status": "available", - "subnet": { - "crn": "crn:195", - "href": "href:196", - "id": "id:197", - "name": "subnet20", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:527" - }, - "href": "href:525", - "id": "id:526", - "name": "radio-tightrope-outtakes-moonshine", - "volume": { - "crn": "crn:528", - "href": "href:529", - "id": "id:530", - "name": "tattoo-crescent-unwary-hayride", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:41:21.000Z", - "crn": "crn:522", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:523", - "id": "id:524", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi0-subnet20", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:215", - "id": "id:216", - "name": "ought-football-shorter-aviator", - "primary_ip": { - "address": "10.240.128.5", - "href": "href:213", - "id": "id:214", - "name": "customs-recollect-drippy-primate", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:195", - "href": "href:196", - "id": "id:197", - "name": "subnet20", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:527" - }, - "href": "href:525", - "id": "id:526", - "name": "radio-tightrope-outtakes-moonshine", - "volume": { - "crn": "crn:528", - "href": "href:529", - "id": "id:530", - "name": "tattoo-crescent-unwary-hayride", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:39", - "href": "href:40", - "id": "id:41", - "name": "test-vpc2", - "resource_type": "vpc" - }, - "zone": { - "href": "href:7", - "name": "us-south-3" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:41:21.000Z", - "floating_ips": [], - "href": "href:215", - "id": "id:216", - "name": "ought-football-shorter-aviator", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.128.5", - "href": "href:213", - "id": "id:214", - "name": "customs-recollect-drippy-primate", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:339", - "href": "href:340", - "id": "id:341", - "name": "sg21" - } - ], - "status": "available", - "subnet": { - "crn": "crn:195", - "href": "href:196", - "id": "id:197", - "name": "subnet20", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:536" - }, - "href": "href:534", - "id": "id:535", - "name": "crumpet-ride-tastiness-phoney", - "volume": { - "crn": "crn:537", - "href": "href:538", - "id": "id:539", - "name": "doorframe-marvelous-refusing-citable", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:41:21.000Z", - "crn": "crn:531", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:532", - "id": "id:533", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi2-subnet20", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:211", - "id": "id:212", - "name": "tavern-far-imprudent-labored", - "primary_ip": { - "address": "10.240.128.4", - "href": "href:209", - "id": "id:210", - "name": "unmixed-qualify-prescribe-railcar", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:195", - "href": "href:196", - "id": "id:197", - "name": "subnet20", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:536" - }, - "href": "href:534", - "id": "id:535", - "name": "crumpet-ride-tastiness-phoney", - "volume": { - "crn": "crn:537", - "href": "href:538", - "id": "id:539", - "name": "doorframe-marvelous-refusing-citable", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:39", - "href": "href:40", - "id": "id:41", - "name": "test-vpc2", - "resource_type": "vpc" - }, - "zone": { - "href": "href:7", - "name": "us-south-3" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:41:21.000Z", - "floating_ips": [], - "href": "href:211", - "id": "id:212", - "name": "tavern-far-imprudent-labored", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.128.4", - "href": "href:209", - "id": "id:210", - "name": "unmixed-qualify-prescribe-railcar", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:339", - "href": "href:340", - "id": "id:341", - "name": "sg21" - } - ], - "status": "available", - "subnet": { - "crn": "crn:195", - "href": "href:196", - "id": "id:197", - "name": "subnet20", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:545" - }, - "href": "href:543", - "id": "id:544", - "name": "bronzing-vendor-plod-pretzel", - "volume": { - "crn": "crn:546", - "href": "href:547", - "id": "id:548", - "name": "squelch-plop-headlamp-ideologue", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:41:00.000Z", - "crn": "crn:540", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:541", - "id": "id:542", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi0-subnet30", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:260", - "id": "id:261", - "name": "snout-given-twiddle-splinter", - "primary_ip": { - "address": "10.240.192.4", - "href": "href:258", - "id": "id:259", - "name": "legacy-shore-molecule-barometer", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:244", - "href": "href:245", - "id": "id:246", - "name": "subnet30", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:545" - }, - "href": "href:543", - "id": "id:544", - "name": "bronzing-vendor-plod-pretzel", - "volume": { - "crn": "crn:546", - "href": "href:547", - "id": "id:548", - "name": "squelch-plop-headlamp-ideologue", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:52", - "href": "href:53", - "id": "id:54", - "name": "test-vpc3", - "resource_type": "vpc" - }, - "zone": { - "href": "href:7", - "name": "us-south-3" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:41:00.000Z", - "floating_ips": [ - { - "address": "52.118.100.239", - "crn": "crn:294", - "href": "href:295", - "id": "id:296", - "name": "fip-0-subnet30" - } - ], - "href": "href:260", - "id": "id:261", - "name": "snout-given-twiddle-splinter", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.192.4", - "href": "href:258", - "id": "id:259", - "name": "legacy-shore-molecule-barometer", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:346", - "href": "href:347", - "id": "id:348", - "name": "sg31" - } - ], - "status": "available", - "subnet": { - "crn": "crn:244", - "href": "href:245", - "id": "id:246", - "name": "subnet30", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - } - ], - "routing_tables": [ - { - "accept_routes_from": [ - { - "resource_type": "vpn_gateway" - }, - { - "resource_type": "vpn_server" - } - ], - "advertise_routes_to": [], - "created_at": "2024-06-25T15:40:20.000Z", - "href": "href:11", - "id": "id:12", - "is_default": true, - "lifecycle_state": "stable", - "name": "overtone-sputter-overspend-gorge", - "resource_type": "routing_table", - "route_direct_link_ingress": false, - "route_internet_ingress": false, - "route_transit_gateway_ingress": false, - "route_vpc_zone_ingress": false, - "subnets": [ - { - "crn": "crn:137", - "href": "href:138", - "id": "id:139", - "name": "subnet11", - "resource_type": "subnet" - }, - { - "crn": "crn:178", - "href": "href:179", - "id": "id:180", - "name": "subnet10", - "resource_type": "subnet" - } - ], - "routes": [], - "vpc": { - "crn": "crn:1", - "href": "href:2", - "id": "id:3", - "name": "test-vpc1", - "resource_type": "vpc" - } - }, - { - "accept_routes_from": [ - { - "resource_type": "vpn_gateway" - }, - { - "resource_type": "vpn_server" - } - ], - "advertise_routes_to": [], - "created_at": "2024-06-25T15:40:19.000Z", - "href": "href:28", - "id": "id:29", - "is_default": true, - "lifecycle_state": "stable", - "name": "escapade-dynamite-upstage-context", - "resource_type": "routing_table", - "route_direct_link_ingress": false, - "route_internet_ingress": false, - "route_transit_gateway_ingress": false, - "route_vpc_zone_ingress": false, - "subnets": [ - { - "crn": "crn:65", - "href": "href:66", - "id": "id:67", - "name": "subnet5", - "resource_type": "subnet" - }, - { - "crn": "crn:89", - "href": "href:90", - "id": "id:91", - "name": "subnet3", - "resource_type": "subnet" - }, - { - "crn": "crn:113", - "href": "href:114", - "id": "id:115", - "name": "subnet0", - "resource_type": "subnet" - }, - { - "crn": "crn:157", - "href": "href:158", - "id": "id:159", - "name": "subnet2", - "resource_type": "subnet" - }, - { - "crn": "crn:223", - "href": "href:224", - "id": "id:225", - "name": "subnet1", - "resource_type": "subnet" - }, - { - "crn": "crn:264", - "href": "href:265", - "id": "id:266", - "name": "subnet4", - "resource_type": "subnet" - } - ], - "routes": [], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - } - }, - { - "accept_routes_from": [ - { - "resource_type": "vpn_gateway" - }, - { - "resource_type": "vpn_server" - } - ], - "advertise_routes_to": [], - "created_at": "2024-06-25T15:40:19.000Z", - "href": "href:45", - "id": "id:46", - "is_default": true, - "lifecycle_state": "stable", - "name": "quintuple-severity-caddie-manuals", - "resource_type": "routing_table", - "route_direct_link_ingress": false, - "route_internet_ingress": false, - "route_transit_gateway_ingress": false, - "route_vpc_zone_ingress": false, - "subnets": [ - { - "crn": "crn:195", - "href": "href:196", - "id": "id:197", - "name": "subnet20", - "resource_type": "subnet" - } - ], - "routes": [], - "vpc": { - "crn": "crn:39", - "href": "href:40", - "id": "id:41", - "name": "test-vpc2", - "resource_type": "vpc" - } - }, - { - "accept_routes_from": [ - { - "resource_type": "vpn_gateway" - }, - { - "resource_type": "vpn_server" - } - ], - "advertise_routes_to": [], - "created_at": "2024-06-25T15:40:19.000Z", - "href": "href:58", - "id": "id:59", - "is_default": true, - "lifecycle_state": "stable", - "name": "probational-herring-undone-daintily", - "resource_type": "routing_table", - "route_direct_link_ingress": false, - "route_internet_ingress": false, - "route_transit_gateway_ingress": false, - "route_vpc_zone_ingress": false, - "subnets": [ - { - "crn": "crn:244", - "href": "href:245", - "id": "id:246", - "name": "subnet30", - "resource_type": "subnet" - } - ], - "routes": [], - "vpc": { - "crn": "crn:52", - "href": "href:53", - "id": "id:54", - "name": "test-vpc3", - "resource_type": "vpc" - } - } - ], - "load_balancers": [], - "transit_connections": [ - { - "created_at": "2024-06-25T15:41:44.212Z", - "id": "id:549", - "name": "tg3_connection3", - "network_id": "crn:52", - "network_type": "vpc", - "prefix_filters_default": "permit", - "status": "attached", - "transit_gateway": { - "crn": "crn:550", - "id": "id:551", - "name": "local-tg3" - }, - "updated_at": "2024-06-25T15:45:14.206Z" - }, - { - "created_at": "2024-06-25T15:41:54.416Z", - "id": "id:552", - "name": "tg3_connection0", - "network_id": "crn:22", - "network_type": "vpc", - "prefix_filters_default": "permit", - "status": "attached", - "transit_gateway": { - "crn": "crn:550", - "id": "id:551", - "name": "local-tg3" - }, - "updated_at": "2024-06-25T15:45:53.979Z" - }, - { - "created_at": "2024-06-25T15:42:54.772Z", - "id": "id:553", - "name": "tg2_connection3", - "network_id": "crn:52", - "network_type": "vpc", - "prefix_filters_default": "permit", - "status": "attached", - "transit_gateway": { - "crn": "crn:554", - "id": "id:555", - "name": "local-tg2" - }, - "updated_at": "2024-06-25T15:49:08.822Z" - }, - { - "created_at": "2024-06-25T15:43:11.555Z", - "id": "id:556", - "name": "tg2_connection0", - "network_id": "crn:22", - "network_type": "vpc", - "prefix_filters": [ - { - "action": "deny", - "created_at": "2024-06-25T15:46:46.641Z", - "id": "id:557", - "le": 32, - "prefix": "10.240.0.0/22", - "updated_at": "2024-06-25T15:46:46.641Z" - } - ], - "prefix_filters_default": "permit", - "status": "attached", - "transit_gateway": { - "crn": "crn:554", - "id": "id:555", - "name": "local-tg2" - }, - "updated_at": "2024-06-25T15:49:59.395Z" - }, - { - "created_at": "2024-06-25T15:43:12.159Z", - "id": "id:558", - "name": "tg_connection0", - "network_id": "crn:22", - "network_type": "vpc", - "prefix_filters": [ - { - "action": "deny", - "before": "298db67f-2e68-4548-93b9-949f8356d4a0", - "created_at": "2024-06-25T15:45:14.711Z", - "id": "id:559", - "prefix": "10.240.4.0/22", - "updated_at": "2024-06-25T15:45:14.711Z" - }, - { - "action": "deny", - "created_at": "2024-06-25T15:45:25.435Z", - "id": "id:560", - "prefix": "10.240.8.0/22", - "updated_at": "2024-06-25T15:45:25.435Z" - } - ], - "prefix_filters_default": "permit", - "status": "attached", - "transit_gateway": { - "crn": "crn:561", - "id": "id:562", - "name": "local-tg1" - }, - "updated_at": "2024-06-25T15:49:53.837Z" - }, - { - "created_at": "2024-06-25T15:43:41.079Z", - "id": "id:563", - "name": "tg2_connection2", - "network_id": "crn:39", - "network_type": "vpc", - "prefix_filters_default": "permit", - "status": "attached", - "transit_gateway": { - "crn": "crn:554", - "id": "id:555", - "name": "local-tg2" - }, - "updated_at": "2024-06-25T15:49:43.192Z" - }, - { - "created_at": "2024-06-25T15:43:42.335Z", - "id": "id:564", - "name": "tg1_connection1", - "network_id": "crn:1", - "network_type": "vpc", - "prefix_filters_default": "permit", - "status": "attached", - "transit_gateway": { - "crn": "crn:561", - "id": "id:562", - "name": "local-tg1" - }, - "updated_at": "2024-06-25T15:48:45.229Z" - }, - { - "created_at": "2024-06-25T15:44:08.995Z", - "id": "id:565", - "name": "tg1_connection2", - "network_id": "crn:39", - "network_type": "vpc", - "prefix_filters_default": "permit", - "status": "attached", - "transit_gateway": { - "crn": "crn:561", - "id": "id:562", - "name": "local-tg1" - }, - "updated_at": "2024-06-25T15:49:11.976Z" - } - ], - "transit_gateways": [ - { - "id": "id:551", - "crn": "crn:550", - "name": "local-tg3", - "location": "us-south", - "created_at": "2024-06-25T15:40:21.390Z", - "global": false, - "resource_group": { - "id": "id:17", - "href": "href:566" - }, - "status": "available", - "updated_at": "2024-06-25T15:42:12.752Z" - }, - { - "id": "id:555", - "crn": "crn:554", - "name": "local-tg2", - "location": "us-south", - "created_at": "2024-06-25T15:40:25.895Z", - "global": false, - "resource_group": { - "id": "id:17", - "href": "href:566" - }, - "status": "available", - "updated_at": "2024-06-25T15:43:58.196Z" - }, - { - "id": "id:562", - "crn": "crn:561", - "name": "local-tg1", - "location": "us-south", - "created_at": "2024-06-25T15:40:26.455Z", - "global": false, - "resource_group": { - "id": "id:17", - "href": "href:566" - }, - "status": "available", - "updated_at": "2024-06-25T15:43:15.331Z" - } - ], - "iks_clusters": [] -} diff --git a/test/data/acl_segments/config_object.json b/test/data/acl_segments/config_object.json deleted file mode 100644 index 5b755e7e..00000000 --- a/test/data/acl_segments/config_object.json +++ /dev/null @@ -1,1776 +0,0 @@ -{ - "collector_version": "0.11.0", - "provider": "ibm", - "vpcs": [ - { - "classic_access": false, - "created_at": "2024-06-25T12:20:44.000Z", - "crn": "crn:1", - "cse_source_ips": [ - { - "ip": { - "address": "10.249.196.114" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - } - }, - { - "ip": { - "address": "10.22.27.101" - }, - "zone": { - "href": "href:6", - "name": "us-south-2" - } - }, - { - "ip": { - "address": "10.249.81.251" - }, - "zone": { - "href": "href:7", - "name": "us-south-3" - } - } - ], - "default_network_acl": { - "crn": "crn:8", - "href": "href:9", - "id": "id:10", - "name": "disallow-laborious-compress-abiding" - }, - "default_routing_table": { - "href": "href:11", - "id": "id:12", - "name": "traffic-overeasy-festoonery-illusive", - "resource_type": "routing_table" - }, - "default_security_group": { - "crn": "crn:13", - "href": "href:14", - "id": "id:15", - "name": "elevation-lyricist-elf-hassle" - }, - "dns": { - "enable_hub": false, - "resolution_binding_count": 0, - "resolver": { - "servers": [ - { - "address": "161.26.0.10" - }, - { - "address": "161.26.0.11" - } - ], - "type": "system", - "configuration": "default" - } - }, - "health_reasons": null, - "health_state": "ok", - "href": "href:2", - "id": "id:3", - "name": "testacl5-vpc", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "vpc", - "status": "available", - "region": "us-south", - "address_prefixes": [ - { - "cidr": "10.240.0.0/18", - "created_at": "2024-06-25T12:20:44.000Z", - "has_subnets": true, - "href": "href:18", - "id": "id:19", - "is_default": true, - "name": "blouse-armchair-fernlike-plus", - "zone": { - "href": "href:5", - "name": "us-south-1" - } - }, - { - "cidr": "10.240.64.0/18", - "created_at": "2024-06-25T12:20:44.000Z", - "has_subnets": true, - "href": "href:20", - "id": "id:21", - "is_default": true, - "name": "stowaway-chatty-opulently-durably", - "zone": { - "href": "href:6", - "name": "us-south-2" - } - }, - { - "cidr": "10.240.128.0/18", - "created_at": "2024-06-25T12:20:44.000Z", - "has_subnets": true, - "href": "href:22", - "id": "id:23", - "is_default": true, - "name": "trifle-renewably-decenary-protector", - "zone": { - "href": "href:7", - "name": "us-south-3" - } - } - ], - "tags": [ - "yair" - ] - } - ], - "subnets": [ - { - "available_ipv4_address_count": 251, - "created_at": "2024-06-25T12:22:47.000Z", - "crn": "crn:24", - "href": "href:25", - "id": "id:26", - "ip_version": "ipv4", - "ipv4_cidr_block": "10.240.2.0/24", - "name": "sub1-2", - "network_acl": { - "crn": "crn:27", - "href": "href:28", - "id": "id:29", - "name": "acl1-2" - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "subnet", - "routing_table": { - "href": "href:11", - "id": "id:12", - "name": "traffic-overeasy-festoonery-illusive", - "resource_type": "routing_table" - }, - "status": "available", - "total_ipv4_address_count": 256, - "vpc": { - "crn": "crn:1", - "href": "href:2", - "id": "id:3", - "name": "testacl5-vpc", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "reserved_ips": [ - { - "address": "10.240.2.0", - "auto_delete": false, - "created_at": "2024-06-25T12:22:47.000Z", - "href": "href:30", - "id": "id:31", - "lifecycle_state": "stable", - "name": "ibm-network-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.2.1", - "auto_delete": false, - "created_at": "2024-06-25T12:22:47.000Z", - "href": "href:32", - "id": "id:33", - "lifecycle_state": "stable", - "name": "ibm-default-gateway", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.2.2", - "auto_delete": false, - "created_at": "2024-06-25T12:22:47.000Z", - "href": "href:34", - "id": "id:35", - "lifecycle_state": "stable", - "name": "ibm-dns-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.2.3", - "auto_delete": false, - "created_at": "2024-06-25T12:22:47.000Z", - "href": "href:36", - "id": "id:37", - "lifecycle_state": "stable", - "name": "ibm-reserved-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.2.255", - "auto_delete": false, - "created_at": "2024-06-25T12:22:47.000Z", - "href": "href:38", - "id": "id:39", - "lifecycle_state": "stable", - "name": "ibm-broadcast-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - } - ], - "tags": [ - "yair" - ] - }, - { - "available_ipv4_address_count": 251, - "created_at": "2024-06-25T12:22:10.000Z", - "crn": "crn:40", - "href": "href:41", - "id": "id:42", - "ip_version": "ipv4", - "ipv4_cidr_block": "10.240.1.0/24", - "name": "sub1-1", - "network_acl": { - "crn": "crn:43", - "href": "href:44", - "id": "id:45", - "name": "acl1-1" - }, - "public_gateway": { - "crn": "crn:46", - "href": "href:47", - "id": "id:48", - "name": "public-gw1", - "resource_type": "public_gateway" - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "subnet", - "routing_table": { - "href": "href:11", - "id": "id:12", - "name": "traffic-overeasy-festoonery-illusive", - "resource_type": "routing_table" - }, - "status": "available", - "total_ipv4_address_count": 256, - "vpc": { - "crn": "crn:1", - "href": "href:2", - "id": "id:3", - "name": "testacl5-vpc", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "reserved_ips": [ - { - "address": "10.240.1.0", - "auto_delete": false, - "created_at": "2024-06-25T12:22:10.000Z", - "href": "href:49", - "id": "id:50", - "lifecycle_state": "stable", - "name": "ibm-network-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.1.1", - "auto_delete": false, - "created_at": "2024-06-25T12:22:10.000Z", - "href": "href:51", - "id": "id:52", - "lifecycle_state": "stable", - "name": "ibm-default-gateway", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.1.2", - "auto_delete": false, - "created_at": "2024-06-25T12:22:10.000Z", - "href": "href:53", - "id": "id:54", - "lifecycle_state": "stable", - "name": "ibm-dns-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.1.3", - "auto_delete": false, - "created_at": "2024-06-25T12:22:10.000Z", - "href": "href:55", - "id": "id:56", - "lifecycle_state": "stable", - "name": "ibm-reserved-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.1.255", - "auto_delete": false, - "created_at": "2024-06-25T12:22:10.000Z", - "href": "href:57", - "id": "id:58", - "lifecycle_state": "stable", - "name": "ibm-broadcast-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - } - ], - "tags": [ - "yair" - ] - }, - { - "available_ipv4_address_count": 251, - "created_at": "2024-06-25T12:22:04.000Z", - "crn": "crn:59", - "href": "href:60", - "id": "id:61", - "ip_version": "ipv4", - "ipv4_cidr_block": "10.240.64.0/24", - "name": "sub2-1", - "network_acl": { - "crn": "crn:62", - "href": "href:63", - "id": "id:64", - "name": "acl2-1" - }, - "public_gateway": { - "crn": "crn:65", - "href": "href:66", - "id": "id:67", - "name": "public-gw2", - "resource_type": "public_gateway" - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "subnet", - "routing_table": { - "href": "href:11", - "id": "id:12", - "name": "traffic-overeasy-festoonery-illusive", - "resource_type": "routing_table" - }, - "status": "available", - "total_ipv4_address_count": 256, - "vpc": { - "crn": "crn:1", - "href": "href:2", - "id": "id:3", - "name": "testacl5-vpc", - "resource_type": "vpc" - }, - "zone": { - "href": "href:6", - "name": "us-south-2" - }, - "reserved_ips": [ - { - "address": "10.240.64.0", - "auto_delete": false, - "created_at": "2024-06-25T12:22:04.000Z", - "href": "href:68", - "id": "id:69", - "lifecycle_state": "stable", - "name": "ibm-network-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.64.1", - "auto_delete": false, - "created_at": "2024-06-25T12:22:04.000Z", - "href": "href:70", - "id": "id:71", - "lifecycle_state": "stable", - "name": "ibm-default-gateway", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.64.2", - "auto_delete": false, - "created_at": "2024-06-25T12:22:04.000Z", - "href": "href:72", - "id": "id:73", - "lifecycle_state": "stable", - "name": "ibm-dns-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.64.3", - "auto_delete": false, - "created_at": "2024-06-25T12:22:04.000Z", - "href": "href:74", - "id": "id:75", - "lifecycle_state": "stable", - "name": "ibm-reserved-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.64.255", - "auto_delete": false, - "created_at": "2024-06-25T12:22:04.000Z", - "href": "href:76", - "id": "id:77", - "lifecycle_state": "stable", - "name": "ibm-broadcast-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - } - ], - "tags": [ - "yair" - ] - }, - { - "available_ipv4_address_count": 251, - "created_at": "2024-06-25T12:21:43.000Z", - "crn": "crn:78", - "href": "href:79", - "id": "id:80", - "ip_version": "ipv4", - "ipv4_cidr_block": "10.240.3.0/24", - "name": "sub1-3", - "network_acl": { - "crn": "crn:27", - "href": "href:28", - "id": "id:29", - "name": "acl1-2" - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "subnet", - "routing_table": { - "href": "href:11", - "id": "id:12", - "name": "traffic-overeasy-festoonery-illusive", - "resource_type": "routing_table" - }, - "status": "available", - "total_ipv4_address_count": 256, - "vpc": { - "crn": "crn:1", - "href": "href:2", - "id": "id:3", - "name": "testacl5-vpc", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "reserved_ips": [ - { - "address": "10.240.3.0", - "auto_delete": false, - "created_at": "2024-06-25T12:21:43.000Z", - "href": "href:81", - "id": "id:82", - "lifecycle_state": "stable", - "name": "ibm-network-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.3.1", - "auto_delete": false, - "created_at": "2024-06-25T12:21:43.000Z", - "href": "href:83", - "id": "id:84", - "lifecycle_state": "stable", - "name": "ibm-default-gateway", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.3.2", - "auto_delete": false, - "created_at": "2024-06-25T12:21:43.000Z", - "href": "href:85", - "id": "id:86", - "lifecycle_state": "stable", - "name": "ibm-dns-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.3.3", - "auto_delete": false, - "created_at": "2024-06-25T12:21:43.000Z", - "href": "href:87", - "id": "id:88", - "lifecycle_state": "stable", - "name": "ibm-reserved-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.3.255", - "auto_delete": false, - "created_at": "2024-06-25T12:21:43.000Z", - "href": "href:89", - "id": "id:90", - "lifecycle_state": "stable", - "name": "ibm-broadcast-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - } - ], - "tags": [ - "yair" - ] - }, - { - "available_ipv4_address_count": 251, - "created_at": "2024-06-25T12:21:36.000Z", - "crn": "crn:91", - "href": "href:92", - "id": "id:93", - "ip_version": "ipv4", - "ipv4_cidr_block": "10.240.65.0/24", - "name": "sub2-2", - "network_acl": { - "crn": "crn:94", - "href": "href:95", - "id": "id:96", - "name": "acl2-2" - }, - "public_gateway": { - "crn": "crn:65", - "href": "href:66", - "id": "id:67", - "name": "public-gw2", - "resource_type": "public_gateway" - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "subnet", - "routing_table": { - "href": "href:11", - "id": "id:12", - "name": "traffic-overeasy-festoonery-illusive", - "resource_type": "routing_table" - }, - "status": "available", - "total_ipv4_address_count": 256, - "vpc": { - "crn": "crn:1", - "href": "href:2", - "id": "id:3", - "name": "testacl5-vpc", - "resource_type": "vpc" - }, - "zone": { - "href": "href:6", - "name": "us-south-2" - }, - "reserved_ips": [ - { - "address": "10.240.65.0", - "auto_delete": false, - "created_at": "2024-06-25T12:21:36.000Z", - "href": "href:97", - "id": "id:98", - "lifecycle_state": "stable", - "name": "ibm-network-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.65.1", - "auto_delete": false, - "created_at": "2024-06-25T12:21:36.000Z", - "href": "href:99", - "id": "id:100", - "lifecycle_state": "stable", - "name": "ibm-default-gateway", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.65.2", - "auto_delete": false, - "created_at": "2024-06-25T12:21:36.000Z", - "href": "href:101", - "id": "id:102", - "lifecycle_state": "stable", - "name": "ibm-dns-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.65.3", - "auto_delete": false, - "created_at": "2024-06-25T12:21:36.000Z", - "href": "href:103", - "id": "id:104", - "lifecycle_state": "stable", - "name": "ibm-reserved-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.65.255", - "auto_delete": false, - "created_at": "2024-06-25T12:21:36.000Z", - "href": "href:105", - "id": "id:106", - "lifecycle_state": "stable", - "name": "ibm-broadcast-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - } - ], - "tags": [ - "yair" - ] - }, - { - "available_ipv4_address_count": 251, - "created_at": "2024-06-25T12:21:20.000Z", - "crn": "crn:107", - "href": "href:108", - "id": "id:109", - "ip_version": "ipv4", - "ipv4_cidr_block": "10.240.128.0/24", - "name": "sub3-1", - "network_acl": { - "crn": "crn:110", - "href": "href:111", - "id": "id:112", - "name": "acl3-1" - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "subnet", - "routing_table": { - "href": "href:11", - "id": "id:12", - "name": "traffic-overeasy-festoonery-illusive", - "resource_type": "routing_table" - }, - "status": "available", - "total_ipv4_address_count": 256, - "vpc": { - "crn": "crn:1", - "href": "href:2", - "id": "id:3", - "name": "testacl5-vpc", - "resource_type": "vpc" - }, - "zone": { - "href": "href:7", - "name": "us-south-3" - }, - "reserved_ips": [ - { - "address": "10.240.128.0", - "auto_delete": false, - "created_at": "2024-06-25T12:21:20.000Z", - "href": "href:113", - "id": "id:114", - "lifecycle_state": "stable", - "name": "ibm-network-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.128.1", - "auto_delete": false, - "created_at": "2024-06-25T12:21:20.000Z", - "href": "href:115", - "id": "id:116", - "lifecycle_state": "stable", - "name": "ibm-default-gateway", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.128.2", - "auto_delete": false, - "created_at": "2024-06-25T12:21:20.000Z", - "href": "href:117", - "id": "id:118", - "lifecycle_state": "stable", - "name": "ibm-dns-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.128.3", - "auto_delete": false, - "created_at": "2024-06-25T12:21:20.000Z", - "href": "href:119", - "id": "id:120", - "lifecycle_state": "stable", - "name": "ibm-reserved-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.128.255", - "auto_delete": false, - "created_at": "2024-06-25T12:21:20.000Z", - "href": "href:121", - "id": "id:122", - "lifecycle_state": "stable", - "name": "ibm-broadcast-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - } - ], - "tags": [ - "yair" - ] - } - ], - "public_gateways": [ - { - "created_at": "2024-06-25T12:21:17.000Z", - "crn": "crn:46", - "floating_ip": { - "address": "52.118.146.248", - "crn": "crn:123", - "href": "href:124", - "id": "id:125", - "name": "public-gw1" - }, - "href": "href:47", - "id": "id:48", - "name": "public-gw1", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "public_gateway", - "status": "available", - "vpc": { - "crn": "crn:1", - "href": "href:2", - "id": "id:3", - "name": "testacl5-vpc", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "tags": [ - "yair" - ] - }, - { - "created_at": "2024-06-25T12:21:16.000Z", - "crn": "crn:65", - "floating_ip": { - "address": "169.47.95.195", - "crn": "crn:126", - "href": "href:127", - "id": "id:128", - "name": "public-gw2" - }, - "href": "href:66", - "id": "id:67", - "name": "public-gw2", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "public_gateway", - "status": "available", - "vpc": { - "crn": "crn:1", - "href": "href:2", - "id": "id:3", - "name": "testacl5-vpc", - "resource_type": "vpc" - }, - "zone": { - "href": "href:6", - "name": "us-south-2" - }, - "tags": [ - "yair" - ] - } - ], - "floating_ips": [ - { - "address": "52.118.146.248", - "created_at": "2024-06-25T12:21:16.000Z", - "crn": "crn:123", - "href": "href:124", - "id": "id:125", - "name": "public-gw1", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "status": "available", - "target": { - "href": "href:47", - "id": "id:48", - "name": "public-gw1", - "resource_type": "public_gateway", - "crn": "crn:46" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "tags": [] - }, - { - "address": "169.47.95.195", - "created_at": "2024-06-25T12:21:16.000Z", - "crn": "crn:126", - "href": "href:127", - "id": "id:128", - "name": "public-gw2", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "status": "available", - "target": { - "href": "href:66", - "id": "id:67", - "name": "public-gw2", - "resource_type": "public_gateway", - "crn": "crn:65" - }, - "zone": { - "href": "href:6", - "name": "us-south-2" - }, - "tags": [] - } - ], - "network_acls": [ - { - "created_at": "2024-06-25T12:21:16.000Z", - "crn": "crn:27", - "href": "href:28", - "id": "id:29", - "name": "acl1-2", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "action": "allow", - "before": { - "href": "href:131", - "id": "id:132", - "name": "o2" - }, - "created_at": "2024-06-25T12:21:16.000Z", - "destination": "10.240.1.0/24", - "direction": "outbound", - "href": "href:129", - "id": "id:130", - "ip_version": "ipv4", - "name": "o1", - "source": "10.240.2.0/23", - "destination_port_max": 65535, - "destination_port_min": 1, - "protocol": "tcp", - "source_port_max": 65535, - "source_port_min": 1 - }, - { - "action": "allow", - "before": { - "href": "href:133", - "id": "id:134", - "name": "i1" - }, - "created_at": "2024-06-25T12:21:17.000Z", - "destination": "10.240.2.0/23", - "direction": "outbound", - "href": "href:131", - "id": "id:132", - "ip_version": "ipv4", - "name": "o2", - "source": "10.240.2.0/23", - "destination_port_max": 65535, - "destination_port_min": 1, - "protocol": "tcp", - "source_port_max": 65535, - "source_port_min": 1 - }, - { - "action": "allow", - "before": { - "href": "href:135", - "id": "id:136", - "name": "i2" - }, - "created_at": "2024-06-25T12:21:17.000Z", - "destination": "10.240.2.0/23", - "direction": "inbound", - "href": "href:133", - "id": "id:134", - "ip_version": "ipv4", - "name": "i1", - "source": "10.240.1.0/24", - "destination_port_max": 65535, - "destination_port_min": 1, - "protocol": "tcp", - "source_port_max": 65535, - "source_port_min": 1 - }, - { - "action": "allow", - "created_at": "2024-06-25T12:21:18.000Z", - "destination": "10.240.2.0/23", - "direction": "inbound", - "href": "href:135", - "id": "id:136", - "ip_version": "ipv4", - "name": "i2", - "source": "10.240.2.0/23", - "destination_port_max": 65535, - "destination_port_min": 1, - "protocol": "tcp", - "source_port_max": 65535, - "source_port_min": 1 - } - ], - "subnets": [ - { - "crn": "crn:24", - "href": "href:25", - "id": "id:26", - "name": "sub1-2", - "resource_type": "subnet" - }, - { - "crn": "crn:78", - "href": "href:79", - "id": "id:80", - "name": "sub1-3", - "resource_type": "subnet" - } - ], - "vpc": { - "crn": "crn:1", - "href": "href:2", - "id": "id:3", - "name": "testacl5-vpc", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T12:21:15.000Z", - "crn": "crn:94", - "href": "href:95", - "id": "id:96", - "name": "acl2-2", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "action": "allow", - "before": { - "href": "href:139", - "id": "id:140", - "name": "i1" - }, - "created_at": "2024-06-25T12:21:16.000Z", - "destination": "10.240.64.0/24", - "direction": "outbound", - "href": "href:137", - "id": "id:138", - "ip_version": "ipv4", - "name": "o1", - "source": "10.240.65.0/24", - "protocol": "all" - }, - { - "action": "allow", - "created_at": "2024-06-25T12:21:16.000Z", - "destination": "10.240.65.0/24", - "direction": "inbound", - "href": "href:139", - "id": "id:140", - "ip_version": "ipv4", - "name": "i1", - "source": "10.240.64.0/24", - "protocol": "all" - } - ], - "subnets": [ - { - "crn": "crn:91", - "href": "href:92", - "id": "id:93", - "name": "sub2-2", - "resource_type": "subnet" - } - ], - "vpc": { - "crn": "crn:1", - "href": "href:2", - "id": "id:3", - "name": "testacl5-vpc", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T12:21:15.000Z", - "crn": "crn:110", - "href": "href:111", - "id": "id:112", - "name": "acl3-1", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "action": "allow", - "before": { - "href": "href:143", - "id": "id:144", - "name": "o2" - }, - "created_at": "2024-06-25T12:21:16.000Z", - "destination": "10.240.64.0/24", - "direction": "outbound", - "href": "href:141", - "id": "id:142", - "ip_version": "ipv4", - "name": "o1", - "source": "10.240.128.0/24", - "destination_port_max": 443, - "destination_port_min": 443, - "protocol": "tcp", - "source_port_max": 65535, - "source_port_min": 1 - }, - { - "action": "allow", - "before": { - "href": "href:145", - "id": "id:146", - "name": "o3" - }, - "created_at": "2024-06-25T12:21:17.000Z", - "destination": "10.240.64.0/24", - "direction": "outbound", - "href": "href:143", - "id": "id:144", - "ip_version": "ipv4", - "name": "o2", - "source": "10.240.128.0/24", - "code": 0, - "protocol": "icmp", - "type": 0 - }, - { - "action": "allow", - "before": { - "href": "href:147", - "id": "id:148", - "name": "i1" - }, - "created_at": "2024-06-25T12:21:17.000Z", - "destination": "10.240.1.0/24", - "direction": "outbound", - "href": "href:145", - "id": "id:146", - "ip_version": "ipv4", - "name": "o3", - "source": "10.240.128.0/24", - "code": 0, - "protocol": "icmp", - "type": 0 - }, - { - "action": "allow", - "before": { - "href": "href:149", - "id": "id:150", - "name": "i2" - }, - "created_at": "2024-06-25T12:21:18.000Z", - "destination": "10.240.128.0/24", - "direction": "inbound", - "href": "href:147", - "id": "id:148", - "ip_version": "ipv4", - "name": "i1", - "source": "10.240.64.0/24", - "destination_port_max": 65535, - "destination_port_min": 1, - "protocol": "tcp", - "source_port_max": 443, - "source_port_min": 443 - }, - { - "action": "allow", - "before": { - "href": "href:151", - "id": "id:152", - "name": "i3" - }, - "created_at": "2024-06-25T12:21:18.000Z", - "destination": "10.240.128.0/24", - "direction": "inbound", - "href": "href:149", - "id": "id:150", - "ip_version": "ipv4", - "name": "i2", - "source": "10.240.64.0/24", - "code": 0, - "protocol": "icmp", - "type": 0 - }, - { - "action": "allow", - "created_at": "2024-06-25T12:21:18.000Z", - "destination": "10.240.128.0/24", - "direction": "inbound", - "href": "href:151", - "id": "id:152", - "ip_version": "ipv4", - "name": "i3", - "source": "10.240.1.0/24", - "code": 0, - "protocol": "icmp", - "type": 0 - } - ], - "subnets": [ - { - "crn": "crn:107", - "href": "href:108", - "id": "id:109", - "name": "sub3-1", - "resource_type": "subnet" - } - ], - "vpc": { - "crn": "crn:1", - "href": "href:2", - "id": "id:3", - "name": "testacl5-vpc", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T12:21:15.000Z", - "crn": "crn:43", - "href": "href:44", - "id": "id:45", - "name": "acl1-1", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "action": "allow", - "before": { - "href": "href:155", - "id": "id:156", - "name": "o2" - }, - "created_at": "2024-06-25T12:21:16.000Z", - "destination": "8.8.8.8/32", - "direction": "outbound", - "href": "href:153", - "id": "id:154", - "ip_version": "ipv4", - "name": "o1", - "source": "10.240.1.0/24", - "destination_port_max": 53, - "destination_port_min": 53, - "protocol": "udp", - "source_port_max": 65535, - "source_port_min": 1 - }, - { - "action": "allow", - "before": { - "href": "href:157", - "id": "id:158", - "name": "o3" - }, - "created_at": "2024-06-25T12:21:17.000Z", - "destination": "10.240.2.0/23", - "direction": "outbound", - "href": "href:155", - "id": "id:156", - "ip_version": "ipv4", - "name": "o2", - "source": "10.240.1.0/24", - "destination_port_max": 65535, - "destination_port_min": 1, - "protocol": "tcp", - "source_port_max": 65535, - "source_port_min": 1 - }, - { - "action": "allow", - "before": { - "href": "href:159", - "id": "id:160", - "name": "i1" - }, - "created_at": "2024-06-25T12:21:17.000Z", - "destination": "10.240.128.0/24", - "direction": "outbound", - "href": "href:157", - "id": "id:158", - "ip_version": "ipv4", - "name": "o3", - "source": "10.240.1.0/24", - "code": 0, - "protocol": "icmp", - "type": 0 - }, - { - "action": "allow", - "before": { - "href": "href:161", - "id": "id:162", - "name": "i2" - }, - "created_at": "2024-06-25T12:21:18.000Z", - "destination": "10.240.1.0/24", - "direction": "inbound", - "href": "href:159", - "id": "id:160", - "ip_version": "ipv4", - "name": "i1", - "source": "8.8.8.8/32", - "destination_port_max": 65535, - "destination_port_min": 1, - "protocol": "udp", - "source_port_max": 53, - "source_port_min": 53 - }, - { - "action": "allow", - "before": { - "href": "href:163", - "id": "id:164", - "name": "i3" - }, - "created_at": "2024-06-25T12:21:18.000Z", - "destination": "10.240.1.0/24", - "direction": "inbound", - "href": "href:161", - "id": "id:162", - "ip_version": "ipv4", - "name": "i2", - "source": "10.240.2.0/23", - "destination_port_max": 65535, - "destination_port_min": 1, - "protocol": "tcp", - "source_port_max": 65535, - "source_port_min": 1 - }, - { - "action": "allow", - "created_at": "2024-06-25T12:21:19.000Z", - "destination": "10.240.1.0/24", - "direction": "inbound", - "href": "href:163", - "id": "id:164", - "ip_version": "ipv4", - "name": "i3", - "source": "10.240.128.0/24", - "code": 0, - "protocol": "icmp", - "type": 0 - } - ], - "subnets": [ - { - "crn": "crn:40", - "href": "href:41", - "id": "id:42", - "name": "sub1-1", - "resource_type": "subnet" - } - ], - "vpc": { - "crn": "crn:1", - "href": "href:2", - "id": "id:3", - "name": "testacl5-vpc", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T12:21:15.000Z", - "crn": "crn:62", - "href": "href:63", - "id": "id:64", - "name": "acl2-1", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "action": "allow", - "before": { - "href": "href:167", - "id": "id:168", - "name": "o2" - }, - "created_at": "2024-06-25T12:21:16.000Z", - "destination": "8.8.8.8/32", - "direction": "outbound", - "href": "href:165", - "id": "id:166", - "ip_version": "ipv4", - "name": "o1", - "source": "10.240.64.0/24", - "destination_port_max": 53, - "destination_port_min": 53, - "protocol": "udp", - "source_port_max": 65535, - "source_port_min": 1 - }, - { - "action": "allow", - "before": { - "href": "href:169", - "id": "id:170", - "name": "o3" - }, - "created_at": "2024-06-25T12:21:17.000Z", - "destination": "10.240.65.0/24", - "direction": "outbound", - "href": "href:167", - "id": "id:168", - "ip_version": "ipv4", - "name": "o2", - "source": "10.240.64.0/24", - "protocol": "all" - }, - { - "action": "allow", - "before": { - "href": "href:171", - "id": "id:172", - "name": "o4" - }, - "created_at": "2024-06-25T12:21:17.000Z", - "destination": "10.240.128.0/24", - "direction": "outbound", - "href": "href:169", - "id": "id:170", - "ip_version": "ipv4", - "name": "o3", - "source": "10.240.64.0/24", - "destination_port_max": 65535, - "destination_port_min": 1, - "protocol": "tcp", - "source_port_max": 443, - "source_port_min": 443 - }, - { - "action": "allow", - "before": { - "href": "href:173", - "id": "id:174", - "name": "i1" - }, - "created_at": "2024-06-25T12:21:18.000Z", - "destination": "10.240.128.0/24", - "direction": "outbound", - "href": "href:171", - "id": "id:172", - "ip_version": "ipv4", - "name": "o4", - "source": "10.240.64.0/24", - "code": 0, - "protocol": "icmp", - "type": 0 - }, - { - "action": "allow", - "before": { - "href": "href:175", - "id": "id:176", - "name": "i2" - }, - "created_at": "2024-06-25T12:21:18.000Z", - "destination": "10.240.64.0/24", - "direction": "inbound", - "href": "href:173", - "id": "id:174", - "ip_version": "ipv4", - "name": "i1", - "source": "8.8.8.8/32", - "destination_port_max": 65535, - "destination_port_min": 1, - "protocol": "udp", - "source_port_max": 53, - "source_port_min": 53 - }, - { - "action": "allow", - "before": { - "href": "href:177", - "id": "id:178", - "name": "i3" - }, - "created_at": "2024-06-25T12:21:18.000Z", - "destination": "10.240.64.0/24", - "direction": "inbound", - "href": "href:175", - "id": "id:176", - "ip_version": "ipv4", - "name": "i2", - "source": "10.240.65.0/24", - "protocol": "all" - }, - { - "action": "allow", - "before": { - "href": "href:179", - "id": "id:180", - "name": "i4" - }, - "created_at": "2024-06-25T12:21:19.000Z", - "destination": "10.240.64.0/24", - "direction": "inbound", - "href": "href:177", - "id": "id:178", - "ip_version": "ipv4", - "name": "i3", - "source": "10.240.128.0/24", - "destination_port_max": 443, - "destination_port_min": 443, - "protocol": "tcp", - "source_port_max": 65535, - "source_port_min": 1 - }, - { - "action": "allow", - "created_at": "2024-06-25T12:21:19.000Z", - "destination": "10.240.64.0/24", - "direction": "inbound", - "href": "href:179", - "id": "id:180", - "ip_version": "ipv4", - "name": "i4", - "source": "10.240.128.0/24", - "code": 0, - "protocol": "icmp", - "type": 0 - } - ], - "subnets": [ - { - "crn": "crn:59", - "href": "href:60", - "id": "id:61", - "name": "sub2-1", - "resource_type": "subnet" - } - ], - "vpc": { - "crn": "crn:1", - "href": "href:2", - "id": "id:3", - "name": "testacl5-vpc", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T12:20:45.000Z", - "crn": "crn:8", - "href": "href:9", - "id": "id:10", - "name": "disallow-laborious-compress-abiding", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "action": "allow", - "before": { - "href": "href:183", - "id": "id:184", - "name": "allow-outbound" - }, - "created_at": "2024-06-25T12:20:45.000Z", - "destination": "0.0.0.0/0", - "direction": "inbound", - "href": "href:181", - "id": "id:182", - "ip_version": "ipv4", - "name": "allow-inbound", - "source": "0.0.0.0/0", - "protocol": "all" - }, - { - "action": "allow", - "created_at": "2024-06-25T12:20:45.000Z", - "destination": "0.0.0.0/0", - "direction": "outbound", - "href": "href:183", - "id": "id:184", - "ip_version": "ipv4", - "name": "allow-outbound", - "source": "0.0.0.0/0", - "protocol": "all" - } - ], - "subnets": [], - "vpc": { - "crn": "crn:1", - "href": "href:2", - "id": "id:3", - "name": "testacl5-vpc", - "resource_type": "vpc" - }, - "tags": [] - } - ], - "security_groups": [ - { - "created_at": "2024-06-25T12:21:16.000Z", - "crn": "crn:185", - "href": "href:186", - "id": "id:187", - "name": "sg1", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "direction": "outbound", - "href": "href:188", - "id": "id:189", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "cidr_block": "0.0.0.0/0" - }, - "protocol": "all" - }, - { - "direction": "inbound", - "href": "href:190", - "id": "id:191", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "cidr_block": "0.0.0.0/0" - }, - "protocol": "all" - } - ], - "targets": [], - "vpc": { - "crn": "crn:1", - "href": "href:2", - "id": "id:3", - "name": "testacl5-vpc", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T12:20:45.000Z", - "crn": "crn:13", - "href": "href:14", - "id": "id:15", - "name": "elevation-lyricist-elf-hassle", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "direction": "outbound", - "href": "href:192", - "id": "id:193", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "cidr_block": "0.0.0.0/0" - }, - "protocol": "all" - }, - { - "direction": "inbound", - "href": "href:194", - "id": "id:195", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "crn": "crn:13", - "href": "href:14", - "id": "id:15", - "name": "elevation-lyricist-elf-hassle" - }, - "protocol": "all" - } - ], - "targets": [], - "vpc": { - "crn": "crn:1", - "href": "href:2", - "id": "id:3", - "name": "testacl5-vpc", - "resource_type": "vpc" - }, - "tags": [] - } - ], - "endpoint_gateways": [], - "instances": [], - "routing_tables": [ - { - "accept_routes_from": [ - { - "resource_type": "vpn_gateway" - }, - { - "resource_type": "vpn_server" - } - ], - "advertise_routes_to": [], - "created_at": "2024-06-25T12:20:45.000Z", - "href": "href:11", - "id": "id:12", - "is_default": true, - "lifecycle_state": "stable", - "name": "traffic-overeasy-festoonery-illusive", - "resource_type": "routing_table", - "route_direct_link_ingress": false, - "route_internet_ingress": false, - "route_transit_gateway_ingress": false, - "route_vpc_zone_ingress": false, - "subnets": [ - { - "crn": "crn:24", - "href": "href:25", - "id": "id:26", - "name": "sub1-2", - "resource_type": "subnet" - }, - { - "crn": "crn:40", - "href": "href:41", - "id": "id:42", - "name": "sub1-1", - "resource_type": "subnet" - }, - { - "crn": "crn:59", - "href": "href:60", - "id": "id:61", - "name": "sub2-1", - "resource_type": "subnet" - }, - { - "crn": "crn:78", - "href": "href:79", - "id": "id:80", - "name": "sub1-3", - "resource_type": "subnet" - }, - { - "crn": "crn:91", - "href": "href:92", - "id": "id:93", - "name": "sub2-2", - "resource_type": "subnet" - }, - { - "crn": "crn:107", - "href": "href:108", - "id": "id:109", - "name": "sub3-1", - "resource_type": "subnet" - } - ], - "routes": [], - "vpc": { - "crn": "crn:1", - "href": "href:2", - "id": "id:3", - "name": "testacl5-vpc", - "resource_type": "vpc" - } - } - ], - "load_balancers": [], - "transit_connections": null, - "transit_gateways": null, - "iks_clusters": [] -} diff --git a/test/data/acl_segments/conn_spec.json b/test/data/acl_subnet_cidr_segments/conn_spec.json similarity index 100% rename from test/data/acl_segments/conn_spec.json rename to test/data/acl_subnet_cidr_segments/conn_spec.json diff --git a/test/data/acl_externals/config_object.json b/test/data/acl_testing4/config_object.json similarity index 100% rename from test/data/acl_externals/config_object.json rename to test/data/acl_testing4/config_object.json diff --git a/test/data/acl_tg_multiple/config_object.json b/test/data/acl_tg_multiple/config_object.json deleted file mode 100644 index 7e94d3b8..00000000 --- a/test/data/acl_tg_multiple/config_object.json +++ /dev/null @@ -1,6269 +0,0 @@ -{ - "collector_version": "0.11.0", - "provider": "ibm", - "vpcs": [ - { - "classic_access": false, - "created_at": "2024-06-25T15:40:20.000Z", - "crn": "crn:1", - "cse_source_ips": [ - { - "ip": { - "address": "10.22.215.5" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - } - }, - { - "ip": { - "address": "10.22.220.2" - }, - "zone": { - "href": "href:6", - "name": "us-south-2" - } - }, - { - "ip": { - "address": "10.249.82.12" - }, - "zone": { - "href": "href:7", - "name": "us-south-3" - } - } - ], - "default_network_acl": { - "crn": "crn:8", - "href": "href:9", - "id": "id:10", - "name": "automaker-castle-bird-worried" - }, - "default_routing_table": { - "href": "href:11", - "id": "id:12", - "name": "overtone-sputter-overspend-gorge", - "resource_type": "routing_table" - }, - "default_security_group": { - "crn": "crn:13", - "href": "href:14", - "id": "id:15", - "name": "brute-upon-angles-cubbyhole" - }, - "dns": { - "enable_hub": false, - "resolution_binding_count": 0, - "resolver": { - "servers": [ - { - "address": "161.26.0.10" - }, - { - "address": "161.26.0.11" - } - ], - "type": "system", - "configuration": "default" - } - }, - "health_reasons": null, - "health_state": "ok", - "href": "href:2", - "id": "id:3", - "name": "test-vpc1", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "vpc", - "status": "available", - "region": "us-south", - "address_prefixes": [ - { - "cidr": "10.240.80.0/20", - "created_at": "2024-06-25T15:40:39.000Z", - "has_subnets": true, - "href": "href:18", - "id": "id:19", - "is_default": false, - "name": "address-prefix-vpc-1", - "zone": { - "href": "href:6", - "name": "us-south-2" - } - }, - { - "cidr": "10.240.64.0/20", - "created_at": "2024-06-25T15:40:40.000Z", - "has_subnets": true, - "href": "href:20", - "id": "id:21", - "is_default": false, - "name": "address-prefix-vpc-0", - "zone": { - "href": "href:6", - "name": "us-south-2" - } - } - ], - "tags": [] - }, - { - "classic_access": false, - "created_at": "2024-06-25T15:40:19.000Z", - "crn": "crn:22", - "cse_source_ips": [ - { - "ip": { - "address": "10.16.238.56" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - } - }, - { - "ip": { - "address": "10.249.200.205" - }, - "zone": { - "href": "href:6", - "name": "us-south-2" - } - }, - { - "ip": { - "address": "10.249.212.88" - }, - "zone": { - "href": "href:7", - "name": "us-south-3" - } - } - ], - "default_network_acl": { - "crn": "crn:25", - "href": "href:26", - "id": "id:27", - "name": "ebullient-slacks-revert-turkey" - }, - "default_routing_table": { - "href": "href:28", - "id": "id:29", - "name": "escapade-dynamite-upstage-context", - "resource_type": "routing_table" - }, - "default_security_group": { - "crn": "crn:30", - "href": "href:31", - "id": "id:32", - "name": "basically-drank-bulk-jam" - }, - "dns": { - "enable_hub": false, - "resolution_binding_count": 0, - "resolver": { - "servers": [ - { - "address": "161.26.0.10" - }, - { - "address": "161.26.0.11" - } - ], - "type": "system", - "configuration": "default" - } - }, - "health_reasons": null, - "health_state": "ok", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "vpc", - "status": "available", - "region": "us-south", - "address_prefixes": [ - { - "cidr": "10.240.0.0/22", - "created_at": "2024-06-25T15:40:37.000Z", - "has_subnets": true, - "href": "href:33", - "id": "id:34", - "is_default": false, - "name": "address-prefix-vpc-0", - "zone": { - "href": "href:5", - "name": "us-south-1" - } - }, - { - "cidr": "10.240.4.0/22", - "created_at": "2024-06-25T15:40:38.000Z", - "has_subnets": true, - "href": "href:35", - "id": "id:36", - "is_default": false, - "name": "address-prefix-vpc-1", - "zone": { - "href": "href:5", - "name": "us-south-1" - } - }, - { - "cidr": "10.240.8.0/22", - "created_at": "2024-06-25T15:40:39.000Z", - "has_subnets": true, - "href": "href:37", - "id": "id:38", - "is_default": false, - "name": "address-prefix-vpc-2", - "zone": { - "href": "href:5", - "name": "us-south-1" - } - } - ], - "tags": [] - }, - { - "classic_access": false, - "created_at": "2024-06-25T15:40:19.000Z", - "crn": "crn:39", - "cse_source_ips": [ - { - "ip": { - "address": "10.12.125.16" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - } - }, - { - "ip": { - "address": "10.22.27.134" - }, - "zone": { - "href": "href:6", - "name": "us-south-2" - } - }, - { - "ip": { - "address": "10.22.231.90" - }, - "zone": { - "href": "href:7", - "name": "us-south-3" - } - } - ], - "default_network_acl": { - "crn": "crn:42", - "href": "href:43", - "id": "id:44", - "name": "afoot-grape-fineness-zestfully" - }, - "default_routing_table": { - "href": "href:45", - "id": "id:46", - "name": "quintuple-severity-caddie-manuals", - "resource_type": "routing_table" - }, - "default_security_group": { - "crn": "crn:47", - "href": "href:48", - "id": "id:49", - "name": "glance-cactus-unease-bankroll" - }, - "dns": { - "enable_hub": false, - "resolution_binding_count": 0, - "resolver": { - "servers": [ - { - "address": "161.26.0.10" - }, - { - "address": "161.26.0.11" - } - ], - "type": "system", - "configuration": "default" - } - }, - "health_reasons": null, - "health_state": "ok", - "href": "href:40", - "id": "id:41", - "name": "test-vpc2", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "vpc", - "status": "available", - "region": "us-south", - "address_prefixes": [ - { - "cidr": "10.240.128.0/20", - "created_at": "2024-06-25T15:40:39.000Z", - "has_subnets": true, - "href": "href:50", - "id": "id:51", - "is_default": false, - "name": "address-prefix-vpc-0", - "zone": { - "href": "href:7", - "name": "us-south-3" - } - } - ], - "tags": [] - }, - { - "classic_access": false, - "created_at": "2024-06-25T15:40:19.000Z", - "crn": "crn:52", - "cse_source_ips": [ - { - "ip": { - "address": "10.22.219.155" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - } - }, - { - "ip": { - "address": "10.12.159.11" - }, - "zone": { - "href": "href:6", - "name": "us-south-2" - } - }, - { - "ip": { - "address": "10.16.253.109" - }, - "zone": { - "href": "href:7", - "name": "us-south-3" - } - } - ], - "default_network_acl": { - "crn": "crn:55", - "href": "href:56", - "id": "id:57", - "name": "untracked-repayment-triumph-cat" - }, - "default_routing_table": { - "href": "href:58", - "id": "id:59", - "name": "probational-herring-undone-daintily", - "resource_type": "routing_table" - }, - "default_security_group": { - "crn": "crn:60", - "href": "href:61", - "id": "id:62", - "name": "repeater-upcountry-agreeing-acutely" - }, - "dns": { - "enable_hub": false, - "resolution_binding_count": 0, - "resolver": { - "servers": [ - { - "address": "161.26.0.10" - }, - { - "address": "161.26.0.11" - } - ], - "type": "system", - "configuration": "default" - } - }, - "health_reasons": null, - "health_state": "ok", - "href": "href:53", - "id": "id:54", - "name": "test-vpc3", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "vpc", - "status": "available", - "region": "us-south", - "address_prefixes": [ - { - "cidr": "10.240.192.0/20", - "created_at": "2024-06-25T15:40:38.000Z", - "has_subnets": true, - "href": "href:63", - "id": "id:64", - "is_default": false, - "name": "address-prefix-vpc-0", - "zone": { - "href": "href:7", - "name": "us-south-3" - } - } - ], - "tags": [] - } - ], - "subnets": [ - { - "available_ipv4_address_count": 249, - "created_at": "2024-06-25T15:41:47.000Z", - "crn": "crn:65", - "href": "href:66", - "id": "id:67", - "ip_version": "ipv4", - "ipv4_cidr_block": "10.240.9.0/24", - "name": "subnet5", - "network_acl": { - "crn": "crn:68", - "href": "href:69", - "id": "id:70", - "name": "acl3" - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "subnet", - "routing_table": { - "href": "href:28", - "id": "id:29", - "name": "escapade-dynamite-upstage-context", - "resource_type": "routing_table" - }, - "status": "available", - "total_ipv4_address_count": 256, - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "reserved_ips": [ - { - "address": "10.240.9.0", - "auto_delete": false, - "created_at": "2024-06-25T15:41:47.000Z", - "href": "href:71", - "id": "id:72", - "lifecycle_state": "stable", - "name": "ibm-network-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.9.1", - "auto_delete": false, - "created_at": "2024-06-25T15:41:47.000Z", - "href": "href:73", - "id": "id:74", - "lifecycle_state": "stable", - "name": "ibm-default-gateway", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.9.2", - "auto_delete": false, - "created_at": "2024-06-25T15:41:47.000Z", - "href": "href:75", - "id": "id:76", - "lifecycle_state": "stable", - "name": "ibm-dns-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.9.3", - "auto_delete": false, - "created_at": "2024-06-25T15:41:47.000Z", - "href": "href:77", - "id": "id:78", - "lifecycle_state": "stable", - "name": "ibm-reserved-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.9.4", - "auto_delete": false, - "created_at": "2024-06-25T15:42:00.000Z", - "href": "href:79", - "id": "id:80", - "lifecycle_state": "stable", - "name": "ideally-grain-bagpipe-luxuriant", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:81", - "id": "id:82", - "name": "stooped-camera-excluded-juke", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.9.5", - "auto_delete": false, - "created_at": "2024-06-25T15:42:20.000Z", - "href": "href:83", - "id": "id:84", - "lifecycle_state": "stable", - "name": "outskirts-unaligned-passivism-parchment", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:85", - "id": "id:86", - "name": "scratch-outward-raging-hunchback", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.9.255", - "auto_delete": false, - "created_at": "2024-06-25T15:41:47.000Z", - "href": "href:87", - "id": "id:88", - "lifecycle_state": "stable", - "name": "ibm-broadcast-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - } - ], - "tags": [] - }, - { - "available_ipv4_address_count": 249, - "created_at": "2024-06-25T15:41:35.000Z", - "crn": "crn:89", - "href": "href:90", - "id": "id:91", - "ip_version": "ipv4", - "ipv4_cidr_block": "10.240.5.0/24", - "name": "subnet3", - "network_acl": { - "crn": "crn:92", - "href": "href:93", - "id": "id:94", - "name": "acl2" - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "subnet", - "routing_table": { - "href": "href:28", - "id": "id:29", - "name": "escapade-dynamite-upstage-context", - "resource_type": "routing_table" - }, - "status": "available", - "total_ipv4_address_count": 256, - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "reserved_ips": [ - { - "address": "10.240.5.0", - "auto_delete": false, - "created_at": "2024-06-25T15:41:35.000Z", - "href": "href:95", - "id": "id:96", - "lifecycle_state": "stable", - "name": "ibm-network-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.5.1", - "auto_delete": false, - "created_at": "2024-06-25T15:41:35.000Z", - "href": "href:97", - "id": "id:98", - "lifecycle_state": "stable", - "name": "ibm-default-gateway", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.5.2", - "auto_delete": false, - "created_at": "2024-06-25T15:41:35.000Z", - "href": "href:99", - "id": "id:100", - "lifecycle_state": "stable", - "name": "ibm-dns-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.5.3", - "auto_delete": false, - "created_at": "2024-06-25T15:41:35.000Z", - "href": "href:101", - "id": "id:102", - "lifecycle_state": "stable", - "name": "ibm-reserved-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.5.4", - "auto_delete": false, - "created_at": "2024-06-25T15:42:00.000Z", - "href": "href:103", - "id": "id:104", - "lifecycle_state": "stable", - "name": "rising-gopher-reentry-graveness", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:105", - "id": "id:106", - "name": "icky-balsamic-outgoing-leached", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.5.5", - "auto_delete": false, - "created_at": "2024-06-25T15:42:16.000Z", - "href": "href:107", - "id": "id:108", - "lifecycle_state": "stable", - "name": "recognize-citable-exerciser-unsecured", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:109", - "id": "id:110", - "name": "squatted-fastball-vacant-knoll", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.5.255", - "auto_delete": false, - "created_at": "2024-06-25T15:41:35.000Z", - "href": "href:111", - "id": "id:112", - "lifecycle_state": "stable", - "name": "ibm-broadcast-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - } - ], - "tags": [] - }, - { - "available_ipv4_address_count": 249, - "created_at": "2024-06-25T15:41:23.000Z", - "crn": "crn:113", - "href": "href:114", - "id": "id:115", - "ip_version": "ipv4", - "ipv4_cidr_block": "10.240.0.0/24", - "name": "subnet0", - "network_acl": { - "crn": "crn:116", - "href": "href:117", - "id": "id:118", - "name": "acl1" - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "subnet", - "routing_table": { - "href": "href:28", - "id": "id:29", - "name": "escapade-dynamite-upstage-context", - "resource_type": "routing_table" - }, - "status": "available", - "total_ipv4_address_count": 256, - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "reserved_ips": [ - { - "address": "10.240.0.0", - "auto_delete": false, - "created_at": "2024-06-25T15:41:23.000Z", - "href": "href:119", - "id": "id:120", - "lifecycle_state": "stable", - "name": "ibm-network-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.0.1", - "auto_delete": false, - "created_at": "2024-06-25T15:41:23.000Z", - "href": "href:121", - "id": "id:122", - "lifecycle_state": "stable", - "name": "ibm-default-gateway", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.0.2", - "auto_delete": false, - "created_at": "2024-06-25T15:41:23.000Z", - "href": "href:123", - "id": "id:124", - "lifecycle_state": "stable", - "name": "ibm-dns-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.0.3", - "auto_delete": false, - "created_at": "2024-06-25T15:41:23.000Z", - "href": "href:125", - "id": "id:126", - "lifecycle_state": "stable", - "name": "ibm-reserved-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.0.4", - "auto_delete": false, - "created_at": "2024-06-25T15:42:08.000Z", - "href": "href:127", - "id": "id:128", - "lifecycle_state": "stable", - "name": "pundit-tight-arbitrate-grace", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:129", - "id": "id:130", - "name": "writer-crusher-unsuited-cash", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.0.5", - "auto_delete": false, - "created_at": "2024-06-25T15:42:39.000Z", - "href": "href:131", - "id": "id:132", - "lifecycle_state": "stable", - "name": "relatable-antiques-maturing-brulee", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:133", - "id": "id:134", - "name": "consonant-imperial-simply-ceramics", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.0.255", - "auto_delete": false, - "created_at": "2024-06-25T15:41:23.000Z", - "href": "href:135", - "id": "id:136", - "lifecycle_state": "stable", - "name": "ibm-broadcast-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - } - ], - "tags": [] - }, - { - "available_ipv4_address_count": 250, - "created_at": "2024-06-25T15:41:20.000Z", - "crn": "crn:137", - "href": "href:138", - "id": "id:139", - "ip_version": "ipv4", - "ipv4_cidr_block": "10.240.80.0/24", - "name": "subnet11", - "network_acl": { - "crn": "crn:140", - "href": "href:141", - "id": "id:142", - "name": "acl11" - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "subnet", - "routing_table": { - "href": "href:11", - "id": "id:12", - "name": "overtone-sputter-overspend-gorge", - "resource_type": "routing_table" - }, - "status": "available", - "total_ipv4_address_count": 256, - "vpc": { - "crn": "crn:1", - "href": "href:2", - "id": "id:3", - "name": "test-vpc1", - "resource_type": "vpc" - }, - "zone": { - "href": "href:6", - "name": "us-south-2" - }, - "reserved_ips": [ - { - "address": "10.240.80.0", - "auto_delete": false, - "created_at": "2024-06-25T15:41:20.000Z", - "href": "href:143", - "id": "id:144", - "lifecycle_state": "stable", - "name": "ibm-network-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.80.1", - "auto_delete": false, - "created_at": "2024-06-25T15:41:20.000Z", - "href": "href:145", - "id": "id:146", - "lifecycle_state": "stable", - "name": "ibm-default-gateway", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.80.2", - "auto_delete": false, - "created_at": "2024-06-25T15:41:20.000Z", - "href": "href:147", - "id": "id:148", - "lifecycle_state": "stable", - "name": "ibm-dns-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.80.3", - "auto_delete": false, - "created_at": "2024-06-25T15:41:20.000Z", - "href": "href:149", - "id": "id:150", - "lifecycle_state": "stable", - "name": "ibm-reserved-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.80.4", - "auto_delete": false, - "created_at": "2024-06-25T15:41:40.000Z", - "href": "href:151", - "id": "id:152", - "lifecycle_state": "stable", - "name": "childlike-publish-retainer-movie", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:153", - "id": "id:154", - "name": "stride-woken-backsight-dynastic", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.80.255", - "auto_delete": false, - "created_at": "2024-06-25T15:41:20.000Z", - "href": "href:155", - "id": "id:156", - "lifecycle_state": "stable", - "name": "ibm-broadcast-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - } - ], - "tags": [] - }, - { - "available_ipv4_address_count": 249, - "created_at": "2024-06-25T15:41:08.000Z", - "crn": "crn:157", - "href": "href:158", - "id": "id:159", - "ip_version": "ipv4", - "ipv4_cidr_block": "10.240.4.0/24", - "name": "subnet2", - "network_acl": { - "crn": "crn:92", - "href": "href:93", - "id": "id:94", - "name": "acl2" - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "subnet", - "routing_table": { - "href": "href:28", - "id": "id:29", - "name": "escapade-dynamite-upstage-context", - "resource_type": "routing_table" - }, - "status": "available", - "total_ipv4_address_count": 256, - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "reserved_ips": [ - { - "address": "10.240.4.0", - "auto_delete": false, - "created_at": "2024-06-25T15:41:08.000Z", - "href": "href:160", - "id": "id:161", - "lifecycle_state": "stable", - "name": "ibm-network-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.4.1", - "auto_delete": false, - "created_at": "2024-06-25T15:41:08.000Z", - "href": "href:162", - "id": "id:163", - "lifecycle_state": "stable", - "name": "ibm-default-gateway", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.4.2", - "auto_delete": false, - "created_at": "2024-06-25T15:41:08.000Z", - "href": "href:164", - "id": "id:165", - "lifecycle_state": "stable", - "name": "ibm-dns-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.4.3", - "auto_delete": false, - "created_at": "2024-06-25T15:41:08.000Z", - "href": "href:166", - "id": "id:167", - "lifecycle_state": "stable", - "name": "ibm-reserved-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.4.4", - "auto_delete": false, - "created_at": "2024-06-25T15:42:21.000Z", - "href": "href:168", - "id": "id:169", - "lifecycle_state": "stable", - "name": "stood-sitcom-whoops-hurled", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:170", - "id": "id:171", - "name": "graveyard-handmade-ransack-acquaint", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.4.5", - "auto_delete": false, - "created_at": "2024-06-25T15:42:22.000Z", - "href": "href:172", - "id": "id:173", - "lifecycle_state": "stable", - "name": "bark-gatherer-rope-unrivaled", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:174", - "id": "id:175", - "name": "quantum-handbag-dimmed-reassign", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.4.255", - "auto_delete": false, - "created_at": "2024-06-25T15:41:08.000Z", - "href": "href:176", - "id": "id:177", - "lifecycle_state": "stable", - "name": "ibm-broadcast-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - } - ], - "tags": [] - }, - { - "available_ipv4_address_count": 250, - "created_at": "2024-06-25T15:41:08.000Z", - "crn": "crn:178", - "href": "href:179", - "id": "id:180", - "ip_version": "ipv4", - "ipv4_cidr_block": "10.240.64.0/24", - "name": "subnet10", - "network_acl": { - "crn": "crn:140", - "href": "href:141", - "id": "id:142", - "name": "acl11" - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "subnet", - "routing_table": { - "href": "href:11", - "id": "id:12", - "name": "overtone-sputter-overspend-gorge", - "resource_type": "routing_table" - }, - "status": "available", - "total_ipv4_address_count": 256, - "vpc": { - "crn": "crn:1", - "href": "href:2", - "id": "id:3", - "name": "test-vpc1", - "resource_type": "vpc" - }, - "zone": { - "href": "href:6", - "name": "us-south-2" - }, - "reserved_ips": [ - { - "address": "10.240.64.0", - "auto_delete": false, - "created_at": "2024-06-25T15:41:08.000Z", - "href": "href:181", - "id": "id:182", - "lifecycle_state": "stable", - "name": "ibm-network-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.64.1", - "auto_delete": false, - "created_at": "2024-06-25T15:41:08.000Z", - "href": "href:183", - "id": "id:184", - "lifecycle_state": "stable", - "name": "ibm-default-gateway", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.64.2", - "auto_delete": false, - "created_at": "2024-06-25T15:41:08.000Z", - "href": "href:185", - "id": "id:186", - "lifecycle_state": "stable", - "name": "ibm-dns-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.64.3", - "auto_delete": false, - "created_at": "2024-06-25T15:41:08.000Z", - "href": "href:187", - "id": "id:188", - "lifecycle_state": "stable", - "name": "ibm-reserved-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.64.4", - "auto_delete": false, - "created_at": "2024-06-25T15:41:36.000Z", - "href": "href:189", - "id": "id:190", - "lifecycle_state": "stable", - "name": "starry-smasher-ladle-dioxide", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:191", - "id": "id:192", - "name": "enlace-prominent-overhear-perfume", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.64.255", - "auto_delete": false, - "created_at": "2024-06-25T15:41:08.000Z", - "href": "href:193", - "id": "id:194", - "lifecycle_state": "stable", - "name": "ibm-broadcast-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - } - ], - "tags": [] - }, - { - "available_ipv4_address_count": 248, - "created_at": "2024-06-25T15:40:57.000Z", - "crn": "crn:195", - "href": "href:196", - "id": "id:197", - "ip_version": "ipv4", - "ipv4_cidr_block": "10.240.128.0/24", - "name": "subnet20", - "network_acl": { - "crn": "crn:198", - "href": "href:199", - "id": "id:200", - "name": "acl21" - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "subnet", - "routing_table": { - "href": "href:45", - "id": "id:46", - "name": "quintuple-severity-caddie-manuals", - "resource_type": "routing_table" - }, - "status": "available", - "total_ipv4_address_count": 256, - "vpc": { - "crn": "crn:39", - "href": "href:40", - "id": "id:41", - "name": "test-vpc2", - "resource_type": "vpc" - }, - "zone": { - "href": "href:7", - "name": "us-south-3" - }, - "reserved_ips": [ - { - "address": "10.240.128.0", - "auto_delete": false, - "created_at": "2024-06-25T15:40:57.000Z", - "href": "href:201", - "id": "id:202", - "lifecycle_state": "stable", - "name": "ibm-network-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.128.1", - "auto_delete": false, - "created_at": "2024-06-25T15:40:57.000Z", - "href": "href:203", - "id": "id:204", - "lifecycle_state": "stable", - "name": "ibm-default-gateway", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.128.2", - "auto_delete": false, - "created_at": "2024-06-25T15:40:57.000Z", - "href": "href:205", - "id": "id:206", - "lifecycle_state": "stable", - "name": "ibm-dns-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.128.3", - "auto_delete": false, - "created_at": "2024-06-25T15:40:57.000Z", - "href": "href:207", - "id": "id:208", - "lifecycle_state": "stable", - "name": "ibm-reserved-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.128.4", - "auto_delete": false, - "created_at": "2024-06-25T15:41:21.000Z", - "href": "href:209", - "id": "id:210", - "lifecycle_state": "stable", - "name": "unmixed-qualify-prescribe-railcar", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:211", - "id": "id:212", - "name": "tavern-far-imprudent-labored", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.128.5", - "auto_delete": false, - "created_at": "2024-06-25T15:41:21.000Z", - "href": "href:213", - "id": "id:214", - "lifecycle_state": "stable", - "name": "customs-recollect-drippy-primate", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:215", - "id": "id:216", - "name": "ought-football-shorter-aviator", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.128.6", - "auto_delete": false, - "created_at": "2024-06-25T15:41:24.000Z", - "href": "href:217", - "id": "id:218", - "lifecycle_state": "stable", - "name": "uniquely-shelter-gracious-sudden", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:219", - "id": "id:220", - "name": "clicker-grumbly-outskirts-greatly", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.128.255", - "auto_delete": false, - "created_at": "2024-06-25T15:40:57.000Z", - "href": "href:221", - "id": "id:222", - "lifecycle_state": "stable", - "name": "ibm-broadcast-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - } - ], - "tags": [] - }, - { - "available_ipv4_address_count": 249, - "created_at": "2024-06-25T15:40:56.000Z", - "crn": "crn:223", - "href": "href:224", - "id": "id:225", - "ip_version": "ipv4", - "ipv4_cidr_block": "10.240.1.0/24", - "name": "subnet1", - "network_acl": { - "crn": "crn:116", - "href": "href:117", - "id": "id:118", - "name": "acl1" - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "subnet", - "routing_table": { - "href": "href:28", - "id": "id:29", - "name": "escapade-dynamite-upstage-context", - "resource_type": "routing_table" - }, - "status": "available", - "total_ipv4_address_count": 256, - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "reserved_ips": [ - { - "address": "10.240.1.0", - "auto_delete": false, - "created_at": "2024-06-25T15:40:56.000Z", - "href": "href:226", - "id": "id:227", - "lifecycle_state": "stable", - "name": "ibm-network-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.1.1", - "auto_delete": false, - "created_at": "2024-06-25T15:40:56.000Z", - "href": "href:228", - "id": "id:229", - "lifecycle_state": "stable", - "name": "ibm-default-gateway", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.1.2", - "auto_delete": false, - "created_at": "2024-06-25T15:40:56.000Z", - "href": "href:230", - "id": "id:231", - "lifecycle_state": "stable", - "name": "ibm-dns-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.1.3", - "auto_delete": false, - "created_at": "2024-06-25T15:40:56.000Z", - "href": "href:232", - "id": "id:233", - "lifecycle_state": "stable", - "name": "ibm-reserved-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.1.4", - "auto_delete": false, - "created_at": "2024-06-25T15:42:00.000Z", - "href": "href:234", - "id": "id:235", - "lifecycle_state": "stable", - "name": "excluded-unfair-jailbird-foil", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:236", - "id": "id:237", - "name": "hankie-excitable-outclass-unmanaged", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.1.5", - "auto_delete": false, - "created_at": "2024-06-25T15:42:40.000Z", - "href": "href:238", - "id": "id:239", - "lifecycle_state": "stable", - "name": "affected-johnniecake-monorail-ungraded", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:240", - "id": "id:241", - "name": "scale-clambake-endearing-abridged", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.1.255", - "auto_delete": false, - "created_at": "2024-06-25T15:40:56.000Z", - "href": "href:242", - "id": "id:243", - "lifecycle_state": "stable", - "name": "ibm-broadcast-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - } - ], - "tags": [] - }, - { - "available_ipv4_address_count": 250, - "created_at": "2024-06-25T15:40:48.000Z", - "crn": "crn:244", - "href": "href:245", - "id": "id:246", - "ip_version": "ipv4", - "ipv4_cidr_block": "10.240.192.0/24", - "name": "subnet30", - "network_acl": { - "crn": "crn:247", - "href": "href:248", - "id": "id:249", - "name": "acl31" - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "subnet", - "routing_table": { - "href": "href:58", - "id": "id:59", - "name": "probational-herring-undone-daintily", - "resource_type": "routing_table" - }, - "status": "available", - "total_ipv4_address_count": 256, - "vpc": { - "crn": "crn:52", - "href": "href:53", - "id": "id:54", - "name": "test-vpc3", - "resource_type": "vpc" - }, - "zone": { - "href": "href:7", - "name": "us-south-3" - }, - "reserved_ips": [ - { - "address": "10.240.192.0", - "auto_delete": false, - "created_at": "2024-06-25T15:40:48.000Z", - "href": "href:250", - "id": "id:251", - "lifecycle_state": "stable", - "name": "ibm-network-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.192.1", - "auto_delete": false, - "created_at": "2024-06-25T15:40:48.000Z", - "href": "href:252", - "id": "id:253", - "lifecycle_state": "stable", - "name": "ibm-default-gateway", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.192.2", - "auto_delete": false, - "created_at": "2024-06-25T15:40:48.000Z", - "href": "href:254", - "id": "id:255", - "lifecycle_state": "stable", - "name": "ibm-dns-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.192.3", - "auto_delete": false, - "created_at": "2024-06-25T15:40:48.000Z", - "href": "href:256", - "id": "id:257", - "lifecycle_state": "stable", - "name": "ibm-reserved-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.192.4", - "auto_delete": false, - "created_at": "2024-06-25T15:41:01.000Z", - "href": "href:258", - "id": "id:259", - "lifecycle_state": "stable", - "name": "legacy-shore-molecule-barometer", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:260", - "id": "id:261", - "name": "snout-given-twiddle-splinter", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.192.255", - "auto_delete": false, - "created_at": "2024-06-25T15:40:48.000Z", - "href": "href:262", - "id": "id:263", - "lifecycle_state": "stable", - "name": "ibm-broadcast-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - } - ], - "tags": [] - }, - { - "available_ipv4_address_count": 249, - "created_at": "2024-06-25T15:40:44.000Z", - "crn": "crn:264", - "href": "href:265", - "id": "id:266", - "ip_version": "ipv4", - "ipv4_cidr_block": "10.240.8.0/24", - "name": "subnet4", - "network_acl": { - "crn": "crn:68", - "href": "href:69", - "id": "id:70", - "name": "acl3" - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "subnet", - "routing_table": { - "href": "href:28", - "id": "id:29", - "name": "escapade-dynamite-upstage-context", - "resource_type": "routing_table" - }, - "status": "available", - "total_ipv4_address_count": 256, - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "reserved_ips": [ - { - "address": "10.240.8.0", - "auto_delete": false, - "created_at": "2024-06-25T15:40:44.000Z", - "href": "href:267", - "id": "id:268", - "lifecycle_state": "stable", - "name": "ibm-network-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.8.1", - "auto_delete": false, - "created_at": "2024-06-25T15:40:44.000Z", - "href": "href:269", - "id": "id:270", - "lifecycle_state": "stable", - "name": "ibm-default-gateway", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.8.2", - "auto_delete": false, - "created_at": "2024-06-25T15:40:44.000Z", - "href": "href:271", - "id": "id:272", - "lifecycle_state": "stable", - "name": "ibm-dns-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.8.3", - "auto_delete": false, - "created_at": "2024-06-25T15:40:44.000Z", - "href": "href:273", - "id": "id:274", - "lifecycle_state": "stable", - "name": "ibm-reserved-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.8.4", - "auto_delete": false, - "created_at": "2024-06-25T15:42:00.000Z", - "href": "href:275", - "id": "id:276", - "lifecycle_state": "stable", - "name": "bagged-posture-glaring-cojoined", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:277", - "id": "id:278", - "name": "bullring-ransack-feint-cheer", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.8.5", - "auto_delete": false, - "created_at": "2024-06-25T15:42:16.000Z", - "href": "href:279", - "id": "id:280", - "lifecycle_state": "stable", - "name": "frighten-mystified-freeway-hurtling", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:281", - "id": "id:282", - "name": "speak-princess-washcloth-companion", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.8.255", - "auto_delete": false, - "created_at": "2024-06-25T15:40:44.000Z", - "href": "href:283", - "id": "id:284", - "lifecycle_state": "stable", - "name": "ibm-broadcast-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - } - ], - "tags": [] - } - ], - "public_gateways": [], - "floating_ips": [ - { - "address": "52.118.151.238", - "created_at": "2024-06-25T15:43:30.000Z", - "crn": "crn:285", - "href": "href:286", - "id": "id:287", - "name": "fip-0-subnet0", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "status": "available", - "target": { - "href": "href:129", - "id": "id:130", - "name": "writer-crusher-unsuited-cash", - "primary_ip": { - "address": "10.240.0.4", - "href": "href:127", - "id": "id:128", - "name": "pundit-tight-arbitrate-grace", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "tags": [] - }, - { - "address": "150.239.167.146", - "created_at": "2024-06-25T15:41:59.000Z", - "crn": "crn:288", - "href": "href:289", - "id": "id:290", - "name": "fip-0-subnet10", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "status": "available", - "target": { - "href": "href:191", - "id": "id:192", - "name": "enlace-prominent-overhear-perfume", - "primary_ip": { - "address": "10.240.64.4", - "href": "href:189", - "id": "id:190", - "name": "starry-smasher-ladle-dioxide", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface" - }, - "zone": { - "href": "href:6", - "name": "us-south-2" - }, - "tags": [] - }, - { - "address": "169.48.95.165", - "created_at": "2024-06-25T15:41:50.000Z", - "crn": "crn:291", - "href": "href:292", - "id": "id:293", - "name": "fip-0-subnet20", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "status": "available", - "target": { - "href": "href:219", - "id": "id:220", - "name": "clicker-grumbly-outskirts-greatly", - "primary_ip": { - "address": "10.240.128.6", - "href": "href:217", - "id": "id:218", - "name": "uniquely-shelter-gracious-sudden", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface" - }, - "zone": { - "href": "href:7", - "name": "us-south-3" - }, - "tags": [] - }, - { - "address": "52.118.100.239", - "created_at": "2024-06-25T15:41:33.000Z", - "crn": "crn:294", - "href": "href:295", - "id": "id:296", - "name": "fip-0-subnet30", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "status": "available", - "target": { - "href": "href:260", - "id": "id:261", - "name": "snout-given-twiddle-splinter", - "primary_ip": { - "address": "10.240.192.4", - "href": "href:258", - "id": "id:259", - "name": "legacy-shore-molecule-barometer", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface" - }, - "zone": { - "href": "href:7", - "name": "us-south-3" - }, - "tags": [] - } - ], - "network_acls": [ - { - "created_at": "2024-06-25T15:40:41.000Z", - "crn": "crn:140", - "href": "href:141", - "id": "id:142", - "name": "acl11", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "action": "deny", - "before": { - "href": "href:299", - "id": "id:300", - "name": "acl11-out-2" - }, - "created_at": "2024-06-25T15:40:42.000Z", - "destination": "10.240.4.0/24", - "direction": "outbound", - "href": "href:297", - "id": "id:298", - "ip_version": "ipv4", - "name": "acl11-out-1", - "source": "0.0.0.0/0", - "protocol": "all" - }, - { - "action": "allow", - "before": { - "href": "href:301", - "id": "id:302", - "name": "acl11-in-1" - }, - "created_at": "2024-06-25T15:40:43.000Z", - "destination": "0.0.0.0/0", - "direction": "outbound", - "href": "href:299", - "id": "id:300", - "ip_version": "ipv4", - "name": "acl11-out-2", - "source": "0.0.0.0/0", - "protocol": "all" - }, - { - "action": "allow", - "created_at": "2024-06-25T15:40:43.000Z", - "destination": "0.0.0.0/0", - "direction": "inbound", - "href": "href:301", - "id": "id:302", - "ip_version": "ipv4", - "name": "acl11-in-1", - "source": "0.0.0.0/0", - "protocol": "all" - } - ], - "subnets": [ - { - "crn": "crn:137", - "href": "href:138", - "id": "id:139", - "name": "subnet11", - "resource_type": "subnet" - }, - { - "crn": "crn:178", - "href": "href:179", - "id": "id:180", - "name": "subnet10", - "resource_type": "subnet" - } - ], - "vpc": { - "crn": "crn:1", - "href": "href:2", - "id": "id:3", - "name": "test-vpc1", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:40.000Z", - "crn": "crn:247", - "href": "href:248", - "id": "id:249", - "name": "acl31", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "action": "allow", - "before": { - "href": "href:305", - "id": "id:306", - "name": "acl31-in-1" - }, - "created_at": "2024-06-25T15:40:41.000Z", - "destination": "0.0.0.0/0", - "direction": "outbound", - "href": "href:303", - "id": "id:304", - "ip_version": "ipv4", - "name": "acl31-out-1", - "source": "0.0.0.0/0", - "protocol": "all" - }, - { - "action": "allow", - "created_at": "2024-06-25T15:40:41.000Z", - "destination": "0.0.0.0/0", - "direction": "inbound", - "href": "href:305", - "id": "id:306", - "ip_version": "ipv4", - "name": "acl31-in-1", - "source": "0.0.0.0/0", - "protocol": "all" - } - ], - "subnets": [ - { - "crn": "crn:244", - "href": "href:245", - "id": "id:246", - "name": "subnet30", - "resource_type": "subnet" - } - ], - "vpc": { - "crn": "crn:52", - "href": "href:53", - "id": "id:54", - "name": "test-vpc3", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:40.000Z", - "crn": "crn:198", - "href": "href:199", - "id": "id:200", - "name": "acl21", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "action": "allow", - "before": { - "href": "href:309", - "id": "id:310", - "name": "acl21-in-1" - }, - "created_at": "2024-06-25T15:40:41.000Z", - "destination": "0.0.0.0/0", - "direction": "outbound", - "href": "href:307", - "id": "id:308", - "ip_version": "ipv4", - "name": "acl21-out-1", - "source": "0.0.0.0/0", - "protocol": "all" - }, - { - "action": "allow", - "created_at": "2024-06-25T15:40:42.000Z", - "destination": "0.0.0.0/0", - "direction": "inbound", - "href": "href:309", - "id": "id:310", - "ip_version": "ipv4", - "name": "acl21-in-1", - "source": "0.0.0.0/0", - "protocol": "all" - } - ], - "subnets": [ - { - "crn": "crn:195", - "href": "href:196", - "id": "id:197", - "name": "subnet20", - "resource_type": "subnet" - } - ], - "vpc": { - "crn": "crn:39", - "href": "href:40", - "id": "id:41", - "name": "test-vpc2", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:38.000Z", - "crn": "crn:92", - "href": "href:93", - "id": "id:94", - "name": "acl2", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "action": "allow", - "before": { - "href": "href:313", - "id": "id:314", - "name": "acl1-in-1" - }, - "created_at": "2024-06-25T15:40:38.000Z", - "destination": "0.0.0.0/0", - "direction": "outbound", - "href": "href:311", - "id": "id:312", - "ip_version": "ipv4", - "name": "acl1-out-1", - "source": "0.0.0.0/0", - "protocol": "all" - }, - { - "action": "allow", - "created_at": "2024-06-25T15:40:39.000Z", - "destination": "0.0.0.0/0", - "direction": "inbound", - "href": "href:313", - "id": "id:314", - "ip_version": "ipv4", - "name": "acl1-in-1", - "source": "0.0.0.0/0", - "protocol": "all" - } - ], - "subnets": [ - { - "crn": "crn:89", - "href": "href:90", - "id": "id:91", - "name": "subnet3", - "resource_type": "subnet" - }, - { - "crn": "crn:157", - "href": "href:158", - "id": "id:159", - "name": "subnet2", - "resource_type": "subnet" - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:37.000Z", - "crn": "crn:68", - "href": "href:69", - "id": "id:70", - "name": "acl3", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "action": "allow", - "before": { - "href": "href:317", - "id": "id:318", - "name": "acl1-in-1" - }, - "created_at": "2024-06-25T15:40:38.000Z", - "destination": "0.0.0.0/0", - "direction": "outbound", - "href": "href:315", - "id": "id:316", - "ip_version": "ipv4", - "name": "acl1-out-1", - "source": "0.0.0.0/0", - "protocol": "all" - }, - { - "action": "allow", - "created_at": "2024-06-25T15:40:38.000Z", - "destination": "0.0.0.0/0", - "direction": "inbound", - "href": "href:317", - "id": "id:318", - "ip_version": "ipv4", - "name": "acl1-in-1", - "source": "0.0.0.0/0", - "protocol": "all" - } - ], - "subnets": [ - { - "crn": "crn:65", - "href": "href:66", - "id": "id:67", - "name": "subnet5", - "resource_type": "subnet" - }, - { - "crn": "crn:264", - "href": "href:265", - "id": "id:266", - "name": "subnet4", - "resource_type": "subnet" - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:37.000Z", - "crn": "crn:116", - "href": "href:117", - "id": "id:118", - "name": "acl1", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "action": "allow", - "before": { - "href": "href:321", - "id": "id:322", - "name": "acl1-in-1" - }, - "created_at": "2024-06-25T15:40:38.000Z", - "destination": "0.0.0.0/0", - "direction": "outbound", - "href": "href:319", - "id": "id:320", - "ip_version": "ipv4", - "name": "acl1-out-1", - "source": "0.0.0.0/0", - "protocol": "all" - }, - { - "action": "allow", - "created_at": "2024-06-25T15:40:38.000Z", - "destination": "0.0.0.0/0", - "direction": "inbound", - "href": "href:321", - "id": "id:322", - "ip_version": "ipv4", - "name": "acl1-in-1", - "source": "0.0.0.0/0", - "protocol": "all" - } - ], - "subnets": [ - { - "crn": "crn:113", - "href": "href:114", - "id": "id:115", - "name": "subnet0", - "resource_type": "subnet" - }, - { - "crn": "crn:223", - "href": "href:224", - "id": "id:225", - "name": "subnet1", - "resource_type": "subnet" - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:20.000Z", - "crn": "crn:8", - "href": "href:9", - "id": "id:10", - "name": "automaker-castle-bird-worried", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "action": "allow", - "before": { - "href": "href:325", - "id": "id:326", - "name": "allow-outbound" - }, - "created_at": "2024-06-25T15:40:20.000Z", - "destination": "0.0.0.0/0", - "direction": "inbound", - "href": "href:323", - "id": "id:324", - "ip_version": "ipv4", - "name": "allow-inbound", - "source": "0.0.0.0/0", - "protocol": "all" - }, - { - "action": "allow", - "created_at": "2024-06-25T15:40:20.000Z", - "destination": "0.0.0.0/0", - "direction": "outbound", - "href": "href:325", - "id": "id:326", - "ip_version": "ipv4", - "name": "allow-outbound", - "source": "0.0.0.0/0", - "protocol": "all" - } - ], - "subnets": [], - "vpc": { - "crn": "crn:1", - "href": "href:2", - "id": "id:3", - "name": "test-vpc1", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:19.000Z", - "crn": "crn:42", - "href": "href:43", - "id": "id:44", - "name": "afoot-grape-fineness-zestfully", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "action": "allow", - "before": { - "href": "href:329", - "id": "id:330", - "name": "allow-outbound" - }, - "created_at": "2024-06-25T15:40:19.000Z", - "destination": "0.0.0.0/0", - "direction": "inbound", - "href": "href:327", - "id": "id:328", - "ip_version": "ipv4", - "name": "allow-inbound", - "source": "0.0.0.0/0", - "protocol": "all" - }, - { - "action": "allow", - "created_at": "2024-06-25T15:40:19.000Z", - "destination": "0.0.0.0/0", - "direction": "outbound", - "href": "href:329", - "id": "id:330", - "ip_version": "ipv4", - "name": "allow-outbound", - "source": "0.0.0.0/0", - "protocol": "all" - } - ], - "subnets": [], - "vpc": { - "crn": "crn:39", - "href": "href:40", - "id": "id:41", - "name": "test-vpc2", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:19.000Z", - "crn": "crn:25", - "href": "href:26", - "id": "id:27", - "name": "ebullient-slacks-revert-turkey", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "action": "allow", - "before": { - "href": "href:333", - "id": "id:334", - "name": "allow-outbound" - }, - "created_at": "2024-06-25T15:40:19.000Z", - "destination": "0.0.0.0/0", - "direction": "inbound", - "href": "href:331", - "id": "id:332", - "ip_version": "ipv4", - "name": "allow-inbound", - "source": "0.0.0.0/0", - "protocol": "all" - }, - { - "action": "allow", - "created_at": "2024-06-25T15:40:19.000Z", - "destination": "0.0.0.0/0", - "direction": "outbound", - "href": "href:333", - "id": "id:334", - "ip_version": "ipv4", - "name": "allow-outbound", - "source": "0.0.0.0/0", - "protocol": "all" - } - ], - "subnets": [], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:19.000Z", - "crn": "crn:55", - "href": "href:56", - "id": "id:57", - "name": "untracked-repayment-triumph-cat", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "action": "allow", - "before": { - "href": "href:337", - "id": "id:338", - "name": "allow-outbound" - }, - "created_at": "2024-06-25T15:40:19.000Z", - "destination": "0.0.0.0/0", - "direction": "inbound", - "href": "href:335", - "id": "id:336", - "ip_version": "ipv4", - "name": "allow-inbound", - "source": "0.0.0.0/0", - "protocol": "all" - }, - { - "action": "allow", - "created_at": "2024-06-25T15:40:19.000Z", - "destination": "0.0.0.0/0", - "direction": "outbound", - "href": "href:337", - "id": "id:338", - "ip_version": "ipv4", - "name": "allow-outbound", - "source": "0.0.0.0/0", - "protocol": "all" - } - ], - "subnets": [], - "vpc": { - "crn": "crn:52", - "href": "href:53", - "id": "id:54", - "name": "test-vpc3", - "resource_type": "vpc" - }, - "tags": [] - } - ], - "security_groups": [ - { - "created_at": "2024-06-25T15:40:40.000Z", - "crn": "crn:339", - "href": "href:340", - "id": "id:341", - "name": "sg21", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "direction": "outbound", - "href": "href:342", - "id": "id:343", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "cidr_block": "0.0.0.0/0" - }, - "protocol": "all" - }, - { - "direction": "inbound", - "href": "href:344", - "id": "id:345", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "cidr_block": "0.0.0.0/0" - }, - "protocol": "all" - } - ], - "targets": [ - { - "href": "href:211", - "id": "id:212", - "name": "tavern-far-imprudent-labored", - "resource_type": "network_interface" - }, - { - "href": "href:215", - "id": "id:216", - "name": "ought-football-shorter-aviator", - "resource_type": "network_interface" - }, - { - "href": "href:219", - "id": "id:220", - "name": "clicker-grumbly-outskirts-greatly", - "resource_type": "network_interface" - } - ], - "vpc": { - "crn": "crn:39", - "href": "href:40", - "id": "id:41", - "name": "test-vpc2", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:40.000Z", - "crn": "crn:346", - "href": "href:347", - "id": "id:348", - "name": "sg31", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "direction": "outbound", - "href": "href:349", - "id": "id:350", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "cidr_block": "0.0.0.0/0" - }, - "protocol": "all" - }, - { - "direction": "inbound", - "href": "href:351", - "id": "id:352", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "cidr_block": "0.0.0.0/0" - }, - "protocol": "all" - } - ], - "targets": [ - { - "href": "href:260", - "id": "id:261", - "name": "snout-given-twiddle-splinter", - "resource_type": "network_interface" - } - ], - "vpc": { - "crn": "crn:52", - "href": "href:53", - "id": "id:54", - "name": "test-vpc3", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:40.000Z", - "crn": "crn:353", - "href": "href:354", - "id": "id:355", - "name": "sg11", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "direction": "outbound", - "href": "href:356", - "id": "id:357", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "cidr_block": "0.0.0.0/0" - }, - "protocol": "all" - }, - { - "direction": "inbound", - "href": "href:358", - "id": "id:359", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "cidr_block": "0.0.0.0/0" - }, - "protocol": "all" - } - ], - "targets": [ - { - "href": "href:191", - "id": "id:192", - "name": "enlace-prominent-overhear-perfume", - "resource_type": "network_interface" - }, - { - "href": "href:153", - "id": "id:154", - "name": "stride-woken-backsight-dynastic", - "resource_type": "network_interface" - } - ], - "vpc": { - "crn": "crn:1", - "href": "href:2", - "id": "id:3", - "name": "test-vpc1", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:37.000Z", - "crn": "crn:360", - "href": "href:361", - "id": "id:362", - "name": "sg1", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "direction": "inbound", - "href": "href:363", - "id": "id:364", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "cidr_block": "0.0.0.0/0" - }, - "protocol": "all" - }, - { - "direction": "outbound", - "href": "href:365", - "id": "id:366", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "cidr_block": "0.0.0.0/0" - }, - "protocol": "all" - } - ], - "targets": [ - { - "href": "href:105", - "id": "id:106", - "name": "icky-balsamic-outgoing-leached", - "resource_type": "network_interface" - }, - { - "href": "href:236", - "id": "id:237", - "name": "hankie-excitable-outclass-unmanaged", - "resource_type": "network_interface" - }, - { - "href": "href:277", - "id": "id:278", - "name": "bullring-ransack-feint-cheer", - "resource_type": "network_interface" - }, - { - "href": "href:81", - "id": "id:82", - "name": "stooped-camera-excluded-juke", - "resource_type": "network_interface" - }, - { - "href": "href:129", - "id": "id:130", - "name": "writer-crusher-unsuited-cash", - "resource_type": "network_interface" - }, - { - "href": "href:281", - "id": "id:282", - "name": "speak-princess-washcloth-companion", - "resource_type": "network_interface" - }, - { - "href": "href:109", - "id": "id:110", - "name": "squatted-fastball-vacant-knoll", - "resource_type": "network_interface" - }, - { - "href": "href:85", - "id": "id:86", - "name": "scratch-outward-raging-hunchback", - "resource_type": "network_interface" - }, - { - "href": "href:170", - "id": "id:171", - "name": "graveyard-handmade-ransack-acquaint", - "resource_type": "network_interface" - }, - { - "href": "href:174", - "id": "id:175", - "name": "quantum-handbag-dimmed-reassign", - "resource_type": "network_interface" - }, - { - "href": "href:133", - "id": "id:134", - "name": "consonant-imperial-simply-ceramics", - "resource_type": "network_interface" - }, - { - "href": "href:240", - "id": "id:241", - "name": "scale-clambake-endearing-abridged", - "resource_type": "network_interface" - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:20.000Z", - "crn": "crn:13", - "href": "href:14", - "id": "id:15", - "name": "brute-upon-angles-cubbyhole", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "direction": "outbound", - "href": "href:367", - "id": "id:368", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "cidr_block": "0.0.0.0/0" - }, - "protocol": "all" - }, - { - "direction": "inbound", - "href": "href:369", - "id": "id:370", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "crn": "crn:13", - "href": "href:14", - "id": "id:15", - "name": "brute-upon-angles-cubbyhole" - }, - "protocol": "all" - } - ], - "targets": [], - "vpc": { - "crn": "crn:1", - "href": "href:2", - "id": "id:3", - "name": "test-vpc1", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:19.000Z", - "crn": "crn:30", - "href": "href:31", - "id": "id:32", - "name": "basically-drank-bulk-jam", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "direction": "outbound", - "href": "href:371", - "id": "id:372", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "cidr_block": "0.0.0.0/0" - }, - "protocol": "all" - }, - { - "direction": "inbound", - "href": "href:373", - "id": "id:374", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "crn": "crn:30", - "href": "href:31", - "id": "id:32", - "name": "basically-drank-bulk-jam" - }, - "protocol": "all" - } - ], - "targets": [], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:19.000Z", - "crn": "crn:47", - "href": "href:48", - "id": "id:49", - "name": "glance-cactus-unease-bankroll", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "direction": "outbound", - "href": "href:375", - "id": "id:376", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "cidr_block": "0.0.0.0/0" - }, - "protocol": "all" - }, - { - "direction": "inbound", - "href": "href:377", - "id": "id:378", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "crn": "crn:47", - "href": "href:48", - "id": "id:49", - "name": "glance-cactus-unease-bankroll" - }, - "protocol": "all" - } - ], - "targets": [], - "vpc": { - "crn": "crn:39", - "href": "href:40", - "id": "id:41", - "name": "test-vpc2", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:19.000Z", - "crn": "crn:60", - "href": "href:61", - "id": "id:62", - "name": "repeater-upcountry-agreeing-acutely", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "direction": "outbound", - "href": "href:379", - "id": "id:380", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "cidr_block": "0.0.0.0/0" - }, - "protocol": "all" - }, - { - "direction": "inbound", - "href": "href:381", - "id": "id:382", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "crn": "crn:60", - "href": "href:61", - "id": "id:62", - "name": "repeater-upcountry-agreeing-acutely" - }, - "protocol": "all" - } - ], - "targets": [], - "vpc": { - "crn": "crn:52", - "href": "href:53", - "id": "id:54", - "name": "test-vpc3", - "resource_type": "vpc" - }, - "tags": [] - } - ], - "endpoint_gateways": [], - "instances": [ - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:388" - }, - "href": "href:386", - "id": "id:387", - "name": "thief-monastery-blinks-verdict", - "volume": { - "crn": "crn:389", - "href": "href:390", - "id": "id:391", - "name": "scrabble-gorged-baton-angled", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:42:40.000Z", - "crn": "crn:383", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:384", - "id": "id:385", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi0-subnet1", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:240", - "id": "id:241", - "name": "scale-clambake-endearing-abridged", - "primary_ip": { - "address": "10.240.1.5", - "href": "href:238", - "id": "id:239", - "name": "affected-johnniecake-monorail-ungraded", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:223", - "href": "href:224", - "id": "id:225", - "name": "subnet1", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:388" - }, - "href": "href:386", - "id": "id:387", - "name": "thief-monastery-blinks-verdict", - "volume": { - "crn": "crn:389", - "href": "href:390", - "id": "id:391", - "name": "scrabble-gorged-baton-angled", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:42:40.000Z", - "floating_ips": [], - "href": "href:240", - "id": "id:241", - "name": "scale-clambake-endearing-abridged", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.1.5", - "href": "href:238", - "id": "id:239", - "name": "affected-johnniecake-monorail-ungraded", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:360", - "href": "href:361", - "id": "id:362", - "name": "sg1" - } - ], - "status": "available", - "subnet": { - "crn": "crn:223", - "href": "href:224", - "id": "id:225", - "name": "subnet1", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:401" - }, - "href": "href:399", - "id": "id:400", - "name": "hunchback-enginous-dividend-atrium", - "volume": { - "crn": "crn:402", - "href": "href:403", - "id": "id:404", - "name": "subsoil-bobble-bovine-unmoving", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:42:39.000Z", - "crn": "crn:396", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:397", - "id": "id:398", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi1-subnet0", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:133", - "id": "id:134", - "name": "consonant-imperial-simply-ceramics", - "primary_ip": { - "address": "10.240.0.5", - "href": "href:131", - "id": "id:132", - "name": "relatable-antiques-maturing-brulee", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:113", - "href": "href:114", - "id": "id:115", - "name": "subnet0", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:401" - }, - "href": "href:399", - "id": "id:400", - "name": "hunchback-enginous-dividend-atrium", - "volume": { - "crn": "crn:402", - "href": "href:403", - "id": "id:404", - "name": "subsoil-bobble-bovine-unmoving", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:42:39.000Z", - "floating_ips": [], - "href": "href:133", - "id": "id:134", - "name": "consonant-imperial-simply-ceramics", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.0.5", - "href": "href:131", - "id": "id:132", - "name": "relatable-antiques-maturing-brulee", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:360", - "href": "href:361", - "id": "id:362", - "name": "sg1" - } - ], - "status": "available", - "subnet": { - "crn": "crn:113", - "href": "href:114", - "id": "id:115", - "name": "subnet0", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:410" - }, - "href": "href:408", - "id": "id:409", - "name": "laboring-overbuilt-growl-headland", - "volume": { - "crn": "crn:411", - "href": "href:412", - "id": "id:413", - "name": "tamper-salvaging-stick-giddily", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:42:22.000Z", - "crn": "crn:405", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:406", - "id": "id:407", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi1-subnet2", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:174", - "id": "id:175", - "name": "quantum-handbag-dimmed-reassign", - "primary_ip": { - "address": "10.240.4.5", - "href": "href:172", - "id": "id:173", - "name": "bark-gatherer-rope-unrivaled", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:157", - "href": "href:158", - "id": "id:159", - "name": "subnet2", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:410" - }, - "href": "href:408", - "id": "id:409", - "name": "laboring-overbuilt-growl-headland", - "volume": { - "crn": "crn:411", - "href": "href:412", - "id": "id:413", - "name": "tamper-salvaging-stick-giddily", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:42:22.000Z", - "floating_ips": [], - "href": "href:174", - "id": "id:175", - "name": "quantum-handbag-dimmed-reassign", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.4.5", - "href": "href:172", - "id": "id:173", - "name": "bark-gatherer-rope-unrivaled", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:360", - "href": "href:361", - "id": "id:362", - "name": "sg1" - } - ], - "status": "available", - "subnet": { - "crn": "crn:157", - "href": "href:158", - "id": "id:159", - "name": "subnet2", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:419" - }, - "href": "href:417", - "id": "id:418", - "name": "dollop-partition-helping-palmtree", - "volume": { - "crn": "crn:420", - "href": "href:421", - "id": "id:422", - "name": "ravage-deny-amusable-settling", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:42:20.000Z", - "crn": "crn:414", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:415", - "id": "id:416", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi1-subnet5", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:85", - "id": "id:86", - "name": "scratch-outward-raging-hunchback", - "primary_ip": { - "address": "10.240.9.5", - "href": "href:83", - "id": "id:84", - "name": "outskirts-unaligned-passivism-parchment", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:65", - "href": "href:66", - "id": "id:67", - "name": "subnet5", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:419" - }, - "href": "href:417", - "id": "id:418", - "name": "dollop-partition-helping-palmtree", - "volume": { - "crn": "crn:420", - "href": "href:421", - "id": "id:422", - "name": "ravage-deny-amusable-settling", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:42:20.000Z", - "floating_ips": [], - "href": "href:85", - "id": "id:86", - "name": "scratch-outward-raging-hunchback", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.9.5", - "href": "href:83", - "id": "id:84", - "name": "outskirts-unaligned-passivism-parchment", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:360", - "href": "href:361", - "id": "id:362", - "name": "sg1" - } - ], - "status": "available", - "subnet": { - "crn": "crn:65", - "href": "href:66", - "id": "id:67", - "name": "subnet5", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:428" - }, - "href": "href:426", - "id": "id:427", - "name": "petted-ethanol-voicing-rocklike", - "volume": { - "crn": "crn:429", - "href": "href:430", - "id": "id:431", - "name": "uptown-striving-unrevised-earthlike", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:42:20.000Z", - "crn": "crn:423", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:424", - "id": "id:425", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi0-subnet2", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:170", - "id": "id:171", - "name": "graveyard-handmade-ransack-acquaint", - "primary_ip": { - "address": "10.240.4.4", - "href": "href:168", - "id": "id:169", - "name": "stood-sitcom-whoops-hurled", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:157", - "href": "href:158", - "id": "id:159", - "name": "subnet2", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:428" - }, - "href": "href:426", - "id": "id:427", - "name": "petted-ethanol-voicing-rocklike", - "volume": { - "crn": "crn:429", - "href": "href:430", - "id": "id:431", - "name": "uptown-striving-unrevised-earthlike", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:42:20.000Z", - "floating_ips": [], - "href": "href:170", - "id": "id:171", - "name": "graveyard-handmade-ransack-acquaint", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.4.4", - "href": "href:168", - "id": "id:169", - "name": "stood-sitcom-whoops-hurled", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:360", - "href": "href:361", - "id": "id:362", - "name": "sg1" - } - ], - "status": "available", - "subnet": { - "crn": "crn:157", - "href": "href:158", - "id": "id:159", - "name": "subnet2", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:437" - }, - "href": "href:435", - "id": "id:436", - "name": "promenade-spyglass-flattop-pushpin", - "volume": { - "crn": "crn:438", - "href": "href:439", - "id": "id:440", - "name": "relax-shaded-prism-jaunt", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:42:16.000Z", - "crn": "crn:432", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:433", - "id": "id:434", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi1-subnet3", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:109", - "id": "id:110", - "name": "squatted-fastball-vacant-knoll", - "primary_ip": { - "address": "10.240.5.5", - "href": "href:107", - "id": "id:108", - "name": "recognize-citable-exerciser-unsecured", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:89", - "href": "href:90", - "id": "id:91", - "name": "subnet3", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:437" - }, - "href": "href:435", - "id": "id:436", - "name": "promenade-spyglass-flattop-pushpin", - "volume": { - "crn": "crn:438", - "href": "href:439", - "id": "id:440", - "name": "relax-shaded-prism-jaunt", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:42:16.000Z", - "floating_ips": [], - "href": "href:109", - "id": "id:110", - "name": "squatted-fastball-vacant-knoll", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.5.5", - "href": "href:107", - "id": "id:108", - "name": "recognize-citable-exerciser-unsecured", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:360", - "href": "href:361", - "id": "id:362", - "name": "sg1" - } - ], - "status": "available", - "subnet": { - "crn": "crn:89", - "href": "href:90", - "id": "id:91", - "name": "subnet3", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:446" - }, - "href": "href:444", - "id": "id:445", - "name": "sandbox-federal-sculptor-jugum", - "volume": { - "crn": "crn:447", - "href": "href:448", - "id": "id:449", - "name": "convent-ramrod-cloning-afterward", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:42:15.000Z", - "crn": "crn:441", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:442", - "id": "id:443", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi1-subnet4", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:281", - "id": "id:282", - "name": "speak-princess-washcloth-companion", - "primary_ip": { - "address": "10.240.8.5", - "href": "href:279", - "id": "id:280", - "name": "frighten-mystified-freeway-hurtling", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:264", - "href": "href:265", - "id": "id:266", - "name": "subnet4", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:446" - }, - "href": "href:444", - "id": "id:445", - "name": "sandbox-federal-sculptor-jugum", - "volume": { - "crn": "crn:447", - "href": "href:448", - "id": "id:449", - "name": "convent-ramrod-cloning-afterward", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:42:15.000Z", - "floating_ips": [], - "href": "href:281", - "id": "id:282", - "name": "speak-princess-washcloth-companion", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.8.5", - "href": "href:279", - "id": "id:280", - "name": "frighten-mystified-freeway-hurtling", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:360", - "href": "href:361", - "id": "id:362", - "name": "sg1" - } - ], - "status": "available", - "subnet": { - "crn": "crn:264", - "href": "href:265", - "id": "id:266", - "name": "subnet4", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:455" - }, - "href": "href:453", - "id": "id:454", - "name": "affidavit-chastise-elsewhere-viewer", - "volume": { - "crn": "crn:456", - "href": "href:457", - "id": "id:458", - "name": "fancy-destiny-shuffling-sandbank", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:42:07.000Z", - "crn": "crn:450", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:451", - "id": "id:452", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi0-subnet0", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:129", - "id": "id:130", - "name": "writer-crusher-unsuited-cash", - "primary_ip": { - "address": "10.240.0.4", - "href": "href:127", - "id": "id:128", - "name": "pundit-tight-arbitrate-grace", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:113", - "href": "href:114", - "id": "id:115", - "name": "subnet0", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:455" - }, - "href": "href:453", - "id": "id:454", - "name": "affidavit-chastise-elsewhere-viewer", - "volume": { - "crn": "crn:456", - "href": "href:457", - "id": "id:458", - "name": "fancy-destiny-shuffling-sandbank", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:42:07.000Z", - "floating_ips": [ - { - "address": "52.118.151.238", - "crn": "crn:285", - "href": "href:286", - "id": "id:287", - "name": "fip-0-subnet0" - } - ], - "href": "href:129", - "id": "id:130", - "name": "writer-crusher-unsuited-cash", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.0.4", - "href": "href:127", - "id": "id:128", - "name": "pundit-tight-arbitrate-grace", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:360", - "href": "href:361", - "id": "id:362", - "name": "sg1" - } - ], - "status": "available", - "subnet": { - "crn": "crn:113", - "href": "href:114", - "id": "id:115", - "name": "subnet0", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:464" - }, - "href": "href:462", - "id": "id:463", - "name": "uneven-armoire-scabiosa-letter", - "volume": { - "crn": "crn:465", - "href": "href:466", - "id": "id:467", - "name": "cognition-blinks-humid-oxidant", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:42:00.000Z", - "crn": "crn:459", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:460", - "id": "id:461", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi0-subnet3", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:105", - "id": "id:106", - "name": "icky-balsamic-outgoing-leached", - "primary_ip": { - "address": "10.240.5.4", - "href": "href:103", - "id": "id:104", - "name": "rising-gopher-reentry-graveness", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:89", - "href": "href:90", - "id": "id:91", - "name": "subnet3", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:464" - }, - "href": "href:462", - "id": "id:463", - "name": "uneven-armoire-scabiosa-letter", - "volume": { - "crn": "crn:465", - "href": "href:466", - "id": "id:467", - "name": "cognition-blinks-humid-oxidant", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:42:00.000Z", - "floating_ips": [], - "href": "href:105", - "id": "id:106", - "name": "icky-balsamic-outgoing-leached", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.5.4", - "href": "href:103", - "id": "id:104", - "name": "rising-gopher-reentry-graveness", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:360", - "href": "href:361", - "id": "id:362", - "name": "sg1" - } - ], - "status": "available", - "subnet": { - "crn": "crn:89", - "href": "href:90", - "id": "id:91", - "name": "subnet3", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:473" - }, - "href": "href:471", - "id": "id:472", - "name": "perplexed-impulsivity-august-jaws", - "volume": { - "crn": "crn:474", - "href": "href:475", - "id": "id:476", - "name": "tartar-sixties-fructose-parmesan", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:42:00.000Z", - "crn": "crn:468", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:469", - "id": "id:470", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi1-subnet1", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:236", - "id": "id:237", - "name": "hankie-excitable-outclass-unmanaged", - "primary_ip": { - "address": "10.240.1.4", - "href": "href:234", - "id": "id:235", - "name": "excluded-unfair-jailbird-foil", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:223", - "href": "href:224", - "id": "id:225", - "name": "subnet1", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:473" - }, - "href": "href:471", - "id": "id:472", - "name": "perplexed-impulsivity-august-jaws", - "volume": { - "crn": "crn:474", - "href": "href:475", - "id": "id:476", - "name": "tartar-sixties-fructose-parmesan", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:42:00.000Z", - "floating_ips": [], - "href": "href:236", - "id": "id:237", - "name": "hankie-excitable-outclass-unmanaged", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.1.4", - "href": "href:234", - "id": "id:235", - "name": "excluded-unfair-jailbird-foil", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:360", - "href": "href:361", - "id": "id:362", - "name": "sg1" - } - ], - "status": "available", - "subnet": { - "crn": "crn:223", - "href": "href:224", - "id": "id:225", - "name": "subnet1", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:482" - }, - "href": "href:480", - "id": "id:481", - "name": "litter-snipping-unclasp-dust", - "volume": { - "crn": "crn:483", - "href": "href:484", - "id": "id:485", - "name": "untried-sulphate-hypnosis-subsidize", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:42:00.000Z", - "crn": "crn:477", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:478", - "id": "id:479", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi0-subnet4", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:277", - "id": "id:278", - "name": "bullring-ransack-feint-cheer", - "primary_ip": { - "address": "10.240.8.4", - "href": "href:275", - "id": "id:276", - "name": "bagged-posture-glaring-cojoined", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:264", - "href": "href:265", - "id": "id:266", - "name": "subnet4", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:482" - }, - "href": "href:480", - "id": "id:481", - "name": "litter-snipping-unclasp-dust", - "volume": { - "crn": "crn:483", - "href": "href:484", - "id": "id:485", - "name": "untried-sulphate-hypnosis-subsidize", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:42:00.000Z", - "floating_ips": [], - "href": "href:277", - "id": "id:278", - "name": "bullring-ransack-feint-cheer", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.8.4", - "href": "href:275", - "id": "id:276", - "name": "bagged-posture-glaring-cojoined", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:360", - "href": "href:361", - "id": "id:362", - "name": "sg1" - } - ], - "status": "available", - "subnet": { - "crn": "crn:264", - "href": "href:265", - "id": "id:266", - "name": "subnet4", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:491" - }, - "href": "href:489", - "id": "id:490", - "name": "unlawful-overreach-yarn-rippling", - "volume": { - "crn": "crn:492", - "href": "href:493", - "id": "id:494", - "name": "finer-voter-roving-jailer", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:42:00.000Z", - "crn": "crn:486", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:487", - "id": "id:488", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi0-subnet5", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:81", - "id": "id:82", - "name": "stooped-camera-excluded-juke", - "primary_ip": { - "address": "10.240.9.4", - "href": "href:79", - "id": "id:80", - "name": "ideally-grain-bagpipe-luxuriant", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:65", - "href": "href:66", - "id": "id:67", - "name": "subnet5", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:491" - }, - "href": "href:489", - "id": "id:490", - "name": "unlawful-overreach-yarn-rippling", - "volume": { - "crn": "crn:492", - "href": "href:493", - "id": "id:494", - "name": "finer-voter-roving-jailer", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:42:00.000Z", - "floating_ips": [], - "href": "href:81", - "id": "id:82", - "name": "stooped-camera-excluded-juke", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.9.4", - "href": "href:79", - "id": "id:80", - "name": "ideally-grain-bagpipe-luxuriant", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:360", - "href": "href:361", - "id": "id:362", - "name": "sg1" - } - ], - "status": "available", - "subnet": { - "crn": "crn:65", - "href": "href:66", - "id": "id:67", - "name": "subnet5", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:500" - }, - "href": "href:498", - "id": "id:499", - "name": "mashed-thing-headache-estate", - "volume": { - "crn": "crn:501", - "href": "href:502", - "id": "id:503", - "name": "mountain-harpist-libraries-dreaming", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:41:39.000Z", - "crn": "crn:495", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:496", - "id": "id:497", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi0-subnet11", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:153", - "id": "id:154", - "name": "stride-woken-backsight-dynastic", - "primary_ip": { - "address": "10.240.80.4", - "href": "href:151", - "id": "id:152", - "name": "childlike-publish-retainer-movie", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:137", - "href": "href:138", - "id": "id:139", - "name": "subnet11", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:500" - }, - "href": "href:498", - "id": "id:499", - "name": "mashed-thing-headache-estate", - "volume": { - "crn": "crn:501", - "href": "href:502", - "id": "id:503", - "name": "mountain-harpist-libraries-dreaming", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:1", - "href": "href:2", - "id": "id:3", - "name": "test-vpc1", - "resource_type": "vpc" - }, - "zone": { - "href": "href:6", - "name": "us-south-2" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:41:39.000Z", - "floating_ips": [], - "href": "href:153", - "id": "id:154", - "name": "stride-woken-backsight-dynastic", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.80.4", - "href": "href:151", - "id": "id:152", - "name": "childlike-publish-retainer-movie", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:353", - "href": "href:354", - "id": "id:355", - "name": "sg11" - } - ], - "status": "available", - "subnet": { - "crn": "crn:137", - "href": "href:138", - "id": "id:139", - "name": "subnet11", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:509" - }, - "href": "href:507", - "id": "id:508", - "name": "calzone-cacti-moonlight-subarctic", - "volume": { - "crn": "crn:510", - "href": "href:511", - "id": "id:512", - "name": "blurred-dream-pectin-tapping", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:41:36.000Z", - "crn": "crn:504", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:505", - "id": "id:506", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi0-subnet10", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:191", - "id": "id:192", - "name": "enlace-prominent-overhear-perfume", - "primary_ip": { - "address": "10.240.64.4", - "href": "href:189", - "id": "id:190", - "name": "starry-smasher-ladle-dioxide", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:178", - "href": "href:179", - "id": "id:180", - "name": "subnet10", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:509" - }, - "href": "href:507", - "id": "id:508", - "name": "calzone-cacti-moonlight-subarctic", - "volume": { - "crn": "crn:510", - "href": "href:511", - "id": "id:512", - "name": "blurred-dream-pectin-tapping", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:1", - "href": "href:2", - "id": "id:3", - "name": "test-vpc1", - "resource_type": "vpc" - }, - "zone": { - "href": "href:6", - "name": "us-south-2" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:41:36.000Z", - "floating_ips": [ - { - "address": "150.239.167.146", - "crn": "crn:288", - "href": "href:289", - "id": "id:290", - "name": "fip-0-subnet10" - } - ], - "href": "href:191", - "id": "id:192", - "name": "enlace-prominent-overhear-perfume", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.64.4", - "href": "href:189", - "id": "id:190", - "name": "starry-smasher-ladle-dioxide", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:353", - "href": "href:354", - "id": "id:355", - "name": "sg11" - } - ], - "status": "available", - "subnet": { - "crn": "crn:178", - "href": "href:179", - "id": "id:180", - "name": "subnet10", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:518" - }, - "href": "href:516", - "id": "id:517", - "name": "recoup-blinks-ebullient-renewed", - "volume": { - "crn": "crn:519", - "href": "href:520", - "id": "id:521", - "name": "manmade-unequal-disinfect-cone", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:41:24.000Z", - "crn": "crn:513", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:514", - "id": "id:515", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi1-subnet20", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:219", - "id": "id:220", - "name": "clicker-grumbly-outskirts-greatly", - "primary_ip": { - "address": "10.240.128.6", - "href": "href:217", - "id": "id:218", - "name": "uniquely-shelter-gracious-sudden", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:195", - "href": "href:196", - "id": "id:197", - "name": "subnet20", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:518" - }, - "href": "href:516", - "id": "id:517", - "name": "recoup-blinks-ebullient-renewed", - "volume": { - "crn": "crn:519", - "href": "href:520", - "id": "id:521", - "name": "manmade-unequal-disinfect-cone", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:39", - "href": "href:40", - "id": "id:41", - "name": "test-vpc2", - "resource_type": "vpc" - }, - "zone": { - "href": "href:7", - "name": "us-south-3" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:41:24.000Z", - "floating_ips": [ - { - "address": "169.48.95.165", - "crn": "crn:291", - "href": "href:292", - "id": "id:293", - "name": "fip-0-subnet20" - } - ], - "href": "href:219", - "id": "id:220", - "name": "clicker-grumbly-outskirts-greatly", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.128.6", - "href": "href:217", - "id": "id:218", - "name": "uniquely-shelter-gracious-sudden", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:339", - "href": "href:340", - "id": "id:341", - "name": "sg21" - } - ], - "status": "available", - "subnet": { - "crn": "crn:195", - "href": "href:196", - "id": "id:197", - "name": "subnet20", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:527" - }, - "href": "href:525", - "id": "id:526", - "name": "radio-tightrope-outtakes-moonshine", - "volume": { - "crn": "crn:528", - "href": "href:529", - "id": "id:530", - "name": "tattoo-crescent-unwary-hayride", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:41:21.000Z", - "crn": "crn:522", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:523", - "id": "id:524", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi0-subnet20", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:215", - "id": "id:216", - "name": "ought-football-shorter-aviator", - "primary_ip": { - "address": "10.240.128.5", - "href": "href:213", - "id": "id:214", - "name": "customs-recollect-drippy-primate", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:195", - "href": "href:196", - "id": "id:197", - "name": "subnet20", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:527" - }, - "href": "href:525", - "id": "id:526", - "name": "radio-tightrope-outtakes-moonshine", - "volume": { - "crn": "crn:528", - "href": "href:529", - "id": "id:530", - "name": "tattoo-crescent-unwary-hayride", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:39", - "href": "href:40", - "id": "id:41", - "name": "test-vpc2", - "resource_type": "vpc" - }, - "zone": { - "href": "href:7", - "name": "us-south-3" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:41:21.000Z", - "floating_ips": [], - "href": "href:215", - "id": "id:216", - "name": "ought-football-shorter-aviator", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.128.5", - "href": "href:213", - "id": "id:214", - "name": "customs-recollect-drippy-primate", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:339", - "href": "href:340", - "id": "id:341", - "name": "sg21" - } - ], - "status": "available", - "subnet": { - "crn": "crn:195", - "href": "href:196", - "id": "id:197", - "name": "subnet20", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:536" - }, - "href": "href:534", - "id": "id:535", - "name": "crumpet-ride-tastiness-phoney", - "volume": { - "crn": "crn:537", - "href": "href:538", - "id": "id:539", - "name": "doorframe-marvelous-refusing-citable", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:41:21.000Z", - "crn": "crn:531", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:532", - "id": "id:533", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi2-subnet20", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:211", - "id": "id:212", - "name": "tavern-far-imprudent-labored", - "primary_ip": { - "address": "10.240.128.4", - "href": "href:209", - "id": "id:210", - "name": "unmixed-qualify-prescribe-railcar", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:195", - "href": "href:196", - "id": "id:197", - "name": "subnet20", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:536" - }, - "href": "href:534", - "id": "id:535", - "name": "crumpet-ride-tastiness-phoney", - "volume": { - "crn": "crn:537", - "href": "href:538", - "id": "id:539", - "name": "doorframe-marvelous-refusing-citable", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:39", - "href": "href:40", - "id": "id:41", - "name": "test-vpc2", - "resource_type": "vpc" - }, - "zone": { - "href": "href:7", - "name": "us-south-3" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:41:21.000Z", - "floating_ips": [], - "href": "href:211", - "id": "id:212", - "name": "tavern-far-imprudent-labored", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.128.4", - "href": "href:209", - "id": "id:210", - "name": "unmixed-qualify-prescribe-railcar", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:339", - "href": "href:340", - "id": "id:341", - "name": "sg21" - } - ], - "status": "available", - "subnet": { - "crn": "crn:195", - "href": "href:196", - "id": "id:197", - "name": "subnet20", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:545" - }, - "href": "href:543", - "id": "id:544", - "name": "bronzing-vendor-plod-pretzel", - "volume": { - "crn": "crn:546", - "href": "href:547", - "id": "id:548", - "name": "squelch-plop-headlamp-ideologue", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:41:00.000Z", - "crn": "crn:540", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:541", - "id": "id:542", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi0-subnet30", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:260", - "id": "id:261", - "name": "snout-given-twiddle-splinter", - "primary_ip": { - "address": "10.240.192.4", - "href": "href:258", - "id": "id:259", - "name": "legacy-shore-molecule-barometer", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:244", - "href": "href:245", - "id": "id:246", - "name": "subnet30", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:545" - }, - "href": "href:543", - "id": "id:544", - "name": "bronzing-vendor-plod-pretzel", - "volume": { - "crn": "crn:546", - "href": "href:547", - "id": "id:548", - "name": "squelch-plop-headlamp-ideologue", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:52", - "href": "href:53", - "id": "id:54", - "name": "test-vpc3", - "resource_type": "vpc" - }, - "zone": { - "href": "href:7", - "name": "us-south-3" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:41:00.000Z", - "floating_ips": [ - { - "address": "52.118.100.239", - "crn": "crn:294", - "href": "href:295", - "id": "id:296", - "name": "fip-0-subnet30" - } - ], - "href": "href:260", - "id": "id:261", - "name": "snout-given-twiddle-splinter", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.192.4", - "href": "href:258", - "id": "id:259", - "name": "legacy-shore-molecule-barometer", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:346", - "href": "href:347", - "id": "id:348", - "name": "sg31" - } - ], - "status": "available", - "subnet": { - "crn": "crn:244", - "href": "href:245", - "id": "id:246", - "name": "subnet30", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - } - ], - "routing_tables": [ - { - "accept_routes_from": [ - { - "resource_type": "vpn_gateway" - }, - { - "resource_type": "vpn_server" - } - ], - "advertise_routes_to": [], - "created_at": "2024-06-25T15:40:20.000Z", - "href": "href:11", - "id": "id:12", - "is_default": true, - "lifecycle_state": "stable", - "name": "overtone-sputter-overspend-gorge", - "resource_type": "routing_table", - "route_direct_link_ingress": false, - "route_internet_ingress": false, - "route_transit_gateway_ingress": false, - "route_vpc_zone_ingress": false, - "subnets": [ - { - "crn": "crn:137", - "href": "href:138", - "id": "id:139", - "name": "subnet11", - "resource_type": "subnet" - }, - { - "crn": "crn:178", - "href": "href:179", - "id": "id:180", - "name": "subnet10", - "resource_type": "subnet" - } - ], - "routes": [], - "vpc": { - "crn": "crn:1", - "href": "href:2", - "id": "id:3", - "name": "test-vpc1", - "resource_type": "vpc" - } - }, - { - "accept_routes_from": [ - { - "resource_type": "vpn_gateway" - }, - { - "resource_type": "vpn_server" - } - ], - "advertise_routes_to": [], - "created_at": "2024-06-25T15:40:19.000Z", - "href": "href:28", - "id": "id:29", - "is_default": true, - "lifecycle_state": "stable", - "name": "escapade-dynamite-upstage-context", - "resource_type": "routing_table", - "route_direct_link_ingress": false, - "route_internet_ingress": false, - "route_transit_gateway_ingress": false, - "route_vpc_zone_ingress": false, - "subnets": [ - { - "crn": "crn:65", - "href": "href:66", - "id": "id:67", - "name": "subnet5", - "resource_type": "subnet" - }, - { - "crn": "crn:89", - "href": "href:90", - "id": "id:91", - "name": "subnet3", - "resource_type": "subnet" - }, - { - "crn": "crn:113", - "href": "href:114", - "id": "id:115", - "name": "subnet0", - "resource_type": "subnet" - }, - { - "crn": "crn:157", - "href": "href:158", - "id": "id:159", - "name": "subnet2", - "resource_type": "subnet" - }, - { - "crn": "crn:223", - "href": "href:224", - "id": "id:225", - "name": "subnet1", - "resource_type": "subnet" - }, - { - "crn": "crn:264", - "href": "href:265", - "id": "id:266", - "name": "subnet4", - "resource_type": "subnet" - } - ], - "routes": [], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - } - }, - { - "accept_routes_from": [ - { - "resource_type": "vpn_gateway" - }, - { - "resource_type": "vpn_server" - } - ], - "advertise_routes_to": [], - "created_at": "2024-06-25T15:40:19.000Z", - "href": "href:45", - "id": "id:46", - "is_default": true, - "lifecycle_state": "stable", - "name": "quintuple-severity-caddie-manuals", - "resource_type": "routing_table", - "route_direct_link_ingress": false, - "route_internet_ingress": false, - "route_transit_gateway_ingress": false, - "route_vpc_zone_ingress": false, - "subnets": [ - { - "crn": "crn:195", - "href": "href:196", - "id": "id:197", - "name": "subnet20", - "resource_type": "subnet" - } - ], - "routes": [], - "vpc": { - "crn": "crn:39", - "href": "href:40", - "id": "id:41", - "name": "test-vpc2", - "resource_type": "vpc" - } - }, - { - "accept_routes_from": [ - { - "resource_type": "vpn_gateway" - }, - { - "resource_type": "vpn_server" - } - ], - "advertise_routes_to": [], - "created_at": "2024-06-25T15:40:19.000Z", - "href": "href:58", - "id": "id:59", - "is_default": true, - "lifecycle_state": "stable", - "name": "probational-herring-undone-daintily", - "resource_type": "routing_table", - "route_direct_link_ingress": false, - "route_internet_ingress": false, - "route_transit_gateway_ingress": false, - "route_vpc_zone_ingress": false, - "subnets": [ - { - "crn": "crn:244", - "href": "href:245", - "id": "id:246", - "name": "subnet30", - "resource_type": "subnet" - } - ], - "routes": [], - "vpc": { - "crn": "crn:52", - "href": "href:53", - "id": "id:54", - "name": "test-vpc3", - "resource_type": "vpc" - } - } - ], - "load_balancers": [], - "transit_connections": [ - { - "created_at": "2024-06-25T15:41:44.212Z", - "id": "id:549", - "name": "tg3_connection3", - "network_id": "crn:52", - "network_type": "vpc", - "prefix_filters_default": "permit", - "status": "attached", - "transit_gateway": { - "crn": "crn:550", - "id": "id:551", - "name": "local-tg3" - }, - "updated_at": "2024-06-25T15:45:14.206Z" - }, - { - "created_at": "2024-06-25T15:41:54.416Z", - "id": "id:552", - "name": "tg3_connection0", - "network_id": "crn:22", - "network_type": "vpc", - "prefix_filters_default": "permit", - "status": "attached", - "transit_gateway": { - "crn": "crn:550", - "id": "id:551", - "name": "local-tg3" - }, - "updated_at": "2024-06-25T15:45:53.979Z" - }, - { - "created_at": "2024-06-25T15:42:54.772Z", - "id": "id:553", - "name": "tg2_connection3", - "network_id": "crn:52", - "network_type": "vpc", - "prefix_filters_default": "permit", - "status": "attached", - "transit_gateway": { - "crn": "crn:554", - "id": "id:555", - "name": "local-tg2" - }, - "updated_at": "2024-06-25T15:49:08.822Z" - }, - { - "created_at": "2024-06-25T15:43:11.555Z", - "id": "id:556", - "name": "tg2_connection0", - "network_id": "crn:22", - "network_type": "vpc", - "prefix_filters": [ - { - "action": "deny", - "created_at": "2024-06-25T15:46:46.641Z", - "id": "id:557", - "le": 32, - "prefix": "10.240.0.0/22", - "updated_at": "2024-06-25T15:46:46.641Z" - } - ], - "prefix_filters_default": "permit", - "status": "attached", - "transit_gateway": { - "crn": "crn:554", - "id": "id:555", - "name": "local-tg2" - }, - "updated_at": "2024-06-25T15:49:59.395Z" - }, - { - "created_at": "2024-06-25T15:43:12.159Z", - "id": "id:558", - "name": "tg_connection0", - "network_id": "crn:22", - "network_type": "vpc", - "prefix_filters": [ - { - "action": "deny", - "before": "298db67f-2e68-4548-93b9-949f8356d4a0", - "created_at": "2024-06-25T15:45:14.711Z", - "id": "id:559", - "prefix": "10.240.4.0/22", - "updated_at": "2024-06-25T15:45:14.711Z" - }, - { - "action": "deny", - "created_at": "2024-06-25T15:45:25.435Z", - "id": "id:560", - "prefix": "10.240.8.0/22", - "updated_at": "2024-06-25T15:45:25.435Z" - } - ], - "prefix_filters_default": "permit", - "status": "attached", - "transit_gateway": { - "crn": "crn:561", - "id": "id:562", - "name": "local-tg1" - }, - "updated_at": "2024-06-25T15:49:53.837Z" - }, - { - "created_at": "2024-06-25T15:43:41.079Z", - "id": "id:563", - "name": "tg2_connection2", - "network_id": "crn:39", - "network_type": "vpc", - "prefix_filters_default": "permit", - "status": "attached", - "transit_gateway": { - "crn": "crn:554", - "id": "id:555", - "name": "local-tg2" - }, - "updated_at": "2024-06-25T15:49:43.192Z" - }, - { - "created_at": "2024-06-25T15:43:42.335Z", - "id": "id:564", - "name": "tg1_connection1", - "network_id": "crn:1", - "network_type": "vpc", - "prefix_filters_default": "permit", - "status": "attached", - "transit_gateway": { - "crn": "crn:561", - "id": "id:562", - "name": "local-tg1" - }, - "updated_at": "2024-06-25T15:48:45.229Z" - }, - { - "created_at": "2024-06-25T15:44:08.995Z", - "id": "id:565", - "name": "tg1_connection2", - "network_id": "crn:39", - "network_type": "vpc", - "prefix_filters_default": "permit", - "status": "attached", - "transit_gateway": { - "crn": "crn:561", - "id": "id:562", - "name": "local-tg1" - }, - "updated_at": "2024-06-25T15:49:11.976Z" - } - ], - "transit_gateways": [ - { - "id": "id:551", - "crn": "crn:550", - "name": "local-tg3", - "location": "us-south", - "created_at": "2024-06-25T15:40:21.390Z", - "global": false, - "resource_group": { - "id": "id:17", - "href": "href:566" - }, - "status": "available", - "updated_at": "2024-06-25T15:42:12.752Z" - }, - { - "id": "id:555", - "crn": "crn:554", - "name": "local-tg2", - "location": "us-south", - "created_at": "2024-06-25T15:40:25.895Z", - "global": false, - "resource_group": { - "id": "id:17", - "href": "href:566" - }, - "status": "available", - "updated_at": "2024-06-25T15:43:58.196Z" - }, - { - "id": "id:562", - "crn": "crn:561", - "name": "local-tg1", - "location": "us-south", - "created_at": "2024-06-25T15:40:26.455Z", - "global": false, - "resource_group": { - "id": "id:17", - "href": "href:566" - }, - "status": "available", - "updated_at": "2024-06-25T15:43:15.331Z" - } - ], - "iks_clusters": [] -} diff --git a/test/data/acl_vpe/conn_spec.json b/test/data/acl_vpe/conn_spec.json new file mode 100644 index 00000000..63a59fc1 --- /dev/null +++ b/test/data/acl_vpe/conn_spec.json @@ -0,0 +1,27 @@ +{ + "externals": { + "public internet": "0.0.0.0/0" + }, + "required-connections": [ + { + "src": { + "name": "public internet", + "type": "external" + }, + "dst": { + "name": "appdata-endpoint-gateway", + "type": "vpe" + } + }, + { + "src": { + "name": "policydb-endpoint-gateway", + "type": "vpe" + }, + "dst": { + "name": "sub1", + "type": "subnet" + } + } + ] +} diff --git a/test/data/sg_protocols/config_object.json b/test/data/sg_protocols/config_object.json deleted file mode 100644 index 7e94d3b8..00000000 --- a/test/data/sg_protocols/config_object.json +++ /dev/null @@ -1,6269 +0,0 @@ -{ - "collector_version": "0.11.0", - "provider": "ibm", - "vpcs": [ - { - "classic_access": false, - "created_at": "2024-06-25T15:40:20.000Z", - "crn": "crn:1", - "cse_source_ips": [ - { - "ip": { - "address": "10.22.215.5" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - } - }, - { - "ip": { - "address": "10.22.220.2" - }, - "zone": { - "href": "href:6", - "name": "us-south-2" - } - }, - { - "ip": { - "address": "10.249.82.12" - }, - "zone": { - "href": "href:7", - "name": "us-south-3" - } - } - ], - "default_network_acl": { - "crn": "crn:8", - "href": "href:9", - "id": "id:10", - "name": "automaker-castle-bird-worried" - }, - "default_routing_table": { - "href": "href:11", - "id": "id:12", - "name": "overtone-sputter-overspend-gorge", - "resource_type": "routing_table" - }, - "default_security_group": { - "crn": "crn:13", - "href": "href:14", - "id": "id:15", - "name": "brute-upon-angles-cubbyhole" - }, - "dns": { - "enable_hub": false, - "resolution_binding_count": 0, - "resolver": { - "servers": [ - { - "address": "161.26.0.10" - }, - { - "address": "161.26.0.11" - } - ], - "type": "system", - "configuration": "default" - } - }, - "health_reasons": null, - "health_state": "ok", - "href": "href:2", - "id": "id:3", - "name": "test-vpc1", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "vpc", - "status": "available", - "region": "us-south", - "address_prefixes": [ - { - "cidr": "10.240.80.0/20", - "created_at": "2024-06-25T15:40:39.000Z", - "has_subnets": true, - "href": "href:18", - "id": "id:19", - "is_default": false, - "name": "address-prefix-vpc-1", - "zone": { - "href": "href:6", - "name": "us-south-2" - } - }, - { - "cidr": "10.240.64.0/20", - "created_at": "2024-06-25T15:40:40.000Z", - "has_subnets": true, - "href": "href:20", - "id": "id:21", - "is_default": false, - "name": "address-prefix-vpc-0", - "zone": { - "href": "href:6", - "name": "us-south-2" - } - } - ], - "tags": [] - }, - { - "classic_access": false, - "created_at": "2024-06-25T15:40:19.000Z", - "crn": "crn:22", - "cse_source_ips": [ - { - "ip": { - "address": "10.16.238.56" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - } - }, - { - "ip": { - "address": "10.249.200.205" - }, - "zone": { - "href": "href:6", - "name": "us-south-2" - } - }, - { - "ip": { - "address": "10.249.212.88" - }, - "zone": { - "href": "href:7", - "name": "us-south-3" - } - } - ], - "default_network_acl": { - "crn": "crn:25", - "href": "href:26", - "id": "id:27", - "name": "ebullient-slacks-revert-turkey" - }, - "default_routing_table": { - "href": "href:28", - "id": "id:29", - "name": "escapade-dynamite-upstage-context", - "resource_type": "routing_table" - }, - "default_security_group": { - "crn": "crn:30", - "href": "href:31", - "id": "id:32", - "name": "basically-drank-bulk-jam" - }, - "dns": { - "enable_hub": false, - "resolution_binding_count": 0, - "resolver": { - "servers": [ - { - "address": "161.26.0.10" - }, - { - "address": "161.26.0.11" - } - ], - "type": "system", - "configuration": "default" - } - }, - "health_reasons": null, - "health_state": "ok", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "vpc", - "status": "available", - "region": "us-south", - "address_prefixes": [ - { - "cidr": "10.240.0.0/22", - "created_at": "2024-06-25T15:40:37.000Z", - "has_subnets": true, - "href": "href:33", - "id": "id:34", - "is_default": false, - "name": "address-prefix-vpc-0", - "zone": { - "href": "href:5", - "name": "us-south-1" - } - }, - { - "cidr": "10.240.4.0/22", - "created_at": "2024-06-25T15:40:38.000Z", - "has_subnets": true, - "href": "href:35", - "id": "id:36", - "is_default": false, - "name": "address-prefix-vpc-1", - "zone": { - "href": "href:5", - "name": "us-south-1" - } - }, - { - "cidr": "10.240.8.0/22", - "created_at": "2024-06-25T15:40:39.000Z", - "has_subnets": true, - "href": "href:37", - "id": "id:38", - "is_default": false, - "name": "address-prefix-vpc-2", - "zone": { - "href": "href:5", - "name": "us-south-1" - } - } - ], - "tags": [] - }, - { - "classic_access": false, - "created_at": "2024-06-25T15:40:19.000Z", - "crn": "crn:39", - "cse_source_ips": [ - { - "ip": { - "address": "10.12.125.16" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - } - }, - { - "ip": { - "address": "10.22.27.134" - }, - "zone": { - "href": "href:6", - "name": "us-south-2" - } - }, - { - "ip": { - "address": "10.22.231.90" - }, - "zone": { - "href": "href:7", - "name": "us-south-3" - } - } - ], - "default_network_acl": { - "crn": "crn:42", - "href": "href:43", - "id": "id:44", - "name": "afoot-grape-fineness-zestfully" - }, - "default_routing_table": { - "href": "href:45", - "id": "id:46", - "name": "quintuple-severity-caddie-manuals", - "resource_type": "routing_table" - }, - "default_security_group": { - "crn": "crn:47", - "href": "href:48", - "id": "id:49", - "name": "glance-cactus-unease-bankroll" - }, - "dns": { - "enable_hub": false, - "resolution_binding_count": 0, - "resolver": { - "servers": [ - { - "address": "161.26.0.10" - }, - { - "address": "161.26.0.11" - } - ], - "type": "system", - "configuration": "default" - } - }, - "health_reasons": null, - "health_state": "ok", - "href": "href:40", - "id": "id:41", - "name": "test-vpc2", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "vpc", - "status": "available", - "region": "us-south", - "address_prefixes": [ - { - "cidr": "10.240.128.0/20", - "created_at": "2024-06-25T15:40:39.000Z", - "has_subnets": true, - "href": "href:50", - "id": "id:51", - "is_default": false, - "name": "address-prefix-vpc-0", - "zone": { - "href": "href:7", - "name": "us-south-3" - } - } - ], - "tags": [] - }, - { - "classic_access": false, - "created_at": "2024-06-25T15:40:19.000Z", - "crn": "crn:52", - "cse_source_ips": [ - { - "ip": { - "address": "10.22.219.155" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - } - }, - { - "ip": { - "address": "10.12.159.11" - }, - "zone": { - "href": "href:6", - "name": "us-south-2" - } - }, - { - "ip": { - "address": "10.16.253.109" - }, - "zone": { - "href": "href:7", - "name": "us-south-3" - } - } - ], - "default_network_acl": { - "crn": "crn:55", - "href": "href:56", - "id": "id:57", - "name": "untracked-repayment-triumph-cat" - }, - "default_routing_table": { - "href": "href:58", - "id": "id:59", - "name": "probational-herring-undone-daintily", - "resource_type": "routing_table" - }, - "default_security_group": { - "crn": "crn:60", - "href": "href:61", - "id": "id:62", - "name": "repeater-upcountry-agreeing-acutely" - }, - "dns": { - "enable_hub": false, - "resolution_binding_count": 0, - "resolver": { - "servers": [ - { - "address": "161.26.0.10" - }, - { - "address": "161.26.0.11" - } - ], - "type": "system", - "configuration": "default" - } - }, - "health_reasons": null, - "health_state": "ok", - "href": "href:53", - "id": "id:54", - "name": "test-vpc3", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "vpc", - "status": "available", - "region": "us-south", - "address_prefixes": [ - { - "cidr": "10.240.192.0/20", - "created_at": "2024-06-25T15:40:38.000Z", - "has_subnets": true, - "href": "href:63", - "id": "id:64", - "is_default": false, - "name": "address-prefix-vpc-0", - "zone": { - "href": "href:7", - "name": "us-south-3" - } - } - ], - "tags": [] - } - ], - "subnets": [ - { - "available_ipv4_address_count": 249, - "created_at": "2024-06-25T15:41:47.000Z", - "crn": "crn:65", - "href": "href:66", - "id": "id:67", - "ip_version": "ipv4", - "ipv4_cidr_block": "10.240.9.0/24", - "name": "subnet5", - "network_acl": { - "crn": "crn:68", - "href": "href:69", - "id": "id:70", - "name": "acl3" - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "subnet", - "routing_table": { - "href": "href:28", - "id": "id:29", - "name": "escapade-dynamite-upstage-context", - "resource_type": "routing_table" - }, - "status": "available", - "total_ipv4_address_count": 256, - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "reserved_ips": [ - { - "address": "10.240.9.0", - "auto_delete": false, - "created_at": "2024-06-25T15:41:47.000Z", - "href": "href:71", - "id": "id:72", - "lifecycle_state": "stable", - "name": "ibm-network-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.9.1", - "auto_delete": false, - "created_at": "2024-06-25T15:41:47.000Z", - "href": "href:73", - "id": "id:74", - "lifecycle_state": "stable", - "name": "ibm-default-gateway", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.9.2", - "auto_delete": false, - "created_at": "2024-06-25T15:41:47.000Z", - "href": "href:75", - "id": "id:76", - "lifecycle_state": "stable", - "name": "ibm-dns-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.9.3", - "auto_delete": false, - "created_at": "2024-06-25T15:41:47.000Z", - "href": "href:77", - "id": "id:78", - "lifecycle_state": "stable", - "name": "ibm-reserved-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.9.4", - "auto_delete": false, - "created_at": "2024-06-25T15:42:00.000Z", - "href": "href:79", - "id": "id:80", - "lifecycle_state": "stable", - "name": "ideally-grain-bagpipe-luxuriant", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:81", - "id": "id:82", - "name": "stooped-camera-excluded-juke", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.9.5", - "auto_delete": false, - "created_at": "2024-06-25T15:42:20.000Z", - "href": "href:83", - "id": "id:84", - "lifecycle_state": "stable", - "name": "outskirts-unaligned-passivism-parchment", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:85", - "id": "id:86", - "name": "scratch-outward-raging-hunchback", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.9.255", - "auto_delete": false, - "created_at": "2024-06-25T15:41:47.000Z", - "href": "href:87", - "id": "id:88", - "lifecycle_state": "stable", - "name": "ibm-broadcast-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - } - ], - "tags": [] - }, - { - "available_ipv4_address_count": 249, - "created_at": "2024-06-25T15:41:35.000Z", - "crn": "crn:89", - "href": "href:90", - "id": "id:91", - "ip_version": "ipv4", - "ipv4_cidr_block": "10.240.5.0/24", - "name": "subnet3", - "network_acl": { - "crn": "crn:92", - "href": "href:93", - "id": "id:94", - "name": "acl2" - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "subnet", - "routing_table": { - "href": "href:28", - "id": "id:29", - "name": "escapade-dynamite-upstage-context", - "resource_type": "routing_table" - }, - "status": "available", - "total_ipv4_address_count": 256, - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "reserved_ips": [ - { - "address": "10.240.5.0", - "auto_delete": false, - "created_at": "2024-06-25T15:41:35.000Z", - "href": "href:95", - "id": "id:96", - "lifecycle_state": "stable", - "name": "ibm-network-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.5.1", - "auto_delete": false, - "created_at": "2024-06-25T15:41:35.000Z", - "href": "href:97", - "id": "id:98", - "lifecycle_state": "stable", - "name": "ibm-default-gateway", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.5.2", - "auto_delete": false, - "created_at": "2024-06-25T15:41:35.000Z", - "href": "href:99", - "id": "id:100", - "lifecycle_state": "stable", - "name": "ibm-dns-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.5.3", - "auto_delete": false, - "created_at": "2024-06-25T15:41:35.000Z", - "href": "href:101", - "id": "id:102", - "lifecycle_state": "stable", - "name": "ibm-reserved-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.5.4", - "auto_delete": false, - "created_at": "2024-06-25T15:42:00.000Z", - "href": "href:103", - "id": "id:104", - "lifecycle_state": "stable", - "name": "rising-gopher-reentry-graveness", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:105", - "id": "id:106", - "name": "icky-balsamic-outgoing-leached", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.5.5", - "auto_delete": false, - "created_at": "2024-06-25T15:42:16.000Z", - "href": "href:107", - "id": "id:108", - "lifecycle_state": "stable", - "name": "recognize-citable-exerciser-unsecured", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:109", - "id": "id:110", - "name": "squatted-fastball-vacant-knoll", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.5.255", - "auto_delete": false, - "created_at": "2024-06-25T15:41:35.000Z", - "href": "href:111", - "id": "id:112", - "lifecycle_state": "stable", - "name": "ibm-broadcast-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - } - ], - "tags": [] - }, - { - "available_ipv4_address_count": 249, - "created_at": "2024-06-25T15:41:23.000Z", - "crn": "crn:113", - "href": "href:114", - "id": "id:115", - "ip_version": "ipv4", - "ipv4_cidr_block": "10.240.0.0/24", - "name": "subnet0", - "network_acl": { - "crn": "crn:116", - "href": "href:117", - "id": "id:118", - "name": "acl1" - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "subnet", - "routing_table": { - "href": "href:28", - "id": "id:29", - "name": "escapade-dynamite-upstage-context", - "resource_type": "routing_table" - }, - "status": "available", - "total_ipv4_address_count": 256, - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "reserved_ips": [ - { - "address": "10.240.0.0", - "auto_delete": false, - "created_at": "2024-06-25T15:41:23.000Z", - "href": "href:119", - "id": "id:120", - "lifecycle_state": "stable", - "name": "ibm-network-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.0.1", - "auto_delete": false, - "created_at": "2024-06-25T15:41:23.000Z", - "href": "href:121", - "id": "id:122", - "lifecycle_state": "stable", - "name": "ibm-default-gateway", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.0.2", - "auto_delete": false, - "created_at": "2024-06-25T15:41:23.000Z", - "href": "href:123", - "id": "id:124", - "lifecycle_state": "stable", - "name": "ibm-dns-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.0.3", - "auto_delete": false, - "created_at": "2024-06-25T15:41:23.000Z", - "href": "href:125", - "id": "id:126", - "lifecycle_state": "stable", - "name": "ibm-reserved-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.0.4", - "auto_delete": false, - "created_at": "2024-06-25T15:42:08.000Z", - "href": "href:127", - "id": "id:128", - "lifecycle_state": "stable", - "name": "pundit-tight-arbitrate-grace", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:129", - "id": "id:130", - "name": "writer-crusher-unsuited-cash", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.0.5", - "auto_delete": false, - "created_at": "2024-06-25T15:42:39.000Z", - "href": "href:131", - "id": "id:132", - "lifecycle_state": "stable", - "name": "relatable-antiques-maturing-brulee", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:133", - "id": "id:134", - "name": "consonant-imperial-simply-ceramics", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.0.255", - "auto_delete": false, - "created_at": "2024-06-25T15:41:23.000Z", - "href": "href:135", - "id": "id:136", - "lifecycle_state": "stable", - "name": "ibm-broadcast-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - } - ], - "tags": [] - }, - { - "available_ipv4_address_count": 250, - "created_at": "2024-06-25T15:41:20.000Z", - "crn": "crn:137", - "href": "href:138", - "id": "id:139", - "ip_version": "ipv4", - "ipv4_cidr_block": "10.240.80.0/24", - "name": "subnet11", - "network_acl": { - "crn": "crn:140", - "href": "href:141", - "id": "id:142", - "name": "acl11" - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "subnet", - "routing_table": { - "href": "href:11", - "id": "id:12", - "name": "overtone-sputter-overspend-gorge", - "resource_type": "routing_table" - }, - "status": "available", - "total_ipv4_address_count": 256, - "vpc": { - "crn": "crn:1", - "href": "href:2", - "id": "id:3", - "name": "test-vpc1", - "resource_type": "vpc" - }, - "zone": { - "href": "href:6", - "name": "us-south-2" - }, - "reserved_ips": [ - { - "address": "10.240.80.0", - "auto_delete": false, - "created_at": "2024-06-25T15:41:20.000Z", - "href": "href:143", - "id": "id:144", - "lifecycle_state": "stable", - "name": "ibm-network-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.80.1", - "auto_delete": false, - "created_at": "2024-06-25T15:41:20.000Z", - "href": "href:145", - "id": "id:146", - "lifecycle_state": "stable", - "name": "ibm-default-gateway", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.80.2", - "auto_delete": false, - "created_at": "2024-06-25T15:41:20.000Z", - "href": "href:147", - "id": "id:148", - "lifecycle_state": "stable", - "name": "ibm-dns-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.80.3", - "auto_delete": false, - "created_at": "2024-06-25T15:41:20.000Z", - "href": "href:149", - "id": "id:150", - "lifecycle_state": "stable", - "name": "ibm-reserved-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.80.4", - "auto_delete": false, - "created_at": "2024-06-25T15:41:40.000Z", - "href": "href:151", - "id": "id:152", - "lifecycle_state": "stable", - "name": "childlike-publish-retainer-movie", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:153", - "id": "id:154", - "name": "stride-woken-backsight-dynastic", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.80.255", - "auto_delete": false, - "created_at": "2024-06-25T15:41:20.000Z", - "href": "href:155", - "id": "id:156", - "lifecycle_state": "stable", - "name": "ibm-broadcast-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - } - ], - "tags": [] - }, - { - "available_ipv4_address_count": 249, - "created_at": "2024-06-25T15:41:08.000Z", - "crn": "crn:157", - "href": "href:158", - "id": "id:159", - "ip_version": "ipv4", - "ipv4_cidr_block": "10.240.4.0/24", - "name": "subnet2", - "network_acl": { - "crn": "crn:92", - "href": "href:93", - "id": "id:94", - "name": "acl2" - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "subnet", - "routing_table": { - "href": "href:28", - "id": "id:29", - "name": "escapade-dynamite-upstage-context", - "resource_type": "routing_table" - }, - "status": "available", - "total_ipv4_address_count": 256, - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "reserved_ips": [ - { - "address": "10.240.4.0", - "auto_delete": false, - "created_at": "2024-06-25T15:41:08.000Z", - "href": "href:160", - "id": "id:161", - "lifecycle_state": "stable", - "name": "ibm-network-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.4.1", - "auto_delete": false, - "created_at": "2024-06-25T15:41:08.000Z", - "href": "href:162", - "id": "id:163", - "lifecycle_state": "stable", - "name": "ibm-default-gateway", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.4.2", - "auto_delete": false, - "created_at": "2024-06-25T15:41:08.000Z", - "href": "href:164", - "id": "id:165", - "lifecycle_state": "stable", - "name": "ibm-dns-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.4.3", - "auto_delete": false, - "created_at": "2024-06-25T15:41:08.000Z", - "href": "href:166", - "id": "id:167", - "lifecycle_state": "stable", - "name": "ibm-reserved-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.4.4", - "auto_delete": false, - "created_at": "2024-06-25T15:42:21.000Z", - "href": "href:168", - "id": "id:169", - "lifecycle_state": "stable", - "name": "stood-sitcom-whoops-hurled", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:170", - "id": "id:171", - "name": "graveyard-handmade-ransack-acquaint", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.4.5", - "auto_delete": false, - "created_at": "2024-06-25T15:42:22.000Z", - "href": "href:172", - "id": "id:173", - "lifecycle_state": "stable", - "name": "bark-gatherer-rope-unrivaled", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:174", - "id": "id:175", - "name": "quantum-handbag-dimmed-reassign", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.4.255", - "auto_delete": false, - "created_at": "2024-06-25T15:41:08.000Z", - "href": "href:176", - "id": "id:177", - "lifecycle_state": "stable", - "name": "ibm-broadcast-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - } - ], - "tags": [] - }, - { - "available_ipv4_address_count": 250, - "created_at": "2024-06-25T15:41:08.000Z", - "crn": "crn:178", - "href": "href:179", - "id": "id:180", - "ip_version": "ipv4", - "ipv4_cidr_block": "10.240.64.0/24", - "name": "subnet10", - "network_acl": { - "crn": "crn:140", - "href": "href:141", - "id": "id:142", - "name": "acl11" - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "subnet", - "routing_table": { - "href": "href:11", - "id": "id:12", - "name": "overtone-sputter-overspend-gorge", - "resource_type": "routing_table" - }, - "status": "available", - "total_ipv4_address_count": 256, - "vpc": { - "crn": "crn:1", - "href": "href:2", - "id": "id:3", - "name": "test-vpc1", - "resource_type": "vpc" - }, - "zone": { - "href": "href:6", - "name": "us-south-2" - }, - "reserved_ips": [ - { - "address": "10.240.64.0", - "auto_delete": false, - "created_at": "2024-06-25T15:41:08.000Z", - "href": "href:181", - "id": "id:182", - "lifecycle_state": "stable", - "name": "ibm-network-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.64.1", - "auto_delete": false, - "created_at": "2024-06-25T15:41:08.000Z", - "href": "href:183", - "id": "id:184", - "lifecycle_state": "stable", - "name": "ibm-default-gateway", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.64.2", - "auto_delete": false, - "created_at": "2024-06-25T15:41:08.000Z", - "href": "href:185", - "id": "id:186", - "lifecycle_state": "stable", - "name": "ibm-dns-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.64.3", - "auto_delete": false, - "created_at": "2024-06-25T15:41:08.000Z", - "href": "href:187", - "id": "id:188", - "lifecycle_state": "stable", - "name": "ibm-reserved-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.64.4", - "auto_delete": false, - "created_at": "2024-06-25T15:41:36.000Z", - "href": "href:189", - "id": "id:190", - "lifecycle_state": "stable", - "name": "starry-smasher-ladle-dioxide", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:191", - "id": "id:192", - "name": "enlace-prominent-overhear-perfume", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.64.255", - "auto_delete": false, - "created_at": "2024-06-25T15:41:08.000Z", - "href": "href:193", - "id": "id:194", - "lifecycle_state": "stable", - "name": "ibm-broadcast-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - } - ], - "tags": [] - }, - { - "available_ipv4_address_count": 248, - "created_at": "2024-06-25T15:40:57.000Z", - "crn": "crn:195", - "href": "href:196", - "id": "id:197", - "ip_version": "ipv4", - "ipv4_cidr_block": "10.240.128.0/24", - "name": "subnet20", - "network_acl": { - "crn": "crn:198", - "href": "href:199", - "id": "id:200", - "name": "acl21" - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "subnet", - "routing_table": { - "href": "href:45", - "id": "id:46", - "name": "quintuple-severity-caddie-manuals", - "resource_type": "routing_table" - }, - "status": "available", - "total_ipv4_address_count": 256, - "vpc": { - "crn": "crn:39", - "href": "href:40", - "id": "id:41", - "name": "test-vpc2", - "resource_type": "vpc" - }, - "zone": { - "href": "href:7", - "name": "us-south-3" - }, - "reserved_ips": [ - { - "address": "10.240.128.0", - "auto_delete": false, - "created_at": "2024-06-25T15:40:57.000Z", - "href": "href:201", - "id": "id:202", - "lifecycle_state": "stable", - "name": "ibm-network-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.128.1", - "auto_delete": false, - "created_at": "2024-06-25T15:40:57.000Z", - "href": "href:203", - "id": "id:204", - "lifecycle_state": "stable", - "name": "ibm-default-gateway", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.128.2", - "auto_delete": false, - "created_at": "2024-06-25T15:40:57.000Z", - "href": "href:205", - "id": "id:206", - "lifecycle_state": "stable", - "name": "ibm-dns-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.128.3", - "auto_delete": false, - "created_at": "2024-06-25T15:40:57.000Z", - "href": "href:207", - "id": "id:208", - "lifecycle_state": "stable", - "name": "ibm-reserved-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.128.4", - "auto_delete": false, - "created_at": "2024-06-25T15:41:21.000Z", - "href": "href:209", - "id": "id:210", - "lifecycle_state": "stable", - "name": "unmixed-qualify-prescribe-railcar", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:211", - "id": "id:212", - "name": "tavern-far-imprudent-labored", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.128.5", - "auto_delete": false, - "created_at": "2024-06-25T15:41:21.000Z", - "href": "href:213", - "id": "id:214", - "lifecycle_state": "stable", - "name": "customs-recollect-drippy-primate", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:215", - "id": "id:216", - "name": "ought-football-shorter-aviator", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.128.6", - "auto_delete": false, - "created_at": "2024-06-25T15:41:24.000Z", - "href": "href:217", - "id": "id:218", - "lifecycle_state": "stable", - "name": "uniquely-shelter-gracious-sudden", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:219", - "id": "id:220", - "name": "clicker-grumbly-outskirts-greatly", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.128.255", - "auto_delete": false, - "created_at": "2024-06-25T15:40:57.000Z", - "href": "href:221", - "id": "id:222", - "lifecycle_state": "stable", - "name": "ibm-broadcast-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - } - ], - "tags": [] - }, - { - "available_ipv4_address_count": 249, - "created_at": "2024-06-25T15:40:56.000Z", - "crn": "crn:223", - "href": "href:224", - "id": "id:225", - "ip_version": "ipv4", - "ipv4_cidr_block": "10.240.1.0/24", - "name": "subnet1", - "network_acl": { - "crn": "crn:116", - "href": "href:117", - "id": "id:118", - "name": "acl1" - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "subnet", - "routing_table": { - "href": "href:28", - "id": "id:29", - "name": "escapade-dynamite-upstage-context", - "resource_type": "routing_table" - }, - "status": "available", - "total_ipv4_address_count": 256, - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "reserved_ips": [ - { - "address": "10.240.1.0", - "auto_delete": false, - "created_at": "2024-06-25T15:40:56.000Z", - "href": "href:226", - "id": "id:227", - "lifecycle_state": "stable", - "name": "ibm-network-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.1.1", - "auto_delete": false, - "created_at": "2024-06-25T15:40:56.000Z", - "href": "href:228", - "id": "id:229", - "lifecycle_state": "stable", - "name": "ibm-default-gateway", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.1.2", - "auto_delete": false, - "created_at": "2024-06-25T15:40:56.000Z", - "href": "href:230", - "id": "id:231", - "lifecycle_state": "stable", - "name": "ibm-dns-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.1.3", - "auto_delete": false, - "created_at": "2024-06-25T15:40:56.000Z", - "href": "href:232", - "id": "id:233", - "lifecycle_state": "stable", - "name": "ibm-reserved-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.1.4", - "auto_delete": false, - "created_at": "2024-06-25T15:42:00.000Z", - "href": "href:234", - "id": "id:235", - "lifecycle_state": "stable", - "name": "excluded-unfair-jailbird-foil", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:236", - "id": "id:237", - "name": "hankie-excitable-outclass-unmanaged", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.1.5", - "auto_delete": false, - "created_at": "2024-06-25T15:42:40.000Z", - "href": "href:238", - "id": "id:239", - "lifecycle_state": "stable", - "name": "affected-johnniecake-monorail-ungraded", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:240", - "id": "id:241", - "name": "scale-clambake-endearing-abridged", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.1.255", - "auto_delete": false, - "created_at": "2024-06-25T15:40:56.000Z", - "href": "href:242", - "id": "id:243", - "lifecycle_state": "stable", - "name": "ibm-broadcast-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - } - ], - "tags": [] - }, - { - "available_ipv4_address_count": 250, - "created_at": "2024-06-25T15:40:48.000Z", - "crn": "crn:244", - "href": "href:245", - "id": "id:246", - "ip_version": "ipv4", - "ipv4_cidr_block": "10.240.192.0/24", - "name": "subnet30", - "network_acl": { - "crn": "crn:247", - "href": "href:248", - "id": "id:249", - "name": "acl31" - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "subnet", - "routing_table": { - "href": "href:58", - "id": "id:59", - "name": "probational-herring-undone-daintily", - "resource_type": "routing_table" - }, - "status": "available", - "total_ipv4_address_count": 256, - "vpc": { - "crn": "crn:52", - "href": "href:53", - "id": "id:54", - "name": "test-vpc3", - "resource_type": "vpc" - }, - "zone": { - "href": "href:7", - "name": "us-south-3" - }, - "reserved_ips": [ - { - "address": "10.240.192.0", - "auto_delete": false, - "created_at": "2024-06-25T15:40:48.000Z", - "href": "href:250", - "id": "id:251", - "lifecycle_state": "stable", - "name": "ibm-network-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.192.1", - "auto_delete": false, - "created_at": "2024-06-25T15:40:48.000Z", - "href": "href:252", - "id": "id:253", - "lifecycle_state": "stable", - "name": "ibm-default-gateway", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.192.2", - "auto_delete": false, - "created_at": "2024-06-25T15:40:48.000Z", - "href": "href:254", - "id": "id:255", - "lifecycle_state": "stable", - "name": "ibm-dns-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.192.3", - "auto_delete": false, - "created_at": "2024-06-25T15:40:48.000Z", - "href": "href:256", - "id": "id:257", - "lifecycle_state": "stable", - "name": "ibm-reserved-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.192.4", - "auto_delete": false, - "created_at": "2024-06-25T15:41:01.000Z", - "href": "href:258", - "id": "id:259", - "lifecycle_state": "stable", - "name": "legacy-shore-molecule-barometer", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:260", - "id": "id:261", - "name": "snout-given-twiddle-splinter", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.192.255", - "auto_delete": false, - "created_at": "2024-06-25T15:40:48.000Z", - "href": "href:262", - "id": "id:263", - "lifecycle_state": "stable", - "name": "ibm-broadcast-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - } - ], - "tags": [] - }, - { - "available_ipv4_address_count": 249, - "created_at": "2024-06-25T15:40:44.000Z", - "crn": "crn:264", - "href": "href:265", - "id": "id:266", - "ip_version": "ipv4", - "ipv4_cidr_block": "10.240.8.0/24", - "name": "subnet4", - "network_acl": { - "crn": "crn:68", - "href": "href:69", - "id": "id:70", - "name": "acl3" - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "subnet", - "routing_table": { - "href": "href:28", - "id": "id:29", - "name": "escapade-dynamite-upstage-context", - "resource_type": "routing_table" - }, - "status": "available", - "total_ipv4_address_count": 256, - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "reserved_ips": [ - { - "address": "10.240.8.0", - "auto_delete": false, - "created_at": "2024-06-25T15:40:44.000Z", - "href": "href:267", - "id": "id:268", - "lifecycle_state": "stable", - "name": "ibm-network-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.8.1", - "auto_delete": false, - "created_at": "2024-06-25T15:40:44.000Z", - "href": "href:269", - "id": "id:270", - "lifecycle_state": "stable", - "name": "ibm-default-gateway", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.8.2", - "auto_delete": false, - "created_at": "2024-06-25T15:40:44.000Z", - "href": "href:271", - "id": "id:272", - "lifecycle_state": "stable", - "name": "ibm-dns-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.8.3", - "auto_delete": false, - "created_at": "2024-06-25T15:40:44.000Z", - "href": "href:273", - "id": "id:274", - "lifecycle_state": "stable", - "name": "ibm-reserved-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.8.4", - "auto_delete": false, - "created_at": "2024-06-25T15:42:00.000Z", - "href": "href:275", - "id": "id:276", - "lifecycle_state": "stable", - "name": "bagged-posture-glaring-cojoined", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:277", - "id": "id:278", - "name": "bullring-ransack-feint-cheer", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.8.5", - "auto_delete": false, - "created_at": "2024-06-25T15:42:16.000Z", - "href": "href:279", - "id": "id:280", - "lifecycle_state": "stable", - "name": "frighten-mystified-freeway-hurtling", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:281", - "id": "id:282", - "name": "speak-princess-washcloth-companion", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.8.255", - "auto_delete": false, - "created_at": "2024-06-25T15:40:44.000Z", - "href": "href:283", - "id": "id:284", - "lifecycle_state": "stable", - "name": "ibm-broadcast-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - } - ], - "tags": [] - } - ], - "public_gateways": [], - "floating_ips": [ - { - "address": "52.118.151.238", - "created_at": "2024-06-25T15:43:30.000Z", - "crn": "crn:285", - "href": "href:286", - "id": "id:287", - "name": "fip-0-subnet0", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "status": "available", - "target": { - "href": "href:129", - "id": "id:130", - "name": "writer-crusher-unsuited-cash", - "primary_ip": { - "address": "10.240.0.4", - "href": "href:127", - "id": "id:128", - "name": "pundit-tight-arbitrate-grace", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "tags": [] - }, - { - "address": "150.239.167.146", - "created_at": "2024-06-25T15:41:59.000Z", - "crn": "crn:288", - "href": "href:289", - "id": "id:290", - "name": "fip-0-subnet10", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "status": "available", - "target": { - "href": "href:191", - "id": "id:192", - "name": "enlace-prominent-overhear-perfume", - "primary_ip": { - "address": "10.240.64.4", - "href": "href:189", - "id": "id:190", - "name": "starry-smasher-ladle-dioxide", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface" - }, - "zone": { - "href": "href:6", - "name": "us-south-2" - }, - "tags": [] - }, - { - "address": "169.48.95.165", - "created_at": "2024-06-25T15:41:50.000Z", - "crn": "crn:291", - "href": "href:292", - "id": "id:293", - "name": "fip-0-subnet20", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "status": "available", - "target": { - "href": "href:219", - "id": "id:220", - "name": "clicker-grumbly-outskirts-greatly", - "primary_ip": { - "address": "10.240.128.6", - "href": "href:217", - "id": "id:218", - "name": "uniquely-shelter-gracious-sudden", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface" - }, - "zone": { - "href": "href:7", - "name": "us-south-3" - }, - "tags": [] - }, - { - "address": "52.118.100.239", - "created_at": "2024-06-25T15:41:33.000Z", - "crn": "crn:294", - "href": "href:295", - "id": "id:296", - "name": "fip-0-subnet30", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "status": "available", - "target": { - "href": "href:260", - "id": "id:261", - "name": "snout-given-twiddle-splinter", - "primary_ip": { - "address": "10.240.192.4", - "href": "href:258", - "id": "id:259", - "name": "legacy-shore-molecule-barometer", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface" - }, - "zone": { - "href": "href:7", - "name": "us-south-3" - }, - "tags": [] - } - ], - "network_acls": [ - { - "created_at": "2024-06-25T15:40:41.000Z", - "crn": "crn:140", - "href": "href:141", - "id": "id:142", - "name": "acl11", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "action": "deny", - "before": { - "href": "href:299", - "id": "id:300", - "name": "acl11-out-2" - }, - "created_at": "2024-06-25T15:40:42.000Z", - "destination": "10.240.4.0/24", - "direction": "outbound", - "href": "href:297", - "id": "id:298", - "ip_version": "ipv4", - "name": "acl11-out-1", - "source": "0.0.0.0/0", - "protocol": "all" - }, - { - "action": "allow", - "before": { - "href": "href:301", - "id": "id:302", - "name": "acl11-in-1" - }, - "created_at": "2024-06-25T15:40:43.000Z", - "destination": "0.0.0.0/0", - "direction": "outbound", - "href": "href:299", - "id": "id:300", - "ip_version": "ipv4", - "name": "acl11-out-2", - "source": "0.0.0.0/0", - "protocol": "all" - }, - { - "action": "allow", - "created_at": "2024-06-25T15:40:43.000Z", - "destination": "0.0.0.0/0", - "direction": "inbound", - "href": "href:301", - "id": "id:302", - "ip_version": "ipv4", - "name": "acl11-in-1", - "source": "0.0.0.0/0", - "protocol": "all" - } - ], - "subnets": [ - { - "crn": "crn:137", - "href": "href:138", - "id": "id:139", - "name": "subnet11", - "resource_type": "subnet" - }, - { - "crn": "crn:178", - "href": "href:179", - "id": "id:180", - "name": "subnet10", - "resource_type": "subnet" - } - ], - "vpc": { - "crn": "crn:1", - "href": "href:2", - "id": "id:3", - "name": "test-vpc1", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:40.000Z", - "crn": "crn:247", - "href": "href:248", - "id": "id:249", - "name": "acl31", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "action": "allow", - "before": { - "href": "href:305", - "id": "id:306", - "name": "acl31-in-1" - }, - "created_at": "2024-06-25T15:40:41.000Z", - "destination": "0.0.0.0/0", - "direction": "outbound", - "href": "href:303", - "id": "id:304", - "ip_version": "ipv4", - "name": "acl31-out-1", - "source": "0.0.0.0/0", - "protocol": "all" - }, - { - "action": "allow", - "created_at": "2024-06-25T15:40:41.000Z", - "destination": "0.0.0.0/0", - "direction": "inbound", - "href": "href:305", - "id": "id:306", - "ip_version": "ipv4", - "name": "acl31-in-1", - "source": "0.0.0.0/0", - "protocol": "all" - } - ], - "subnets": [ - { - "crn": "crn:244", - "href": "href:245", - "id": "id:246", - "name": "subnet30", - "resource_type": "subnet" - } - ], - "vpc": { - "crn": "crn:52", - "href": "href:53", - "id": "id:54", - "name": "test-vpc3", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:40.000Z", - "crn": "crn:198", - "href": "href:199", - "id": "id:200", - "name": "acl21", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "action": "allow", - "before": { - "href": "href:309", - "id": "id:310", - "name": "acl21-in-1" - }, - "created_at": "2024-06-25T15:40:41.000Z", - "destination": "0.0.0.0/0", - "direction": "outbound", - "href": "href:307", - "id": "id:308", - "ip_version": "ipv4", - "name": "acl21-out-1", - "source": "0.0.0.0/0", - "protocol": "all" - }, - { - "action": "allow", - "created_at": "2024-06-25T15:40:42.000Z", - "destination": "0.0.0.0/0", - "direction": "inbound", - "href": "href:309", - "id": "id:310", - "ip_version": "ipv4", - "name": "acl21-in-1", - "source": "0.0.0.0/0", - "protocol": "all" - } - ], - "subnets": [ - { - "crn": "crn:195", - "href": "href:196", - "id": "id:197", - "name": "subnet20", - "resource_type": "subnet" - } - ], - "vpc": { - "crn": "crn:39", - "href": "href:40", - "id": "id:41", - "name": "test-vpc2", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:38.000Z", - "crn": "crn:92", - "href": "href:93", - "id": "id:94", - "name": "acl2", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "action": "allow", - "before": { - "href": "href:313", - "id": "id:314", - "name": "acl1-in-1" - }, - "created_at": "2024-06-25T15:40:38.000Z", - "destination": "0.0.0.0/0", - "direction": "outbound", - "href": "href:311", - "id": "id:312", - "ip_version": "ipv4", - "name": "acl1-out-1", - "source": "0.0.0.0/0", - "protocol": "all" - }, - { - "action": "allow", - "created_at": "2024-06-25T15:40:39.000Z", - "destination": "0.0.0.0/0", - "direction": "inbound", - "href": "href:313", - "id": "id:314", - "ip_version": "ipv4", - "name": "acl1-in-1", - "source": "0.0.0.0/0", - "protocol": "all" - } - ], - "subnets": [ - { - "crn": "crn:89", - "href": "href:90", - "id": "id:91", - "name": "subnet3", - "resource_type": "subnet" - }, - { - "crn": "crn:157", - "href": "href:158", - "id": "id:159", - "name": "subnet2", - "resource_type": "subnet" - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:37.000Z", - "crn": "crn:68", - "href": "href:69", - "id": "id:70", - "name": "acl3", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "action": "allow", - "before": { - "href": "href:317", - "id": "id:318", - "name": "acl1-in-1" - }, - "created_at": "2024-06-25T15:40:38.000Z", - "destination": "0.0.0.0/0", - "direction": "outbound", - "href": "href:315", - "id": "id:316", - "ip_version": "ipv4", - "name": "acl1-out-1", - "source": "0.0.0.0/0", - "protocol": "all" - }, - { - "action": "allow", - "created_at": "2024-06-25T15:40:38.000Z", - "destination": "0.0.0.0/0", - "direction": "inbound", - "href": "href:317", - "id": "id:318", - "ip_version": "ipv4", - "name": "acl1-in-1", - "source": "0.0.0.0/0", - "protocol": "all" - } - ], - "subnets": [ - { - "crn": "crn:65", - "href": "href:66", - "id": "id:67", - "name": "subnet5", - "resource_type": "subnet" - }, - { - "crn": "crn:264", - "href": "href:265", - "id": "id:266", - "name": "subnet4", - "resource_type": "subnet" - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:37.000Z", - "crn": "crn:116", - "href": "href:117", - "id": "id:118", - "name": "acl1", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "action": "allow", - "before": { - "href": "href:321", - "id": "id:322", - "name": "acl1-in-1" - }, - "created_at": "2024-06-25T15:40:38.000Z", - "destination": "0.0.0.0/0", - "direction": "outbound", - "href": "href:319", - "id": "id:320", - "ip_version": "ipv4", - "name": "acl1-out-1", - "source": "0.0.0.0/0", - "protocol": "all" - }, - { - "action": "allow", - "created_at": "2024-06-25T15:40:38.000Z", - "destination": "0.0.0.0/0", - "direction": "inbound", - "href": "href:321", - "id": "id:322", - "ip_version": "ipv4", - "name": "acl1-in-1", - "source": "0.0.0.0/0", - "protocol": "all" - } - ], - "subnets": [ - { - "crn": "crn:113", - "href": "href:114", - "id": "id:115", - "name": "subnet0", - "resource_type": "subnet" - }, - { - "crn": "crn:223", - "href": "href:224", - "id": "id:225", - "name": "subnet1", - "resource_type": "subnet" - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:20.000Z", - "crn": "crn:8", - "href": "href:9", - "id": "id:10", - "name": "automaker-castle-bird-worried", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "action": "allow", - "before": { - "href": "href:325", - "id": "id:326", - "name": "allow-outbound" - }, - "created_at": "2024-06-25T15:40:20.000Z", - "destination": "0.0.0.0/0", - "direction": "inbound", - "href": "href:323", - "id": "id:324", - "ip_version": "ipv4", - "name": "allow-inbound", - "source": "0.0.0.0/0", - "protocol": "all" - }, - { - "action": "allow", - "created_at": "2024-06-25T15:40:20.000Z", - "destination": "0.0.0.0/0", - "direction": "outbound", - "href": "href:325", - "id": "id:326", - "ip_version": "ipv4", - "name": "allow-outbound", - "source": "0.0.0.0/0", - "protocol": "all" - } - ], - "subnets": [], - "vpc": { - "crn": "crn:1", - "href": "href:2", - "id": "id:3", - "name": "test-vpc1", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:19.000Z", - "crn": "crn:42", - "href": "href:43", - "id": "id:44", - "name": "afoot-grape-fineness-zestfully", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "action": "allow", - "before": { - "href": "href:329", - "id": "id:330", - "name": "allow-outbound" - }, - "created_at": "2024-06-25T15:40:19.000Z", - "destination": "0.0.0.0/0", - "direction": "inbound", - "href": "href:327", - "id": "id:328", - "ip_version": "ipv4", - "name": "allow-inbound", - "source": "0.0.0.0/0", - "protocol": "all" - }, - { - "action": "allow", - "created_at": "2024-06-25T15:40:19.000Z", - "destination": "0.0.0.0/0", - "direction": "outbound", - "href": "href:329", - "id": "id:330", - "ip_version": "ipv4", - "name": "allow-outbound", - "source": "0.0.0.0/0", - "protocol": "all" - } - ], - "subnets": [], - "vpc": { - "crn": "crn:39", - "href": "href:40", - "id": "id:41", - "name": "test-vpc2", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:19.000Z", - "crn": "crn:25", - "href": "href:26", - "id": "id:27", - "name": "ebullient-slacks-revert-turkey", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "action": "allow", - "before": { - "href": "href:333", - "id": "id:334", - "name": "allow-outbound" - }, - "created_at": "2024-06-25T15:40:19.000Z", - "destination": "0.0.0.0/0", - "direction": "inbound", - "href": "href:331", - "id": "id:332", - "ip_version": "ipv4", - "name": "allow-inbound", - "source": "0.0.0.0/0", - "protocol": "all" - }, - { - "action": "allow", - "created_at": "2024-06-25T15:40:19.000Z", - "destination": "0.0.0.0/0", - "direction": "outbound", - "href": "href:333", - "id": "id:334", - "ip_version": "ipv4", - "name": "allow-outbound", - "source": "0.0.0.0/0", - "protocol": "all" - } - ], - "subnets": [], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:19.000Z", - "crn": "crn:55", - "href": "href:56", - "id": "id:57", - "name": "untracked-repayment-triumph-cat", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "action": "allow", - "before": { - "href": "href:337", - "id": "id:338", - "name": "allow-outbound" - }, - "created_at": "2024-06-25T15:40:19.000Z", - "destination": "0.0.0.0/0", - "direction": "inbound", - "href": "href:335", - "id": "id:336", - "ip_version": "ipv4", - "name": "allow-inbound", - "source": "0.0.0.0/0", - "protocol": "all" - }, - { - "action": "allow", - "created_at": "2024-06-25T15:40:19.000Z", - "destination": "0.0.0.0/0", - "direction": "outbound", - "href": "href:337", - "id": "id:338", - "ip_version": "ipv4", - "name": "allow-outbound", - "source": "0.0.0.0/0", - "protocol": "all" - } - ], - "subnets": [], - "vpc": { - "crn": "crn:52", - "href": "href:53", - "id": "id:54", - "name": "test-vpc3", - "resource_type": "vpc" - }, - "tags": [] - } - ], - "security_groups": [ - { - "created_at": "2024-06-25T15:40:40.000Z", - "crn": "crn:339", - "href": "href:340", - "id": "id:341", - "name": "sg21", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "direction": "outbound", - "href": "href:342", - "id": "id:343", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "cidr_block": "0.0.0.0/0" - }, - "protocol": "all" - }, - { - "direction": "inbound", - "href": "href:344", - "id": "id:345", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "cidr_block": "0.0.0.0/0" - }, - "protocol": "all" - } - ], - "targets": [ - { - "href": "href:211", - "id": "id:212", - "name": "tavern-far-imprudent-labored", - "resource_type": "network_interface" - }, - { - "href": "href:215", - "id": "id:216", - "name": "ought-football-shorter-aviator", - "resource_type": "network_interface" - }, - { - "href": "href:219", - "id": "id:220", - "name": "clicker-grumbly-outskirts-greatly", - "resource_type": "network_interface" - } - ], - "vpc": { - "crn": "crn:39", - "href": "href:40", - "id": "id:41", - "name": "test-vpc2", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:40.000Z", - "crn": "crn:346", - "href": "href:347", - "id": "id:348", - "name": "sg31", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "direction": "outbound", - "href": "href:349", - "id": "id:350", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "cidr_block": "0.0.0.0/0" - }, - "protocol": "all" - }, - { - "direction": "inbound", - "href": "href:351", - "id": "id:352", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "cidr_block": "0.0.0.0/0" - }, - "protocol": "all" - } - ], - "targets": [ - { - "href": "href:260", - "id": "id:261", - "name": "snout-given-twiddle-splinter", - "resource_type": "network_interface" - } - ], - "vpc": { - "crn": "crn:52", - "href": "href:53", - "id": "id:54", - "name": "test-vpc3", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:40.000Z", - "crn": "crn:353", - "href": "href:354", - "id": "id:355", - "name": "sg11", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "direction": "outbound", - "href": "href:356", - "id": "id:357", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "cidr_block": "0.0.0.0/0" - }, - "protocol": "all" - }, - { - "direction": "inbound", - "href": "href:358", - "id": "id:359", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "cidr_block": "0.0.0.0/0" - }, - "protocol": "all" - } - ], - "targets": [ - { - "href": "href:191", - "id": "id:192", - "name": "enlace-prominent-overhear-perfume", - "resource_type": "network_interface" - }, - { - "href": "href:153", - "id": "id:154", - "name": "stride-woken-backsight-dynastic", - "resource_type": "network_interface" - } - ], - "vpc": { - "crn": "crn:1", - "href": "href:2", - "id": "id:3", - "name": "test-vpc1", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:37.000Z", - "crn": "crn:360", - "href": "href:361", - "id": "id:362", - "name": "sg1", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "direction": "inbound", - "href": "href:363", - "id": "id:364", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "cidr_block": "0.0.0.0/0" - }, - "protocol": "all" - }, - { - "direction": "outbound", - "href": "href:365", - "id": "id:366", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "cidr_block": "0.0.0.0/0" - }, - "protocol": "all" - } - ], - "targets": [ - { - "href": "href:105", - "id": "id:106", - "name": "icky-balsamic-outgoing-leached", - "resource_type": "network_interface" - }, - { - "href": "href:236", - "id": "id:237", - "name": "hankie-excitable-outclass-unmanaged", - "resource_type": "network_interface" - }, - { - "href": "href:277", - "id": "id:278", - "name": "bullring-ransack-feint-cheer", - "resource_type": "network_interface" - }, - { - "href": "href:81", - "id": "id:82", - "name": "stooped-camera-excluded-juke", - "resource_type": "network_interface" - }, - { - "href": "href:129", - "id": "id:130", - "name": "writer-crusher-unsuited-cash", - "resource_type": "network_interface" - }, - { - "href": "href:281", - "id": "id:282", - "name": "speak-princess-washcloth-companion", - "resource_type": "network_interface" - }, - { - "href": "href:109", - "id": "id:110", - "name": "squatted-fastball-vacant-knoll", - "resource_type": "network_interface" - }, - { - "href": "href:85", - "id": "id:86", - "name": "scratch-outward-raging-hunchback", - "resource_type": "network_interface" - }, - { - "href": "href:170", - "id": "id:171", - "name": "graveyard-handmade-ransack-acquaint", - "resource_type": "network_interface" - }, - { - "href": "href:174", - "id": "id:175", - "name": "quantum-handbag-dimmed-reassign", - "resource_type": "network_interface" - }, - { - "href": "href:133", - "id": "id:134", - "name": "consonant-imperial-simply-ceramics", - "resource_type": "network_interface" - }, - { - "href": "href:240", - "id": "id:241", - "name": "scale-clambake-endearing-abridged", - "resource_type": "network_interface" - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:20.000Z", - "crn": "crn:13", - "href": "href:14", - "id": "id:15", - "name": "brute-upon-angles-cubbyhole", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "direction": "outbound", - "href": "href:367", - "id": "id:368", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "cidr_block": "0.0.0.0/0" - }, - "protocol": "all" - }, - { - "direction": "inbound", - "href": "href:369", - "id": "id:370", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "crn": "crn:13", - "href": "href:14", - "id": "id:15", - "name": "brute-upon-angles-cubbyhole" - }, - "protocol": "all" - } - ], - "targets": [], - "vpc": { - "crn": "crn:1", - "href": "href:2", - "id": "id:3", - "name": "test-vpc1", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:19.000Z", - "crn": "crn:30", - "href": "href:31", - "id": "id:32", - "name": "basically-drank-bulk-jam", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "direction": "outbound", - "href": "href:371", - "id": "id:372", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "cidr_block": "0.0.0.0/0" - }, - "protocol": "all" - }, - { - "direction": "inbound", - "href": "href:373", - "id": "id:374", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "crn": "crn:30", - "href": "href:31", - "id": "id:32", - "name": "basically-drank-bulk-jam" - }, - "protocol": "all" - } - ], - "targets": [], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:19.000Z", - "crn": "crn:47", - "href": "href:48", - "id": "id:49", - "name": "glance-cactus-unease-bankroll", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "direction": "outbound", - "href": "href:375", - "id": "id:376", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "cidr_block": "0.0.0.0/0" - }, - "protocol": "all" - }, - { - "direction": "inbound", - "href": "href:377", - "id": "id:378", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "crn": "crn:47", - "href": "href:48", - "id": "id:49", - "name": "glance-cactus-unease-bankroll" - }, - "protocol": "all" - } - ], - "targets": [], - "vpc": { - "crn": "crn:39", - "href": "href:40", - "id": "id:41", - "name": "test-vpc2", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:19.000Z", - "crn": "crn:60", - "href": "href:61", - "id": "id:62", - "name": "repeater-upcountry-agreeing-acutely", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "direction": "outbound", - "href": "href:379", - "id": "id:380", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "cidr_block": "0.0.0.0/0" - }, - "protocol": "all" - }, - { - "direction": "inbound", - "href": "href:381", - "id": "id:382", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "crn": "crn:60", - "href": "href:61", - "id": "id:62", - "name": "repeater-upcountry-agreeing-acutely" - }, - "protocol": "all" - } - ], - "targets": [], - "vpc": { - "crn": "crn:52", - "href": "href:53", - "id": "id:54", - "name": "test-vpc3", - "resource_type": "vpc" - }, - "tags": [] - } - ], - "endpoint_gateways": [], - "instances": [ - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:388" - }, - "href": "href:386", - "id": "id:387", - "name": "thief-monastery-blinks-verdict", - "volume": { - "crn": "crn:389", - "href": "href:390", - "id": "id:391", - "name": "scrabble-gorged-baton-angled", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:42:40.000Z", - "crn": "crn:383", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:384", - "id": "id:385", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi0-subnet1", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:240", - "id": "id:241", - "name": "scale-clambake-endearing-abridged", - "primary_ip": { - "address": "10.240.1.5", - "href": "href:238", - "id": "id:239", - "name": "affected-johnniecake-monorail-ungraded", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:223", - "href": "href:224", - "id": "id:225", - "name": "subnet1", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:388" - }, - "href": "href:386", - "id": "id:387", - "name": "thief-monastery-blinks-verdict", - "volume": { - "crn": "crn:389", - "href": "href:390", - "id": "id:391", - "name": "scrabble-gorged-baton-angled", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:42:40.000Z", - "floating_ips": [], - "href": "href:240", - "id": "id:241", - "name": "scale-clambake-endearing-abridged", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.1.5", - "href": "href:238", - "id": "id:239", - "name": "affected-johnniecake-monorail-ungraded", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:360", - "href": "href:361", - "id": "id:362", - "name": "sg1" - } - ], - "status": "available", - "subnet": { - "crn": "crn:223", - "href": "href:224", - "id": "id:225", - "name": "subnet1", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:401" - }, - "href": "href:399", - "id": "id:400", - "name": "hunchback-enginous-dividend-atrium", - "volume": { - "crn": "crn:402", - "href": "href:403", - "id": "id:404", - "name": "subsoil-bobble-bovine-unmoving", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:42:39.000Z", - "crn": "crn:396", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:397", - "id": "id:398", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi1-subnet0", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:133", - "id": "id:134", - "name": "consonant-imperial-simply-ceramics", - "primary_ip": { - "address": "10.240.0.5", - "href": "href:131", - "id": "id:132", - "name": "relatable-antiques-maturing-brulee", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:113", - "href": "href:114", - "id": "id:115", - "name": "subnet0", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:401" - }, - "href": "href:399", - "id": "id:400", - "name": "hunchback-enginous-dividend-atrium", - "volume": { - "crn": "crn:402", - "href": "href:403", - "id": "id:404", - "name": "subsoil-bobble-bovine-unmoving", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:42:39.000Z", - "floating_ips": [], - "href": "href:133", - "id": "id:134", - "name": "consonant-imperial-simply-ceramics", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.0.5", - "href": "href:131", - "id": "id:132", - "name": "relatable-antiques-maturing-brulee", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:360", - "href": "href:361", - "id": "id:362", - "name": "sg1" - } - ], - "status": "available", - "subnet": { - "crn": "crn:113", - "href": "href:114", - "id": "id:115", - "name": "subnet0", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:410" - }, - "href": "href:408", - "id": "id:409", - "name": "laboring-overbuilt-growl-headland", - "volume": { - "crn": "crn:411", - "href": "href:412", - "id": "id:413", - "name": "tamper-salvaging-stick-giddily", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:42:22.000Z", - "crn": "crn:405", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:406", - "id": "id:407", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi1-subnet2", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:174", - "id": "id:175", - "name": "quantum-handbag-dimmed-reassign", - "primary_ip": { - "address": "10.240.4.5", - "href": "href:172", - "id": "id:173", - "name": "bark-gatherer-rope-unrivaled", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:157", - "href": "href:158", - "id": "id:159", - "name": "subnet2", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:410" - }, - "href": "href:408", - "id": "id:409", - "name": "laboring-overbuilt-growl-headland", - "volume": { - "crn": "crn:411", - "href": "href:412", - "id": "id:413", - "name": "tamper-salvaging-stick-giddily", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:42:22.000Z", - "floating_ips": [], - "href": "href:174", - "id": "id:175", - "name": "quantum-handbag-dimmed-reassign", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.4.5", - "href": "href:172", - "id": "id:173", - "name": "bark-gatherer-rope-unrivaled", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:360", - "href": "href:361", - "id": "id:362", - "name": "sg1" - } - ], - "status": "available", - "subnet": { - "crn": "crn:157", - "href": "href:158", - "id": "id:159", - "name": "subnet2", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:419" - }, - "href": "href:417", - "id": "id:418", - "name": "dollop-partition-helping-palmtree", - "volume": { - "crn": "crn:420", - "href": "href:421", - "id": "id:422", - "name": "ravage-deny-amusable-settling", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:42:20.000Z", - "crn": "crn:414", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:415", - "id": "id:416", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi1-subnet5", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:85", - "id": "id:86", - "name": "scratch-outward-raging-hunchback", - "primary_ip": { - "address": "10.240.9.5", - "href": "href:83", - "id": "id:84", - "name": "outskirts-unaligned-passivism-parchment", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:65", - "href": "href:66", - "id": "id:67", - "name": "subnet5", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:419" - }, - "href": "href:417", - "id": "id:418", - "name": "dollop-partition-helping-palmtree", - "volume": { - "crn": "crn:420", - "href": "href:421", - "id": "id:422", - "name": "ravage-deny-amusable-settling", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:42:20.000Z", - "floating_ips": [], - "href": "href:85", - "id": "id:86", - "name": "scratch-outward-raging-hunchback", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.9.5", - "href": "href:83", - "id": "id:84", - "name": "outskirts-unaligned-passivism-parchment", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:360", - "href": "href:361", - "id": "id:362", - "name": "sg1" - } - ], - "status": "available", - "subnet": { - "crn": "crn:65", - "href": "href:66", - "id": "id:67", - "name": "subnet5", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:428" - }, - "href": "href:426", - "id": "id:427", - "name": "petted-ethanol-voicing-rocklike", - "volume": { - "crn": "crn:429", - "href": "href:430", - "id": "id:431", - "name": "uptown-striving-unrevised-earthlike", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:42:20.000Z", - "crn": "crn:423", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:424", - "id": "id:425", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi0-subnet2", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:170", - "id": "id:171", - "name": "graveyard-handmade-ransack-acquaint", - "primary_ip": { - "address": "10.240.4.4", - "href": "href:168", - "id": "id:169", - "name": "stood-sitcom-whoops-hurled", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:157", - "href": "href:158", - "id": "id:159", - "name": "subnet2", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:428" - }, - "href": "href:426", - "id": "id:427", - "name": "petted-ethanol-voicing-rocklike", - "volume": { - "crn": "crn:429", - "href": "href:430", - "id": "id:431", - "name": "uptown-striving-unrevised-earthlike", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:42:20.000Z", - "floating_ips": [], - "href": "href:170", - "id": "id:171", - "name": "graveyard-handmade-ransack-acquaint", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.4.4", - "href": "href:168", - "id": "id:169", - "name": "stood-sitcom-whoops-hurled", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:360", - "href": "href:361", - "id": "id:362", - "name": "sg1" - } - ], - "status": "available", - "subnet": { - "crn": "crn:157", - "href": "href:158", - "id": "id:159", - "name": "subnet2", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:437" - }, - "href": "href:435", - "id": "id:436", - "name": "promenade-spyglass-flattop-pushpin", - "volume": { - "crn": "crn:438", - "href": "href:439", - "id": "id:440", - "name": "relax-shaded-prism-jaunt", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:42:16.000Z", - "crn": "crn:432", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:433", - "id": "id:434", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi1-subnet3", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:109", - "id": "id:110", - "name": "squatted-fastball-vacant-knoll", - "primary_ip": { - "address": "10.240.5.5", - "href": "href:107", - "id": "id:108", - "name": "recognize-citable-exerciser-unsecured", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:89", - "href": "href:90", - "id": "id:91", - "name": "subnet3", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:437" - }, - "href": "href:435", - "id": "id:436", - "name": "promenade-spyglass-flattop-pushpin", - "volume": { - "crn": "crn:438", - "href": "href:439", - "id": "id:440", - "name": "relax-shaded-prism-jaunt", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:42:16.000Z", - "floating_ips": [], - "href": "href:109", - "id": "id:110", - "name": "squatted-fastball-vacant-knoll", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.5.5", - "href": "href:107", - "id": "id:108", - "name": "recognize-citable-exerciser-unsecured", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:360", - "href": "href:361", - "id": "id:362", - "name": "sg1" - } - ], - "status": "available", - "subnet": { - "crn": "crn:89", - "href": "href:90", - "id": "id:91", - "name": "subnet3", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:446" - }, - "href": "href:444", - "id": "id:445", - "name": "sandbox-federal-sculptor-jugum", - "volume": { - "crn": "crn:447", - "href": "href:448", - "id": "id:449", - "name": "convent-ramrod-cloning-afterward", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:42:15.000Z", - "crn": "crn:441", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:442", - "id": "id:443", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi1-subnet4", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:281", - "id": "id:282", - "name": "speak-princess-washcloth-companion", - "primary_ip": { - "address": "10.240.8.5", - "href": "href:279", - "id": "id:280", - "name": "frighten-mystified-freeway-hurtling", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:264", - "href": "href:265", - "id": "id:266", - "name": "subnet4", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:446" - }, - "href": "href:444", - "id": "id:445", - "name": "sandbox-federal-sculptor-jugum", - "volume": { - "crn": "crn:447", - "href": "href:448", - "id": "id:449", - "name": "convent-ramrod-cloning-afterward", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:42:15.000Z", - "floating_ips": [], - "href": "href:281", - "id": "id:282", - "name": "speak-princess-washcloth-companion", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.8.5", - "href": "href:279", - "id": "id:280", - "name": "frighten-mystified-freeway-hurtling", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:360", - "href": "href:361", - "id": "id:362", - "name": "sg1" - } - ], - "status": "available", - "subnet": { - "crn": "crn:264", - "href": "href:265", - "id": "id:266", - "name": "subnet4", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:455" - }, - "href": "href:453", - "id": "id:454", - "name": "affidavit-chastise-elsewhere-viewer", - "volume": { - "crn": "crn:456", - "href": "href:457", - "id": "id:458", - "name": "fancy-destiny-shuffling-sandbank", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:42:07.000Z", - "crn": "crn:450", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:451", - "id": "id:452", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi0-subnet0", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:129", - "id": "id:130", - "name": "writer-crusher-unsuited-cash", - "primary_ip": { - "address": "10.240.0.4", - "href": "href:127", - "id": "id:128", - "name": "pundit-tight-arbitrate-grace", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:113", - "href": "href:114", - "id": "id:115", - "name": "subnet0", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:455" - }, - "href": "href:453", - "id": "id:454", - "name": "affidavit-chastise-elsewhere-viewer", - "volume": { - "crn": "crn:456", - "href": "href:457", - "id": "id:458", - "name": "fancy-destiny-shuffling-sandbank", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:42:07.000Z", - "floating_ips": [ - { - "address": "52.118.151.238", - "crn": "crn:285", - "href": "href:286", - "id": "id:287", - "name": "fip-0-subnet0" - } - ], - "href": "href:129", - "id": "id:130", - "name": "writer-crusher-unsuited-cash", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.0.4", - "href": "href:127", - "id": "id:128", - "name": "pundit-tight-arbitrate-grace", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:360", - "href": "href:361", - "id": "id:362", - "name": "sg1" - } - ], - "status": "available", - "subnet": { - "crn": "crn:113", - "href": "href:114", - "id": "id:115", - "name": "subnet0", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:464" - }, - "href": "href:462", - "id": "id:463", - "name": "uneven-armoire-scabiosa-letter", - "volume": { - "crn": "crn:465", - "href": "href:466", - "id": "id:467", - "name": "cognition-blinks-humid-oxidant", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:42:00.000Z", - "crn": "crn:459", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:460", - "id": "id:461", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi0-subnet3", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:105", - "id": "id:106", - "name": "icky-balsamic-outgoing-leached", - "primary_ip": { - "address": "10.240.5.4", - "href": "href:103", - "id": "id:104", - "name": "rising-gopher-reentry-graveness", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:89", - "href": "href:90", - "id": "id:91", - "name": "subnet3", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:464" - }, - "href": "href:462", - "id": "id:463", - "name": "uneven-armoire-scabiosa-letter", - "volume": { - "crn": "crn:465", - "href": "href:466", - "id": "id:467", - "name": "cognition-blinks-humid-oxidant", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:42:00.000Z", - "floating_ips": [], - "href": "href:105", - "id": "id:106", - "name": "icky-balsamic-outgoing-leached", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.5.4", - "href": "href:103", - "id": "id:104", - "name": "rising-gopher-reentry-graveness", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:360", - "href": "href:361", - "id": "id:362", - "name": "sg1" - } - ], - "status": "available", - "subnet": { - "crn": "crn:89", - "href": "href:90", - "id": "id:91", - "name": "subnet3", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:473" - }, - "href": "href:471", - "id": "id:472", - "name": "perplexed-impulsivity-august-jaws", - "volume": { - "crn": "crn:474", - "href": "href:475", - "id": "id:476", - "name": "tartar-sixties-fructose-parmesan", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:42:00.000Z", - "crn": "crn:468", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:469", - "id": "id:470", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi1-subnet1", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:236", - "id": "id:237", - "name": "hankie-excitable-outclass-unmanaged", - "primary_ip": { - "address": "10.240.1.4", - "href": "href:234", - "id": "id:235", - "name": "excluded-unfair-jailbird-foil", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:223", - "href": "href:224", - "id": "id:225", - "name": "subnet1", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:473" - }, - "href": "href:471", - "id": "id:472", - "name": "perplexed-impulsivity-august-jaws", - "volume": { - "crn": "crn:474", - "href": "href:475", - "id": "id:476", - "name": "tartar-sixties-fructose-parmesan", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:42:00.000Z", - "floating_ips": [], - "href": "href:236", - "id": "id:237", - "name": "hankie-excitable-outclass-unmanaged", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.1.4", - "href": "href:234", - "id": "id:235", - "name": "excluded-unfair-jailbird-foil", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:360", - "href": "href:361", - "id": "id:362", - "name": "sg1" - } - ], - "status": "available", - "subnet": { - "crn": "crn:223", - "href": "href:224", - "id": "id:225", - "name": "subnet1", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:482" - }, - "href": "href:480", - "id": "id:481", - "name": "litter-snipping-unclasp-dust", - "volume": { - "crn": "crn:483", - "href": "href:484", - "id": "id:485", - "name": "untried-sulphate-hypnosis-subsidize", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:42:00.000Z", - "crn": "crn:477", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:478", - "id": "id:479", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi0-subnet4", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:277", - "id": "id:278", - "name": "bullring-ransack-feint-cheer", - "primary_ip": { - "address": "10.240.8.4", - "href": "href:275", - "id": "id:276", - "name": "bagged-posture-glaring-cojoined", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:264", - "href": "href:265", - "id": "id:266", - "name": "subnet4", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:482" - }, - "href": "href:480", - "id": "id:481", - "name": "litter-snipping-unclasp-dust", - "volume": { - "crn": "crn:483", - "href": "href:484", - "id": "id:485", - "name": "untried-sulphate-hypnosis-subsidize", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:42:00.000Z", - "floating_ips": [], - "href": "href:277", - "id": "id:278", - "name": "bullring-ransack-feint-cheer", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.8.4", - "href": "href:275", - "id": "id:276", - "name": "bagged-posture-glaring-cojoined", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:360", - "href": "href:361", - "id": "id:362", - "name": "sg1" - } - ], - "status": "available", - "subnet": { - "crn": "crn:264", - "href": "href:265", - "id": "id:266", - "name": "subnet4", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:491" - }, - "href": "href:489", - "id": "id:490", - "name": "unlawful-overreach-yarn-rippling", - "volume": { - "crn": "crn:492", - "href": "href:493", - "id": "id:494", - "name": "finer-voter-roving-jailer", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:42:00.000Z", - "crn": "crn:486", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:487", - "id": "id:488", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi0-subnet5", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:81", - "id": "id:82", - "name": "stooped-camera-excluded-juke", - "primary_ip": { - "address": "10.240.9.4", - "href": "href:79", - "id": "id:80", - "name": "ideally-grain-bagpipe-luxuriant", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:65", - "href": "href:66", - "id": "id:67", - "name": "subnet5", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:491" - }, - "href": "href:489", - "id": "id:490", - "name": "unlawful-overreach-yarn-rippling", - "volume": { - "crn": "crn:492", - "href": "href:493", - "id": "id:494", - "name": "finer-voter-roving-jailer", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:42:00.000Z", - "floating_ips": [], - "href": "href:81", - "id": "id:82", - "name": "stooped-camera-excluded-juke", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.9.4", - "href": "href:79", - "id": "id:80", - "name": "ideally-grain-bagpipe-luxuriant", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:360", - "href": "href:361", - "id": "id:362", - "name": "sg1" - } - ], - "status": "available", - "subnet": { - "crn": "crn:65", - "href": "href:66", - "id": "id:67", - "name": "subnet5", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:500" - }, - "href": "href:498", - "id": "id:499", - "name": "mashed-thing-headache-estate", - "volume": { - "crn": "crn:501", - "href": "href:502", - "id": "id:503", - "name": "mountain-harpist-libraries-dreaming", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:41:39.000Z", - "crn": "crn:495", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:496", - "id": "id:497", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi0-subnet11", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:153", - "id": "id:154", - "name": "stride-woken-backsight-dynastic", - "primary_ip": { - "address": "10.240.80.4", - "href": "href:151", - "id": "id:152", - "name": "childlike-publish-retainer-movie", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:137", - "href": "href:138", - "id": "id:139", - "name": "subnet11", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:500" - }, - "href": "href:498", - "id": "id:499", - "name": "mashed-thing-headache-estate", - "volume": { - "crn": "crn:501", - "href": "href:502", - "id": "id:503", - "name": "mountain-harpist-libraries-dreaming", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:1", - "href": "href:2", - "id": "id:3", - "name": "test-vpc1", - "resource_type": "vpc" - }, - "zone": { - "href": "href:6", - "name": "us-south-2" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:41:39.000Z", - "floating_ips": [], - "href": "href:153", - "id": "id:154", - "name": "stride-woken-backsight-dynastic", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.80.4", - "href": "href:151", - "id": "id:152", - "name": "childlike-publish-retainer-movie", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:353", - "href": "href:354", - "id": "id:355", - "name": "sg11" - } - ], - "status": "available", - "subnet": { - "crn": "crn:137", - "href": "href:138", - "id": "id:139", - "name": "subnet11", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:509" - }, - "href": "href:507", - "id": "id:508", - "name": "calzone-cacti-moonlight-subarctic", - "volume": { - "crn": "crn:510", - "href": "href:511", - "id": "id:512", - "name": "blurred-dream-pectin-tapping", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:41:36.000Z", - "crn": "crn:504", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:505", - "id": "id:506", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi0-subnet10", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:191", - "id": "id:192", - "name": "enlace-prominent-overhear-perfume", - "primary_ip": { - "address": "10.240.64.4", - "href": "href:189", - "id": "id:190", - "name": "starry-smasher-ladle-dioxide", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:178", - "href": "href:179", - "id": "id:180", - "name": "subnet10", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:509" - }, - "href": "href:507", - "id": "id:508", - "name": "calzone-cacti-moonlight-subarctic", - "volume": { - "crn": "crn:510", - "href": "href:511", - "id": "id:512", - "name": "blurred-dream-pectin-tapping", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:1", - "href": "href:2", - "id": "id:3", - "name": "test-vpc1", - "resource_type": "vpc" - }, - "zone": { - "href": "href:6", - "name": "us-south-2" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:41:36.000Z", - "floating_ips": [ - { - "address": "150.239.167.146", - "crn": "crn:288", - "href": "href:289", - "id": "id:290", - "name": "fip-0-subnet10" - } - ], - "href": "href:191", - "id": "id:192", - "name": "enlace-prominent-overhear-perfume", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.64.4", - "href": "href:189", - "id": "id:190", - "name": "starry-smasher-ladle-dioxide", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:353", - "href": "href:354", - "id": "id:355", - "name": "sg11" - } - ], - "status": "available", - "subnet": { - "crn": "crn:178", - "href": "href:179", - "id": "id:180", - "name": "subnet10", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:518" - }, - "href": "href:516", - "id": "id:517", - "name": "recoup-blinks-ebullient-renewed", - "volume": { - "crn": "crn:519", - "href": "href:520", - "id": "id:521", - "name": "manmade-unequal-disinfect-cone", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:41:24.000Z", - "crn": "crn:513", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:514", - "id": "id:515", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi1-subnet20", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:219", - "id": "id:220", - "name": "clicker-grumbly-outskirts-greatly", - "primary_ip": { - "address": "10.240.128.6", - "href": "href:217", - "id": "id:218", - "name": "uniquely-shelter-gracious-sudden", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:195", - "href": "href:196", - "id": "id:197", - "name": "subnet20", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:518" - }, - "href": "href:516", - "id": "id:517", - "name": "recoup-blinks-ebullient-renewed", - "volume": { - "crn": "crn:519", - "href": "href:520", - "id": "id:521", - "name": "manmade-unequal-disinfect-cone", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:39", - "href": "href:40", - "id": "id:41", - "name": "test-vpc2", - "resource_type": "vpc" - }, - "zone": { - "href": "href:7", - "name": "us-south-3" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:41:24.000Z", - "floating_ips": [ - { - "address": "169.48.95.165", - "crn": "crn:291", - "href": "href:292", - "id": "id:293", - "name": "fip-0-subnet20" - } - ], - "href": "href:219", - "id": "id:220", - "name": "clicker-grumbly-outskirts-greatly", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.128.6", - "href": "href:217", - "id": "id:218", - "name": "uniquely-shelter-gracious-sudden", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:339", - "href": "href:340", - "id": "id:341", - "name": "sg21" - } - ], - "status": "available", - "subnet": { - "crn": "crn:195", - "href": "href:196", - "id": "id:197", - "name": "subnet20", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:527" - }, - "href": "href:525", - "id": "id:526", - "name": "radio-tightrope-outtakes-moonshine", - "volume": { - "crn": "crn:528", - "href": "href:529", - "id": "id:530", - "name": "tattoo-crescent-unwary-hayride", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:41:21.000Z", - "crn": "crn:522", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:523", - "id": "id:524", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi0-subnet20", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:215", - "id": "id:216", - "name": "ought-football-shorter-aviator", - "primary_ip": { - "address": "10.240.128.5", - "href": "href:213", - "id": "id:214", - "name": "customs-recollect-drippy-primate", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:195", - "href": "href:196", - "id": "id:197", - "name": "subnet20", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:527" - }, - "href": "href:525", - "id": "id:526", - "name": "radio-tightrope-outtakes-moonshine", - "volume": { - "crn": "crn:528", - "href": "href:529", - "id": "id:530", - "name": "tattoo-crescent-unwary-hayride", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:39", - "href": "href:40", - "id": "id:41", - "name": "test-vpc2", - "resource_type": "vpc" - }, - "zone": { - "href": "href:7", - "name": "us-south-3" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:41:21.000Z", - "floating_ips": [], - "href": "href:215", - "id": "id:216", - "name": "ought-football-shorter-aviator", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.128.5", - "href": "href:213", - "id": "id:214", - "name": "customs-recollect-drippy-primate", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:339", - "href": "href:340", - "id": "id:341", - "name": "sg21" - } - ], - "status": "available", - "subnet": { - "crn": "crn:195", - "href": "href:196", - "id": "id:197", - "name": "subnet20", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:536" - }, - "href": "href:534", - "id": "id:535", - "name": "crumpet-ride-tastiness-phoney", - "volume": { - "crn": "crn:537", - "href": "href:538", - "id": "id:539", - "name": "doorframe-marvelous-refusing-citable", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:41:21.000Z", - "crn": "crn:531", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:532", - "id": "id:533", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi2-subnet20", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:211", - "id": "id:212", - "name": "tavern-far-imprudent-labored", - "primary_ip": { - "address": "10.240.128.4", - "href": "href:209", - "id": "id:210", - "name": "unmixed-qualify-prescribe-railcar", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:195", - "href": "href:196", - "id": "id:197", - "name": "subnet20", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:536" - }, - "href": "href:534", - "id": "id:535", - "name": "crumpet-ride-tastiness-phoney", - "volume": { - "crn": "crn:537", - "href": "href:538", - "id": "id:539", - "name": "doorframe-marvelous-refusing-citable", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:39", - "href": "href:40", - "id": "id:41", - "name": "test-vpc2", - "resource_type": "vpc" - }, - "zone": { - "href": "href:7", - "name": "us-south-3" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:41:21.000Z", - "floating_ips": [], - "href": "href:211", - "id": "id:212", - "name": "tavern-far-imprudent-labored", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.128.4", - "href": "href:209", - "id": "id:210", - "name": "unmixed-qualify-prescribe-railcar", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:339", - "href": "href:340", - "id": "id:341", - "name": "sg21" - } - ], - "status": "available", - "subnet": { - "crn": "crn:195", - "href": "href:196", - "id": "id:197", - "name": "subnet20", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:545" - }, - "href": "href:543", - "id": "id:544", - "name": "bronzing-vendor-plod-pretzel", - "volume": { - "crn": "crn:546", - "href": "href:547", - "id": "id:548", - "name": "squelch-plop-headlamp-ideologue", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:41:00.000Z", - "crn": "crn:540", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:541", - "id": "id:542", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi0-subnet30", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:260", - "id": "id:261", - "name": "snout-given-twiddle-splinter", - "primary_ip": { - "address": "10.240.192.4", - "href": "href:258", - "id": "id:259", - "name": "legacy-shore-molecule-barometer", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:244", - "href": "href:245", - "id": "id:246", - "name": "subnet30", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:545" - }, - "href": "href:543", - "id": "id:544", - "name": "bronzing-vendor-plod-pretzel", - "volume": { - "crn": "crn:546", - "href": "href:547", - "id": "id:548", - "name": "squelch-plop-headlamp-ideologue", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:52", - "href": "href:53", - "id": "id:54", - "name": "test-vpc3", - "resource_type": "vpc" - }, - "zone": { - "href": "href:7", - "name": "us-south-3" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:41:00.000Z", - "floating_ips": [ - { - "address": "52.118.100.239", - "crn": "crn:294", - "href": "href:295", - "id": "id:296", - "name": "fip-0-subnet30" - } - ], - "href": "href:260", - "id": "id:261", - "name": "snout-given-twiddle-splinter", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.192.4", - "href": "href:258", - "id": "id:259", - "name": "legacy-shore-molecule-barometer", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:346", - "href": "href:347", - "id": "id:348", - "name": "sg31" - } - ], - "status": "available", - "subnet": { - "crn": "crn:244", - "href": "href:245", - "id": "id:246", - "name": "subnet30", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - } - ], - "routing_tables": [ - { - "accept_routes_from": [ - { - "resource_type": "vpn_gateway" - }, - { - "resource_type": "vpn_server" - } - ], - "advertise_routes_to": [], - "created_at": "2024-06-25T15:40:20.000Z", - "href": "href:11", - "id": "id:12", - "is_default": true, - "lifecycle_state": "stable", - "name": "overtone-sputter-overspend-gorge", - "resource_type": "routing_table", - "route_direct_link_ingress": false, - "route_internet_ingress": false, - "route_transit_gateway_ingress": false, - "route_vpc_zone_ingress": false, - "subnets": [ - { - "crn": "crn:137", - "href": "href:138", - "id": "id:139", - "name": "subnet11", - "resource_type": "subnet" - }, - { - "crn": "crn:178", - "href": "href:179", - "id": "id:180", - "name": "subnet10", - "resource_type": "subnet" - } - ], - "routes": [], - "vpc": { - "crn": "crn:1", - "href": "href:2", - "id": "id:3", - "name": "test-vpc1", - "resource_type": "vpc" - } - }, - { - "accept_routes_from": [ - { - "resource_type": "vpn_gateway" - }, - { - "resource_type": "vpn_server" - } - ], - "advertise_routes_to": [], - "created_at": "2024-06-25T15:40:19.000Z", - "href": "href:28", - "id": "id:29", - "is_default": true, - "lifecycle_state": "stable", - "name": "escapade-dynamite-upstage-context", - "resource_type": "routing_table", - "route_direct_link_ingress": false, - "route_internet_ingress": false, - "route_transit_gateway_ingress": false, - "route_vpc_zone_ingress": false, - "subnets": [ - { - "crn": "crn:65", - "href": "href:66", - "id": "id:67", - "name": "subnet5", - "resource_type": "subnet" - }, - { - "crn": "crn:89", - "href": "href:90", - "id": "id:91", - "name": "subnet3", - "resource_type": "subnet" - }, - { - "crn": "crn:113", - "href": "href:114", - "id": "id:115", - "name": "subnet0", - "resource_type": "subnet" - }, - { - "crn": "crn:157", - "href": "href:158", - "id": "id:159", - "name": "subnet2", - "resource_type": "subnet" - }, - { - "crn": "crn:223", - "href": "href:224", - "id": "id:225", - "name": "subnet1", - "resource_type": "subnet" - }, - { - "crn": "crn:264", - "href": "href:265", - "id": "id:266", - "name": "subnet4", - "resource_type": "subnet" - } - ], - "routes": [], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - } - }, - { - "accept_routes_from": [ - { - "resource_type": "vpn_gateway" - }, - { - "resource_type": "vpn_server" - } - ], - "advertise_routes_to": [], - "created_at": "2024-06-25T15:40:19.000Z", - "href": "href:45", - "id": "id:46", - "is_default": true, - "lifecycle_state": "stable", - "name": "quintuple-severity-caddie-manuals", - "resource_type": "routing_table", - "route_direct_link_ingress": false, - "route_internet_ingress": false, - "route_transit_gateway_ingress": false, - "route_vpc_zone_ingress": false, - "subnets": [ - { - "crn": "crn:195", - "href": "href:196", - "id": "id:197", - "name": "subnet20", - "resource_type": "subnet" - } - ], - "routes": [], - "vpc": { - "crn": "crn:39", - "href": "href:40", - "id": "id:41", - "name": "test-vpc2", - "resource_type": "vpc" - } - }, - { - "accept_routes_from": [ - { - "resource_type": "vpn_gateway" - }, - { - "resource_type": "vpn_server" - } - ], - "advertise_routes_to": [], - "created_at": "2024-06-25T15:40:19.000Z", - "href": "href:58", - "id": "id:59", - "is_default": true, - "lifecycle_state": "stable", - "name": "probational-herring-undone-daintily", - "resource_type": "routing_table", - "route_direct_link_ingress": false, - "route_internet_ingress": false, - "route_transit_gateway_ingress": false, - "route_vpc_zone_ingress": false, - "subnets": [ - { - "crn": "crn:244", - "href": "href:245", - "id": "id:246", - "name": "subnet30", - "resource_type": "subnet" - } - ], - "routes": [], - "vpc": { - "crn": "crn:52", - "href": "href:53", - "id": "id:54", - "name": "test-vpc3", - "resource_type": "vpc" - } - } - ], - "load_balancers": [], - "transit_connections": [ - { - "created_at": "2024-06-25T15:41:44.212Z", - "id": "id:549", - "name": "tg3_connection3", - "network_id": "crn:52", - "network_type": "vpc", - "prefix_filters_default": "permit", - "status": "attached", - "transit_gateway": { - "crn": "crn:550", - "id": "id:551", - "name": "local-tg3" - }, - "updated_at": "2024-06-25T15:45:14.206Z" - }, - { - "created_at": "2024-06-25T15:41:54.416Z", - "id": "id:552", - "name": "tg3_connection0", - "network_id": "crn:22", - "network_type": "vpc", - "prefix_filters_default": "permit", - "status": "attached", - "transit_gateway": { - "crn": "crn:550", - "id": "id:551", - "name": "local-tg3" - }, - "updated_at": "2024-06-25T15:45:53.979Z" - }, - { - "created_at": "2024-06-25T15:42:54.772Z", - "id": "id:553", - "name": "tg2_connection3", - "network_id": "crn:52", - "network_type": "vpc", - "prefix_filters_default": "permit", - "status": "attached", - "transit_gateway": { - "crn": "crn:554", - "id": "id:555", - "name": "local-tg2" - }, - "updated_at": "2024-06-25T15:49:08.822Z" - }, - { - "created_at": "2024-06-25T15:43:11.555Z", - "id": "id:556", - "name": "tg2_connection0", - "network_id": "crn:22", - "network_type": "vpc", - "prefix_filters": [ - { - "action": "deny", - "created_at": "2024-06-25T15:46:46.641Z", - "id": "id:557", - "le": 32, - "prefix": "10.240.0.0/22", - "updated_at": "2024-06-25T15:46:46.641Z" - } - ], - "prefix_filters_default": "permit", - "status": "attached", - "transit_gateway": { - "crn": "crn:554", - "id": "id:555", - "name": "local-tg2" - }, - "updated_at": "2024-06-25T15:49:59.395Z" - }, - { - "created_at": "2024-06-25T15:43:12.159Z", - "id": "id:558", - "name": "tg_connection0", - "network_id": "crn:22", - "network_type": "vpc", - "prefix_filters": [ - { - "action": "deny", - "before": "298db67f-2e68-4548-93b9-949f8356d4a0", - "created_at": "2024-06-25T15:45:14.711Z", - "id": "id:559", - "prefix": "10.240.4.0/22", - "updated_at": "2024-06-25T15:45:14.711Z" - }, - { - "action": "deny", - "created_at": "2024-06-25T15:45:25.435Z", - "id": "id:560", - "prefix": "10.240.8.0/22", - "updated_at": "2024-06-25T15:45:25.435Z" - } - ], - "prefix_filters_default": "permit", - "status": "attached", - "transit_gateway": { - "crn": "crn:561", - "id": "id:562", - "name": "local-tg1" - }, - "updated_at": "2024-06-25T15:49:53.837Z" - }, - { - "created_at": "2024-06-25T15:43:41.079Z", - "id": "id:563", - "name": "tg2_connection2", - "network_id": "crn:39", - "network_type": "vpc", - "prefix_filters_default": "permit", - "status": "attached", - "transit_gateway": { - "crn": "crn:554", - "id": "id:555", - "name": "local-tg2" - }, - "updated_at": "2024-06-25T15:49:43.192Z" - }, - { - "created_at": "2024-06-25T15:43:42.335Z", - "id": "id:564", - "name": "tg1_connection1", - "network_id": "crn:1", - "network_type": "vpc", - "prefix_filters_default": "permit", - "status": "attached", - "transit_gateway": { - "crn": "crn:561", - "id": "id:562", - "name": "local-tg1" - }, - "updated_at": "2024-06-25T15:48:45.229Z" - }, - { - "created_at": "2024-06-25T15:44:08.995Z", - "id": "id:565", - "name": "tg1_connection2", - "network_id": "crn:39", - "network_type": "vpc", - "prefix_filters_default": "permit", - "status": "attached", - "transit_gateway": { - "crn": "crn:561", - "id": "id:562", - "name": "local-tg1" - }, - "updated_at": "2024-06-25T15:49:11.976Z" - } - ], - "transit_gateways": [ - { - "id": "id:551", - "crn": "crn:550", - "name": "local-tg3", - "location": "us-south", - "created_at": "2024-06-25T15:40:21.390Z", - "global": false, - "resource_group": { - "id": "id:17", - "href": "href:566" - }, - "status": "available", - "updated_at": "2024-06-25T15:42:12.752Z" - }, - { - "id": "id:555", - "crn": "crn:554", - "name": "local-tg2", - "location": "us-south", - "created_at": "2024-06-25T15:40:25.895Z", - "global": false, - "resource_group": { - "id": "id:17", - "href": "href:566" - }, - "status": "available", - "updated_at": "2024-06-25T15:43:58.196Z" - }, - { - "id": "id:562", - "crn": "crn:561", - "name": "local-tg1", - "location": "us-south", - "created_at": "2024-06-25T15:40:26.455Z", - "global": false, - "resource_group": { - "id": "id:17", - "href": "href:566" - }, - "status": "available", - "updated_at": "2024-06-25T15:43:15.331Z" - } - ], - "iks_clusters": [] -} diff --git a/test/data/sg_segments1/conn_spec.json b/test/data/sg_segments1/conn_spec.json new file mode 100644 index 00000000..103589eb --- /dev/null +++ b/test/data/sg_segments1/conn_spec.json @@ -0,0 +1,22 @@ +{ + "segments": { + "cidrSegment": { + "type": "cidr", + "items": [ + "10.240.0.0/23" + ] + } + }, + "required-connections": [ + { + "src": { + "name": "cidrSegment", + "type": "segment" + }, + "dst": { + "name": "cidrSegment", + "type": "segment" + } + } + ] +} \ No newline at end of file diff --git a/test/data/sg_segments2/conn_spec.json b/test/data/sg_segments2/conn_spec.json new file mode 100644 index 00000000..f6181a3c --- /dev/null +++ b/test/data/sg_segments2/conn_spec.json @@ -0,0 +1,30 @@ +{ + "segments": { + "cidrSegment": { + "type": "cidr", + "items": [ + "10.240.0.0/23" + ] + }, + "instanceSegment": { + "type": "instance", + "items": [ + "vsi0-subnet11", + "vsi0-subnet5" + ] + } + }, + "required-connections": [ + { + + "src": { + "name": "instanceSegment", + "type": "segment" + }, + "dst": { + "name": "cidrSegment", + "type": "segment" + } + } + ] +} \ No newline at end of file diff --git a/test/data/sg_segments3/conn_spec.json b/test/data/sg_segments3/conn_spec.json new file mode 100644 index 00000000..448a9c07 --- /dev/null +++ b/test/data/sg_segments3/conn_spec.json @@ -0,0 +1,30 @@ +{ + "segments": { + "subnetSegment": { + "type": "subnet", + "items": [ + "subnet10", + "subnet20" + ] + }, + "nifSegment": { + "type": "nif", + "items": [ + "bullring-ransack-feint-cheer", + "scratch-outward-raging-hunchback" + ] + } + }, + "required-connections": [ + { + "src": { + "name": "subnetSegment", + "type": "segment" + }, + "dst": { + "name": "nifSegment", + "type": "segment" + } + } + ] +} \ No newline at end of file diff --git a/test/data/sg_segments4/conn_spec.json b/test/data/sg_segments4/conn_spec.json new file mode 100644 index 00000000..b2ef94ff --- /dev/null +++ b/test/data/sg_segments4/conn_spec.json @@ -0,0 +1,30 @@ +{ + "segments": { + "vpeSegment": { + "type": "vpe", + "items": [ + "appdata-endpoint-gateway", + "policydb-endpoint-gateway" + ] + }, + "instanceSegment": { + "type": "instance", + "items": [ + "fe", + "be" + ] + } + }, + "required-connections": [ + { + "src": { + "name": "vpeSegment", + "type": "segment" + }, + "dst": { + "name": "instanceSegment", + "type": "segment" + } + } + ] +} \ No newline at end of file diff --git a/test/data/sg_tg_multiple/config_object.json b/test/data/sg_tg_multiple/config_object.json deleted file mode 100644 index 7e94d3b8..00000000 --- a/test/data/sg_tg_multiple/config_object.json +++ /dev/null @@ -1,6269 +0,0 @@ -{ - "collector_version": "0.11.0", - "provider": "ibm", - "vpcs": [ - { - "classic_access": false, - "created_at": "2024-06-25T15:40:20.000Z", - "crn": "crn:1", - "cse_source_ips": [ - { - "ip": { - "address": "10.22.215.5" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - } - }, - { - "ip": { - "address": "10.22.220.2" - }, - "zone": { - "href": "href:6", - "name": "us-south-2" - } - }, - { - "ip": { - "address": "10.249.82.12" - }, - "zone": { - "href": "href:7", - "name": "us-south-3" - } - } - ], - "default_network_acl": { - "crn": "crn:8", - "href": "href:9", - "id": "id:10", - "name": "automaker-castle-bird-worried" - }, - "default_routing_table": { - "href": "href:11", - "id": "id:12", - "name": "overtone-sputter-overspend-gorge", - "resource_type": "routing_table" - }, - "default_security_group": { - "crn": "crn:13", - "href": "href:14", - "id": "id:15", - "name": "brute-upon-angles-cubbyhole" - }, - "dns": { - "enable_hub": false, - "resolution_binding_count": 0, - "resolver": { - "servers": [ - { - "address": "161.26.0.10" - }, - { - "address": "161.26.0.11" - } - ], - "type": "system", - "configuration": "default" - } - }, - "health_reasons": null, - "health_state": "ok", - "href": "href:2", - "id": "id:3", - "name": "test-vpc1", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "vpc", - "status": "available", - "region": "us-south", - "address_prefixes": [ - { - "cidr": "10.240.80.0/20", - "created_at": "2024-06-25T15:40:39.000Z", - "has_subnets": true, - "href": "href:18", - "id": "id:19", - "is_default": false, - "name": "address-prefix-vpc-1", - "zone": { - "href": "href:6", - "name": "us-south-2" - } - }, - { - "cidr": "10.240.64.0/20", - "created_at": "2024-06-25T15:40:40.000Z", - "has_subnets": true, - "href": "href:20", - "id": "id:21", - "is_default": false, - "name": "address-prefix-vpc-0", - "zone": { - "href": "href:6", - "name": "us-south-2" - } - } - ], - "tags": [] - }, - { - "classic_access": false, - "created_at": "2024-06-25T15:40:19.000Z", - "crn": "crn:22", - "cse_source_ips": [ - { - "ip": { - "address": "10.16.238.56" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - } - }, - { - "ip": { - "address": "10.249.200.205" - }, - "zone": { - "href": "href:6", - "name": "us-south-2" - } - }, - { - "ip": { - "address": "10.249.212.88" - }, - "zone": { - "href": "href:7", - "name": "us-south-3" - } - } - ], - "default_network_acl": { - "crn": "crn:25", - "href": "href:26", - "id": "id:27", - "name": "ebullient-slacks-revert-turkey" - }, - "default_routing_table": { - "href": "href:28", - "id": "id:29", - "name": "escapade-dynamite-upstage-context", - "resource_type": "routing_table" - }, - "default_security_group": { - "crn": "crn:30", - "href": "href:31", - "id": "id:32", - "name": "basically-drank-bulk-jam" - }, - "dns": { - "enable_hub": false, - "resolution_binding_count": 0, - "resolver": { - "servers": [ - { - "address": "161.26.0.10" - }, - { - "address": "161.26.0.11" - } - ], - "type": "system", - "configuration": "default" - } - }, - "health_reasons": null, - "health_state": "ok", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "vpc", - "status": "available", - "region": "us-south", - "address_prefixes": [ - { - "cidr": "10.240.0.0/22", - "created_at": "2024-06-25T15:40:37.000Z", - "has_subnets": true, - "href": "href:33", - "id": "id:34", - "is_default": false, - "name": "address-prefix-vpc-0", - "zone": { - "href": "href:5", - "name": "us-south-1" - } - }, - { - "cidr": "10.240.4.0/22", - "created_at": "2024-06-25T15:40:38.000Z", - "has_subnets": true, - "href": "href:35", - "id": "id:36", - "is_default": false, - "name": "address-prefix-vpc-1", - "zone": { - "href": "href:5", - "name": "us-south-1" - } - }, - { - "cidr": "10.240.8.0/22", - "created_at": "2024-06-25T15:40:39.000Z", - "has_subnets": true, - "href": "href:37", - "id": "id:38", - "is_default": false, - "name": "address-prefix-vpc-2", - "zone": { - "href": "href:5", - "name": "us-south-1" - } - } - ], - "tags": [] - }, - { - "classic_access": false, - "created_at": "2024-06-25T15:40:19.000Z", - "crn": "crn:39", - "cse_source_ips": [ - { - "ip": { - "address": "10.12.125.16" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - } - }, - { - "ip": { - "address": "10.22.27.134" - }, - "zone": { - "href": "href:6", - "name": "us-south-2" - } - }, - { - "ip": { - "address": "10.22.231.90" - }, - "zone": { - "href": "href:7", - "name": "us-south-3" - } - } - ], - "default_network_acl": { - "crn": "crn:42", - "href": "href:43", - "id": "id:44", - "name": "afoot-grape-fineness-zestfully" - }, - "default_routing_table": { - "href": "href:45", - "id": "id:46", - "name": "quintuple-severity-caddie-manuals", - "resource_type": "routing_table" - }, - "default_security_group": { - "crn": "crn:47", - "href": "href:48", - "id": "id:49", - "name": "glance-cactus-unease-bankroll" - }, - "dns": { - "enable_hub": false, - "resolution_binding_count": 0, - "resolver": { - "servers": [ - { - "address": "161.26.0.10" - }, - { - "address": "161.26.0.11" - } - ], - "type": "system", - "configuration": "default" - } - }, - "health_reasons": null, - "health_state": "ok", - "href": "href:40", - "id": "id:41", - "name": "test-vpc2", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "vpc", - "status": "available", - "region": "us-south", - "address_prefixes": [ - { - "cidr": "10.240.128.0/20", - "created_at": "2024-06-25T15:40:39.000Z", - "has_subnets": true, - "href": "href:50", - "id": "id:51", - "is_default": false, - "name": "address-prefix-vpc-0", - "zone": { - "href": "href:7", - "name": "us-south-3" - } - } - ], - "tags": [] - }, - { - "classic_access": false, - "created_at": "2024-06-25T15:40:19.000Z", - "crn": "crn:52", - "cse_source_ips": [ - { - "ip": { - "address": "10.22.219.155" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - } - }, - { - "ip": { - "address": "10.12.159.11" - }, - "zone": { - "href": "href:6", - "name": "us-south-2" - } - }, - { - "ip": { - "address": "10.16.253.109" - }, - "zone": { - "href": "href:7", - "name": "us-south-3" - } - } - ], - "default_network_acl": { - "crn": "crn:55", - "href": "href:56", - "id": "id:57", - "name": "untracked-repayment-triumph-cat" - }, - "default_routing_table": { - "href": "href:58", - "id": "id:59", - "name": "probational-herring-undone-daintily", - "resource_type": "routing_table" - }, - "default_security_group": { - "crn": "crn:60", - "href": "href:61", - "id": "id:62", - "name": "repeater-upcountry-agreeing-acutely" - }, - "dns": { - "enable_hub": false, - "resolution_binding_count": 0, - "resolver": { - "servers": [ - { - "address": "161.26.0.10" - }, - { - "address": "161.26.0.11" - } - ], - "type": "system", - "configuration": "default" - } - }, - "health_reasons": null, - "health_state": "ok", - "href": "href:53", - "id": "id:54", - "name": "test-vpc3", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "vpc", - "status": "available", - "region": "us-south", - "address_prefixes": [ - { - "cidr": "10.240.192.0/20", - "created_at": "2024-06-25T15:40:38.000Z", - "has_subnets": true, - "href": "href:63", - "id": "id:64", - "is_default": false, - "name": "address-prefix-vpc-0", - "zone": { - "href": "href:7", - "name": "us-south-3" - } - } - ], - "tags": [] - } - ], - "subnets": [ - { - "available_ipv4_address_count": 249, - "created_at": "2024-06-25T15:41:47.000Z", - "crn": "crn:65", - "href": "href:66", - "id": "id:67", - "ip_version": "ipv4", - "ipv4_cidr_block": "10.240.9.0/24", - "name": "subnet5", - "network_acl": { - "crn": "crn:68", - "href": "href:69", - "id": "id:70", - "name": "acl3" - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "subnet", - "routing_table": { - "href": "href:28", - "id": "id:29", - "name": "escapade-dynamite-upstage-context", - "resource_type": "routing_table" - }, - "status": "available", - "total_ipv4_address_count": 256, - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "reserved_ips": [ - { - "address": "10.240.9.0", - "auto_delete": false, - "created_at": "2024-06-25T15:41:47.000Z", - "href": "href:71", - "id": "id:72", - "lifecycle_state": "stable", - "name": "ibm-network-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.9.1", - "auto_delete": false, - "created_at": "2024-06-25T15:41:47.000Z", - "href": "href:73", - "id": "id:74", - "lifecycle_state": "stable", - "name": "ibm-default-gateway", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.9.2", - "auto_delete": false, - "created_at": "2024-06-25T15:41:47.000Z", - "href": "href:75", - "id": "id:76", - "lifecycle_state": "stable", - "name": "ibm-dns-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.9.3", - "auto_delete": false, - "created_at": "2024-06-25T15:41:47.000Z", - "href": "href:77", - "id": "id:78", - "lifecycle_state": "stable", - "name": "ibm-reserved-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.9.4", - "auto_delete": false, - "created_at": "2024-06-25T15:42:00.000Z", - "href": "href:79", - "id": "id:80", - "lifecycle_state": "stable", - "name": "ideally-grain-bagpipe-luxuriant", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:81", - "id": "id:82", - "name": "stooped-camera-excluded-juke", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.9.5", - "auto_delete": false, - "created_at": "2024-06-25T15:42:20.000Z", - "href": "href:83", - "id": "id:84", - "lifecycle_state": "stable", - "name": "outskirts-unaligned-passivism-parchment", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:85", - "id": "id:86", - "name": "scratch-outward-raging-hunchback", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.9.255", - "auto_delete": false, - "created_at": "2024-06-25T15:41:47.000Z", - "href": "href:87", - "id": "id:88", - "lifecycle_state": "stable", - "name": "ibm-broadcast-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - } - ], - "tags": [] - }, - { - "available_ipv4_address_count": 249, - "created_at": "2024-06-25T15:41:35.000Z", - "crn": "crn:89", - "href": "href:90", - "id": "id:91", - "ip_version": "ipv4", - "ipv4_cidr_block": "10.240.5.0/24", - "name": "subnet3", - "network_acl": { - "crn": "crn:92", - "href": "href:93", - "id": "id:94", - "name": "acl2" - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "subnet", - "routing_table": { - "href": "href:28", - "id": "id:29", - "name": "escapade-dynamite-upstage-context", - "resource_type": "routing_table" - }, - "status": "available", - "total_ipv4_address_count": 256, - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "reserved_ips": [ - { - "address": "10.240.5.0", - "auto_delete": false, - "created_at": "2024-06-25T15:41:35.000Z", - "href": "href:95", - "id": "id:96", - "lifecycle_state": "stable", - "name": "ibm-network-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.5.1", - "auto_delete": false, - "created_at": "2024-06-25T15:41:35.000Z", - "href": "href:97", - "id": "id:98", - "lifecycle_state": "stable", - "name": "ibm-default-gateway", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.5.2", - "auto_delete": false, - "created_at": "2024-06-25T15:41:35.000Z", - "href": "href:99", - "id": "id:100", - "lifecycle_state": "stable", - "name": "ibm-dns-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.5.3", - "auto_delete": false, - "created_at": "2024-06-25T15:41:35.000Z", - "href": "href:101", - "id": "id:102", - "lifecycle_state": "stable", - "name": "ibm-reserved-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.5.4", - "auto_delete": false, - "created_at": "2024-06-25T15:42:00.000Z", - "href": "href:103", - "id": "id:104", - "lifecycle_state": "stable", - "name": "rising-gopher-reentry-graveness", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:105", - "id": "id:106", - "name": "icky-balsamic-outgoing-leached", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.5.5", - "auto_delete": false, - "created_at": "2024-06-25T15:42:16.000Z", - "href": "href:107", - "id": "id:108", - "lifecycle_state": "stable", - "name": "recognize-citable-exerciser-unsecured", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:109", - "id": "id:110", - "name": "squatted-fastball-vacant-knoll", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.5.255", - "auto_delete": false, - "created_at": "2024-06-25T15:41:35.000Z", - "href": "href:111", - "id": "id:112", - "lifecycle_state": "stable", - "name": "ibm-broadcast-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - } - ], - "tags": [] - }, - { - "available_ipv4_address_count": 249, - "created_at": "2024-06-25T15:41:23.000Z", - "crn": "crn:113", - "href": "href:114", - "id": "id:115", - "ip_version": "ipv4", - "ipv4_cidr_block": "10.240.0.0/24", - "name": "subnet0", - "network_acl": { - "crn": "crn:116", - "href": "href:117", - "id": "id:118", - "name": "acl1" - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "subnet", - "routing_table": { - "href": "href:28", - "id": "id:29", - "name": "escapade-dynamite-upstage-context", - "resource_type": "routing_table" - }, - "status": "available", - "total_ipv4_address_count": 256, - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "reserved_ips": [ - { - "address": "10.240.0.0", - "auto_delete": false, - "created_at": "2024-06-25T15:41:23.000Z", - "href": "href:119", - "id": "id:120", - "lifecycle_state": "stable", - "name": "ibm-network-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.0.1", - "auto_delete": false, - "created_at": "2024-06-25T15:41:23.000Z", - "href": "href:121", - "id": "id:122", - "lifecycle_state": "stable", - "name": "ibm-default-gateway", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.0.2", - "auto_delete": false, - "created_at": "2024-06-25T15:41:23.000Z", - "href": "href:123", - "id": "id:124", - "lifecycle_state": "stable", - "name": "ibm-dns-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.0.3", - "auto_delete": false, - "created_at": "2024-06-25T15:41:23.000Z", - "href": "href:125", - "id": "id:126", - "lifecycle_state": "stable", - "name": "ibm-reserved-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.0.4", - "auto_delete": false, - "created_at": "2024-06-25T15:42:08.000Z", - "href": "href:127", - "id": "id:128", - "lifecycle_state": "stable", - "name": "pundit-tight-arbitrate-grace", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:129", - "id": "id:130", - "name": "writer-crusher-unsuited-cash", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.0.5", - "auto_delete": false, - "created_at": "2024-06-25T15:42:39.000Z", - "href": "href:131", - "id": "id:132", - "lifecycle_state": "stable", - "name": "relatable-antiques-maturing-brulee", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:133", - "id": "id:134", - "name": "consonant-imperial-simply-ceramics", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.0.255", - "auto_delete": false, - "created_at": "2024-06-25T15:41:23.000Z", - "href": "href:135", - "id": "id:136", - "lifecycle_state": "stable", - "name": "ibm-broadcast-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - } - ], - "tags": [] - }, - { - "available_ipv4_address_count": 250, - "created_at": "2024-06-25T15:41:20.000Z", - "crn": "crn:137", - "href": "href:138", - "id": "id:139", - "ip_version": "ipv4", - "ipv4_cidr_block": "10.240.80.0/24", - "name": "subnet11", - "network_acl": { - "crn": "crn:140", - "href": "href:141", - "id": "id:142", - "name": "acl11" - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "subnet", - "routing_table": { - "href": "href:11", - "id": "id:12", - "name": "overtone-sputter-overspend-gorge", - "resource_type": "routing_table" - }, - "status": "available", - "total_ipv4_address_count": 256, - "vpc": { - "crn": "crn:1", - "href": "href:2", - "id": "id:3", - "name": "test-vpc1", - "resource_type": "vpc" - }, - "zone": { - "href": "href:6", - "name": "us-south-2" - }, - "reserved_ips": [ - { - "address": "10.240.80.0", - "auto_delete": false, - "created_at": "2024-06-25T15:41:20.000Z", - "href": "href:143", - "id": "id:144", - "lifecycle_state": "stable", - "name": "ibm-network-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.80.1", - "auto_delete": false, - "created_at": "2024-06-25T15:41:20.000Z", - "href": "href:145", - "id": "id:146", - "lifecycle_state": "stable", - "name": "ibm-default-gateway", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.80.2", - "auto_delete": false, - "created_at": "2024-06-25T15:41:20.000Z", - "href": "href:147", - "id": "id:148", - "lifecycle_state": "stable", - "name": "ibm-dns-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.80.3", - "auto_delete": false, - "created_at": "2024-06-25T15:41:20.000Z", - "href": "href:149", - "id": "id:150", - "lifecycle_state": "stable", - "name": "ibm-reserved-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.80.4", - "auto_delete": false, - "created_at": "2024-06-25T15:41:40.000Z", - "href": "href:151", - "id": "id:152", - "lifecycle_state": "stable", - "name": "childlike-publish-retainer-movie", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:153", - "id": "id:154", - "name": "stride-woken-backsight-dynastic", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.80.255", - "auto_delete": false, - "created_at": "2024-06-25T15:41:20.000Z", - "href": "href:155", - "id": "id:156", - "lifecycle_state": "stable", - "name": "ibm-broadcast-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - } - ], - "tags": [] - }, - { - "available_ipv4_address_count": 249, - "created_at": "2024-06-25T15:41:08.000Z", - "crn": "crn:157", - "href": "href:158", - "id": "id:159", - "ip_version": "ipv4", - "ipv4_cidr_block": "10.240.4.0/24", - "name": "subnet2", - "network_acl": { - "crn": "crn:92", - "href": "href:93", - "id": "id:94", - "name": "acl2" - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "subnet", - "routing_table": { - "href": "href:28", - "id": "id:29", - "name": "escapade-dynamite-upstage-context", - "resource_type": "routing_table" - }, - "status": "available", - "total_ipv4_address_count": 256, - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "reserved_ips": [ - { - "address": "10.240.4.0", - "auto_delete": false, - "created_at": "2024-06-25T15:41:08.000Z", - "href": "href:160", - "id": "id:161", - "lifecycle_state": "stable", - "name": "ibm-network-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.4.1", - "auto_delete": false, - "created_at": "2024-06-25T15:41:08.000Z", - "href": "href:162", - "id": "id:163", - "lifecycle_state": "stable", - "name": "ibm-default-gateway", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.4.2", - "auto_delete": false, - "created_at": "2024-06-25T15:41:08.000Z", - "href": "href:164", - "id": "id:165", - "lifecycle_state": "stable", - "name": "ibm-dns-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.4.3", - "auto_delete": false, - "created_at": "2024-06-25T15:41:08.000Z", - "href": "href:166", - "id": "id:167", - "lifecycle_state": "stable", - "name": "ibm-reserved-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.4.4", - "auto_delete": false, - "created_at": "2024-06-25T15:42:21.000Z", - "href": "href:168", - "id": "id:169", - "lifecycle_state": "stable", - "name": "stood-sitcom-whoops-hurled", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:170", - "id": "id:171", - "name": "graveyard-handmade-ransack-acquaint", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.4.5", - "auto_delete": false, - "created_at": "2024-06-25T15:42:22.000Z", - "href": "href:172", - "id": "id:173", - "lifecycle_state": "stable", - "name": "bark-gatherer-rope-unrivaled", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:174", - "id": "id:175", - "name": "quantum-handbag-dimmed-reassign", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.4.255", - "auto_delete": false, - "created_at": "2024-06-25T15:41:08.000Z", - "href": "href:176", - "id": "id:177", - "lifecycle_state": "stable", - "name": "ibm-broadcast-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - } - ], - "tags": [] - }, - { - "available_ipv4_address_count": 250, - "created_at": "2024-06-25T15:41:08.000Z", - "crn": "crn:178", - "href": "href:179", - "id": "id:180", - "ip_version": "ipv4", - "ipv4_cidr_block": "10.240.64.0/24", - "name": "subnet10", - "network_acl": { - "crn": "crn:140", - "href": "href:141", - "id": "id:142", - "name": "acl11" - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "subnet", - "routing_table": { - "href": "href:11", - "id": "id:12", - "name": "overtone-sputter-overspend-gorge", - "resource_type": "routing_table" - }, - "status": "available", - "total_ipv4_address_count": 256, - "vpc": { - "crn": "crn:1", - "href": "href:2", - "id": "id:3", - "name": "test-vpc1", - "resource_type": "vpc" - }, - "zone": { - "href": "href:6", - "name": "us-south-2" - }, - "reserved_ips": [ - { - "address": "10.240.64.0", - "auto_delete": false, - "created_at": "2024-06-25T15:41:08.000Z", - "href": "href:181", - "id": "id:182", - "lifecycle_state": "stable", - "name": "ibm-network-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.64.1", - "auto_delete": false, - "created_at": "2024-06-25T15:41:08.000Z", - "href": "href:183", - "id": "id:184", - "lifecycle_state": "stable", - "name": "ibm-default-gateway", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.64.2", - "auto_delete": false, - "created_at": "2024-06-25T15:41:08.000Z", - "href": "href:185", - "id": "id:186", - "lifecycle_state": "stable", - "name": "ibm-dns-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.64.3", - "auto_delete": false, - "created_at": "2024-06-25T15:41:08.000Z", - "href": "href:187", - "id": "id:188", - "lifecycle_state": "stable", - "name": "ibm-reserved-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.64.4", - "auto_delete": false, - "created_at": "2024-06-25T15:41:36.000Z", - "href": "href:189", - "id": "id:190", - "lifecycle_state": "stable", - "name": "starry-smasher-ladle-dioxide", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:191", - "id": "id:192", - "name": "enlace-prominent-overhear-perfume", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.64.255", - "auto_delete": false, - "created_at": "2024-06-25T15:41:08.000Z", - "href": "href:193", - "id": "id:194", - "lifecycle_state": "stable", - "name": "ibm-broadcast-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - } - ], - "tags": [] - }, - { - "available_ipv4_address_count": 248, - "created_at": "2024-06-25T15:40:57.000Z", - "crn": "crn:195", - "href": "href:196", - "id": "id:197", - "ip_version": "ipv4", - "ipv4_cidr_block": "10.240.128.0/24", - "name": "subnet20", - "network_acl": { - "crn": "crn:198", - "href": "href:199", - "id": "id:200", - "name": "acl21" - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "subnet", - "routing_table": { - "href": "href:45", - "id": "id:46", - "name": "quintuple-severity-caddie-manuals", - "resource_type": "routing_table" - }, - "status": "available", - "total_ipv4_address_count": 256, - "vpc": { - "crn": "crn:39", - "href": "href:40", - "id": "id:41", - "name": "test-vpc2", - "resource_type": "vpc" - }, - "zone": { - "href": "href:7", - "name": "us-south-3" - }, - "reserved_ips": [ - { - "address": "10.240.128.0", - "auto_delete": false, - "created_at": "2024-06-25T15:40:57.000Z", - "href": "href:201", - "id": "id:202", - "lifecycle_state": "stable", - "name": "ibm-network-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.128.1", - "auto_delete": false, - "created_at": "2024-06-25T15:40:57.000Z", - "href": "href:203", - "id": "id:204", - "lifecycle_state": "stable", - "name": "ibm-default-gateway", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.128.2", - "auto_delete": false, - "created_at": "2024-06-25T15:40:57.000Z", - "href": "href:205", - "id": "id:206", - "lifecycle_state": "stable", - "name": "ibm-dns-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.128.3", - "auto_delete": false, - "created_at": "2024-06-25T15:40:57.000Z", - "href": "href:207", - "id": "id:208", - "lifecycle_state": "stable", - "name": "ibm-reserved-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.128.4", - "auto_delete": false, - "created_at": "2024-06-25T15:41:21.000Z", - "href": "href:209", - "id": "id:210", - "lifecycle_state": "stable", - "name": "unmixed-qualify-prescribe-railcar", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:211", - "id": "id:212", - "name": "tavern-far-imprudent-labored", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.128.5", - "auto_delete": false, - "created_at": "2024-06-25T15:41:21.000Z", - "href": "href:213", - "id": "id:214", - "lifecycle_state": "stable", - "name": "customs-recollect-drippy-primate", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:215", - "id": "id:216", - "name": "ought-football-shorter-aviator", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.128.6", - "auto_delete": false, - "created_at": "2024-06-25T15:41:24.000Z", - "href": "href:217", - "id": "id:218", - "lifecycle_state": "stable", - "name": "uniquely-shelter-gracious-sudden", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:219", - "id": "id:220", - "name": "clicker-grumbly-outskirts-greatly", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.128.255", - "auto_delete": false, - "created_at": "2024-06-25T15:40:57.000Z", - "href": "href:221", - "id": "id:222", - "lifecycle_state": "stable", - "name": "ibm-broadcast-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - } - ], - "tags": [] - }, - { - "available_ipv4_address_count": 249, - "created_at": "2024-06-25T15:40:56.000Z", - "crn": "crn:223", - "href": "href:224", - "id": "id:225", - "ip_version": "ipv4", - "ipv4_cidr_block": "10.240.1.0/24", - "name": "subnet1", - "network_acl": { - "crn": "crn:116", - "href": "href:117", - "id": "id:118", - "name": "acl1" - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "subnet", - "routing_table": { - "href": "href:28", - "id": "id:29", - "name": "escapade-dynamite-upstage-context", - "resource_type": "routing_table" - }, - "status": "available", - "total_ipv4_address_count": 256, - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "reserved_ips": [ - { - "address": "10.240.1.0", - "auto_delete": false, - "created_at": "2024-06-25T15:40:56.000Z", - "href": "href:226", - "id": "id:227", - "lifecycle_state": "stable", - "name": "ibm-network-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.1.1", - "auto_delete": false, - "created_at": "2024-06-25T15:40:56.000Z", - "href": "href:228", - "id": "id:229", - "lifecycle_state": "stable", - "name": "ibm-default-gateway", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.1.2", - "auto_delete": false, - "created_at": "2024-06-25T15:40:56.000Z", - "href": "href:230", - "id": "id:231", - "lifecycle_state": "stable", - "name": "ibm-dns-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.1.3", - "auto_delete": false, - "created_at": "2024-06-25T15:40:56.000Z", - "href": "href:232", - "id": "id:233", - "lifecycle_state": "stable", - "name": "ibm-reserved-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.1.4", - "auto_delete": false, - "created_at": "2024-06-25T15:42:00.000Z", - "href": "href:234", - "id": "id:235", - "lifecycle_state": "stable", - "name": "excluded-unfair-jailbird-foil", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:236", - "id": "id:237", - "name": "hankie-excitable-outclass-unmanaged", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.1.5", - "auto_delete": false, - "created_at": "2024-06-25T15:42:40.000Z", - "href": "href:238", - "id": "id:239", - "lifecycle_state": "stable", - "name": "affected-johnniecake-monorail-ungraded", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:240", - "id": "id:241", - "name": "scale-clambake-endearing-abridged", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.1.255", - "auto_delete": false, - "created_at": "2024-06-25T15:40:56.000Z", - "href": "href:242", - "id": "id:243", - "lifecycle_state": "stable", - "name": "ibm-broadcast-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - } - ], - "tags": [] - }, - { - "available_ipv4_address_count": 250, - "created_at": "2024-06-25T15:40:48.000Z", - "crn": "crn:244", - "href": "href:245", - "id": "id:246", - "ip_version": "ipv4", - "ipv4_cidr_block": "10.240.192.0/24", - "name": "subnet30", - "network_acl": { - "crn": "crn:247", - "href": "href:248", - "id": "id:249", - "name": "acl31" - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "subnet", - "routing_table": { - "href": "href:58", - "id": "id:59", - "name": "probational-herring-undone-daintily", - "resource_type": "routing_table" - }, - "status": "available", - "total_ipv4_address_count": 256, - "vpc": { - "crn": "crn:52", - "href": "href:53", - "id": "id:54", - "name": "test-vpc3", - "resource_type": "vpc" - }, - "zone": { - "href": "href:7", - "name": "us-south-3" - }, - "reserved_ips": [ - { - "address": "10.240.192.0", - "auto_delete": false, - "created_at": "2024-06-25T15:40:48.000Z", - "href": "href:250", - "id": "id:251", - "lifecycle_state": "stable", - "name": "ibm-network-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.192.1", - "auto_delete": false, - "created_at": "2024-06-25T15:40:48.000Z", - "href": "href:252", - "id": "id:253", - "lifecycle_state": "stable", - "name": "ibm-default-gateway", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.192.2", - "auto_delete": false, - "created_at": "2024-06-25T15:40:48.000Z", - "href": "href:254", - "id": "id:255", - "lifecycle_state": "stable", - "name": "ibm-dns-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.192.3", - "auto_delete": false, - "created_at": "2024-06-25T15:40:48.000Z", - "href": "href:256", - "id": "id:257", - "lifecycle_state": "stable", - "name": "ibm-reserved-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.192.4", - "auto_delete": false, - "created_at": "2024-06-25T15:41:01.000Z", - "href": "href:258", - "id": "id:259", - "lifecycle_state": "stable", - "name": "legacy-shore-molecule-barometer", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:260", - "id": "id:261", - "name": "snout-given-twiddle-splinter", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.192.255", - "auto_delete": false, - "created_at": "2024-06-25T15:40:48.000Z", - "href": "href:262", - "id": "id:263", - "lifecycle_state": "stable", - "name": "ibm-broadcast-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - } - ], - "tags": [] - }, - { - "available_ipv4_address_count": 249, - "created_at": "2024-06-25T15:40:44.000Z", - "crn": "crn:264", - "href": "href:265", - "id": "id:266", - "ip_version": "ipv4", - "ipv4_cidr_block": "10.240.8.0/24", - "name": "subnet4", - "network_acl": { - "crn": "crn:68", - "href": "href:69", - "id": "id:70", - "name": "acl3" - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "subnet", - "routing_table": { - "href": "href:28", - "id": "id:29", - "name": "escapade-dynamite-upstage-context", - "resource_type": "routing_table" - }, - "status": "available", - "total_ipv4_address_count": 256, - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "reserved_ips": [ - { - "address": "10.240.8.0", - "auto_delete": false, - "created_at": "2024-06-25T15:40:44.000Z", - "href": "href:267", - "id": "id:268", - "lifecycle_state": "stable", - "name": "ibm-network-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.8.1", - "auto_delete": false, - "created_at": "2024-06-25T15:40:44.000Z", - "href": "href:269", - "id": "id:270", - "lifecycle_state": "stable", - "name": "ibm-default-gateway", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.8.2", - "auto_delete": false, - "created_at": "2024-06-25T15:40:44.000Z", - "href": "href:271", - "id": "id:272", - "lifecycle_state": "stable", - "name": "ibm-dns-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.8.3", - "auto_delete": false, - "created_at": "2024-06-25T15:40:44.000Z", - "href": "href:273", - "id": "id:274", - "lifecycle_state": "stable", - "name": "ibm-reserved-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - }, - { - "address": "10.240.8.4", - "auto_delete": false, - "created_at": "2024-06-25T15:42:00.000Z", - "href": "href:275", - "id": "id:276", - "lifecycle_state": "stable", - "name": "bagged-posture-glaring-cojoined", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:277", - "id": "id:278", - "name": "bullring-ransack-feint-cheer", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.8.5", - "auto_delete": false, - "created_at": "2024-06-25T15:42:16.000Z", - "href": "href:279", - "id": "id:280", - "lifecycle_state": "stable", - "name": "frighten-mystified-freeway-hurtling", - "owner": "user", - "resource_type": "subnet_reserved_ip", - "target": { - "href": "href:281", - "id": "id:282", - "name": "speak-princess-washcloth-companion", - "resource_type": "network_interface" - } - }, - { - "address": "10.240.8.255", - "auto_delete": false, - "created_at": "2024-06-25T15:40:44.000Z", - "href": "href:283", - "id": "id:284", - "lifecycle_state": "stable", - "name": "ibm-broadcast-address", - "owner": "provider", - "resource_type": "subnet_reserved_ip" - } - ], - "tags": [] - } - ], - "public_gateways": [], - "floating_ips": [ - { - "address": "52.118.151.238", - "created_at": "2024-06-25T15:43:30.000Z", - "crn": "crn:285", - "href": "href:286", - "id": "id:287", - "name": "fip-0-subnet0", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "status": "available", - "target": { - "href": "href:129", - "id": "id:130", - "name": "writer-crusher-unsuited-cash", - "primary_ip": { - "address": "10.240.0.4", - "href": "href:127", - "id": "id:128", - "name": "pundit-tight-arbitrate-grace", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "tags": [] - }, - { - "address": "150.239.167.146", - "created_at": "2024-06-25T15:41:59.000Z", - "crn": "crn:288", - "href": "href:289", - "id": "id:290", - "name": "fip-0-subnet10", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "status": "available", - "target": { - "href": "href:191", - "id": "id:192", - "name": "enlace-prominent-overhear-perfume", - "primary_ip": { - "address": "10.240.64.4", - "href": "href:189", - "id": "id:190", - "name": "starry-smasher-ladle-dioxide", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface" - }, - "zone": { - "href": "href:6", - "name": "us-south-2" - }, - "tags": [] - }, - { - "address": "169.48.95.165", - "created_at": "2024-06-25T15:41:50.000Z", - "crn": "crn:291", - "href": "href:292", - "id": "id:293", - "name": "fip-0-subnet20", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "status": "available", - "target": { - "href": "href:219", - "id": "id:220", - "name": "clicker-grumbly-outskirts-greatly", - "primary_ip": { - "address": "10.240.128.6", - "href": "href:217", - "id": "id:218", - "name": "uniquely-shelter-gracious-sudden", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface" - }, - "zone": { - "href": "href:7", - "name": "us-south-3" - }, - "tags": [] - }, - { - "address": "52.118.100.239", - "created_at": "2024-06-25T15:41:33.000Z", - "crn": "crn:294", - "href": "href:295", - "id": "id:296", - "name": "fip-0-subnet30", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "status": "available", - "target": { - "href": "href:260", - "id": "id:261", - "name": "snout-given-twiddle-splinter", - "primary_ip": { - "address": "10.240.192.4", - "href": "href:258", - "id": "id:259", - "name": "legacy-shore-molecule-barometer", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface" - }, - "zone": { - "href": "href:7", - "name": "us-south-3" - }, - "tags": [] - } - ], - "network_acls": [ - { - "created_at": "2024-06-25T15:40:41.000Z", - "crn": "crn:140", - "href": "href:141", - "id": "id:142", - "name": "acl11", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "action": "deny", - "before": { - "href": "href:299", - "id": "id:300", - "name": "acl11-out-2" - }, - "created_at": "2024-06-25T15:40:42.000Z", - "destination": "10.240.4.0/24", - "direction": "outbound", - "href": "href:297", - "id": "id:298", - "ip_version": "ipv4", - "name": "acl11-out-1", - "source": "0.0.0.0/0", - "protocol": "all" - }, - { - "action": "allow", - "before": { - "href": "href:301", - "id": "id:302", - "name": "acl11-in-1" - }, - "created_at": "2024-06-25T15:40:43.000Z", - "destination": "0.0.0.0/0", - "direction": "outbound", - "href": "href:299", - "id": "id:300", - "ip_version": "ipv4", - "name": "acl11-out-2", - "source": "0.0.0.0/0", - "protocol": "all" - }, - { - "action": "allow", - "created_at": "2024-06-25T15:40:43.000Z", - "destination": "0.0.0.0/0", - "direction": "inbound", - "href": "href:301", - "id": "id:302", - "ip_version": "ipv4", - "name": "acl11-in-1", - "source": "0.0.0.0/0", - "protocol": "all" - } - ], - "subnets": [ - { - "crn": "crn:137", - "href": "href:138", - "id": "id:139", - "name": "subnet11", - "resource_type": "subnet" - }, - { - "crn": "crn:178", - "href": "href:179", - "id": "id:180", - "name": "subnet10", - "resource_type": "subnet" - } - ], - "vpc": { - "crn": "crn:1", - "href": "href:2", - "id": "id:3", - "name": "test-vpc1", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:40.000Z", - "crn": "crn:247", - "href": "href:248", - "id": "id:249", - "name": "acl31", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "action": "allow", - "before": { - "href": "href:305", - "id": "id:306", - "name": "acl31-in-1" - }, - "created_at": "2024-06-25T15:40:41.000Z", - "destination": "0.0.0.0/0", - "direction": "outbound", - "href": "href:303", - "id": "id:304", - "ip_version": "ipv4", - "name": "acl31-out-1", - "source": "0.0.0.0/0", - "protocol": "all" - }, - { - "action": "allow", - "created_at": "2024-06-25T15:40:41.000Z", - "destination": "0.0.0.0/0", - "direction": "inbound", - "href": "href:305", - "id": "id:306", - "ip_version": "ipv4", - "name": "acl31-in-1", - "source": "0.0.0.0/0", - "protocol": "all" - } - ], - "subnets": [ - { - "crn": "crn:244", - "href": "href:245", - "id": "id:246", - "name": "subnet30", - "resource_type": "subnet" - } - ], - "vpc": { - "crn": "crn:52", - "href": "href:53", - "id": "id:54", - "name": "test-vpc3", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:40.000Z", - "crn": "crn:198", - "href": "href:199", - "id": "id:200", - "name": "acl21", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "action": "allow", - "before": { - "href": "href:309", - "id": "id:310", - "name": "acl21-in-1" - }, - "created_at": "2024-06-25T15:40:41.000Z", - "destination": "0.0.0.0/0", - "direction": "outbound", - "href": "href:307", - "id": "id:308", - "ip_version": "ipv4", - "name": "acl21-out-1", - "source": "0.0.0.0/0", - "protocol": "all" - }, - { - "action": "allow", - "created_at": "2024-06-25T15:40:42.000Z", - "destination": "0.0.0.0/0", - "direction": "inbound", - "href": "href:309", - "id": "id:310", - "ip_version": "ipv4", - "name": "acl21-in-1", - "source": "0.0.0.0/0", - "protocol": "all" - } - ], - "subnets": [ - { - "crn": "crn:195", - "href": "href:196", - "id": "id:197", - "name": "subnet20", - "resource_type": "subnet" - } - ], - "vpc": { - "crn": "crn:39", - "href": "href:40", - "id": "id:41", - "name": "test-vpc2", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:38.000Z", - "crn": "crn:92", - "href": "href:93", - "id": "id:94", - "name": "acl2", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "action": "allow", - "before": { - "href": "href:313", - "id": "id:314", - "name": "acl1-in-1" - }, - "created_at": "2024-06-25T15:40:38.000Z", - "destination": "0.0.0.0/0", - "direction": "outbound", - "href": "href:311", - "id": "id:312", - "ip_version": "ipv4", - "name": "acl1-out-1", - "source": "0.0.0.0/0", - "protocol": "all" - }, - { - "action": "allow", - "created_at": "2024-06-25T15:40:39.000Z", - "destination": "0.0.0.0/0", - "direction": "inbound", - "href": "href:313", - "id": "id:314", - "ip_version": "ipv4", - "name": "acl1-in-1", - "source": "0.0.0.0/0", - "protocol": "all" - } - ], - "subnets": [ - { - "crn": "crn:89", - "href": "href:90", - "id": "id:91", - "name": "subnet3", - "resource_type": "subnet" - }, - { - "crn": "crn:157", - "href": "href:158", - "id": "id:159", - "name": "subnet2", - "resource_type": "subnet" - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:37.000Z", - "crn": "crn:68", - "href": "href:69", - "id": "id:70", - "name": "acl3", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "action": "allow", - "before": { - "href": "href:317", - "id": "id:318", - "name": "acl1-in-1" - }, - "created_at": "2024-06-25T15:40:38.000Z", - "destination": "0.0.0.0/0", - "direction": "outbound", - "href": "href:315", - "id": "id:316", - "ip_version": "ipv4", - "name": "acl1-out-1", - "source": "0.0.0.0/0", - "protocol": "all" - }, - { - "action": "allow", - "created_at": "2024-06-25T15:40:38.000Z", - "destination": "0.0.0.0/0", - "direction": "inbound", - "href": "href:317", - "id": "id:318", - "ip_version": "ipv4", - "name": "acl1-in-1", - "source": "0.0.0.0/0", - "protocol": "all" - } - ], - "subnets": [ - { - "crn": "crn:65", - "href": "href:66", - "id": "id:67", - "name": "subnet5", - "resource_type": "subnet" - }, - { - "crn": "crn:264", - "href": "href:265", - "id": "id:266", - "name": "subnet4", - "resource_type": "subnet" - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:37.000Z", - "crn": "crn:116", - "href": "href:117", - "id": "id:118", - "name": "acl1", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "action": "allow", - "before": { - "href": "href:321", - "id": "id:322", - "name": "acl1-in-1" - }, - "created_at": "2024-06-25T15:40:38.000Z", - "destination": "0.0.0.0/0", - "direction": "outbound", - "href": "href:319", - "id": "id:320", - "ip_version": "ipv4", - "name": "acl1-out-1", - "source": "0.0.0.0/0", - "protocol": "all" - }, - { - "action": "allow", - "created_at": "2024-06-25T15:40:38.000Z", - "destination": "0.0.0.0/0", - "direction": "inbound", - "href": "href:321", - "id": "id:322", - "ip_version": "ipv4", - "name": "acl1-in-1", - "source": "0.0.0.0/0", - "protocol": "all" - } - ], - "subnets": [ - { - "crn": "crn:113", - "href": "href:114", - "id": "id:115", - "name": "subnet0", - "resource_type": "subnet" - }, - { - "crn": "crn:223", - "href": "href:224", - "id": "id:225", - "name": "subnet1", - "resource_type": "subnet" - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:20.000Z", - "crn": "crn:8", - "href": "href:9", - "id": "id:10", - "name": "automaker-castle-bird-worried", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "action": "allow", - "before": { - "href": "href:325", - "id": "id:326", - "name": "allow-outbound" - }, - "created_at": "2024-06-25T15:40:20.000Z", - "destination": "0.0.0.0/0", - "direction": "inbound", - "href": "href:323", - "id": "id:324", - "ip_version": "ipv4", - "name": "allow-inbound", - "source": "0.0.0.0/0", - "protocol": "all" - }, - { - "action": "allow", - "created_at": "2024-06-25T15:40:20.000Z", - "destination": "0.0.0.0/0", - "direction": "outbound", - "href": "href:325", - "id": "id:326", - "ip_version": "ipv4", - "name": "allow-outbound", - "source": "0.0.0.0/0", - "protocol": "all" - } - ], - "subnets": [], - "vpc": { - "crn": "crn:1", - "href": "href:2", - "id": "id:3", - "name": "test-vpc1", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:19.000Z", - "crn": "crn:42", - "href": "href:43", - "id": "id:44", - "name": "afoot-grape-fineness-zestfully", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "action": "allow", - "before": { - "href": "href:329", - "id": "id:330", - "name": "allow-outbound" - }, - "created_at": "2024-06-25T15:40:19.000Z", - "destination": "0.0.0.0/0", - "direction": "inbound", - "href": "href:327", - "id": "id:328", - "ip_version": "ipv4", - "name": "allow-inbound", - "source": "0.0.0.0/0", - "protocol": "all" - }, - { - "action": "allow", - "created_at": "2024-06-25T15:40:19.000Z", - "destination": "0.0.0.0/0", - "direction": "outbound", - "href": "href:329", - "id": "id:330", - "ip_version": "ipv4", - "name": "allow-outbound", - "source": "0.0.0.0/0", - "protocol": "all" - } - ], - "subnets": [], - "vpc": { - "crn": "crn:39", - "href": "href:40", - "id": "id:41", - "name": "test-vpc2", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:19.000Z", - "crn": "crn:25", - "href": "href:26", - "id": "id:27", - "name": "ebullient-slacks-revert-turkey", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "action": "allow", - "before": { - "href": "href:333", - "id": "id:334", - "name": "allow-outbound" - }, - "created_at": "2024-06-25T15:40:19.000Z", - "destination": "0.0.0.0/0", - "direction": "inbound", - "href": "href:331", - "id": "id:332", - "ip_version": "ipv4", - "name": "allow-inbound", - "source": "0.0.0.0/0", - "protocol": "all" - }, - { - "action": "allow", - "created_at": "2024-06-25T15:40:19.000Z", - "destination": "0.0.0.0/0", - "direction": "outbound", - "href": "href:333", - "id": "id:334", - "ip_version": "ipv4", - "name": "allow-outbound", - "source": "0.0.0.0/0", - "protocol": "all" - } - ], - "subnets": [], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:19.000Z", - "crn": "crn:55", - "href": "href:56", - "id": "id:57", - "name": "untracked-repayment-triumph-cat", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "action": "allow", - "before": { - "href": "href:337", - "id": "id:338", - "name": "allow-outbound" - }, - "created_at": "2024-06-25T15:40:19.000Z", - "destination": "0.0.0.0/0", - "direction": "inbound", - "href": "href:335", - "id": "id:336", - "ip_version": "ipv4", - "name": "allow-inbound", - "source": "0.0.0.0/0", - "protocol": "all" - }, - { - "action": "allow", - "created_at": "2024-06-25T15:40:19.000Z", - "destination": "0.0.0.0/0", - "direction": "outbound", - "href": "href:337", - "id": "id:338", - "ip_version": "ipv4", - "name": "allow-outbound", - "source": "0.0.0.0/0", - "protocol": "all" - } - ], - "subnets": [], - "vpc": { - "crn": "crn:52", - "href": "href:53", - "id": "id:54", - "name": "test-vpc3", - "resource_type": "vpc" - }, - "tags": [] - } - ], - "security_groups": [ - { - "created_at": "2024-06-25T15:40:40.000Z", - "crn": "crn:339", - "href": "href:340", - "id": "id:341", - "name": "sg21", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "direction": "outbound", - "href": "href:342", - "id": "id:343", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "cidr_block": "0.0.0.0/0" - }, - "protocol": "all" - }, - { - "direction": "inbound", - "href": "href:344", - "id": "id:345", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "cidr_block": "0.0.0.0/0" - }, - "protocol": "all" - } - ], - "targets": [ - { - "href": "href:211", - "id": "id:212", - "name": "tavern-far-imprudent-labored", - "resource_type": "network_interface" - }, - { - "href": "href:215", - "id": "id:216", - "name": "ought-football-shorter-aviator", - "resource_type": "network_interface" - }, - { - "href": "href:219", - "id": "id:220", - "name": "clicker-grumbly-outskirts-greatly", - "resource_type": "network_interface" - } - ], - "vpc": { - "crn": "crn:39", - "href": "href:40", - "id": "id:41", - "name": "test-vpc2", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:40.000Z", - "crn": "crn:346", - "href": "href:347", - "id": "id:348", - "name": "sg31", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "direction": "outbound", - "href": "href:349", - "id": "id:350", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "cidr_block": "0.0.0.0/0" - }, - "protocol": "all" - }, - { - "direction": "inbound", - "href": "href:351", - "id": "id:352", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "cidr_block": "0.0.0.0/0" - }, - "protocol": "all" - } - ], - "targets": [ - { - "href": "href:260", - "id": "id:261", - "name": "snout-given-twiddle-splinter", - "resource_type": "network_interface" - } - ], - "vpc": { - "crn": "crn:52", - "href": "href:53", - "id": "id:54", - "name": "test-vpc3", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:40.000Z", - "crn": "crn:353", - "href": "href:354", - "id": "id:355", - "name": "sg11", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "direction": "outbound", - "href": "href:356", - "id": "id:357", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "cidr_block": "0.0.0.0/0" - }, - "protocol": "all" - }, - { - "direction": "inbound", - "href": "href:358", - "id": "id:359", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "cidr_block": "0.0.0.0/0" - }, - "protocol": "all" - } - ], - "targets": [ - { - "href": "href:191", - "id": "id:192", - "name": "enlace-prominent-overhear-perfume", - "resource_type": "network_interface" - }, - { - "href": "href:153", - "id": "id:154", - "name": "stride-woken-backsight-dynastic", - "resource_type": "network_interface" - } - ], - "vpc": { - "crn": "crn:1", - "href": "href:2", - "id": "id:3", - "name": "test-vpc1", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:37.000Z", - "crn": "crn:360", - "href": "href:361", - "id": "id:362", - "name": "sg1", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "direction": "inbound", - "href": "href:363", - "id": "id:364", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "cidr_block": "0.0.0.0/0" - }, - "protocol": "all" - }, - { - "direction": "outbound", - "href": "href:365", - "id": "id:366", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "cidr_block": "0.0.0.0/0" - }, - "protocol": "all" - } - ], - "targets": [ - { - "href": "href:105", - "id": "id:106", - "name": "icky-balsamic-outgoing-leached", - "resource_type": "network_interface" - }, - { - "href": "href:236", - "id": "id:237", - "name": "hankie-excitable-outclass-unmanaged", - "resource_type": "network_interface" - }, - { - "href": "href:277", - "id": "id:278", - "name": "bullring-ransack-feint-cheer", - "resource_type": "network_interface" - }, - { - "href": "href:81", - "id": "id:82", - "name": "stooped-camera-excluded-juke", - "resource_type": "network_interface" - }, - { - "href": "href:129", - "id": "id:130", - "name": "writer-crusher-unsuited-cash", - "resource_type": "network_interface" - }, - { - "href": "href:281", - "id": "id:282", - "name": "speak-princess-washcloth-companion", - "resource_type": "network_interface" - }, - { - "href": "href:109", - "id": "id:110", - "name": "squatted-fastball-vacant-knoll", - "resource_type": "network_interface" - }, - { - "href": "href:85", - "id": "id:86", - "name": "scratch-outward-raging-hunchback", - "resource_type": "network_interface" - }, - { - "href": "href:170", - "id": "id:171", - "name": "graveyard-handmade-ransack-acquaint", - "resource_type": "network_interface" - }, - { - "href": "href:174", - "id": "id:175", - "name": "quantum-handbag-dimmed-reassign", - "resource_type": "network_interface" - }, - { - "href": "href:133", - "id": "id:134", - "name": "consonant-imperial-simply-ceramics", - "resource_type": "network_interface" - }, - { - "href": "href:240", - "id": "id:241", - "name": "scale-clambake-endearing-abridged", - "resource_type": "network_interface" - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:20.000Z", - "crn": "crn:13", - "href": "href:14", - "id": "id:15", - "name": "brute-upon-angles-cubbyhole", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "direction": "outbound", - "href": "href:367", - "id": "id:368", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "cidr_block": "0.0.0.0/0" - }, - "protocol": "all" - }, - { - "direction": "inbound", - "href": "href:369", - "id": "id:370", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "crn": "crn:13", - "href": "href:14", - "id": "id:15", - "name": "brute-upon-angles-cubbyhole" - }, - "protocol": "all" - } - ], - "targets": [], - "vpc": { - "crn": "crn:1", - "href": "href:2", - "id": "id:3", - "name": "test-vpc1", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:19.000Z", - "crn": "crn:30", - "href": "href:31", - "id": "id:32", - "name": "basically-drank-bulk-jam", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "direction": "outbound", - "href": "href:371", - "id": "id:372", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "cidr_block": "0.0.0.0/0" - }, - "protocol": "all" - }, - { - "direction": "inbound", - "href": "href:373", - "id": "id:374", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "crn": "crn:30", - "href": "href:31", - "id": "id:32", - "name": "basically-drank-bulk-jam" - }, - "protocol": "all" - } - ], - "targets": [], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:19.000Z", - "crn": "crn:47", - "href": "href:48", - "id": "id:49", - "name": "glance-cactus-unease-bankroll", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "direction": "outbound", - "href": "href:375", - "id": "id:376", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "cidr_block": "0.0.0.0/0" - }, - "protocol": "all" - }, - { - "direction": "inbound", - "href": "href:377", - "id": "id:378", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "crn": "crn:47", - "href": "href:48", - "id": "id:49", - "name": "glance-cactus-unease-bankroll" - }, - "protocol": "all" - } - ], - "targets": [], - "vpc": { - "crn": "crn:39", - "href": "href:40", - "id": "id:41", - "name": "test-vpc2", - "resource_type": "vpc" - }, - "tags": [] - }, - { - "created_at": "2024-06-25T15:40:19.000Z", - "crn": "crn:60", - "href": "href:61", - "id": "id:62", - "name": "repeater-upcountry-agreeing-acutely", - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "rules": [ - { - "direction": "outbound", - "href": "href:379", - "id": "id:380", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "cidr_block": "0.0.0.0/0" - }, - "protocol": "all" - }, - { - "direction": "inbound", - "href": "href:381", - "id": "id:382", - "ip_version": "ipv4", - "local": { - "cidr_block": "0.0.0.0/0" - }, - "remote": { - "crn": "crn:60", - "href": "href:61", - "id": "id:62", - "name": "repeater-upcountry-agreeing-acutely" - }, - "protocol": "all" - } - ], - "targets": [], - "vpc": { - "crn": "crn:52", - "href": "href:53", - "id": "id:54", - "name": "test-vpc3", - "resource_type": "vpc" - }, - "tags": [] - } - ], - "endpoint_gateways": [], - "instances": [ - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:388" - }, - "href": "href:386", - "id": "id:387", - "name": "thief-monastery-blinks-verdict", - "volume": { - "crn": "crn:389", - "href": "href:390", - "id": "id:391", - "name": "scrabble-gorged-baton-angled", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:42:40.000Z", - "crn": "crn:383", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:384", - "id": "id:385", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi0-subnet1", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:240", - "id": "id:241", - "name": "scale-clambake-endearing-abridged", - "primary_ip": { - "address": "10.240.1.5", - "href": "href:238", - "id": "id:239", - "name": "affected-johnniecake-monorail-ungraded", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:223", - "href": "href:224", - "id": "id:225", - "name": "subnet1", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:388" - }, - "href": "href:386", - "id": "id:387", - "name": "thief-monastery-blinks-verdict", - "volume": { - "crn": "crn:389", - "href": "href:390", - "id": "id:391", - "name": "scrabble-gorged-baton-angled", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:42:40.000Z", - "floating_ips": [], - "href": "href:240", - "id": "id:241", - "name": "scale-clambake-endearing-abridged", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.1.5", - "href": "href:238", - "id": "id:239", - "name": "affected-johnniecake-monorail-ungraded", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:360", - "href": "href:361", - "id": "id:362", - "name": "sg1" - } - ], - "status": "available", - "subnet": { - "crn": "crn:223", - "href": "href:224", - "id": "id:225", - "name": "subnet1", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:401" - }, - "href": "href:399", - "id": "id:400", - "name": "hunchback-enginous-dividend-atrium", - "volume": { - "crn": "crn:402", - "href": "href:403", - "id": "id:404", - "name": "subsoil-bobble-bovine-unmoving", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:42:39.000Z", - "crn": "crn:396", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:397", - "id": "id:398", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi1-subnet0", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:133", - "id": "id:134", - "name": "consonant-imperial-simply-ceramics", - "primary_ip": { - "address": "10.240.0.5", - "href": "href:131", - "id": "id:132", - "name": "relatable-antiques-maturing-brulee", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:113", - "href": "href:114", - "id": "id:115", - "name": "subnet0", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:401" - }, - "href": "href:399", - "id": "id:400", - "name": "hunchback-enginous-dividend-atrium", - "volume": { - "crn": "crn:402", - "href": "href:403", - "id": "id:404", - "name": "subsoil-bobble-bovine-unmoving", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:42:39.000Z", - "floating_ips": [], - "href": "href:133", - "id": "id:134", - "name": "consonant-imperial-simply-ceramics", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.0.5", - "href": "href:131", - "id": "id:132", - "name": "relatable-antiques-maturing-brulee", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:360", - "href": "href:361", - "id": "id:362", - "name": "sg1" - } - ], - "status": "available", - "subnet": { - "crn": "crn:113", - "href": "href:114", - "id": "id:115", - "name": "subnet0", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:410" - }, - "href": "href:408", - "id": "id:409", - "name": "laboring-overbuilt-growl-headland", - "volume": { - "crn": "crn:411", - "href": "href:412", - "id": "id:413", - "name": "tamper-salvaging-stick-giddily", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:42:22.000Z", - "crn": "crn:405", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:406", - "id": "id:407", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi1-subnet2", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:174", - "id": "id:175", - "name": "quantum-handbag-dimmed-reassign", - "primary_ip": { - "address": "10.240.4.5", - "href": "href:172", - "id": "id:173", - "name": "bark-gatherer-rope-unrivaled", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:157", - "href": "href:158", - "id": "id:159", - "name": "subnet2", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:410" - }, - "href": "href:408", - "id": "id:409", - "name": "laboring-overbuilt-growl-headland", - "volume": { - "crn": "crn:411", - "href": "href:412", - "id": "id:413", - "name": "tamper-salvaging-stick-giddily", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:42:22.000Z", - "floating_ips": [], - "href": "href:174", - "id": "id:175", - "name": "quantum-handbag-dimmed-reassign", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.4.5", - "href": "href:172", - "id": "id:173", - "name": "bark-gatherer-rope-unrivaled", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:360", - "href": "href:361", - "id": "id:362", - "name": "sg1" - } - ], - "status": "available", - "subnet": { - "crn": "crn:157", - "href": "href:158", - "id": "id:159", - "name": "subnet2", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:419" - }, - "href": "href:417", - "id": "id:418", - "name": "dollop-partition-helping-palmtree", - "volume": { - "crn": "crn:420", - "href": "href:421", - "id": "id:422", - "name": "ravage-deny-amusable-settling", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:42:20.000Z", - "crn": "crn:414", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:415", - "id": "id:416", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi1-subnet5", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:85", - "id": "id:86", - "name": "scratch-outward-raging-hunchback", - "primary_ip": { - "address": "10.240.9.5", - "href": "href:83", - "id": "id:84", - "name": "outskirts-unaligned-passivism-parchment", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:65", - "href": "href:66", - "id": "id:67", - "name": "subnet5", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:419" - }, - "href": "href:417", - "id": "id:418", - "name": "dollop-partition-helping-palmtree", - "volume": { - "crn": "crn:420", - "href": "href:421", - "id": "id:422", - "name": "ravage-deny-amusable-settling", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:42:20.000Z", - "floating_ips": [], - "href": "href:85", - "id": "id:86", - "name": "scratch-outward-raging-hunchback", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.9.5", - "href": "href:83", - "id": "id:84", - "name": "outskirts-unaligned-passivism-parchment", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:360", - "href": "href:361", - "id": "id:362", - "name": "sg1" - } - ], - "status": "available", - "subnet": { - "crn": "crn:65", - "href": "href:66", - "id": "id:67", - "name": "subnet5", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:428" - }, - "href": "href:426", - "id": "id:427", - "name": "petted-ethanol-voicing-rocklike", - "volume": { - "crn": "crn:429", - "href": "href:430", - "id": "id:431", - "name": "uptown-striving-unrevised-earthlike", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:42:20.000Z", - "crn": "crn:423", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:424", - "id": "id:425", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi0-subnet2", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:170", - "id": "id:171", - "name": "graveyard-handmade-ransack-acquaint", - "primary_ip": { - "address": "10.240.4.4", - "href": "href:168", - "id": "id:169", - "name": "stood-sitcom-whoops-hurled", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:157", - "href": "href:158", - "id": "id:159", - "name": "subnet2", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:428" - }, - "href": "href:426", - "id": "id:427", - "name": "petted-ethanol-voicing-rocklike", - "volume": { - "crn": "crn:429", - "href": "href:430", - "id": "id:431", - "name": "uptown-striving-unrevised-earthlike", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:42:20.000Z", - "floating_ips": [], - "href": "href:170", - "id": "id:171", - "name": "graveyard-handmade-ransack-acquaint", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.4.4", - "href": "href:168", - "id": "id:169", - "name": "stood-sitcom-whoops-hurled", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:360", - "href": "href:361", - "id": "id:362", - "name": "sg1" - } - ], - "status": "available", - "subnet": { - "crn": "crn:157", - "href": "href:158", - "id": "id:159", - "name": "subnet2", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:437" - }, - "href": "href:435", - "id": "id:436", - "name": "promenade-spyglass-flattop-pushpin", - "volume": { - "crn": "crn:438", - "href": "href:439", - "id": "id:440", - "name": "relax-shaded-prism-jaunt", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:42:16.000Z", - "crn": "crn:432", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:433", - "id": "id:434", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi1-subnet3", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:109", - "id": "id:110", - "name": "squatted-fastball-vacant-knoll", - "primary_ip": { - "address": "10.240.5.5", - "href": "href:107", - "id": "id:108", - "name": "recognize-citable-exerciser-unsecured", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:89", - "href": "href:90", - "id": "id:91", - "name": "subnet3", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:437" - }, - "href": "href:435", - "id": "id:436", - "name": "promenade-spyglass-flattop-pushpin", - "volume": { - "crn": "crn:438", - "href": "href:439", - "id": "id:440", - "name": "relax-shaded-prism-jaunt", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:42:16.000Z", - "floating_ips": [], - "href": "href:109", - "id": "id:110", - "name": "squatted-fastball-vacant-knoll", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.5.5", - "href": "href:107", - "id": "id:108", - "name": "recognize-citable-exerciser-unsecured", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:360", - "href": "href:361", - "id": "id:362", - "name": "sg1" - } - ], - "status": "available", - "subnet": { - "crn": "crn:89", - "href": "href:90", - "id": "id:91", - "name": "subnet3", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:446" - }, - "href": "href:444", - "id": "id:445", - "name": "sandbox-federal-sculptor-jugum", - "volume": { - "crn": "crn:447", - "href": "href:448", - "id": "id:449", - "name": "convent-ramrod-cloning-afterward", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:42:15.000Z", - "crn": "crn:441", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:442", - "id": "id:443", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi1-subnet4", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:281", - "id": "id:282", - "name": "speak-princess-washcloth-companion", - "primary_ip": { - "address": "10.240.8.5", - "href": "href:279", - "id": "id:280", - "name": "frighten-mystified-freeway-hurtling", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:264", - "href": "href:265", - "id": "id:266", - "name": "subnet4", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:446" - }, - "href": "href:444", - "id": "id:445", - "name": "sandbox-federal-sculptor-jugum", - "volume": { - "crn": "crn:447", - "href": "href:448", - "id": "id:449", - "name": "convent-ramrod-cloning-afterward", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:42:15.000Z", - "floating_ips": [], - "href": "href:281", - "id": "id:282", - "name": "speak-princess-washcloth-companion", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.8.5", - "href": "href:279", - "id": "id:280", - "name": "frighten-mystified-freeway-hurtling", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:360", - "href": "href:361", - "id": "id:362", - "name": "sg1" - } - ], - "status": "available", - "subnet": { - "crn": "crn:264", - "href": "href:265", - "id": "id:266", - "name": "subnet4", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:455" - }, - "href": "href:453", - "id": "id:454", - "name": "affidavit-chastise-elsewhere-viewer", - "volume": { - "crn": "crn:456", - "href": "href:457", - "id": "id:458", - "name": "fancy-destiny-shuffling-sandbank", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:42:07.000Z", - "crn": "crn:450", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:451", - "id": "id:452", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi0-subnet0", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:129", - "id": "id:130", - "name": "writer-crusher-unsuited-cash", - "primary_ip": { - "address": "10.240.0.4", - "href": "href:127", - "id": "id:128", - "name": "pundit-tight-arbitrate-grace", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:113", - "href": "href:114", - "id": "id:115", - "name": "subnet0", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:455" - }, - "href": "href:453", - "id": "id:454", - "name": "affidavit-chastise-elsewhere-viewer", - "volume": { - "crn": "crn:456", - "href": "href:457", - "id": "id:458", - "name": "fancy-destiny-shuffling-sandbank", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:42:07.000Z", - "floating_ips": [ - { - "address": "52.118.151.238", - "crn": "crn:285", - "href": "href:286", - "id": "id:287", - "name": "fip-0-subnet0" - } - ], - "href": "href:129", - "id": "id:130", - "name": "writer-crusher-unsuited-cash", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.0.4", - "href": "href:127", - "id": "id:128", - "name": "pundit-tight-arbitrate-grace", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:360", - "href": "href:361", - "id": "id:362", - "name": "sg1" - } - ], - "status": "available", - "subnet": { - "crn": "crn:113", - "href": "href:114", - "id": "id:115", - "name": "subnet0", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:464" - }, - "href": "href:462", - "id": "id:463", - "name": "uneven-armoire-scabiosa-letter", - "volume": { - "crn": "crn:465", - "href": "href:466", - "id": "id:467", - "name": "cognition-blinks-humid-oxidant", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:42:00.000Z", - "crn": "crn:459", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:460", - "id": "id:461", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi0-subnet3", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:105", - "id": "id:106", - "name": "icky-balsamic-outgoing-leached", - "primary_ip": { - "address": "10.240.5.4", - "href": "href:103", - "id": "id:104", - "name": "rising-gopher-reentry-graveness", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:89", - "href": "href:90", - "id": "id:91", - "name": "subnet3", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:464" - }, - "href": "href:462", - "id": "id:463", - "name": "uneven-armoire-scabiosa-letter", - "volume": { - "crn": "crn:465", - "href": "href:466", - "id": "id:467", - "name": "cognition-blinks-humid-oxidant", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:42:00.000Z", - "floating_ips": [], - "href": "href:105", - "id": "id:106", - "name": "icky-balsamic-outgoing-leached", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.5.4", - "href": "href:103", - "id": "id:104", - "name": "rising-gopher-reentry-graveness", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:360", - "href": "href:361", - "id": "id:362", - "name": "sg1" - } - ], - "status": "available", - "subnet": { - "crn": "crn:89", - "href": "href:90", - "id": "id:91", - "name": "subnet3", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:473" - }, - "href": "href:471", - "id": "id:472", - "name": "perplexed-impulsivity-august-jaws", - "volume": { - "crn": "crn:474", - "href": "href:475", - "id": "id:476", - "name": "tartar-sixties-fructose-parmesan", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:42:00.000Z", - "crn": "crn:468", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:469", - "id": "id:470", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi1-subnet1", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:236", - "id": "id:237", - "name": "hankie-excitable-outclass-unmanaged", - "primary_ip": { - "address": "10.240.1.4", - "href": "href:234", - "id": "id:235", - "name": "excluded-unfair-jailbird-foil", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:223", - "href": "href:224", - "id": "id:225", - "name": "subnet1", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:473" - }, - "href": "href:471", - "id": "id:472", - "name": "perplexed-impulsivity-august-jaws", - "volume": { - "crn": "crn:474", - "href": "href:475", - "id": "id:476", - "name": "tartar-sixties-fructose-parmesan", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:42:00.000Z", - "floating_ips": [], - "href": "href:236", - "id": "id:237", - "name": "hankie-excitable-outclass-unmanaged", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.1.4", - "href": "href:234", - "id": "id:235", - "name": "excluded-unfair-jailbird-foil", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:360", - "href": "href:361", - "id": "id:362", - "name": "sg1" - } - ], - "status": "available", - "subnet": { - "crn": "crn:223", - "href": "href:224", - "id": "id:225", - "name": "subnet1", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:482" - }, - "href": "href:480", - "id": "id:481", - "name": "litter-snipping-unclasp-dust", - "volume": { - "crn": "crn:483", - "href": "href:484", - "id": "id:485", - "name": "untried-sulphate-hypnosis-subsidize", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:42:00.000Z", - "crn": "crn:477", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:478", - "id": "id:479", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi0-subnet4", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:277", - "id": "id:278", - "name": "bullring-ransack-feint-cheer", - "primary_ip": { - "address": "10.240.8.4", - "href": "href:275", - "id": "id:276", - "name": "bagged-posture-glaring-cojoined", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:264", - "href": "href:265", - "id": "id:266", - "name": "subnet4", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:482" - }, - "href": "href:480", - "id": "id:481", - "name": "litter-snipping-unclasp-dust", - "volume": { - "crn": "crn:483", - "href": "href:484", - "id": "id:485", - "name": "untried-sulphate-hypnosis-subsidize", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:42:00.000Z", - "floating_ips": [], - "href": "href:277", - "id": "id:278", - "name": "bullring-ransack-feint-cheer", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.8.4", - "href": "href:275", - "id": "id:276", - "name": "bagged-posture-glaring-cojoined", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:360", - "href": "href:361", - "id": "id:362", - "name": "sg1" - } - ], - "status": "available", - "subnet": { - "crn": "crn:264", - "href": "href:265", - "id": "id:266", - "name": "subnet4", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:491" - }, - "href": "href:489", - "id": "id:490", - "name": "unlawful-overreach-yarn-rippling", - "volume": { - "crn": "crn:492", - "href": "href:493", - "id": "id:494", - "name": "finer-voter-roving-jailer", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:42:00.000Z", - "crn": "crn:486", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:487", - "id": "id:488", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi0-subnet5", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:81", - "id": "id:82", - "name": "stooped-camera-excluded-juke", - "primary_ip": { - "address": "10.240.9.4", - "href": "href:79", - "id": "id:80", - "name": "ideally-grain-bagpipe-luxuriant", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:65", - "href": "href:66", - "id": "id:67", - "name": "subnet5", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:491" - }, - "href": "href:489", - "id": "id:490", - "name": "unlawful-overreach-yarn-rippling", - "volume": { - "crn": "crn:492", - "href": "href:493", - "id": "id:494", - "name": "finer-voter-roving-jailer", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - }, - "zone": { - "href": "href:5", - "name": "us-south-1" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:42:00.000Z", - "floating_ips": [], - "href": "href:81", - "id": "id:82", - "name": "stooped-camera-excluded-juke", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.9.4", - "href": "href:79", - "id": "id:80", - "name": "ideally-grain-bagpipe-luxuriant", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:360", - "href": "href:361", - "id": "id:362", - "name": "sg1" - } - ], - "status": "available", - "subnet": { - "crn": "crn:65", - "href": "href:66", - "id": "id:67", - "name": "subnet5", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:500" - }, - "href": "href:498", - "id": "id:499", - "name": "mashed-thing-headache-estate", - "volume": { - "crn": "crn:501", - "href": "href:502", - "id": "id:503", - "name": "mountain-harpist-libraries-dreaming", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:41:39.000Z", - "crn": "crn:495", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:496", - "id": "id:497", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi0-subnet11", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:153", - "id": "id:154", - "name": "stride-woken-backsight-dynastic", - "primary_ip": { - "address": "10.240.80.4", - "href": "href:151", - "id": "id:152", - "name": "childlike-publish-retainer-movie", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:137", - "href": "href:138", - "id": "id:139", - "name": "subnet11", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:500" - }, - "href": "href:498", - "id": "id:499", - "name": "mashed-thing-headache-estate", - "volume": { - "crn": "crn:501", - "href": "href:502", - "id": "id:503", - "name": "mountain-harpist-libraries-dreaming", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:1", - "href": "href:2", - "id": "id:3", - "name": "test-vpc1", - "resource_type": "vpc" - }, - "zone": { - "href": "href:6", - "name": "us-south-2" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:41:39.000Z", - "floating_ips": [], - "href": "href:153", - "id": "id:154", - "name": "stride-woken-backsight-dynastic", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.80.4", - "href": "href:151", - "id": "id:152", - "name": "childlike-publish-retainer-movie", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:353", - "href": "href:354", - "id": "id:355", - "name": "sg11" - } - ], - "status": "available", - "subnet": { - "crn": "crn:137", - "href": "href:138", - "id": "id:139", - "name": "subnet11", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:509" - }, - "href": "href:507", - "id": "id:508", - "name": "calzone-cacti-moonlight-subarctic", - "volume": { - "crn": "crn:510", - "href": "href:511", - "id": "id:512", - "name": "blurred-dream-pectin-tapping", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:41:36.000Z", - "crn": "crn:504", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:505", - "id": "id:506", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi0-subnet10", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:191", - "id": "id:192", - "name": "enlace-prominent-overhear-perfume", - "primary_ip": { - "address": "10.240.64.4", - "href": "href:189", - "id": "id:190", - "name": "starry-smasher-ladle-dioxide", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:178", - "href": "href:179", - "id": "id:180", - "name": "subnet10", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:509" - }, - "href": "href:507", - "id": "id:508", - "name": "calzone-cacti-moonlight-subarctic", - "volume": { - "crn": "crn:510", - "href": "href:511", - "id": "id:512", - "name": "blurred-dream-pectin-tapping", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:1", - "href": "href:2", - "id": "id:3", - "name": "test-vpc1", - "resource_type": "vpc" - }, - "zone": { - "href": "href:6", - "name": "us-south-2" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:41:36.000Z", - "floating_ips": [ - { - "address": "150.239.167.146", - "crn": "crn:288", - "href": "href:289", - "id": "id:290", - "name": "fip-0-subnet10" - } - ], - "href": "href:191", - "id": "id:192", - "name": "enlace-prominent-overhear-perfume", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.64.4", - "href": "href:189", - "id": "id:190", - "name": "starry-smasher-ladle-dioxide", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:353", - "href": "href:354", - "id": "id:355", - "name": "sg11" - } - ], - "status": "available", - "subnet": { - "crn": "crn:178", - "href": "href:179", - "id": "id:180", - "name": "subnet10", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:518" - }, - "href": "href:516", - "id": "id:517", - "name": "recoup-blinks-ebullient-renewed", - "volume": { - "crn": "crn:519", - "href": "href:520", - "id": "id:521", - "name": "manmade-unequal-disinfect-cone", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:41:24.000Z", - "crn": "crn:513", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:514", - "id": "id:515", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi1-subnet20", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:219", - "id": "id:220", - "name": "clicker-grumbly-outskirts-greatly", - "primary_ip": { - "address": "10.240.128.6", - "href": "href:217", - "id": "id:218", - "name": "uniquely-shelter-gracious-sudden", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:195", - "href": "href:196", - "id": "id:197", - "name": "subnet20", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:518" - }, - "href": "href:516", - "id": "id:517", - "name": "recoup-blinks-ebullient-renewed", - "volume": { - "crn": "crn:519", - "href": "href:520", - "id": "id:521", - "name": "manmade-unequal-disinfect-cone", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:39", - "href": "href:40", - "id": "id:41", - "name": "test-vpc2", - "resource_type": "vpc" - }, - "zone": { - "href": "href:7", - "name": "us-south-3" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:41:24.000Z", - "floating_ips": [ - { - "address": "169.48.95.165", - "crn": "crn:291", - "href": "href:292", - "id": "id:293", - "name": "fip-0-subnet20" - } - ], - "href": "href:219", - "id": "id:220", - "name": "clicker-grumbly-outskirts-greatly", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.128.6", - "href": "href:217", - "id": "id:218", - "name": "uniquely-shelter-gracious-sudden", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:339", - "href": "href:340", - "id": "id:341", - "name": "sg21" - } - ], - "status": "available", - "subnet": { - "crn": "crn:195", - "href": "href:196", - "id": "id:197", - "name": "subnet20", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:527" - }, - "href": "href:525", - "id": "id:526", - "name": "radio-tightrope-outtakes-moonshine", - "volume": { - "crn": "crn:528", - "href": "href:529", - "id": "id:530", - "name": "tattoo-crescent-unwary-hayride", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:41:21.000Z", - "crn": "crn:522", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:523", - "id": "id:524", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi0-subnet20", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:215", - "id": "id:216", - "name": "ought-football-shorter-aviator", - "primary_ip": { - "address": "10.240.128.5", - "href": "href:213", - "id": "id:214", - "name": "customs-recollect-drippy-primate", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:195", - "href": "href:196", - "id": "id:197", - "name": "subnet20", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:527" - }, - "href": "href:525", - "id": "id:526", - "name": "radio-tightrope-outtakes-moonshine", - "volume": { - "crn": "crn:528", - "href": "href:529", - "id": "id:530", - "name": "tattoo-crescent-unwary-hayride", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:39", - "href": "href:40", - "id": "id:41", - "name": "test-vpc2", - "resource_type": "vpc" - }, - "zone": { - "href": "href:7", - "name": "us-south-3" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:41:21.000Z", - "floating_ips": [], - "href": "href:215", - "id": "id:216", - "name": "ought-football-shorter-aviator", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.128.5", - "href": "href:213", - "id": "id:214", - "name": "customs-recollect-drippy-primate", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:339", - "href": "href:340", - "id": "id:341", - "name": "sg21" - } - ], - "status": "available", - "subnet": { - "crn": "crn:195", - "href": "href:196", - "id": "id:197", - "name": "subnet20", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:536" - }, - "href": "href:534", - "id": "id:535", - "name": "crumpet-ride-tastiness-phoney", - "volume": { - "crn": "crn:537", - "href": "href:538", - "id": "id:539", - "name": "doorframe-marvelous-refusing-citable", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:41:21.000Z", - "crn": "crn:531", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:532", - "id": "id:533", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi2-subnet20", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:211", - "id": "id:212", - "name": "tavern-far-imprudent-labored", - "primary_ip": { - "address": "10.240.128.4", - "href": "href:209", - "id": "id:210", - "name": "unmixed-qualify-prescribe-railcar", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:195", - "href": "href:196", - "id": "id:197", - "name": "subnet20", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:536" - }, - "href": "href:534", - "id": "id:535", - "name": "crumpet-ride-tastiness-phoney", - "volume": { - "crn": "crn:537", - "href": "href:538", - "id": "id:539", - "name": "doorframe-marvelous-refusing-citable", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:39", - "href": "href:40", - "id": "id:41", - "name": "test-vpc2", - "resource_type": "vpc" - }, - "zone": { - "href": "href:7", - "name": "us-south-3" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:41:21.000Z", - "floating_ips": [], - "href": "href:211", - "id": "id:212", - "name": "tavern-far-imprudent-labored", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.128.4", - "href": "href:209", - "id": "id:210", - "name": "unmixed-qualify-prescribe-railcar", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:339", - "href": "href:340", - "id": "id:341", - "name": "sg21" - } - ], - "status": "available", - "subnet": { - "crn": "crn:195", - "href": "href:196", - "id": "id:197", - "name": "subnet20", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - }, - { - "availability_policy": { - "host_failure": "restart" - }, - "bandwidth": 4000, - "boot_volume_attachment": { - "device": { - "id": "id:545" - }, - "href": "href:543", - "id": "id:544", - "name": "bronzing-vendor-plod-pretzel", - "volume": { - "crn": "crn:546", - "href": "href:547", - "id": "id:548", - "name": "squelch-plop-headlamp-ideologue", - "resource_type": "volume" - } - }, - "confidential_compute_mode": "disabled", - "created_at": "2024-06-25T15:41:00.000Z", - "crn": "crn:540", - "disks": [], - "enable_secure_boot": false, - "health_reasons": [], - "health_state": "ok", - "href": "href:541", - "id": "id:542", - "image": { - "crn": "crn:392", - "href": "href:393", - "id": "id:394", - "name": "server-9080", - "resource_type": "image" - }, - "lifecycle_reasons": [], - "lifecycle_state": "stable", - "memory": 4, - "metadata_service": { - "enabled": false, - "protocol": "http", - "response_hop_limit": 1 - }, - "name": "vsi0-subnet30", - "network_attachments": [], - "numa_count": 1, - "primary_network_interface": { - "href": "href:260", - "id": "id:261", - "name": "snout-given-twiddle-splinter", - "primary_ip": { - "address": "10.240.192.4", - "href": "href:258", - "id": "id:259", - "name": "legacy-shore-molecule-barometer", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "subnet": { - "crn": "crn:244", - "href": "href:245", - "id": "id:246", - "name": "subnet30", - "resource_type": "subnet" - } - }, - "profile": { - "href": "href:395", - "name": "cx2-2x4", - "resource_type": "instance_profile" - }, - "reservation_affinity": { - "policy": "disabled", - "pool": [] - }, - "resource_group": { - "href": "href:16", - "id": "id:17", - "name": "name:4" - }, - "resource_type": "instance", - "startable": true, - "status": "running", - "status_reasons": [], - "total_network_bandwidth": 3000, - "total_volume_bandwidth": 1000, - "vcpu": { - "architecture": "amd64", - "count": 2, - "manufacturer": "intel" - }, - "volume_attachments": [ - { - "device": { - "id": "id:545" - }, - "href": "href:543", - "id": "id:544", - "name": "bronzing-vendor-plod-pretzel", - "volume": { - "crn": "crn:546", - "href": "href:547", - "id": "id:548", - "name": "squelch-plop-headlamp-ideologue", - "resource_type": "volume" - } - } - ], - "vpc": { - "crn": "crn:52", - "href": "href:53", - "id": "id:54", - "name": "test-vpc3", - "resource_type": "vpc" - }, - "zone": { - "href": "href:7", - "name": "us-south-3" - }, - "network_interfaces": [ - { - "allow_ip_spoofing": false, - "created_at": "2024-06-25T15:41:00.000Z", - "floating_ips": [ - { - "address": "52.118.100.239", - "crn": "crn:294", - "href": "href:295", - "id": "id:296", - "name": "fip-0-subnet30" - } - ], - "href": "href:260", - "id": "id:261", - "name": "snout-given-twiddle-splinter", - "port_speed": 3000, - "primary_ip": { - "address": "10.240.192.4", - "href": "href:258", - "id": "id:259", - "name": "legacy-shore-molecule-barometer", - "resource_type": "subnet_reserved_ip" - }, - "resource_type": "network_interface", - "security_groups": [ - { - "crn": "crn:346", - "href": "href:347", - "id": "id:348", - "name": "sg31" - } - ], - "status": "available", - "subnet": { - "crn": "crn:244", - "href": "href:245", - "id": "id:246", - "name": "subnet30", - "resource_type": "subnet" - }, - "type": "primary" - } - ], - "tags": [] - } - ], - "routing_tables": [ - { - "accept_routes_from": [ - { - "resource_type": "vpn_gateway" - }, - { - "resource_type": "vpn_server" - } - ], - "advertise_routes_to": [], - "created_at": "2024-06-25T15:40:20.000Z", - "href": "href:11", - "id": "id:12", - "is_default": true, - "lifecycle_state": "stable", - "name": "overtone-sputter-overspend-gorge", - "resource_type": "routing_table", - "route_direct_link_ingress": false, - "route_internet_ingress": false, - "route_transit_gateway_ingress": false, - "route_vpc_zone_ingress": false, - "subnets": [ - { - "crn": "crn:137", - "href": "href:138", - "id": "id:139", - "name": "subnet11", - "resource_type": "subnet" - }, - { - "crn": "crn:178", - "href": "href:179", - "id": "id:180", - "name": "subnet10", - "resource_type": "subnet" - } - ], - "routes": [], - "vpc": { - "crn": "crn:1", - "href": "href:2", - "id": "id:3", - "name": "test-vpc1", - "resource_type": "vpc" - } - }, - { - "accept_routes_from": [ - { - "resource_type": "vpn_gateway" - }, - { - "resource_type": "vpn_server" - } - ], - "advertise_routes_to": [], - "created_at": "2024-06-25T15:40:19.000Z", - "href": "href:28", - "id": "id:29", - "is_default": true, - "lifecycle_state": "stable", - "name": "escapade-dynamite-upstage-context", - "resource_type": "routing_table", - "route_direct_link_ingress": false, - "route_internet_ingress": false, - "route_transit_gateway_ingress": false, - "route_vpc_zone_ingress": false, - "subnets": [ - { - "crn": "crn:65", - "href": "href:66", - "id": "id:67", - "name": "subnet5", - "resource_type": "subnet" - }, - { - "crn": "crn:89", - "href": "href:90", - "id": "id:91", - "name": "subnet3", - "resource_type": "subnet" - }, - { - "crn": "crn:113", - "href": "href:114", - "id": "id:115", - "name": "subnet0", - "resource_type": "subnet" - }, - { - "crn": "crn:157", - "href": "href:158", - "id": "id:159", - "name": "subnet2", - "resource_type": "subnet" - }, - { - "crn": "crn:223", - "href": "href:224", - "id": "id:225", - "name": "subnet1", - "resource_type": "subnet" - }, - { - "crn": "crn:264", - "href": "href:265", - "id": "id:266", - "name": "subnet4", - "resource_type": "subnet" - } - ], - "routes": [], - "vpc": { - "crn": "crn:22", - "href": "href:23", - "id": "id:24", - "name": "test-vpc0", - "resource_type": "vpc" - } - }, - { - "accept_routes_from": [ - { - "resource_type": "vpn_gateway" - }, - { - "resource_type": "vpn_server" - } - ], - "advertise_routes_to": [], - "created_at": "2024-06-25T15:40:19.000Z", - "href": "href:45", - "id": "id:46", - "is_default": true, - "lifecycle_state": "stable", - "name": "quintuple-severity-caddie-manuals", - "resource_type": "routing_table", - "route_direct_link_ingress": false, - "route_internet_ingress": false, - "route_transit_gateway_ingress": false, - "route_vpc_zone_ingress": false, - "subnets": [ - { - "crn": "crn:195", - "href": "href:196", - "id": "id:197", - "name": "subnet20", - "resource_type": "subnet" - } - ], - "routes": [], - "vpc": { - "crn": "crn:39", - "href": "href:40", - "id": "id:41", - "name": "test-vpc2", - "resource_type": "vpc" - } - }, - { - "accept_routes_from": [ - { - "resource_type": "vpn_gateway" - }, - { - "resource_type": "vpn_server" - } - ], - "advertise_routes_to": [], - "created_at": "2024-06-25T15:40:19.000Z", - "href": "href:58", - "id": "id:59", - "is_default": true, - "lifecycle_state": "stable", - "name": "probational-herring-undone-daintily", - "resource_type": "routing_table", - "route_direct_link_ingress": false, - "route_internet_ingress": false, - "route_transit_gateway_ingress": false, - "route_vpc_zone_ingress": false, - "subnets": [ - { - "crn": "crn:244", - "href": "href:245", - "id": "id:246", - "name": "subnet30", - "resource_type": "subnet" - } - ], - "routes": [], - "vpc": { - "crn": "crn:52", - "href": "href:53", - "id": "id:54", - "name": "test-vpc3", - "resource_type": "vpc" - } - } - ], - "load_balancers": [], - "transit_connections": [ - { - "created_at": "2024-06-25T15:41:44.212Z", - "id": "id:549", - "name": "tg3_connection3", - "network_id": "crn:52", - "network_type": "vpc", - "prefix_filters_default": "permit", - "status": "attached", - "transit_gateway": { - "crn": "crn:550", - "id": "id:551", - "name": "local-tg3" - }, - "updated_at": "2024-06-25T15:45:14.206Z" - }, - { - "created_at": "2024-06-25T15:41:54.416Z", - "id": "id:552", - "name": "tg3_connection0", - "network_id": "crn:22", - "network_type": "vpc", - "prefix_filters_default": "permit", - "status": "attached", - "transit_gateway": { - "crn": "crn:550", - "id": "id:551", - "name": "local-tg3" - }, - "updated_at": "2024-06-25T15:45:53.979Z" - }, - { - "created_at": "2024-06-25T15:42:54.772Z", - "id": "id:553", - "name": "tg2_connection3", - "network_id": "crn:52", - "network_type": "vpc", - "prefix_filters_default": "permit", - "status": "attached", - "transit_gateway": { - "crn": "crn:554", - "id": "id:555", - "name": "local-tg2" - }, - "updated_at": "2024-06-25T15:49:08.822Z" - }, - { - "created_at": "2024-06-25T15:43:11.555Z", - "id": "id:556", - "name": "tg2_connection0", - "network_id": "crn:22", - "network_type": "vpc", - "prefix_filters": [ - { - "action": "deny", - "created_at": "2024-06-25T15:46:46.641Z", - "id": "id:557", - "le": 32, - "prefix": "10.240.0.0/22", - "updated_at": "2024-06-25T15:46:46.641Z" - } - ], - "prefix_filters_default": "permit", - "status": "attached", - "transit_gateway": { - "crn": "crn:554", - "id": "id:555", - "name": "local-tg2" - }, - "updated_at": "2024-06-25T15:49:59.395Z" - }, - { - "created_at": "2024-06-25T15:43:12.159Z", - "id": "id:558", - "name": "tg_connection0", - "network_id": "crn:22", - "network_type": "vpc", - "prefix_filters": [ - { - "action": "deny", - "before": "298db67f-2e68-4548-93b9-949f8356d4a0", - "created_at": "2024-06-25T15:45:14.711Z", - "id": "id:559", - "prefix": "10.240.4.0/22", - "updated_at": "2024-06-25T15:45:14.711Z" - }, - { - "action": "deny", - "created_at": "2024-06-25T15:45:25.435Z", - "id": "id:560", - "prefix": "10.240.8.0/22", - "updated_at": "2024-06-25T15:45:25.435Z" - } - ], - "prefix_filters_default": "permit", - "status": "attached", - "transit_gateway": { - "crn": "crn:561", - "id": "id:562", - "name": "local-tg1" - }, - "updated_at": "2024-06-25T15:49:53.837Z" - }, - { - "created_at": "2024-06-25T15:43:41.079Z", - "id": "id:563", - "name": "tg2_connection2", - "network_id": "crn:39", - "network_type": "vpc", - "prefix_filters_default": "permit", - "status": "attached", - "transit_gateway": { - "crn": "crn:554", - "id": "id:555", - "name": "local-tg2" - }, - "updated_at": "2024-06-25T15:49:43.192Z" - }, - { - "created_at": "2024-06-25T15:43:42.335Z", - "id": "id:564", - "name": "tg1_connection1", - "network_id": "crn:1", - "network_type": "vpc", - "prefix_filters_default": "permit", - "status": "attached", - "transit_gateway": { - "crn": "crn:561", - "id": "id:562", - "name": "local-tg1" - }, - "updated_at": "2024-06-25T15:48:45.229Z" - }, - { - "created_at": "2024-06-25T15:44:08.995Z", - "id": "id:565", - "name": "tg1_connection2", - "network_id": "crn:39", - "network_type": "vpc", - "prefix_filters_default": "permit", - "status": "attached", - "transit_gateway": { - "crn": "crn:561", - "id": "id:562", - "name": "local-tg1" - }, - "updated_at": "2024-06-25T15:49:11.976Z" - } - ], - "transit_gateways": [ - { - "id": "id:551", - "crn": "crn:550", - "name": "local-tg3", - "location": "us-south", - "created_at": "2024-06-25T15:40:21.390Z", - "global": false, - "resource_group": { - "id": "id:17", - "href": "href:566" - }, - "status": "available", - "updated_at": "2024-06-25T15:42:12.752Z" - }, - { - "id": "id:555", - "crn": "crn:554", - "name": "local-tg2", - "location": "us-south", - "created_at": "2024-06-25T15:40:25.895Z", - "global": false, - "resource_group": { - "id": "id:17", - "href": "href:566" - }, - "status": "available", - "updated_at": "2024-06-25T15:43:58.196Z" - }, - { - "id": "id:562", - "crn": "crn:561", - "name": "local-tg1", - "location": "us-south", - "created_at": "2024-06-25T15:40:26.455Z", - "global": false, - "resource_group": { - "id": "id:17", - "href": "href:566" - }, - "status": "available", - "updated_at": "2024-06-25T15:43:15.331Z" - } - ], - "iks_clusters": [] -} diff --git a/test/data/acl_nif/config_object.json b/test/data/tg_multiple/config_object.json similarity index 100% rename from test/data/acl_nif/config_object.json rename to test/data/tg_multiple/config_object.json diff --git a/test/error_test_list.go b/test/error_test_list.go index 72927b3f..c0af8603 100644 --- a/test/error_test_list.go +++ b/test/error_test_list.go @@ -139,19 +139,6 @@ func errorTestsList() []testCase { }, }, - // vpe resource in ACL generation - { - testName: "vpe acl", - expectedErr: "ACL: src/dst of type vpe is not supported", - args: &command{ - cmd: synth, - subcmd: acl, - config: "%s/vpe_acl/config_object.json", - spec: "%s/vpe_acl/conn_spec.json", - outputFile: outputPath, - }, - }, - // impossible resource type { testName: "impossible resource type", diff --git a/test/expected/acl_nif_instance_segments_tf/nacl_expected.tf b/test/expected/acl_nif_instance_segments_tf/nacl_expected.tf new file mode 100644 index 00000000..11f661e8 --- /dev/null +++ b/test/expected/acl_nif_instance_segments_tf/nacl_expected.tf @@ -0,0 +1,373 @@ +# test-vpc0/subnet0 [10.240.0.0/24] +resource "ibm_is_network_acl" "acl-test-vpc0--subnet0" { + name = "acl-test-vpc0--subnet0" + resource_group = local.acl_synth_resource_group_id + vpc = local.acl_synth_test-vpc0_id + # Internal. required-connections[0]: (segment instanceSegment)->(segment instanceSegment); allowed-protocols[0] + rules { + name = "rule0" + action = "allow" + direction = "outbound" + source = "10.240.0.0/24" + destination = "10.240.4.0/24" + udp { + port_min = 53 + port_max = 54 + } + } + # Internal. required-connections[0]: (segment instanceSegment)->(segment instanceSegment); allowed-protocols[0] + rules { + name = "rule1" + action = "allow" + direction = "inbound" + source = "10.240.4.0/24" + destination = "10.240.0.0/24" + udp { + port_min = 53 + port_max = 54 + } + } + # Internal. required-connections[2]: (segment instanceSegment)->(segment nifSegment); allowed-protocols[0] + rules { + name = "rule2" + action = "allow" + direction = "outbound" + source = "10.240.0.0/24" + destination = "10.240.5.0/24" + } + # Internal. response to required-connections[2]: (segment instanceSegment)->(segment nifSegment); allowed-protocols[0] + rules { + name = "rule3" + action = "allow" + direction = "inbound" + source = "10.240.5.0/24" + destination = "10.240.0.0/24" + } + # Internal. required-connections[2]: (segment instanceSegment)->(segment nifSegment); allowed-protocols[0] + rules { + name = "rule4" + action = "allow" + direction = "outbound" + source = "10.240.0.0/24" + destination = "10.240.192.0/24" + } + # Internal. response to required-connections[2]: (segment instanceSegment)->(segment nifSegment); allowed-protocols[0] + rules { + name = "rule5" + action = "allow" + direction = "inbound" + source = "10.240.192.0/24" + destination = "10.240.0.0/24" + } +} + +# test-vpc0/subnet1 [10.240.1.0/24] +resource "ibm_is_network_acl" "acl-test-vpc0--subnet1" { + name = "acl-test-vpc0--subnet1" + resource_group = local.acl_synth_resource_group_id + vpc = local.acl_synth_test-vpc0_id + # Deny all communication; subnet test-vpc0/subnet1[10.240.1.0/24] does not have required connections + rules { + name = "rule0" + action = "deny" + direction = "inbound" + source = "0.0.0.0/0" + destination = "10.240.1.0/24" + } + # Deny all communication; subnet test-vpc0/subnet1[10.240.1.0/24] does not have required connections + rules { + name = "rule1" + action = "deny" + direction = "outbound" + source = "10.240.1.0/24" + destination = "0.0.0.0/0" + } +} + +# test-vpc0/subnet2 [10.240.4.0/24] +resource "ibm_is_network_acl" "acl-test-vpc0--subnet2" { + name = "acl-test-vpc0--subnet2" + resource_group = local.acl_synth_resource_group_id + vpc = local.acl_synth_test-vpc0_id + # Internal. required-connections[0]: (segment instanceSegment)->(segment instanceSegment); allowed-protocols[0] + rules { + name = "rule0" + action = "allow" + direction = "outbound" + source = "10.240.4.0/24" + destination = "10.240.0.0/24" + udp { + port_min = 53 + port_max = 54 + } + } + # Internal. required-connections[0]: (segment instanceSegment)->(segment instanceSegment); allowed-protocols[0] + rules { + name = "rule1" + action = "allow" + direction = "inbound" + source = "10.240.0.0/24" + destination = "10.240.4.0/24" + udp { + port_min = 53 + port_max = 54 + } + } + # Internal. required-connections[2]: (segment instanceSegment)->(segment nifSegment); allowed-protocols[0] + rules { + name = "rule2" + action = "allow" + direction = "outbound" + source = "10.240.4.0/24" + destination = "10.240.5.0/24" + } + # Internal. response to required-connections[2]: (segment instanceSegment)->(segment nifSegment); allowed-protocols[0] + rules { + name = "rule3" + action = "allow" + direction = "inbound" + source = "10.240.5.0/24" + destination = "10.240.4.0/24" + } + # Internal. required-connections[2]: (segment instanceSegment)->(segment nifSegment); allowed-protocols[0] + rules { + name = "rule4" + action = "allow" + direction = "outbound" + source = "10.240.4.0/24" + destination = "10.240.192.0/24" + } + # Internal. response to required-connections[2]: (segment instanceSegment)->(segment nifSegment); allowed-protocols[0] + rules { + name = "rule5" + action = "allow" + direction = "inbound" + source = "10.240.192.0/24" + destination = "10.240.4.0/24" + } +} + +# test-vpc0/subnet3 [10.240.5.0/24] +resource "ibm_is_network_acl" "acl-test-vpc0--subnet3" { + name = "acl-test-vpc0--subnet3" + resource_group = local.acl_synth_resource_group_id + vpc = local.acl_synth_test-vpc0_id + # Internal. required-connections[1]: (segment nifSegment)->(segment nifSegment); allowed-protocols[0] + rules { + name = "rule0" + action = "allow" + direction = "outbound" + source = "10.240.5.0/24" + destination = "10.240.192.0/24" + } + # Internal. response to required-connections[1]: (segment nifSegment)->(segment nifSegment); allowed-protocols[0] + rules { + name = "rule1" + action = "allow" + direction = "inbound" + source = "10.240.192.0/24" + destination = "10.240.5.0/24" + } + # Internal. required-connections[2]: (segment instanceSegment)->(segment nifSegment); allowed-protocols[0] + rules { + name = "rule2" + action = "allow" + direction = "inbound" + source = "10.240.0.0/24" + destination = "10.240.5.0/24" + } + # Internal. response to required-connections[2]: (segment instanceSegment)->(segment nifSegment); allowed-protocols[0] + rules { + name = "rule3" + action = "allow" + direction = "outbound" + source = "10.240.5.0/24" + destination = "10.240.0.0/24" + } + # Internal. required-connections[2]: (segment instanceSegment)->(segment nifSegment); allowed-protocols[0] + rules { + name = "rule4" + action = "allow" + direction = "inbound" + source = "10.240.4.0/24" + destination = "10.240.5.0/24" + } + # Internal. response to required-connections[2]: (segment instanceSegment)->(segment nifSegment); allowed-protocols[0] + rules { + name = "rule5" + action = "allow" + direction = "outbound" + source = "10.240.5.0/24" + destination = "10.240.4.0/24" + } +} + +# test-vpc0/subnet4 [10.240.8.0/24] +resource "ibm_is_network_acl" "acl-test-vpc0--subnet4" { + name = "acl-test-vpc0--subnet4" + resource_group = local.acl_synth_resource_group_id + vpc = local.acl_synth_test-vpc0_id + # Deny all communication; subnet test-vpc0/subnet4[10.240.8.0/24] does not have required connections + rules { + name = "rule0" + action = "deny" + direction = "inbound" + source = "0.0.0.0/0" + destination = "10.240.8.0/24" + } + # Deny all communication; subnet test-vpc0/subnet4[10.240.8.0/24] does not have required connections + rules { + name = "rule1" + action = "deny" + direction = "outbound" + source = "10.240.8.0/24" + destination = "0.0.0.0/0" + } +} + +# test-vpc0/subnet5 [10.240.9.0/24] +resource "ibm_is_network_acl" "acl-test-vpc0--subnet5" { + name = "acl-test-vpc0--subnet5" + resource_group = local.acl_synth_resource_group_id + vpc = local.acl_synth_test-vpc0_id + # Deny all communication; subnet test-vpc0/subnet5[10.240.9.0/24] does not have required connections + rules { + name = "rule0" + action = "deny" + direction = "inbound" + source = "0.0.0.0/0" + destination = "10.240.9.0/24" + } + # Deny all communication; subnet test-vpc0/subnet5[10.240.9.0/24] does not have required connections + rules { + name = "rule1" + action = "deny" + direction = "outbound" + source = "10.240.9.0/24" + destination = "0.0.0.0/0" + } +} + +# test-vpc1/subnet10 [10.240.64.0/24] +resource "ibm_is_network_acl" "acl-test-vpc1--subnet10" { + name = "acl-test-vpc1--subnet10" + resource_group = local.acl_synth_resource_group_id + vpc = local.acl_synth_test-vpc1_id + # Deny all communication; subnet test-vpc1/subnet10[10.240.64.0/24] does not have required connections + rules { + name = "rule0" + action = "deny" + direction = "inbound" + source = "0.0.0.0/0" + destination = "10.240.64.0/24" + } + # Deny all communication; subnet test-vpc1/subnet10[10.240.64.0/24] does not have required connections + rules { + name = "rule1" + action = "deny" + direction = "outbound" + source = "10.240.64.0/24" + destination = "0.0.0.0/0" + } +} + +# test-vpc1/subnet11 [10.240.80.0/24] +resource "ibm_is_network_acl" "acl-test-vpc1--subnet11" { + name = "acl-test-vpc1--subnet11" + resource_group = local.acl_synth_resource_group_id + vpc = local.acl_synth_test-vpc1_id + # Deny all communication; subnet test-vpc1/subnet11[10.240.80.0/24] does not have required connections + rules { + name = "rule0" + action = "deny" + direction = "inbound" + source = "0.0.0.0/0" + destination = "10.240.80.0/24" + } + # Deny all communication; subnet test-vpc1/subnet11[10.240.80.0/24] does not have required connections + rules { + name = "rule1" + action = "deny" + direction = "outbound" + source = "10.240.80.0/24" + destination = "0.0.0.0/0" + } +} + +# test-vpc2/subnet20 [10.240.128.0/24] +resource "ibm_is_network_acl" "acl-test-vpc2--subnet20" { + name = "acl-test-vpc2--subnet20" + resource_group = local.acl_synth_resource_group_id + vpc = local.acl_synth_test-vpc2_id + # Deny all communication; subnet test-vpc2/subnet20[10.240.128.0/24] does not have required connections + rules { + name = "rule0" + action = "deny" + direction = "inbound" + source = "0.0.0.0/0" + destination = "10.240.128.0/24" + } + # Deny all communication; subnet test-vpc2/subnet20[10.240.128.0/24] does not have required connections + rules { + name = "rule1" + action = "deny" + direction = "outbound" + source = "10.240.128.0/24" + destination = "0.0.0.0/0" + } +} + +# test-vpc3/subnet30 [10.240.192.0/24] +resource "ibm_is_network_acl" "acl-test-vpc3--subnet30" { + name = "acl-test-vpc3--subnet30" + resource_group = local.acl_synth_resource_group_id + vpc = local.acl_synth_test-vpc3_id + # Internal. required-connections[1]: (segment nifSegment)->(segment nifSegment); allowed-protocols[0] + rules { + name = "rule0" + action = "allow" + direction = "outbound" + source = "10.240.192.0/24" + destination = "10.240.5.0/24" + } + # Internal. response to required-connections[1]: (segment nifSegment)->(segment nifSegment); allowed-protocols[0] + rules { + name = "rule1" + action = "allow" + direction = "inbound" + source = "10.240.5.0/24" + destination = "10.240.192.0/24" + } + # Internal. required-connections[2]: (segment instanceSegment)->(segment nifSegment); allowed-protocols[0] + rules { + name = "rule2" + action = "allow" + direction = "inbound" + source = "10.240.0.0/24" + destination = "10.240.192.0/24" + } + # Internal. response to required-connections[2]: (segment instanceSegment)->(segment nifSegment); allowed-protocols[0] + rules { + name = "rule3" + action = "allow" + direction = "outbound" + source = "10.240.192.0/24" + destination = "10.240.0.0/24" + } + # Internal. required-connections[2]: (segment instanceSegment)->(segment nifSegment); allowed-protocols[0] + rules { + name = "rule4" + action = "allow" + direction = "inbound" + source = "10.240.4.0/24" + destination = "10.240.192.0/24" + } + # Internal. response to required-connections[2]: (segment instanceSegment)->(segment nifSegment); allowed-protocols[0] + rules { + name = "rule5" + action = "allow" + direction = "outbound" + source = "10.240.192.0/24" + destination = "10.240.4.0/24" + } +} diff --git a/test/expected/acl_segments_tf/nacl_expected.tf b/test/expected/acl_subnet_cidr_segments_tf/nacl_expected.tf similarity index 100% rename from test/expected/acl_segments_tf/nacl_expected.tf rename to test/expected/acl_subnet_cidr_segments_tf/nacl_expected.tf index a781952b..ed48babf 100644 --- a/test/expected/acl_segments_tf/nacl_expected.tf +++ b/test/expected/acl_subnet_cidr_segments_tf/nacl_expected.tf @@ -195,17 +195,17 @@ resource "ibm_is_network_acl" "acl-testacl5-vpc--sub2-2" { rules { name = "rule2" action = "allow" - direction = "inbound" - source = "10.240.64.0/24" - destination = "10.240.65.0/24" + direction = "outbound" + source = "10.240.65.0/24" + destination = "10.240.64.0/24" } # Internal. response to required-connections[2]: (segment subnetSegment)->(segment subnetSegment); allowed-protocols[0] rules { name = "rule3" action = "allow" - direction = "outbound" - source = "10.240.65.0/24" - destination = "10.240.64.0/24" + direction = "inbound" + source = "10.240.64.0/24" + destination = "10.240.65.0/24" } } diff --git a/test/expected/acl_testing5_json/nacl_expected.json b/test/expected/acl_testing5_json/nacl_expected.json index 5fbdc8d5..1d5fddb5 100644 --- a/test/expected/acl_testing5_json/nacl_expected.json +++ b/test/expected/acl_testing5_json/nacl_expected.json @@ -2231,13 +2231,13 @@ "name": "rule1" }, "created_at": null, - "destination": "10.240.64.0/24", - "direction": "inbound", + "destination": "10.240.1.0/24", + "direction": "outbound", "href": "fake:href:61", "id": "fake:id:61", "ip_version": "ipv4", "name": "rule0", - "source": "10.240.1.0/24", + "source": "10.240.64.0/24", "protocol": "all" }, { @@ -2248,13 +2248,13 @@ "name": "rule2" }, "created_at": null, - "destination": "10.240.1.0/24", - "direction": "outbound", + "destination": "10.240.64.0/24", + "direction": "inbound", "href": "fake:href:60", "id": "fake:id:60", "ip_version": "ipv4", "name": "rule1", - "source": "10.240.64.0/24", + "source": "10.240.1.0/24", "protocol": "all" }, { diff --git a/test/expected/acl_testing5_json_single/nacl_single_expected.json b/test/expected/acl_testing5_json_single/nacl_single_expected.json index ffa98f09..2a54ad7a 100644 --- a/test/expected/acl_testing5_json_single/nacl_single_expected.json +++ b/test/expected/acl_testing5_json_single/nacl_single_expected.json @@ -1648,13 +1648,13 @@ "name": "rule3" }, "created_at": null, - "destination": "10.240.64.0/24", - "direction": "inbound", + "destination": "10.240.1.0/24", + "direction": "outbound", "href": "fake:href:51", "id": "fake:id:51", "ip_version": "ipv4", "name": "rule2", - "source": "10.240.1.0/24", + "source": "10.240.64.0/24", "protocol": "all" }, { @@ -1665,13 +1665,13 @@ "name": "rule4" }, "created_at": null, - "destination": "10.240.1.0/24", - "direction": "outbound", + "destination": "10.240.64.0/24", + "direction": "inbound", "href": "fake:href:50", "id": "fake:id:50", "ip_version": "ipv4", "name": "rule3", - "source": "10.240.64.0/24", + "source": "10.240.1.0/24", "protocol": "all" }, { @@ -1719,12 +1719,12 @@ }, "created_at": null, "destination": "10.240.128.0/24", - "direction": "inbound", + "direction": "outbound", "href": "fake:href:47", "id": "fake:id:47", "ip_version": "ipv4", "name": "rule6", - "source": "10.240.1.0/24", + "source": "10.240.64.0/24", "protocol": "icmp", "type": 0 }, @@ -1736,8 +1736,8 @@ "name": "rule8" }, "created_at": null, - "destination": "10.240.1.0/24", - "direction": "outbound", + "destination": "10.240.64.0/24", + "direction": "inbound", "href": "fake:href:46", "id": "fake:id:46", "ip_version": "ipv4", @@ -1755,12 +1755,12 @@ }, "created_at": null, "destination": "10.240.128.0/24", - "direction": "outbound", + "direction": "inbound", "href": "fake:href:45", "id": "fake:id:45", "ip_version": "ipv4", "name": "rule8", - "source": "10.240.64.0/24", + "source": "10.240.1.0/24", "protocol": "icmp", "type": 0 }, @@ -1772,8 +1772,8 @@ "name": "rule10" }, "created_at": null, - "destination": "10.240.64.0/24", - "direction": "inbound", + "destination": "10.240.1.0/24", + "direction": "outbound", "href": "fake:href:44", "id": "fake:id:44", "ip_version": "ipv4", diff --git a/test/expected/acl_testing5_tf/nacl_expected.tf b/test/expected/acl_testing5_tf/nacl_expected.tf index 69925897..d3bb9480 100644 --- a/test/expected/acl_testing5_tf/nacl_expected.tf +++ b/test/expected/acl_testing5_tf/nacl_expected.tf @@ -342,17 +342,17 @@ resource "ibm_is_network_acl" "acl-testacl5-vpc--sub2-1" { rules { name = "rule0" action = "allow" - direction = "inbound" - source = "10.240.1.0/24" - destination = "10.240.64.0/24" + direction = "outbound" + source = "10.240.64.0/24" + destination = "10.240.1.0/24" } # Internal. response to required-connections[0]: (segment need-dns)->(segment need-dns); allowed-protocols[0] rules { name = "rule1" action = "allow" - direction = "outbound" - source = "10.240.64.0/24" - destination = "10.240.1.0/24" + direction = "inbound" + source = "10.240.1.0/24" + destination = "10.240.64.0/24" } # Internal. required-connections[2]: (segment need-dns)->(subnet testacl5-vpc/sub3-1); allowed-protocols[0] rules { diff --git a/test/expected/acl_testing5_tf_single/nacl_single_expected.tf b/test/expected/acl_testing5_tf_single/nacl_single_expected.tf index 5e3a1e07..233f9a48 100644 --- a/test/expected/acl_testing5_tf_single/nacl_single_expected.tf +++ b/test/expected/acl_testing5_tf_single/nacl_single_expected.tf @@ -22,17 +22,17 @@ resource "ibm_is_network_acl" "acl-testacl5-vpc--singleACL" { rules { name = "rule2" action = "allow" - direction = "inbound" - source = "10.240.1.0/24" - destination = "10.240.64.0/24" + direction = "outbound" + source = "10.240.64.0/24" + destination = "10.240.1.0/24" } # Internal. response to required-connections[0]: (segment need-dns)->(segment need-dns); allowed-protocols[0] rules { name = "rule3" action = "allow" - direction = "outbound" - source = "10.240.64.0/24" - destination = "10.240.1.0/24" + direction = "inbound" + source = "10.240.1.0/24" + destination = "10.240.64.0/24" } # Internal. required-connections[2]: (segment need-dns)->(subnet testacl5-vpc/sub3-1); allowed-protocols[0] rules { @@ -60,8 +60,8 @@ resource "ibm_is_network_acl" "acl-testacl5-vpc--singleACL" { rules { name = "rule6" action = "allow" - direction = "inbound" - source = "10.240.1.0/24" + direction = "outbound" + source = "10.240.64.0/24" destination = "10.240.128.0/24" icmp { type = 0 @@ -71,9 +71,9 @@ resource "ibm_is_network_acl" "acl-testacl5-vpc--singleACL" { rules { name = "rule7" action = "allow" - direction = "outbound" + direction = "inbound" source = "10.240.128.0/24" - destination = "10.240.1.0/24" + destination = "10.240.64.0/24" icmp { type = 8 } @@ -82,8 +82,8 @@ resource "ibm_is_network_acl" "acl-testacl5-vpc--singleACL" { rules { name = "rule8" action = "allow" - direction = "outbound" - source = "10.240.64.0/24" + direction = "inbound" + source = "10.240.1.0/24" destination = "10.240.128.0/24" icmp { type = 0 @@ -93,9 +93,9 @@ resource "ibm_is_network_acl" "acl-testacl5-vpc--singleACL" { rules { name = "rule9" action = "allow" - direction = "inbound" + direction = "outbound" source = "10.240.128.0/24" - destination = "10.240.64.0/24" + destination = "10.240.1.0/24" icmp { type = 8 } diff --git a/test/expected/acl_tg_multiple_json/nacl_expected.json b/test/expected/acl_tg_multiple_json/nacl_expected.json index 717b2f43..65f2591f 100644 --- a/test/expected/acl_tg_multiple_json/nacl_expected.json +++ b/test/expected/acl_tg_multiple_json/nacl_expected.json @@ -2762,13 +2762,13 @@ "name": "rule1" }, "created_at": null, - "destination": "10.240.4.0/24", - "direction": "inbound", + "destination": "10.240.0.0/24", + "direction": "outbound", "href": "fake:href:16", "id": "fake:id:16", "ip_version": "ipv4", "name": "rule0", - "source": "10.240.0.0/24", + "source": "10.240.4.0/24", "protocol": "all" }, { @@ -2779,13 +2779,13 @@ "name": "rule2" }, "created_at": null, - "destination": "10.240.0.0/24", - "direction": "outbound", + "destination": "10.240.4.0/24", + "direction": "inbound", "href": "fake:href:15", "id": "fake:id:15", "ip_version": "ipv4", "name": "rule1", - "source": "10.240.4.0/24", + "source": "10.240.0.0/24", "protocol": "all" }, { diff --git a/test/expected/acl_tg_multiple_tf/nacl_expected.tf b/test/expected/acl_tg_multiple_tf/nacl_expected.tf index da72d490..fc11198a 100644 --- a/test/expected/acl_tg_multiple_tf/nacl_expected.tf +++ b/test/expected/acl_tg_multiple_tf/nacl_expected.tf @@ -65,17 +65,17 @@ resource "ibm_is_network_acl" "acl-test-vpc0--subnet2" { rules { name = "rule0" action = "allow" - direction = "inbound" - source = "10.240.0.0/24" - destination = "10.240.4.0/24" + direction = "outbound" + source = "10.240.4.0/24" + destination = "10.240.0.0/24" } # Internal. response to required-connections[0]: (segment segment1)->(segment segment1); allowed-protocols[0] rules { name = "rule1" action = "allow" - direction = "outbound" - source = "10.240.4.0/24" - destination = "10.240.0.0/24" + direction = "inbound" + source = "10.240.0.0/24" + destination = "10.240.4.0/24" } # Internal. required-connections[1]: (segment segment1)->(subnet test-vpc0/subnet3); allowed-protocols[0] rules { diff --git a/test/expected/acl_tg_multiple_tf_separate/test-vpc0.tf b/test/expected/acl_tg_multiple_tf_separate/test-vpc0.tf index f4076710..469cecc7 100644 --- a/test/expected/acl_tg_multiple_tf_separate/test-vpc0.tf +++ b/test/expected/acl_tg_multiple_tf_separate/test-vpc0.tf @@ -65,17 +65,17 @@ resource "ibm_is_network_acl" "acl-test-vpc0--subnet2" { rules { name = "rule0" action = "allow" - direction = "inbound" - source = "10.240.0.0/24" - destination = "10.240.4.0/24" + direction = "outbound" + source = "10.240.4.0/24" + destination = "10.240.0.0/24" } # Internal. response to required-connections[0]: (segment segment1)->(segment segment1); allowed-protocols[0] rules { name = "rule1" action = "allow" - direction = "outbound" - source = "10.240.4.0/24" - destination = "10.240.0.0/24" + direction = "inbound" + source = "10.240.0.0/24" + destination = "10.240.4.0/24" } # Internal. required-connections[1]: (segment segment1)->(subnet test-vpc0/subnet3); allowed-protocols[0] rules { diff --git a/test/expected/acl_vpe_tf/nacl_expected.tf b/test/expected/acl_vpe_tf/nacl_expected.tf new file mode 100644 index 00000000..7e4bc500 --- /dev/null +++ b/test/expected/acl_vpe_tf/nacl_expected.tf @@ -0,0 +1,404 @@ +# test-vpc/sub1 [10.240.0.0/24] +resource "ibm_is_network_acl" "acl-test-vpc--sub1" { + name = "acl-test-vpc--sub1" + resource_group = local.acl_synth_resource_group_id + vpc = local.acl_synth_test-vpc_id + # Internal. required-connections[1]: (vpe test-vpc/policydb-endpoint-gateway)->(subnet test-vpc/sub1); allowed-protocols[0] + rules { + name = "rule0" + action = "allow" + direction = "inbound" + source = "10.240.64.0/24" + destination = "10.240.0.0/24" + } + # Internal. response to required-connections[1]: (vpe test-vpc/policydb-endpoint-gateway)->(subnet test-vpc/sub1); allowed-protocols[0] + rules { + name = "rule1" + action = "allow" + direction = "outbound" + source = "10.240.0.0/24" + destination = "10.240.64.0/24" + } + # Internal. required-connections[1]: (vpe test-vpc/policydb-endpoint-gateway)->(subnet test-vpc/sub1); allowed-protocols[0] + rules { + name = "rule2" + action = "allow" + direction = "inbound" + source = "10.240.128.0/24" + destination = "10.240.0.0/24" + } + # Internal. response to required-connections[1]: (vpe test-vpc/policydb-endpoint-gateway)->(subnet test-vpc/sub1); allowed-protocols[0] + rules { + name = "rule3" + action = "allow" + direction = "outbound" + source = "10.240.0.0/24" + destination = "10.240.128.0/24" + } + # Deny other internal communication; see rfc1918#3; item 0,0 + rules { + name = "rule4" + action = "deny" + direction = "outbound" + source = "10.0.0.0/8" + destination = "10.0.0.0/8" + } + # Deny other internal communication; see rfc1918#3; item 0,0 + rules { + name = "rule5" + action = "deny" + direction = "inbound" + source = "10.0.0.0/8" + destination = "10.0.0.0/8" + } + # Deny other internal communication; see rfc1918#3; item 0,1 + rules { + name = "rule6" + action = "deny" + direction = "outbound" + source = "10.0.0.0/8" + destination = "172.16.0.0/12" + } + # Deny other internal communication; see rfc1918#3; item 0,1 + rules { + name = "rule7" + action = "deny" + direction = "inbound" + source = "172.16.0.0/12" + destination = "10.0.0.0/8" + } + # Deny other internal communication; see rfc1918#3; item 0,2 + rules { + name = "rule8" + action = "deny" + direction = "outbound" + source = "10.0.0.0/8" + destination = "192.168.0.0/16" + } + # Deny other internal communication; see rfc1918#3; item 0,2 + rules { + name = "rule9" + action = "deny" + direction = "inbound" + source = "192.168.0.0/16" + destination = "10.0.0.0/8" + } + # Deny other internal communication; see rfc1918#3; item 1,0 + rules { + name = "rule10" + action = "deny" + direction = "outbound" + source = "172.16.0.0/12" + destination = "10.0.0.0/8" + } + # Deny other internal communication; see rfc1918#3; item 1,0 + rules { + name = "rule11" + action = "deny" + direction = "inbound" + source = "10.0.0.0/8" + destination = "172.16.0.0/12" + } + # Deny other internal communication; see rfc1918#3; item 1,1 + rules { + name = "rule12" + action = "deny" + direction = "outbound" + source = "172.16.0.0/12" + destination = "172.16.0.0/12" + } + # Deny other internal communication; see rfc1918#3; item 1,1 + rules { + name = "rule13" + action = "deny" + direction = "inbound" + source = "172.16.0.0/12" + destination = "172.16.0.0/12" + } + # Deny other internal communication; see rfc1918#3; item 1,2 + rules { + name = "rule14" + action = "deny" + direction = "outbound" + source = "172.16.0.0/12" + destination = "192.168.0.0/16" + } + # Deny other internal communication; see rfc1918#3; item 1,2 + rules { + name = "rule15" + action = "deny" + direction = "inbound" + source = "192.168.0.0/16" + destination = "172.16.0.0/12" + } + # Deny other internal communication; see rfc1918#3; item 2,0 + rules { + name = "rule16" + action = "deny" + direction = "outbound" + source = "192.168.0.0/16" + destination = "10.0.0.0/8" + } + # Deny other internal communication; see rfc1918#3; item 2,0 + rules { + name = "rule17" + action = "deny" + direction = "inbound" + source = "10.0.0.0/8" + destination = "192.168.0.0/16" + } + # Deny other internal communication; see rfc1918#3; item 2,1 + rules { + name = "rule18" + action = "deny" + direction = "outbound" + source = "192.168.0.0/16" + destination = "172.16.0.0/12" + } + # Deny other internal communication; see rfc1918#3; item 2,1 + rules { + name = "rule19" + action = "deny" + direction = "inbound" + source = "172.16.0.0/12" + destination = "192.168.0.0/16" + } + # Deny other internal communication; see rfc1918#3; item 2,2 + rules { + name = "rule20" + action = "deny" + direction = "outbound" + source = "192.168.0.0/16" + destination = "192.168.0.0/16" + } + # Deny other internal communication; see rfc1918#3; item 2,2 + rules { + name = "rule21" + action = "deny" + direction = "inbound" + source = "192.168.0.0/16" + destination = "192.168.0.0/16" + } + # External. required-connections[0]: (external public internet)->(vpe test-vpc/appdata-endpoint-gateway); allowed-protocols[0] + rules { + name = "rule22" + action = "allow" + direction = "inbound" + source = "0.0.0.0/0" + destination = "10.240.0.0/24" + } + # External. response to required-connections[0]: (external public internet)->(vpe test-vpc/appdata-endpoint-gateway); allowed-protocols[0] + rules { + name = "rule23" + action = "allow" + direction = "outbound" + source = "10.240.0.0/24" + destination = "0.0.0.0/0" + } +} + +# test-vpc/sub2 [10.240.128.0/24] +resource "ibm_is_network_acl" "acl-test-vpc--sub2" { + name = "acl-test-vpc--sub2" + resource_group = local.acl_synth_resource_group_id + vpc = local.acl_synth_test-vpc_id + # Internal. required-connections[1]: (vpe test-vpc/policydb-endpoint-gateway)->(subnet test-vpc/sub1); allowed-protocols[0] + rules { + name = "rule0" + action = "allow" + direction = "outbound" + source = "10.240.128.0/24" + destination = "10.240.0.0/24" + } + # Internal. response to required-connections[1]: (vpe test-vpc/policydb-endpoint-gateway)->(subnet test-vpc/sub1); allowed-protocols[0] + rules { + name = "rule1" + action = "allow" + direction = "inbound" + source = "10.240.0.0/24" + destination = "10.240.128.0/24" + } + # Deny other internal communication; see rfc1918#3; item 0,0 + rules { + name = "rule2" + action = "deny" + direction = "outbound" + source = "10.0.0.0/8" + destination = "10.0.0.0/8" + } + # Deny other internal communication; see rfc1918#3; item 0,0 + rules { + name = "rule3" + action = "deny" + direction = "inbound" + source = "10.0.0.0/8" + destination = "10.0.0.0/8" + } + # Deny other internal communication; see rfc1918#3; item 0,1 + rules { + name = "rule4" + action = "deny" + direction = "outbound" + source = "10.0.0.0/8" + destination = "172.16.0.0/12" + } + # Deny other internal communication; see rfc1918#3; item 0,1 + rules { + name = "rule5" + action = "deny" + direction = "inbound" + source = "172.16.0.0/12" + destination = "10.0.0.0/8" + } + # Deny other internal communication; see rfc1918#3; item 0,2 + rules { + name = "rule6" + action = "deny" + direction = "outbound" + source = "10.0.0.0/8" + destination = "192.168.0.0/16" + } + # Deny other internal communication; see rfc1918#3; item 0,2 + rules { + name = "rule7" + action = "deny" + direction = "inbound" + source = "192.168.0.0/16" + destination = "10.0.0.0/8" + } + # Deny other internal communication; see rfc1918#3; item 1,0 + rules { + name = "rule8" + action = "deny" + direction = "outbound" + source = "172.16.0.0/12" + destination = "10.0.0.0/8" + } + # Deny other internal communication; see rfc1918#3; item 1,0 + rules { + name = "rule9" + action = "deny" + direction = "inbound" + source = "10.0.0.0/8" + destination = "172.16.0.0/12" + } + # Deny other internal communication; see rfc1918#3; item 1,1 + rules { + name = "rule10" + action = "deny" + direction = "outbound" + source = "172.16.0.0/12" + destination = "172.16.0.0/12" + } + # Deny other internal communication; see rfc1918#3; item 1,1 + rules { + name = "rule11" + action = "deny" + direction = "inbound" + source = "172.16.0.0/12" + destination = "172.16.0.0/12" + } + # Deny other internal communication; see rfc1918#3; item 1,2 + rules { + name = "rule12" + action = "deny" + direction = "outbound" + source = "172.16.0.0/12" + destination = "192.168.0.0/16" + } + # Deny other internal communication; see rfc1918#3; item 1,2 + rules { + name = "rule13" + action = "deny" + direction = "inbound" + source = "192.168.0.0/16" + destination = "172.16.0.0/12" + } + # Deny other internal communication; see rfc1918#3; item 2,0 + rules { + name = "rule14" + action = "deny" + direction = "outbound" + source = "192.168.0.0/16" + destination = "10.0.0.0/8" + } + # Deny other internal communication; see rfc1918#3; item 2,0 + rules { + name = "rule15" + action = "deny" + direction = "inbound" + source = "10.0.0.0/8" + destination = "192.168.0.0/16" + } + # Deny other internal communication; see rfc1918#3; item 2,1 + rules { + name = "rule16" + action = "deny" + direction = "outbound" + source = "192.168.0.0/16" + destination = "172.16.0.0/12" + } + # Deny other internal communication; see rfc1918#3; item 2,1 + rules { + name = "rule17" + action = "deny" + direction = "inbound" + source = "172.16.0.0/12" + destination = "192.168.0.0/16" + } + # Deny other internal communication; see rfc1918#3; item 2,2 + rules { + name = "rule18" + action = "deny" + direction = "outbound" + source = "192.168.0.0/16" + destination = "192.168.0.0/16" + } + # Deny other internal communication; see rfc1918#3; item 2,2 + rules { + name = "rule19" + action = "deny" + direction = "inbound" + source = "192.168.0.0/16" + destination = "192.168.0.0/16" + } + # External. required-connections[0]: (external public internet)->(vpe test-vpc/appdata-endpoint-gateway); allowed-protocols[0] + rules { + name = "rule20" + action = "allow" + direction = "inbound" + source = "0.0.0.0/0" + destination = "10.240.128.0/24" + } + # External. response to required-connections[0]: (external public internet)->(vpe test-vpc/appdata-endpoint-gateway); allowed-protocols[0] + rules { + name = "rule21" + action = "allow" + direction = "outbound" + source = "10.240.128.0/24" + destination = "0.0.0.0/0" + } +} + +# test-vpc/sub3 [10.240.64.0/24] +resource "ibm_is_network_acl" "acl-test-vpc--sub3" { + name = "acl-test-vpc--sub3" + resource_group = local.acl_synth_resource_group_id + vpc = local.acl_synth_test-vpc_id + # Internal. required-connections[1]: (vpe test-vpc/policydb-endpoint-gateway)->(subnet test-vpc/sub1); allowed-protocols[0] + rules { + name = "rule0" + action = "allow" + direction = "outbound" + source = "10.240.64.0/24" + destination = "10.240.0.0/24" + } + # Internal. response to required-connections[1]: (vpe test-vpc/policydb-endpoint-gateway)->(subnet test-vpc/sub1); allowed-protocols[0] + rules { + name = "rule1" + action = "allow" + direction = "inbound" + source = "10.240.0.0/24" + destination = "10.240.64.0/24" + } +} diff --git a/test/expected/sg_segments1_tf/sg_expected.tf b/test/expected/sg_segments1_tf/sg_expected.tf new file mode 100644 index 00000000..7e8c7c2d --- /dev/null +++ b/test/expected/sg_segments1_tf/sg_expected.tf @@ -0,0 +1,173 @@ +### SG attached to test-vpc0/vsi0-subnet0 +resource "ibm_is_security_group" "test-vpc0--vsi0-subnet0" { + name = "sg-test-vpc0--vsi0-subnet0" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc0_id +} +# Internal. required-connections[0]: (segment cidrSegment)->(segment cidrSegment); allowed-protocols[0] +resource "ibm_is_security_group_rule" "test-vpc0--vsi0-subnet0-0" { + group = ibm_is_security_group.test-vpc0--vsi0-subnet0.id + direction = "inbound" + remote = "10.240.0.0/23" +} +# Internal. required-connections[0]: (segment cidrSegment)->(segment cidrSegment); allowed-protocols[0] +resource "ibm_is_security_group_rule" "test-vpc0--vsi0-subnet0-1" { + group = ibm_is_security_group.test-vpc0--vsi0-subnet0.id + direction = "outbound" + remote = "10.240.0.0/23" +} + +### SG attached to test-vpc0/vsi0-subnet1 +resource "ibm_is_security_group" "test-vpc0--vsi0-subnet1" { + name = "sg-test-vpc0--vsi0-subnet1" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc0_id +} +# Internal. required-connections[0]: (segment cidrSegment)->(segment cidrSegment); allowed-protocols[0] +resource "ibm_is_security_group_rule" "test-vpc0--vsi0-subnet1-0" { + group = ibm_is_security_group.test-vpc0--vsi0-subnet1.id + direction = "inbound" + remote = "10.240.0.0/23" +} +# Internal. required-connections[0]: (segment cidrSegment)->(segment cidrSegment); allowed-protocols[0] +resource "ibm_is_security_group_rule" "test-vpc0--vsi0-subnet1-1" { + group = ibm_is_security_group.test-vpc0--vsi0-subnet1.id + direction = "outbound" + remote = "10.240.0.0/23" +} + +### SG attached to test-vpc0/vsi0-subnet2 +resource "ibm_is_security_group" "test-vpc0--vsi0-subnet2" { + name = "sg-test-vpc0--vsi0-subnet2" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc0_id +} + +### SG attached to test-vpc0/vsi0-subnet3 +resource "ibm_is_security_group" "test-vpc0--vsi0-subnet3" { + name = "sg-test-vpc0--vsi0-subnet3" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc0_id +} + +### SG attached to test-vpc0/vsi0-subnet4 +resource "ibm_is_security_group" "test-vpc0--vsi0-subnet4" { + name = "sg-test-vpc0--vsi0-subnet4" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc0_id +} + +### SG attached to test-vpc0/vsi0-subnet5 +resource "ibm_is_security_group" "test-vpc0--vsi0-subnet5" { + name = "sg-test-vpc0--vsi0-subnet5" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc0_id +} + +### SG attached to test-vpc0/vsi1-subnet0 +resource "ibm_is_security_group" "test-vpc0--vsi1-subnet0" { + name = "sg-test-vpc0--vsi1-subnet0" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc0_id +} +# Internal. required-connections[0]: (segment cidrSegment)->(segment cidrSegment); allowed-protocols[0] +resource "ibm_is_security_group_rule" "test-vpc0--vsi1-subnet0-0" { + group = ibm_is_security_group.test-vpc0--vsi1-subnet0.id + direction = "inbound" + remote = "10.240.0.0/23" +} +# Internal. required-connections[0]: (segment cidrSegment)->(segment cidrSegment); allowed-protocols[0] +resource "ibm_is_security_group_rule" "test-vpc0--vsi1-subnet0-1" { + group = ibm_is_security_group.test-vpc0--vsi1-subnet0.id + direction = "outbound" + remote = "10.240.0.0/23" +} + +### SG attached to test-vpc0/vsi1-subnet1 +resource "ibm_is_security_group" "test-vpc0--vsi1-subnet1" { + name = "sg-test-vpc0--vsi1-subnet1" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc0_id +} +# Internal. required-connections[0]: (segment cidrSegment)->(segment cidrSegment); allowed-protocols[0] +resource "ibm_is_security_group_rule" "test-vpc0--vsi1-subnet1-0" { + group = ibm_is_security_group.test-vpc0--vsi1-subnet1.id + direction = "inbound" + remote = "10.240.0.0/23" +} +# Internal. required-connections[0]: (segment cidrSegment)->(segment cidrSegment); allowed-protocols[0] +resource "ibm_is_security_group_rule" "test-vpc0--vsi1-subnet1-1" { + group = ibm_is_security_group.test-vpc0--vsi1-subnet1.id + direction = "outbound" + remote = "10.240.0.0/23" +} + +### SG attached to test-vpc0/vsi1-subnet2 +resource "ibm_is_security_group" "test-vpc0--vsi1-subnet2" { + name = "sg-test-vpc0--vsi1-subnet2" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc0_id +} + +### SG attached to test-vpc0/vsi1-subnet3 +resource "ibm_is_security_group" "test-vpc0--vsi1-subnet3" { + name = "sg-test-vpc0--vsi1-subnet3" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc0_id +} + +### SG attached to test-vpc0/vsi1-subnet4 +resource "ibm_is_security_group" "test-vpc0--vsi1-subnet4" { + name = "sg-test-vpc0--vsi1-subnet4" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc0_id +} + +### SG attached to test-vpc0/vsi1-subnet5 +resource "ibm_is_security_group" "test-vpc0--vsi1-subnet5" { + name = "sg-test-vpc0--vsi1-subnet5" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc0_id +} + +### SG attached to test-vpc1/vsi0-subnet10 +resource "ibm_is_security_group" "test-vpc1--vsi0-subnet10" { + name = "sg-test-vpc1--vsi0-subnet10" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc1_id +} + +### SG attached to test-vpc1/vsi0-subnet11 +resource "ibm_is_security_group" "test-vpc1--vsi0-subnet11" { + name = "sg-test-vpc1--vsi0-subnet11" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc1_id +} + +### SG attached to test-vpc2/vsi0-subnet20 +resource "ibm_is_security_group" "test-vpc2--vsi0-subnet20" { + name = "sg-test-vpc2--vsi0-subnet20" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc2_id +} + +### SG attached to test-vpc2/vsi1-subnet20 +resource "ibm_is_security_group" "test-vpc2--vsi1-subnet20" { + name = "sg-test-vpc2--vsi1-subnet20" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc2_id +} + +### SG attached to test-vpc2/vsi2-subnet20 +resource "ibm_is_security_group" "test-vpc2--vsi2-subnet20" { + name = "sg-test-vpc2--vsi2-subnet20" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc2_id +} + +### SG attached to test-vpc3/vsi0-subnet30 +resource "ibm_is_security_group" "test-vpc3--vsi0-subnet30" { + name = "sg-test-vpc3--vsi0-subnet30" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc3_id +} diff --git a/test/expected/sg_segments2_tf/sg_expected.tf b/test/expected/sg_segments2_tf/sg_expected.tf new file mode 100644 index 00000000..0ecc69d1 --- /dev/null +++ b/test/expected/sg_segments2_tf/sg_expected.tf @@ -0,0 +1,185 @@ +### SG attached to test-vpc0/vsi0-subnet0 +resource "ibm_is_security_group" "test-vpc0--vsi0-subnet0" { + name = "sg-test-vpc0--vsi0-subnet0" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc0_id +} +# Internal. required-connections[0]: (segment instanceSegment)->(segment cidrSegment); allowed-protocols[0] +resource "ibm_is_security_group_rule" "test-vpc0--vsi0-subnet0-0" { + group = ibm_is_security_group.test-vpc0--vsi0-subnet0.id + direction = "inbound" + remote = ibm_is_security_group.test-vpc1--vsi0-subnet11.id +} +# Internal. required-connections[0]: (segment instanceSegment)->(segment cidrSegment); allowed-protocols[0] +resource "ibm_is_security_group_rule" "test-vpc0--vsi0-subnet0-1" { + group = ibm_is_security_group.test-vpc0--vsi0-subnet0.id + direction = "inbound" + remote = ibm_is_security_group.test-vpc0--vsi0-subnet5.id +} + +### SG attached to test-vpc0/vsi0-subnet1 +resource "ibm_is_security_group" "test-vpc0--vsi0-subnet1" { + name = "sg-test-vpc0--vsi0-subnet1" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc0_id +} +# Internal. required-connections[0]: (segment instanceSegment)->(segment cidrSegment); allowed-protocols[0] +resource "ibm_is_security_group_rule" "test-vpc0--vsi0-subnet1-0" { + group = ibm_is_security_group.test-vpc0--vsi0-subnet1.id + direction = "inbound" + remote = ibm_is_security_group.test-vpc1--vsi0-subnet11.id +} +# Internal. required-connections[0]: (segment instanceSegment)->(segment cidrSegment); allowed-protocols[0] +resource "ibm_is_security_group_rule" "test-vpc0--vsi0-subnet1-1" { + group = ibm_is_security_group.test-vpc0--vsi0-subnet1.id + direction = "inbound" + remote = ibm_is_security_group.test-vpc0--vsi0-subnet5.id +} + +### SG attached to test-vpc0/vsi0-subnet2 +resource "ibm_is_security_group" "test-vpc0--vsi0-subnet2" { + name = "sg-test-vpc0--vsi0-subnet2" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc0_id +} + +### SG attached to test-vpc0/vsi0-subnet3 +resource "ibm_is_security_group" "test-vpc0--vsi0-subnet3" { + name = "sg-test-vpc0--vsi0-subnet3" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc0_id +} + +### SG attached to test-vpc0/vsi0-subnet4 +resource "ibm_is_security_group" "test-vpc0--vsi0-subnet4" { + name = "sg-test-vpc0--vsi0-subnet4" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc0_id +} + +### SG attached to test-vpc0/vsi0-subnet5 +resource "ibm_is_security_group" "test-vpc0--vsi0-subnet5" { + name = "sg-test-vpc0--vsi0-subnet5" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc0_id +} +# Internal. required-connections[0]: (segment instanceSegment)->(segment cidrSegment); allowed-protocols[0] +resource "ibm_is_security_group_rule" "test-vpc0--vsi0-subnet5-0" { + group = ibm_is_security_group.test-vpc0--vsi0-subnet5.id + direction = "outbound" + remote = "10.240.0.0/23" +} + +### SG attached to test-vpc0/vsi1-subnet0 +resource "ibm_is_security_group" "test-vpc0--vsi1-subnet0" { + name = "sg-test-vpc0--vsi1-subnet0" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc0_id +} +# Internal. required-connections[0]: (segment instanceSegment)->(segment cidrSegment); allowed-protocols[0] +resource "ibm_is_security_group_rule" "test-vpc0--vsi1-subnet0-0" { + group = ibm_is_security_group.test-vpc0--vsi1-subnet0.id + direction = "inbound" + remote = ibm_is_security_group.test-vpc1--vsi0-subnet11.id +} +# Internal. required-connections[0]: (segment instanceSegment)->(segment cidrSegment); allowed-protocols[0] +resource "ibm_is_security_group_rule" "test-vpc0--vsi1-subnet0-1" { + group = ibm_is_security_group.test-vpc0--vsi1-subnet0.id + direction = "inbound" + remote = ibm_is_security_group.test-vpc0--vsi0-subnet5.id +} + +### SG attached to test-vpc0/vsi1-subnet1 +resource "ibm_is_security_group" "test-vpc0--vsi1-subnet1" { + name = "sg-test-vpc0--vsi1-subnet1" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc0_id +} +# Internal. required-connections[0]: (segment instanceSegment)->(segment cidrSegment); allowed-protocols[0] +resource "ibm_is_security_group_rule" "test-vpc0--vsi1-subnet1-0" { + group = ibm_is_security_group.test-vpc0--vsi1-subnet1.id + direction = "inbound" + remote = ibm_is_security_group.test-vpc1--vsi0-subnet11.id +} +# Internal. required-connections[0]: (segment instanceSegment)->(segment cidrSegment); allowed-protocols[0] +resource "ibm_is_security_group_rule" "test-vpc0--vsi1-subnet1-1" { + group = ibm_is_security_group.test-vpc0--vsi1-subnet1.id + direction = "inbound" + remote = ibm_is_security_group.test-vpc0--vsi0-subnet5.id +} + +### SG attached to test-vpc0/vsi1-subnet2 +resource "ibm_is_security_group" "test-vpc0--vsi1-subnet2" { + name = "sg-test-vpc0--vsi1-subnet2" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc0_id +} + +### SG attached to test-vpc0/vsi1-subnet3 +resource "ibm_is_security_group" "test-vpc0--vsi1-subnet3" { + name = "sg-test-vpc0--vsi1-subnet3" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc0_id +} + +### SG attached to test-vpc0/vsi1-subnet4 +resource "ibm_is_security_group" "test-vpc0--vsi1-subnet4" { + name = "sg-test-vpc0--vsi1-subnet4" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc0_id +} + +### SG attached to test-vpc0/vsi1-subnet5 +resource "ibm_is_security_group" "test-vpc0--vsi1-subnet5" { + name = "sg-test-vpc0--vsi1-subnet5" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc0_id +} + +### SG attached to test-vpc1/vsi0-subnet10 +resource "ibm_is_security_group" "test-vpc1--vsi0-subnet10" { + name = "sg-test-vpc1--vsi0-subnet10" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc1_id +} + +### SG attached to test-vpc1/vsi0-subnet11 +resource "ibm_is_security_group" "test-vpc1--vsi0-subnet11" { + name = "sg-test-vpc1--vsi0-subnet11" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc1_id +} +# Internal. required-connections[0]: (segment instanceSegment)->(segment cidrSegment); allowed-protocols[0] +resource "ibm_is_security_group_rule" "test-vpc1--vsi0-subnet11-0" { + group = ibm_is_security_group.test-vpc1--vsi0-subnet11.id + direction = "outbound" + remote = "10.240.0.0/23" +} + +### SG attached to test-vpc2/vsi0-subnet20 +resource "ibm_is_security_group" "test-vpc2--vsi0-subnet20" { + name = "sg-test-vpc2--vsi0-subnet20" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc2_id +} + +### SG attached to test-vpc2/vsi1-subnet20 +resource "ibm_is_security_group" "test-vpc2--vsi1-subnet20" { + name = "sg-test-vpc2--vsi1-subnet20" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc2_id +} + +### SG attached to test-vpc2/vsi2-subnet20 +resource "ibm_is_security_group" "test-vpc2--vsi2-subnet20" { + name = "sg-test-vpc2--vsi2-subnet20" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc2_id +} + +### SG attached to test-vpc3/vsi0-subnet30 +resource "ibm_is_security_group" "test-vpc3--vsi0-subnet30" { + name = "sg-test-vpc3--vsi0-subnet30" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc3_id +} diff --git a/test/expected/sg_segments3_tf/sg_expected.tf b/test/expected/sg_segments3_tf/sg_expected.tf new file mode 100644 index 00000000..a14bcf10 --- /dev/null +++ b/test/expected/sg_segments3_tf/sg_expected.tf @@ -0,0 +1,197 @@ +### SG attached to test-vpc0/vsi0-subnet0 +resource "ibm_is_security_group" "test-vpc0--vsi0-subnet0" { + name = "sg-test-vpc0--vsi0-subnet0" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc0_id +} + +### SG attached to test-vpc0/vsi0-subnet1 +resource "ibm_is_security_group" "test-vpc0--vsi0-subnet1" { + name = "sg-test-vpc0--vsi0-subnet1" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc0_id +} + +### SG attached to test-vpc0/vsi0-subnet2 +resource "ibm_is_security_group" "test-vpc0--vsi0-subnet2" { + name = "sg-test-vpc0--vsi0-subnet2" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc0_id +} + +### SG attached to test-vpc0/vsi0-subnet3 +resource "ibm_is_security_group" "test-vpc0--vsi0-subnet3" { + name = "sg-test-vpc0--vsi0-subnet3" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc0_id +} + +### SG attached to test-vpc0/vsi0-subnet4 +resource "ibm_is_security_group" "test-vpc0--vsi0-subnet4" { + name = "sg-test-vpc0--vsi0-subnet4" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc0_id +} +# Internal. required-connections[0]: (segment subnetSegment)->(segment nifSegment); allowed-protocols[0] +resource "ibm_is_security_group_rule" "test-vpc0--vsi0-subnet4-0" { + group = ibm_is_security_group.test-vpc0--vsi0-subnet4.id + direction = "inbound" + remote = "10.240.64.0/24" +} +# Internal. required-connections[0]: (segment subnetSegment)->(segment nifSegment); allowed-protocols[0] +resource "ibm_is_security_group_rule" "test-vpc0--vsi0-subnet4-1" { + group = ibm_is_security_group.test-vpc0--vsi0-subnet4.id + direction = "inbound" + remote = "10.240.128.0/24" +} + +### SG attached to test-vpc0/vsi0-subnet5 +resource "ibm_is_security_group" "test-vpc0--vsi0-subnet5" { + name = "sg-test-vpc0--vsi0-subnet5" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc0_id +} + +### SG attached to test-vpc0/vsi1-subnet0 +resource "ibm_is_security_group" "test-vpc0--vsi1-subnet0" { + name = "sg-test-vpc0--vsi1-subnet0" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc0_id +} + +### SG attached to test-vpc0/vsi1-subnet1 +resource "ibm_is_security_group" "test-vpc0--vsi1-subnet1" { + name = "sg-test-vpc0--vsi1-subnet1" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc0_id +} + +### SG attached to test-vpc0/vsi1-subnet2 +resource "ibm_is_security_group" "test-vpc0--vsi1-subnet2" { + name = "sg-test-vpc0--vsi1-subnet2" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc0_id +} + +### SG attached to test-vpc0/vsi1-subnet3 +resource "ibm_is_security_group" "test-vpc0--vsi1-subnet3" { + name = "sg-test-vpc0--vsi1-subnet3" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc0_id +} + +### SG attached to test-vpc0/vsi1-subnet4 +resource "ibm_is_security_group" "test-vpc0--vsi1-subnet4" { + name = "sg-test-vpc0--vsi1-subnet4" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc0_id +} + +### SG attached to test-vpc0/vsi1-subnet5 +resource "ibm_is_security_group" "test-vpc0--vsi1-subnet5" { + name = "sg-test-vpc0--vsi1-subnet5" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc0_id +} +# Internal. required-connections[0]: (segment subnetSegment)->(segment nifSegment); allowed-protocols[0] +resource "ibm_is_security_group_rule" "test-vpc0--vsi1-subnet5-0" { + group = ibm_is_security_group.test-vpc0--vsi1-subnet5.id + direction = "inbound" + remote = "10.240.64.0/24" +} +# Internal. required-connections[0]: (segment subnetSegment)->(segment nifSegment); allowed-protocols[0] +resource "ibm_is_security_group_rule" "test-vpc0--vsi1-subnet5-1" { + group = ibm_is_security_group.test-vpc0--vsi1-subnet5.id + direction = "inbound" + remote = "10.240.128.0/24" +} + +### SG attached to test-vpc1/vsi0-subnet10 +resource "ibm_is_security_group" "test-vpc1--vsi0-subnet10" { + name = "sg-test-vpc1--vsi0-subnet10" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc1_id +} +# Internal. required-connections[0]: (segment subnetSegment)->(segment nifSegment); allowed-protocols[0] +resource "ibm_is_security_group_rule" "test-vpc1--vsi0-subnet10-0" { + group = ibm_is_security_group.test-vpc1--vsi0-subnet10.id + direction = "outbound" + remote = ibm_is_security_group.test-vpc0--vsi0-subnet4.id +} +# Internal. required-connections[0]: (segment subnetSegment)->(segment nifSegment); allowed-protocols[0] +resource "ibm_is_security_group_rule" "test-vpc1--vsi0-subnet10-1" { + group = ibm_is_security_group.test-vpc1--vsi0-subnet10.id + direction = "outbound" + remote = ibm_is_security_group.test-vpc0--vsi1-subnet5.id +} + +### SG attached to test-vpc1/vsi0-subnet11 +resource "ibm_is_security_group" "test-vpc1--vsi0-subnet11" { + name = "sg-test-vpc1--vsi0-subnet11" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc1_id +} + +### SG attached to test-vpc2/vsi0-subnet20 +resource "ibm_is_security_group" "test-vpc2--vsi0-subnet20" { + name = "sg-test-vpc2--vsi0-subnet20" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc2_id +} +# Internal. required-connections[0]: (segment subnetSegment)->(segment nifSegment); allowed-protocols[0] +resource "ibm_is_security_group_rule" "test-vpc2--vsi0-subnet20-0" { + group = ibm_is_security_group.test-vpc2--vsi0-subnet20.id + direction = "outbound" + remote = ibm_is_security_group.test-vpc0--vsi0-subnet4.id +} +# Internal. required-connections[0]: (segment subnetSegment)->(segment nifSegment); allowed-protocols[0] +resource "ibm_is_security_group_rule" "test-vpc2--vsi0-subnet20-1" { + group = ibm_is_security_group.test-vpc2--vsi0-subnet20.id + direction = "outbound" + remote = ibm_is_security_group.test-vpc0--vsi1-subnet5.id +} + +### SG attached to test-vpc2/vsi1-subnet20 +resource "ibm_is_security_group" "test-vpc2--vsi1-subnet20" { + name = "sg-test-vpc2--vsi1-subnet20" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc2_id +} +# Internal. required-connections[0]: (segment subnetSegment)->(segment nifSegment); allowed-protocols[0] +resource "ibm_is_security_group_rule" "test-vpc2--vsi1-subnet20-0" { + group = ibm_is_security_group.test-vpc2--vsi1-subnet20.id + direction = "outbound" + remote = ibm_is_security_group.test-vpc0--vsi0-subnet4.id +} +# Internal. required-connections[0]: (segment subnetSegment)->(segment nifSegment); allowed-protocols[0] +resource "ibm_is_security_group_rule" "test-vpc2--vsi1-subnet20-1" { + group = ibm_is_security_group.test-vpc2--vsi1-subnet20.id + direction = "outbound" + remote = ibm_is_security_group.test-vpc0--vsi1-subnet5.id +} + +### SG attached to test-vpc2/vsi2-subnet20 +resource "ibm_is_security_group" "test-vpc2--vsi2-subnet20" { + name = "sg-test-vpc2--vsi2-subnet20" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc2_id +} +# Internal. required-connections[0]: (segment subnetSegment)->(segment nifSegment); allowed-protocols[0] +resource "ibm_is_security_group_rule" "test-vpc2--vsi2-subnet20-0" { + group = ibm_is_security_group.test-vpc2--vsi2-subnet20.id + direction = "outbound" + remote = ibm_is_security_group.test-vpc0--vsi0-subnet4.id +} +# Internal. required-connections[0]: (segment subnetSegment)->(segment nifSegment); allowed-protocols[0] +resource "ibm_is_security_group_rule" "test-vpc2--vsi2-subnet20-1" { + group = ibm_is_security_group.test-vpc2--vsi2-subnet20.id + direction = "outbound" + remote = ibm_is_security_group.test-vpc0--vsi1-subnet5.id +} + +### SG attached to test-vpc3/vsi0-subnet30 +resource "ibm_is_security_group" "test-vpc3--vsi0-subnet30" { + name = "sg-test-vpc3--vsi0-subnet30" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc3_id +} diff --git a/test/expected/sg_segments4_tf/sg_expected.tf b/test/expected/sg_segments4_tf/sg_expected.tf new file mode 100644 index 00000000..07166fff --- /dev/null +++ b/test/expected/sg_segments4_tf/sg_expected.tf @@ -0,0 +1,89 @@ +### SG attached to test-vpc/appdata-endpoint-gateway +resource "ibm_is_security_group" "test-vpc--appdata-endpoint-gateway" { + name = "sg-test-vpc--appdata-endpoint-gateway" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc_id +} +# Internal. required-connections[0]: (segment vpeSegment)->(segment instanceSegment); allowed-protocols[0] +resource "ibm_is_security_group_rule" "test-vpc--appdata-endpoint-gateway-0" { + group = ibm_is_security_group.test-vpc--appdata-endpoint-gateway.id + direction = "outbound" + remote = ibm_is_security_group.test-vpc--fe.id +} +# Internal. required-connections[0]: (segment vpeSegment)->(segment instanceSegment); allowed-protocols[0] +resource "ibm_is_security_group_rule" "test-vpc--appdata-endpoint-gateway-1" { + group = ibm_is_security_group.test-vpc--appdata-endpoint-gateway.id + direction = "outbound" + remote = ibm_is_security_group.test-vpc--be.id +} + +### SG attached to test-vpc/be +resource "ibm_is_security_group" "test-vpc--be" { + name = "sg-test-vpc--be" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc_id +} +# Internal. required-connections[0]: (segment vpeSegment)->(segment instanceSegment); allowed-protocols[0] +resource "ibm_is_security_group_rule" "test-vpc--be-0" { + group = ibm_is_security_group.test-vpc--be.id + direction = "inbound" + remote = ibm_is_security_group.test-vpc--appdata-endpoint-gateway.id +} +# Internal. required-connections[0]: (segment vpeSegment)->(segment instanceSegment); allowed-protocols[0] +resource "ibm_is_security_group_rule" "test-vpc--be-1" { + group = ibm_is_security_group.test-vpc--be.id + direction = "inbound" + remote = ibm_is_security_group.test-vpc--policydb-endpoint-gateway.id +} + +### SG attached to test-vpc/fe +resource "ibm_is_security_group" "test-vpc--fe" { + name = "sg-test-vpc--fe" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc_id +} +# Internal. required-connections[0]: (segment vpeSegment)->(segment instanceSegment); allowed-protocols[0] +resource "ibm_is_security_group_rule" "test-vpc--fe-0" { + group = ibm_is_security_group.test-vpc--fe.id + direction = "inbound" + remote = ibm_is_security_group.test-vpc--appdata-endpoint-gateway.id +} +# Internal. required-connections[0]: (segment vpeSegment)->(segment instanceSegment); allowed-protocols[0] +resource "ibm_is_security_group_rule" "test-vpc--fe-1" { + group = ibm_is_security_group.test-vpc--fe.id + direction = "inbound" + remote = ibm_is_security_group.test-vpc--policydb-endpoint-gateway.id +} + +### SG attached to test-vpc/opa +resource "ibm_is_security_group" "test-vpc--opa" { + name = "sg-test-vpc--opa" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc_id +} + +### SG attached to test-vpc/policydb-endpoint-gateway +resource "ibm_is_security_group" "test-vpc--policydb-endpoint-gateway" { + name = "sg-test-vpc--policydb-endpoint-gateway" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc_id +} +# Internal. required-connections[0]: (segment vpeSegment)->(segment instanceSegment); allowed-protocols[0] +resource "ibm_is_security_group_rule" "test-vpc--policydb-endpoint-gateway-0" { + group = ibm_is_security_group.test-vpc--policydb-endpoint-gateway.id + direction = "outbound" + remote = ibm_is_security_group.test-vpc--fe.id +} +# Internal. required-connections[0]: (segment vpeSegment)->(segment instanceSegment); allowed-protocols[0] +resource "ibm_is_security_group_rule" "test-vpc--policydb-endpoint-gateway-1" { + group = ibm_is_security_group.test-vpc--policydb-endpoint-gateway.id + direction = "outbound" + remote = ibm_is_security_group.test-vpc--be.id +} + +### SG attached to test-vpc/proxy +resource "ibm_is_security_group" "test-vpc--proxy" { + name = "sg-test-vpc--proxy" + resource_group = local.sg_synth_resource_group_id + vpc = local.sg_synth_test-vpc_id +} diff --git a/test/main_test.go b/test/main_test.go index e971d82f..e8473908 100644 --- a/test/main_test.go +++ b/test/main_test.go @@ -14,7 +14,12 @@ import ( "github.com/np-guard/vpc-network-config-synthesis/cmd/subcmds" ) +// comment lines 18-20 and uncomment `update_test.go` file to update all test outputs func TestMain(t *testing.T) { + testMain(t) +} + +func testMain(t *testing.T) { for _, tt := range allMainTests() { t.Run(tt.testName, func(t *testing.T) { // create a sub folder diff --git a/test/synth_test_list.go b/test/synth_test_list.go index d8e37147..cf49b8f2 100644 --- a/test/synth_test_list.go +++ b/test/synth_test_list.go @@ -6,32 +6,26 @@ SPDX-License-Identifier: Apache-2.0 package test const ( - aclExtenalsConfig = "%s/acl_externals/config_object.json" - aclExternalsSpec = "%s/acl_externals/conn_spec.json" - - aclNifConfig = "%s/acl_nif/config_object.json" - aclNifSpec = "%s/acl_nif/conn_spec.json" - - aclProtocolsConfig = "%s/acl_protocols/config_object.json" - aclProtocolsSpec = "%s/acl_protocols/conn_spec.json" - - aclSegmentsConfig = "%s/acl_segments/config_object.json" - aclSegmentsSpec = "%s/acl_segments/conn_spec.json" - + tgMultipleConfig = "%s/tg_multiple/config_object.json" + sgTesting3Config = "%s/sg_testing3/config_object.json" + aclTesting4Config = "%s/acl_testing4/config_object.json" aclTesting5Config = "%s/acl_testing5/config_object.json" - aclTesting5Spec = "%s/acl_testing5/conn_spec.json" - - aclTgMultipleConfig = "%s/acl_tg_multiple/config_object.json" - aclTgMultipleSpec = "%s/acl_tg_multiple/conn_spec.json" - - sgProtocolsConfig = "%s/sg_protocols/config_object.json" - sgProtocolsSpec = "%s/sg_protocols/conn_spec.json" - - sgTesting3Config = "%s/sg_testing3/config_object.json" - sgTesting3Spec = "%s/sg_testing3/conn_spec.json" - sgTgMultipleConfig = "%s/sg_tg_multiple/config_object.json" - sgTgMultipleSpec = "%s/sg_tg_multiple/conn_spec.json" + aclExternalsSpec = "%s/acl_externals/conn_spec.json" + aclNifSpec = "%s/acl_nif/conn_spec.json" + aclNifInstanceSegmentsSpec = "%s/acl_nif_instance_segments/conn_spec.json" + aclProtocolsSpec = "%s/acl_protocols/conn_spec.json" + aclSubnetCidrSegmentsSpec = "%s/acl_subnet_cidr_segments/conn_spec.json" + aclTesting5Spec = "%s/acl_testing5/conn_spec.json" + aclTgMultipleSpec = "%s/acl_tg_multiple/conn_spec.json" + aclVpeSpec = "%s/acl_vpe/conn_spec.json" + sgProtocolsSpec = "%s/sg_protocols/conn_spec.json" + sgSegments1Spec = "%s/sg_segments1/conn_spec.json" + sgSegments2Spec = "%s/sg_segments2/conn_spec.json" + sgSegments3Spec = "%s/sg_segments3/conn_spec.json" + sgSegments4Spec = "%s/sg_segments4/conn_spec.json" + sgTesting3Spec = "%s/sg_testing3/conn_spec.json" + sgTgMultipleSpec = "%s/sg_tg_multiple/conn_spec.json" tfOutputFmt = "tf" ) @@ -43,13 +37,13 @@ func allMainTests() []testCase { //nolint:funlen //all acl synthesis tests func synthACLTestsList() []testCase { return []testCase{ - // acl externals ## acl_testing4 config + // acl externals { testName: "acl_externals_json", args: &command{ cmd: synth, subcmd: acl, - config: aclExtenalsConfig, + config: aclTesting4Config, spec: aclExternalsSpec, outputFile: "%s/acl_externals_json/nacl_expected.json", }, @@ -59,7 +53,7 @@ func synthACLTestsList() []testCase { args: &command{ cmd: synth, subcmd: acl, - config: aclExtenalsConfig, + config: aclTesting4Config, spec: aclExternalsSpec, outputFile: "%s/acl_externals_tf/nacl_expected.tf", }, @@ -71,19 +65,31 @@ func synthACLTestsList() []testCase { args: &command{ cmd: synth, subcmd: acl, - config: aclNifConfig, + config: tgMultipleConfig, spec: aclNifSpec, outputFile: "%s/acl_nif_tf/nacl_expected.tf", }, }, + // acl nif instance segments ## tg-multiple config + { + testName: "acl_nif_instance_segments_tf", + args: &command{ + cmd: synth, + subcmd: acl, + config: tgMultipleConfig, + spec: aclNifInstanceSegmentsSpec, + outputFile: "%s/acl_nif_instance_segments_tf/nacl_expected.tf", + }, + }, + // acl protocols (all output fmts) ## tg-multiple config { testName: "acl_protocols_csv", args: &command{ cmd: synth, subcmd: acl, - config: aclProtocolsConfig, + config: tgMultipleConfig, spec: aclProtocolsSpec, outputFile: "%s/acl_protocols_csv/nacl_expected.csv", }, @@ -93,7 +99,7 @@ func synthACLTestsList() []testCase { args: &command{ cmd: synth, subcmd: acl, - config: aclProtocolsConfig, + config: tgMultipleConfig, spec: aclProtocolsSpec, outputFile: "%s/acl_protocols_json/nacl_expected.json", }, @@ -103,7 +109,7 @@ func synthACLTestsList() []testCase { args: &command{ cmd: synth, subcmd: acl, - config: aclProtocolsConfig, + config: tgMultipleConfig, spec: aclProtocolsSpec, outputFile: "%s/acl_protocols_md/nacl_expected.md", }, @@ -113,21 +119,21 @@ func synthACLTestsList() []testCase { args: &command{ cmd: synth, subcmd: acl, - config: aclProtocolsConfig, + config: tgMultipleConfig, spec: aclProtocolsSpec, outputFile: "%s/acl_protocols_tf/nacl_expected.tf", }, }, - // acl segments (bidi) ## acl_testing5 config + // acl subnet and cidr segments (bidi) { - testName: "acl_segments_tf", + testName: "acl_subnet_cidr_segments_tf", args: &command{ cmd: synth, subcmd: acl, - config: aclSegmentsConfig, - spec: aclSegmentsSpec, - outputFile: "%s/acl_segments_tf/nacl_expected.tf", + config: aclTesting5Config, + spec: aclSubnetCidrSegmentsSpec, + outputFile: "%s/acl_subnet_cidr_segments_tf/nacl_expected.tf", }, }, @@ -181,7 +187,7 @@ func synthACLTestsList() []testCase { args: &command{ cmd: synth, subcmd: acl, - config: aclTgMultipleConfig, + config: tgMultipleConfig, spec: aclTgMultipleSpec, outputFile: "%s/acl_tg_multiple_json/nacl_expected.json", }, @@ -191,7 +197,7 @@ func synthACLTestsList() []testCase { args: &command{ cmd: synth, subcmd: acl, - config: aclTgMultipleConfig, + config: tgMultipleConfig, spec: aclTgMultipleSpec, outputFile: "%s/acl_tg_multiple_tf/nacl_expected.tf", }, @@ -201,15 +207,28 @@ func synthACLTestsList() []testCase { args: &command{ cmd: synth, subcmd: acl, - config: aclTgMultipleConfig, + config: tgMultipleConfig, spec: aclTgMultipleSpec, outputDir: "%s/acl_tg_multiple_tf_separate", format: tfOutputFmt, }, }, + + // acl vpe ## sg_testing3 config + { + testName: "acl_vpe_tf", + args: &command{ + cmd: synth, + subcmd: acl, + config: sgTesting3Config, + spec: aclVpeSpec, + outputFile: "%s/acl_vpe_tf/nacl_expected.tf", + }, + }, } } +//nolint:funlen // test cases func synthSGTestsList() []testCase { return []testCase{ // sg protocols (all output fmts, externals, scoping, nif as a resource) ## tg-multiple config @@ -218,7 +237,7 @@ func synthSGTestsList() []testCase { args: &command{ cmd: synth, subcmd: sg, - config: sgProtocolsConfig, + config: tgMultipleConfig, spec: sgProtocolsSpec, outputFile: "%s/sg_protocols_csv/sg_expected.csv", }, @@ -228,7 +247,7 @@ func synthSGTestsList() []testCase { args: &command{ cmd: synth, subcmd: sg, - config: sgProtocolsConfig, + config: tgMultipleConfig, spec: sgProtocolsSpec, outputFile: "%s/sg_protocols_json/sg_expected.json", }, @@ -238,7 +257,7 @@ func synthSGTestsList() []testCase { args: &command{ cmd: synth, subcmd: sg, - config: sgProtocolsConfig, + config: tgMultipleConfig, spec: sgProtocolsSpec, outputFile: "%s/sg_protocols_md/sg_expected.md", }, @@ -248,12 +267,60 @@ func synthSGTestsList() []testCase { args: &command{ cmd: synth, subcmd: sg, - config: sgProtocolsConfig, + config: tgMultipleConfig, spec: sgProtocolsSpec, outputFile: "%s/sg_protocols_tf/sg_expected.tf", }, }, + // sg segments1 (cidrSegment -> cidrSegment) + { + testName: "sg_segments1_tf", + args: &command{ + cmd: synth, + subcmd: sg, + config: tgMultipleConfig, + spec: sgSegments1Spec, + outputFile: "%s/sg_segments1_tf/sg_expected.tf", + }, + }, + + // sg segments2 (instanceSegment -> cidrSegment) + { + testName: "sg_segments2_tf", + args: &command{ + cmd: synth, + subcmd: sg, + config: tgMultipleConfig, + spec: sgSegments2Spec, + outputFile: "%s/sg_segments2_tf/sg_expected.tf", + }, + }, + + // sg segments3 (subnetSegment -> nifSegment) + { + testName: "sg_segments3_tf", + args: &command{ + cmd: synth, + subcmd: sg, + config: tgMultipleConfig, + spec: sgSegments3Spec, + outputFile: "%s/sg_segments3_tf/sg_expected.tf", + }, + }, + + // sg segments4 (vpeSegment -> instanceSegment) + { + testName: "sg_segments4_tf", + args: &command{ + cmd: synth, + subcmd: sg, + config: sgTesting3Config, + spec: sgSegments4Spec, + outputFile: "%s/sg_segments4_tf/sg_expected.tf", + }, + }, + // sg testing 3 (all fmts, VPEs are included) { testName: "sg_testing3_csv", @@ -302,7 +369,7 @@ func synthSGTestsList() []testCase { args: &command{ cmd: synth, subcmd: sg, - config: sgTgMultipleConfig, + config: tgMultipleConfig, spec: sgTgMultipleSpec, outputDir: "%s/sg_tg_multiple_tf_separate", format: tfOutputFmt,