1. Packages
  2. Fastly Provider
  3. API Docs
  4. getApiSecurityDiscoveredOperations
Viewing docs for Fastly v12.0.0
published on Monday, Apr 20, 2026 by Pulumi
fastly logo
Viewing docs for Fastly v12.0.0
published on Monday, Apr 20, 2026 by Pulumi

    Use this data source to list API Security discovered operations for a Fastly service.

    Discovered operations depend on observed traffic and may be empty.

    Example Usage

    import * as pulumi from "@pulumi/pulumi";
    import * as fastly from "@pulumi/fastly";
    
    const svc1 = new fastly.ServiceVcl("svc1", {
        name: "test-svc-1-example",
        forceDestroy: true,
        backends: [{
            address: "example.com",
            name: "tf-test-backend-1",
        }],
    });
    // Discovered operations depend on traffic and may legitimately be empty.
    const discovered = fastly.getApiSecurityDiscoveredOperationsOutput({
        serviceId: svc1.id,
        status: "SAVED",
        methods: ["GET"],
        domains: ["api.example.com"],
        path: "/v1/things",
    });
    export const apiSecurityDiscoveredOperations = discovered.apply(discovered => discovered.operations);
    export const apiSecurityDiscoveredOperationsTotal = discovered.apply(discovered => discovered.total);
    
    import pulumi
    import pulumi_fastly as fastly
    
    svc1 = fastly.ServiceVcl("svc1",
        name="test-svc-1-example",
        force_destroy=True,
        backends=[{
            "address": "example.com",
            "name": "tf-test-backend-1",
        }])
    # Discovered operations depend on traffic and may legitimately be empty.
    discovered = fastly.get_api_security_discovered_operations_output(service_id=svc1.id,
        status="SAVED",
        methods=["GET"],
        domains=["api.example.com"],
        path="/v1/things")
    pulumi.export("apiSecurityDiscoveredOperations", discovered.operations)
    pulumi.export("apiSecurityDiscoveredOperationsTotal", discovered.total)
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-fastly/sdk/v12/go/fastly"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		svc1, err := fastly.NewServiceVcl(ctx, "svc1", &fastly.ServiceVclArgs{
    			Name:         pulumi.String("test-svc-1-example"),
    			ForceDestroy: pulumi.Bool(true),
    			Backends: fastly.ServiceVclBackendArray{
    				&fastly.ServiceVclBackendArgs{
    					Address: pulumi.String("example.com"),
    					Name:    pulumi.String("tf-test-backend-1"),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		// Discovered operations depend on traffic and may legitimately be empty.
    		discovered := fastly.GetApiSecurityDiscoveredOperationsOutput(ctx, fastly.GetApiSecurityDiscoveredOperationsOutputArgs{
    			ServiceId: svc1.ID(),
    			Status:    pulumi.String("SAVED"),
    			Methods: pulumi.StringArray{
    				pulumi.String("GET"),
    			},
    			Domains: pulumi.StringArray{
    				pulumi.String("api.example.com"),
    			},
    			Path: pulumi.String("/v1/things"),
    		}, nil)
    		ctx.Export("apiSecurityDiscoveredOperations", discovered.ApplyT(func(discovered fastly.GetApiSecurityDiscoveredOperationsResult) ([]fastly.GetApiSecurityDiscoveredOperationsOperation, error) {
    			return []fastly.GetApiSecurityDiscoveredOperationsOperation(discovered.Operations), nil
    		}).([]fastly.GetApiSecurityDiscoveredOperationsOperationOutput))
    		ctx.Export("apiSecurityDiscoveredOperationsTotal", discovered.ApplyT(func(discovered fastly.GetApiSecurityDiscoveredOperationsResult) (*int, error) {
    			return &discovered.Total, nil
    		}).(pulumi.IntPtrOutput))
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Fastly = Pulumi.Fastly;
    
    return await Deployment.RunAsync(() => 
    {
        var svc1 = new Fastly.Index.ServiceVcl("svc1", new()
        {
            Name = "test-svc-1-example",
            ForceDestroy = true,
            Backends = new[]
            {
                new Fastly.Inputs.ServiceVclBackendArgs
                {
                    Address = "example.com",
                    Name = "tf-test-backend-1",
                },
            },
        });
    
        // Discovered operations depend on traffic and may legitimately be empty.
        var discovered = Fastly.Index.GetApiSecurityDiscoveredOperations.Invoke(new()
        {
            ServiceId = svc1.Id,
            Status = "SAVED",
            Methods = new[]
            {
                "GET",
            },
            Domains = new[]
            {
                "api.example.com",
            },
            Path = "/v1/things",
        });
    
        return new Dictionary<string, object?>
        {
            ["apiSecurityDiscoveredOperations"] = discovered.Apply(getApiSecurityDiscoveredOperationsResult => getApiSecurityDiscoveredOperationsResult.Operations),
            ["apiSecurityDiscoveredOperationsTotal"] = discovered.Apply(getApiSecurityDiscoveredOperationsResult => getApiSecurityDiscoveredOperationsResult.Total),
        };
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.fastly.ServiceVcl;
    import com.pulumi.fastly.ServiceVclArgs;
    import com.pulumi.fastly.inputs.ServiceVclBackendArgs;
    import com.pulumi.fastly.FastlyFunctions;
    import com.pulumi.fastly.inputs.GetApiSecurityDiscoveredOperationsArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var svc1 = new ServiceVcl("svc1", ServiceVclArgs.builder()
                .name("test-svc-1-example")
                .forceDestroy(true)
                .backends(ServiceVclBackendArgs.builder()
                    .address("example.com")
                    .name("tf-test-backend-1")
                    .build())
                .build());
    
            // Discovered operations depend on traffic and may legitimately be empty.
            final var discovered = FastlyFunctions.getApiSecurityDiscoveredOperations(GetApiSecurityDiscoveredOperationsArgs.builder()
                .serviceId(svc1.id())
                .status("SAVED")
                .methods("GET")
                .domains("api.example.com")
                .path("/v1/things")
                .build());
    
            ctx.export("apiSecurityDiscoveredOperations", discovered.applyValue(_discovered -> _discovered.operations()));
            ctx.export("apiSecurityDiscoveredOperationsTotal", discovered.applyValue(_discovered -> _discovered.total()));
        }
    }
    
    resources:
      svc1:
        type: fastly:ServiceVcl
        properties:
          name: test-svc-1-example
          forceDestroy: true
          backends:
            - address: example.com
              name: tf-test-backend-1
    variables:
      # Discovered operations depend on traffic and may legitimately be empty.
      discovered:
        fn::invoke:
          function: fastly:getApiSecurityDiscoveredOperations
          arguments:
            serviceId: ${svc1.id}
            status: SAVED
            methods:
              - GET
            domains:
              - api.example.com
            path: /v1/things
    outputs:
      apiSecurityDiscoveredOperations: ${discovered.operations}
      apiSecurityDiscoveredOperationsTotal: ${discovered.total}
    

    Using getApiSecurityDiscoveredOperations

    Two invocation forms are available. The direct form accepts plain arguments and either blocks until the result value is available, or returns a Promise-wrapped result. The output form accepts Input-wrapped arguments and returns an Output-wrapped result.

    function getApiSecurityDiscoveredOperations(args: GetApiSecurityDiscoveredOperationsArgs, opts?: InvokeOptions): Promise<GetApiSecurityDiscoveredOperationsResult>
    function getApiSecurityDiscoveredOperationsOutput(args: GetApiSecurityDiscoveredOperationsOutputArgs, opts?: InvokeOptions): Output<GetApiSecurityDiscoveredOperationsResult>
    def get_api_security_discovered_operations(domains: Optional[Sequence[str]] = None,
                                               methods: Optional[Sequence[str]] = None,
                                               path: Optional[str] = None,
                                               service_id: Optional[str] = None,
                                               status: Optional[str] = None,
                                               opts: Optional[InvokeOptions] = None) -> GetApiSecurityDiscoveredOperationsResult
    def get_api_security_discovered_operations_output(domains: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                                               methods: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                                               path: Optional[pulumi.Input[str]] = None,
                                               service_id: Optional[pulumi.Input[str]] = None,
                                               status: Optional[pulumi.Input[str]] = None,
                                               opts: Optional[InvokeOptions] = None) -> Output[GetApiSecurityDiscoveredOperationsResult]
    func GetApiSecurityDiscoveredOperations(ctx *Context, args *GetApiSecurityDiscoveredOperationsArgs, opts ...InvokeOption) (*GetApiSecurityDiscoveredOperationsResult, error)
    func GetApiSecurityDiscoveredOperationsOutput(ctx *Context, args *GetApiSecurityDiscoveredOperationsOutputArgs, opts ...InvokeOption) GetApiSecurityDiscoveredOperationsResultOutput

    > Note: This function is named GetApiSecurityDiscoveredOperations in the Go SDK.

    public static class GetApiSecurityDiscoveredOperations 
    {
        public static Task<GetApiSecurityDiscoveredOperationsResult> InvokeAsync(GetApiSecurityDiscoveredOperationsArgs args, InvokeOptions? opts = null)
        public static Output<GetApiSecurityDiscoveredOperationsResult> Invoke(GetApiSecurityDiscoveredOperationsInvokeArgs args, InvokeOptions? opts = null)
    }
    public static CompletableFuture<GetApiSecurityDiscoveredOperationsResult> getApiSecurityDiscoveredOperations(GetApiSecurityDiscoveredOperationsArgs args, InvokeOptions options)
    public static Output<GetApiSecurityDiscoveredOperationsResult> getApiSecurityDiscoveredOperations(GetApiSecurityDiscoveredOperationsArgs args, InvokeOptions options)
    
    fn::invoke:
      function: fastly:index/getApiSecurityDiscoveredOperations:getApiSecurityDiscoveredOperations
      arguments:
        # arguments dictionary

    The following arguments are supported:

    ServiceId string
    Service ID.
    Domains List<string>
    Filter by one or more fully-qualified domains (exact match).
    Methods List<string>
    Filter by one or more HTTP methods.
    Path string
    Filter by path (exact match).
    Status string
    Filter discovered operations by status. Accepted values are DISCOVERED, SAVED, and IGNORED.
    ServiceId string
    Service ID.
    Domains []string
    Filter by one or more fully-qualified domains (exact match).
    Methods []string
    Filter by one or more HTTP methods.
    Path string
    Filter by path (exact match).
    Status string
    Filter discovered operations by status. Accepted values are DISCOVERED, SAVED, and IGNORED.
    serviceId String
    Service ID.
    domains List<String>
    Filter by one or more fully-qualified domains (exact match).
    methods List<String>
    Filter by one or more HTTP methods.
    path String
    Filter by path (exact match).
    status String
    Filter discovered operations by status. Accepted values are DISCOVERED, SAVED, and IGNORED.
    serviceId string
    Service ID.
    domains string[]
    Filter by one or more fully-qualified domains (exact match).
    methods string[]
    Filter by one or more HTTP methods.
    path string
    Filter by path (exact match).
    status string
    Filter discovered operations by status. Accepted values are DISCOVERED, SAVED, and IGNORED.
    service_id str
    Service ID.
    domains Sequence[str]
    Filter by one or more fully-qualified domains (exact match).
    methods Sequence[str]
    Filter by one or more HTTP methods.
    path str
    Filter by path (exact match).
    status str
    Filter discovered operations by status. Accepted values are DISCOVERED, SAVED, and IGNORED.
    serviceId String
    Service ID.
    domains List<String>
    Filter by one or more fully-qualified domains (exact match).
    methods List<String>
    Filter by one or more HTTP methods.
    path String
    Filter by path (exact match).
    status String
    Filter discovered operations by status. Accepted values are DISCOVERED, SAVED, and IGNORED.

    getApiSecurityDiscoveredOperations Result

    The following output properties are available:

    Id string
    The provider-assigned unique ID for this managed resource.
    Operations List<GetApiSecurityDiscoveredOperationsOperation>
    Discovered operations.
    ServiceId string
    Service ID.
    Total int
    Total number of matching results, as returned by the API.
    Domains List<string>
    Filter by one or more fully-qualified domains (exact match).
    Methods List<string>
    Filter by one or more HTTP methods.
    Path string
    Filter by path (exact match).
    Status string
    Filter discovered operations by status. Accepted values are DISCOVERED, SAVED, and IGNORED.
    Id string
    The provider-assigned unique ID for this managed resource.
    Operations []GetApiSecurityDiscoveredOperationsOperation
    Discovered operations.
    ServiceId string
    Service ID.
    Total int
    Total number of matching results, as returned by the API.
    Domains []string
    Filter by one or more fully-qualified domains (exact match).
    Methods []string
    Filter by one or more HTTP methods.
    Path string
    Filter by path (exact match).
    Status string
    Filter discovered operations by status. Accepted values are DISCOVERED, SAVED, and IGNORED.
    id String
    The provider-assigned unique ID for this managed resource.
    operations List<GetApiSecurityDiscoveredOperationsOperation>
    Discovered operations.
    serviceId String
    Service ID.
    total Integer
    Total number of matching results, as returned by the API.
    domains List<String>
    Filter by one or more fully-qualified domains (exact match).
    methods List<String>
    Filter by one or more HTTP methods.
    path String
    Filter by path (exact match).
    status String
    Filter discovered operations by status. Accepted values are DISCOVERED, SAVED, and IGNORED.
    id string
    The provider-assigned unique ID for this managed resource.
    operations GetApiSecurityDiscoveredOperationsOperation[]
    Discovered operations.
    serviceId string
    Service ID.
    total number
    Total number of matching results, as returned by the API.
    domains string[]
    Filter by one or more fully-qualified domains (exact match).
    methods string[]
    Filter by one or more HTTP methods.
    path string
    Filter by path (exact match).
    status string
    Filter discovered operations by status. Accepted values are DISCOVERED, SAVED, and IGNORED.
    id str
    The provider-assigned unique ID for this managed resource.
    operations Sequence[GetApiSecurityDiscoveredOperationsOperation]
    Discovered operations.
    service_id str
    Service ID.
    total int
    Total number of matching results, as returned by the API.
    domains Sequence[str]
    Filter by one or more fully-qualified domains (exact match).
    methods Sequence[str]
    Filter by one or more HTTP methods.
    path str
    Filter by path (exact match).
    status str
    Filter discovered operations by status. Accepted values are DISCOVERED, SAVED, and IGNORED.
    id String
    The provider-assigned unique ID for this managed resource.
    operations List<Property Map>
    Discovered operations.
    serviceId String
    Service ID.
    total Number
    Total number of matching results, as returned by the API.
    domains List<String>
    Filter by one or more fully-qualified domains (exact match).
    methods List<String>
    Filter by one or more HTTP methods.
    path String
    Filter by path (exact match).
    status String
    Filter discovered operations by status. Accepted values are DISCOVERED, SAVED, and IGNORED.

    Supporting Types

    GetApiSecurityDiscoveredOperationsOperation

    Domain string
    Discovered operation domain.
    Id string
    Discovered operation ID.
    LastSeenAt string
    Last seen timestamp (when present).
    Method string
    Discovered operation HTTP method.
    Path string
    Discovered operation path.
    Rps double
    Observed requests per second (when present).
    Status string
    Discovered operation status (when present).
    UpdatedAt string
    Updated timestamp (when present).
    Domain string
    Discovered operation domain.
    Id string
    Discovered operation ID.
    LastSeenAt string
    Last seen timestamp (when present).
    Method string
    Discovered operation HTTP method.
    Path string
    Discovered operation path.
    Rps float64
    Observed requests per second (when present).
    Status string
    Discovered operation status (when present).
    UpdatedAt string
    Updated timestamp (when present).
    domain String
    Discovered operation domain.
    id String
    Discovered operation ID.
    lastSeenAt String
    Last seen timestamp (when present).
    method String
    Discovered operation HTTP method.
    path String
    Discovered operation path.
    rps Double
    Observed requests per second (when present).
    status String
    Discovered operation status (when present).
    updatedAt String
    Updated timestamp (when present).
    domain string
    Discovered operation domain.
    id string
    Discovered operation ID.
    lastSeenAt string
    Last seen timestamp (when present).
    method string
    Discovered operation HTTP method.
    path string
    Discovered operation path.
    rps number
    Observed requests per second (when present).
    status string
    Discovered operation status (when present).
    updatedAt string
    Updated timestamp (when present).
    domain str
    Discovered operation domain.
    id str
    Discovered operation ID.
    last_seen_at str
    Last seen timestamp (when present).
    method str
    Discovered operation HTTP method.
    path str
    Discovered operation path.
    rps float
    Observed requests per second (when present).
    status str
    Discovered operation status (when present).
    updated_at str
    Updated timestamp (when present).
    domain String
    Discovered operation domain.
    id String
    Discovered operation ID.
    lastSeenAt String
    Last seen timestamp (when present).
    method String
    Discovered operation HTTP method.
    path String
    Discovered operation path.
    rps Number
    Observed requests per second (when present).
    status String
    Discovered operation status (when present).
    updatedAt String
    Updated timestamp (when present).

    Package Details

    Repository
    Fastly pulumi/pulumi-fastly
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the fastly Terraform Provider.
    fastly logo
    Viewing docs for Fastly v12.0.0
    published on Monday, Apr 20, 2026 by Pulumi
      Try Pulumi Cloud free. Your team will thank you.