1. Registry
  2. Packages
  3. Platform Provider
  4. API Docs
  5. WorkersService
Viewing docs for platform 2.2.11
published on Tuesday, Aug 25, 2026 by jfrog
Viewing docs for platform 2.2.11
published on Tuesday, Aug 25, 2026 by jfrog

    Provides a JFrog Workers Service resource. This can be used to create and manage Workers Service.

    ->From Artifactory 7.94 the Workers service will be available in a general availability release to Enterprise X and Enterprise+ licenses.

    Example Usage

    import * as pulumi from "@pulumi/pulumi";
    import * as platform from "@pulumi/platform";
    
    // Worker triggered by BEFORE_DOWNLOAD
    const my_workers_service = new platform.WorkersService("my-workers-service", {
        key: "my-workers-service",
        enabled: true,
        description: "My workers service",
        sourceCode: `export default async (context: PlatformContext, data: BeforeDownloadRequest): Promise<BeforeDownloadResponse> => {
      console.log(await context.clients.platformHttp.get('/artifactory/api/system/ping'));
      console.log(await axios.get('https://my.external.resource'));
      return {
        status: 'DOWNLOAD_PROCEED',
        message: 'proceed',
      }
    }
    `,
        action: "BEFORE_DOWNLOAD",
        filterCriteria: {
            artifactFilterCriteria: {
                repoKeys: ["my-repo-key"],
                includePatterns: ["**/*.jar"],
                excludePatterns: ["**/*.txt"],
            },
        },
        secrets: [
            {
                key: "my-secret-key-1",
                value: "my-secret-value-1",
            },
            {
                key: "my-secret-key-2",
                value: "my-secret-value-2",
            },
        ],
    });
    // Worker triggered by every local and federated repository, without naming any
    // repository explicitly. At least one of `repo_keys`, `any_local`, `any_remote` or
    // `any_federated` must be set.
    const my_any_repo_workers_service = new platform.WorkersService("my-any-repo-workers-service", {
        key: "my-any-repo-workers-service",
        enabled: true,
        description: "My workers service for every local and federated repository",
        sourceCode: `export default async (context: PlatformContext, data: BeforeDownloadRequest): Promise<BeforeDownloadResponse> => {
      console.log(await context.clients.platformHttp.get('/artifactory/api/system/ping'));
      return {
        status: 'DOWNLOAD_PROCEED',
        message: 'proceed',
      }
    }
    `,
        action: "BEFORE_DOWNLOAD",
        filterCriteria: {
            artifactFilterCriteria: {
                anyLocal: true,
                anyFederated: true,
            },
        },
    });
    // Worker triggered by an action that does not accept a filter. `filter_criteria` must
    // be omitted entirely, otherwise the JFrog platform rejects the request.
    const my_build_info_workers_service = new platform.WorkersService("my-build-info-workers-service", {
        key: "my-build-info-workers-service",
        enabled: true,
        description: "My workers service triggered after build info is saved",
        sourceCode: `export default async (context: PlatformContext, data: AfterBuildInfoSaveRequest): Promise<AfterBuildInfoSaveResponse> => {
      console.log(await context.clients.platformHttp.get('/artifactory/api/system/ping'));
      return {
        message: 'proceed',
      }
    }
    `,
        action: "AFTER_BUILD_INFO_SAVE",
    });
    // Worker triggered by schedule
    const my_scheduled_workers_service = new platform.WorkersService("my-scheduled-workers-service", {
        key: "my-scheduled-workers-service",
        enabled: true,
        description: "My Scheduled workers service",
        sourceCode: `export default async (context: PlatformContext, data: BeforeDownloadRequest): Promise<BeforeDownloadResponse> => {
      console.log(await context.clients.platformHttp.get('/artifactory/api/system/ping'));
      console.log(await axios.get('https://my.external.resource'));
      return {
        message: 'Request is successful',
      }
    }
    `,
        action: "SCHEDULED_EVENT",
        filterCriteria: {
            schedule: {
                cron: "*/2 * * * *",
                timezone: "UTC",
            },
        },
        secrets: [
            {
                key: "my-secret-key-1",
                value: "my-secret-value-1",
            },
            {
                key: "my-secret-key-2",
                value: "my-secret-value-2",
            },
        ],
    });
    
    import pulumi
    import pulumi_platform as platform
    
    # Worker triggered by BEFORE_DOWNLOAD
    my_workers_service = platform.WorkersService("my-workers-service",
        key="my-workers-service",
        enabled=True,
        description="My workers service",
        source_code="""export default async (context: PlatformContext, data: BeforeDownloadRequest): Promise<BeforeDownloadResponse> => {
      console.log(await context.clients.platformHttp.get('/artifactory/api/system/ping'));
      console.log(await axios.get('https://my.external.resource'));
      return {
        status: 'DOWNLOAD_PROCEED',
        message: 'proceed',
      }
    }
    """,
        action="BEFORE_DOWNLOAD",
        filter_criteria={
            "artifact_filter_criteria": {
                "repo_keys": ["my-repo-key"],
                "include_patterns": ["**/*.jar"],
                "exclude_patterns": ["**/*.txt"],
            },
        },
        secrets=[
            {
                "key": "my-secret-key-1",
                "value": "my-secret-value-1",
            },
            {
                "key": "my-secret-key-2",
                "value": "my-secret-value-2",
            },
        ])
    # Worker triggered by every local and federated repository, without naming any
    # repository explicitly. At least one of `repo_keys`, `any_local`, `any_remote` or
    # `any_federated` must be set.
    my_any_repo_workers_service = platform.WorkersService("my-any-repo-workers-service",
        key="my-any-repo-workers-service",
        enabled=True,
        description="My workers service for every local and federated repository",
        source_code="""export default async (context: PlatformContext, data: BeforeDownloadRequest): Promise<BeforeDownloadResponse> => {
      console.log(await context.clients.platformHttp.get('/artifactory/api/system/ping'));
      return {
        status: 'DOWNLOAD_PROCEED',
        message: 'proceed',
      }
    }
    """,
        action="BEFORE_DOWNLOAD",
        filter_criteria={
            "artifact_filter_criteria": {
                "any_local": True,
                "any_federated": True,
            },
        })
    # Worker triggered by an action that does not accept a filter. `filter_criteria` must
    # be omitted entirely, otherwise the JFrog platform rejects the request.
    my_build_info_workers_service = platform.WorkersService("my-build-info-workers-service",
        key="my-build-info-workers-service",
        enabled=True,
        description="My workers service triggered after build info is saved",
        source_code="""export default async (context: PlatformContext, data: AfterBuildInfoSaveRequest): Promise<AfterBuildInfoSaveResponse> => {
      console.log(await context.clients.platformHttp.get('/artifactory/api/system/ping'));
      return {
        message: 'proceed',
      }
    }
    """,
        action="AFTER_BUILD_INFO_SAVE")
    # Worker triggered by schedule
    my_scheduled_workers_service = platform.WorkersService("my-scheduled-workers-service",
        key="my-scheduled-workers-service",
        enabled=True,
        description="My Scheduled workers service",
        source_code="""export default async (context: PlatformContext, data: BeforeDownloadRequest): Promise<BeforeDownloadResponse> => {
      console.log(await context.clients.platformHttp.get('/artifactory/api/system/ping'));
      console.log(await axios.get('https://my.external.resource'));
      return {
        message: 'Request is successful',
      }
    }
    """,
        action="SCHEDULED_EVENT",
        filter_criteria={
            "schedule": {
                "cron": "*/2 * * * *",
                "timezone": "UTC",
            },
        },
        secrets=[
            {
                "key": "my-secret-key-1",
                "value": "my-secret-value-1",
            },
            {
                "key": "my-secret-key-2",
                "value": "my-secret-value-2",
            },
        ])
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-terraform-provider/sdks/go/platform/v2/platform"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		// Worker triggered by BEFORE_DOWNLOAD
    		_, err := platform.NewWorkersService(ctx, "my-workers-service", &platform.WorkersServiceArgs{
    			Key:         pulumi.String("my-workers-service"),
    			Enabled:     pulumi.Bool(true),
    			Description: pulumi.String("My workers service"),
    			SourceCode: pulumi.String(`export default async (context: PlatformContext, data: BeforeDownloadRequest): Promise<BeforeDownloadResponse> => {
      console.log(await context.clients.platformHttp.get('/artifactory/api/system/ping'));
      console.log(await axios.get('https://my.external.resource'));
      return {
        status: 'DOWNLOAD_PROCEED',
        message: 'proceed',
      }
    }
    `),
    			Action: pulumi.String("BEFORE_DOWNLOAD"),
    			FilterCriteria: &platform.WorkersServiceFilterCriteriaArgs{
    				ArtifactFilterCriteria: &platform.WorkersServiceFilterCriteriaArtifactFilterCriteriaArgs{
    					RepoKeys: pulumi.StringArray{
    						pulumi.String("my-repo-key"),
    					},
    					IncludePatterns: pulumi.StringArray{
    						pulumi.String("**/*.jar"),
    					},
    					ExcludePatterns: pulumi.StringArray{
    						pulumi.String("**/*.txt"),
    					},
    				},
    			},
    			Secrets: platform.WorkersServiceSecretArray{
    				&platform.WorkersServiceSecretArgs{
    					Key:   pulumi.String("my-secret-key-1"),
    					Value: pulumi.String("my-secret-value-1"),
    				},
    				&platform.WorkersServiceSecretArgs{
    					Key:   pulumi.String("my-secret-key-2"),
    					Value: pulumi.String("my-secret-value-2"),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		// Worker triggered by every local and federated repository, without naming any
    		// repository explicitly. At least one of `repo_keys`, `any_local`, `any_remote` or
    		// `any_federated` must be set.
    		_, err = platform.NewWorkersService(ctx, "my-any-repo-workers-service", &platform.WorkersServiceArgs{
    			Key:         pulumi.String("my-any-repo-workers-service"),
    			Enabled:     pulumi.Bool(true),
    			Description: pulumi.String("My workers service for every local and federated repository"),
    			SourceCode: pulumi.String(`export default async (context: PlatformContext, data: BeforeDownloadRequest): Promise<BeforeDownloadResponse> => {
      console.log(await context.clients.platformHttp.get('/artifactory/api/system/ping'));
      return {
        status: 'DOWNLOAD_PROCEED',
        message: 'proceed',
      }
    }
    `),
    			Action: pulumi.String("BEFORE_DOWNLOAD"),
    			FilterCriteria: &platform.WorkersServiceFilterCriteriaArgs{
    				ArtifactFilterCriteria: &platform.WorkersServiceFilterCriteriaArtifactFilterCriteriaArgs{
    					AnyLocal:     pulumi.Bool(true),
    					AnyFederated: pulumi.Bool(true),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		// Worker triggered by an action that does not accept a filter. `filter_criteria` must
    		// be omitted entirely, otherwise the JFrog platform rejects the request.
    		_, err = platform.NewWorkersService(ctx, "my-build-info-workers-service", &platform.WorkersServiceArgs{
    			Key:         pulumi.String("my-build-info-workers-service"),
    			Enabled:     pulumi.Bool(true),
    			Description: pulumi.String("My workers service triggered after build info is saved"),
    			SourceCode: pulumi.String(`export default async (context: PlatformContext, data: AfterBuildInfoSaveRequest): Promise<AfterBuildInfoSaveResponse> => {
      console.log(await context.clients.platformHttp.get('/artifactory/api/system/ping'));
      return {
        message: 'proceed',
      }
    }
    `),
    			Action: pulumi.String("AFTER_BUILD_INFO_SAVE"),
    		})
    		if err != nil {
    			return err
    		}
    		// Worker triggered by schedule
    		_, err = platform.NewWorkersService(ctx, "my-scheduled-workers-service", &platform.WorkersServiceArgs{
    			Key:         pulumi.String("my-scheduled-workers-service"),
    			Enabled:     pulumi.Bool(true),
    			Description: pulumi.String("My Scheduled workers service"),
    			SourceCode: pulumi.String(`export default async (context: PlatformContext, data: BeforeDownloadRequest): Promise<BeforeDownloadResponse> => {
      console.log(await context.clients.platformHttp.get('/artifactory/api/system/ping'));
      console.log(await axios.get('https://my.external.resource'));
      return {
        message: 'Request is successful',
      }
    }
    `),
    			Action: pulumi.String("SCHEDULED_EVENT"),
    			FilterCriteria: &platform.WorkersServiceFilterCriteriaArgs{
    				Schedule: &platform.WorkersServiceFilterCriteriaScheduleArgs{
    					Cron:     pulumi.String("*/2 * * * *"),
    					Timezone: pulumi.String("UTC"),
    				},
    			},
    			Secrets: platform.WorkersServiceSecretArray{
    				&platform.WorkersServiceSecretArgs{
    					Key:   pulumi.String("my-secret-key-1"),
    					Value: pulumi.String("my-secret-value-1"),
    				},
    				&platform.WorkersServiceSecretArgs{
    					Key:   pulumi.String("my-secret-key-2"),
    					Value: pulumi.String("my-secret-value-2"),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Platform = Pulumi.Platform;
    
    return await Deployment.RunAsync(() => 
    {
        // Worker triggered by BEFORE_DOWNLOAD
        var my_workers_service = new Platform.WorkersService("my-workers-service", new()
        {
            Key = "my-workers-service",
            Enabled = true,
            Description = "My workers service",
            SourceCode = @"export default async (context: PlatformContext, data: BeforeDownloadRequest): Promise<BeforeDownloadResponse> => {
      console.log(await context.clients.platformHttp.get('/artifactory/api/system/ping'));
      console.log(await axios.get('https://my.external.resource'));
      return {
        status: 'DOWNLOAD_PROCEED',
        message: 'proceed',
      }
    }
    ",
            Action = "BEFORE_DOWNLOAD",
            FilterCriteria = new Platform.Inputs.WorkersServiceFilterCriteriaArgs
            {
                ArtifactFilterCriteria = new Platform.Inputs.WorkersServiceFilterCriteriaArtifactFilterCriteriaArgs
                {
                    RepoKeys = new[]
                    {
                        "my-repo-key",
                    },
                    IncludePatterns = new[]
                    {
                        "**/*.jar",
                    },
                    ExcludePatterns = new[]
                    {
                        "**/*.txt",
                    },
                },
            },
            Secrets = new[]
            {
                new Platform.Inputs.WorkersServiceSecretArgs
                {
                    Key = "my-secret-key-1",
                    Value = "my-secret-value-1",
                },
                new Platform.Inputs.WorkersServiceSecretArgs
                {
                    Key = "my-secret-key-2",
                    Value = "my-secret-value-2",
                },
            },
        });
    
        // Worker triggered by every local and federated repository, without naming any
        // repository explicitly. At least one of `repo_keys`, `any_local`, `any_remote` or
        // `any_federated` must be set.
        var my_any_repo_workers_service = new Platform.WorkersService("my-any-repo-workers-service", new()
        {
            Key = "my-any-repo-workers-service",
            Enabled = true,
            Description = "My workers service for every local and federated repository",
            SourceCode = @"export default async (context: PlatformContext, data: BeforeDownloadRequest): Promise<BeforeDownloadResponse> => {
      console.log(await context.clients.platformHttp.get('/artifactory/api/system/ping'));
      return {
        status: 'DOWNLOAD_PROCEED',
        message: 'proceed',
      }
    }
    ",
            Action = "BEFORE_DOWNLOAD",
            FilterCriteria = new Platform.Inputs.WorkersServiceFilterCriteriaArgs
            {
                ArtifactFilterCriteria = new Platform.Inputs.WorkersServiceFilterCriteriaArtifactFilterCriteriaArgs
                {
                    AnyLocal = true,
                    AnyFederated = true,
                },
            },
        });
    
        // Worker triggered by an action that does not accept a filter. `filter_criteria` must
        // be omitted entirely, otherwise the JFrog platform rejects the request.
        var my_build_info_workers_service = new Platform.WorkersService("my-build-info-workers-service", new()
        {
            Key = "my-build-info-workers-service",
            Enabled = true,
            Description = "My workers service triggered after build info is saved",
            SourceCode = @"export default async (context: PlatformContext, data: AfterBuildInfoSaveRequest): Promise<AfterBuildInfoSaveResponse> => {
      console.log(await context.clients.platformHttp.get('/artifactory/api/system/ping'));
      return {
        message: 'proceed',
      }
    }
    ",
            Action = "AFTER_BUILD_INFO_SAVE",
        });
    
        // Worker triggered by schedule
        var my_scheduled_workers_service = new Platform.WorkersService("my-scheduled-workers-service", new()
        {
            Key = "my-scheduled-workers-service",
            Enabled = true,
            Description = "My Scheduled workers service",
            SourceCode = @"export default async (context: PlatformContext, data: BeforeDownloadRequest): Promise<BeforeDownloadResponse> => {
      console.log(await context.clients.platformHttp.get('/artifactory/api/system/ping'));
      console.log(await axios.get('https://my.external.resource'));
      return {
        message: 'Request is successful',
      }
    }
    ",
            Action = "SCHEDULED_EVENT",
            FilterCriteria = new Platform.Inputs.WorkersServiceFilterCriteriaArgs
            {
                Schedule = new Platform.Inputs.WorkersServiceFilterCriteriaScheduleArgs
                {
                    Cron = "*/2 * * * *",
                    Timezone = "UTC",
                },
            },
            Secrets = new[]
            {
                new Platform.Inputs.WorkersServiceSecretArgs
                {
                    Key = "my-secret-key-1",
                    Value = "my-secret-value-1",
                },
                new Platform.Inputs.WorkersServiceSecretArgs
                {
                    Key = "my-secret-key-2",
                    Value = "my-secret-value-2",
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.platform.WorkersService;
    import com.pulumi.platform.WorkersServiceArgs;
    import com.pulumi.platform.inputs.WorkersServiceFilterCriteriaArgs;
    import com.pulumi.platform.inputs.WorkersServiceFilterCriteriaArtifactFilterCriteriaArgs;
    import com.pulumi.platform.inputs.WorkersServiceSecretArgs;
    import com.pulumi.platform.inputs.WorkersServiceFilterCriteriaScheduleArgs;
    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) {
            // Worker triggered by BEFORE_DOWNLOAD
            var my_workers_service = new WorkersService("my-workers-service", WorkersServiceArgs.builder()
                .key("my-workers-service")
                .enabled(true)
                .description("My workers service")
                .sourceCode("""
    export default async (context: PlatformContext, data: BeforeDownloadRequest): Promise<BeforeDownloadResponse> => {
      console.log(await context.clients.platformHttp.get('/artifactory/api/system/ping'));
      console.log(await axios.get('https://my.external.resource'));
      return {
        status: 'DOWNLOAD_PROCEED',
        message: 'proceed',
      }
    }
                """)
                .action("BEFORE_DOWNLOAD")
                .filterCriteria(WorkersServiceFilterCriteriaArgs.builder()
                    .artifactFilterCriteria(WorkersServiceFilterCriteriaArtifactFilterCriteriaArgs.builder()
                        .repoKeys("my-repo-key")
                        .includePatterns("**/*.jar")
                        .excludePatterns("**/*.txt")
                        .build())
                    .build())
                .secrets(            
                    WorkersServiceSecretArgs.builder()
                        .key("my-secret-key-1")
                        .value("my-secret-value-1")
                        .build(),
                    WorkersServiceSecretArgs.builder()
                        .key("my-secret-key-2")
                        .value("my-secret-value-2")
                        .build())
                .build());
    
            // Worker triggered by every local and federated repository, without naming any
            // repository explicitly. At least one of `repo_keys`, `any_local`, `any_remote` or
            // `any_federated` must be set.
            var my_any_repo_workers_service = new WorkersService("my-any-repo-workers-service", WorkersServiceArgs.builder()
                .key("my-any-repo-workers-service")
                .enabled(true)
                .description("My workers service for every local and federated repository")
                .sourceCode("""
    export default async (context: PlatformContext, data: BeforeDownloadRequest): Promise<BeforeDownloadResponse> => {
      console.log(await context.clients.platformHttp.get('/artifactory/api/system/ping'));
      return {
        status: 'DOWNLOAD_PROCEED',
        message: 'proceed',
      }
    }
                """)
                .action("BEFORE_DOWNLOAD")
                .filterCriteria(WorkersServiceFilterCriteriaArgs.builder()
                    .artifactFilterCriteria(WorkersServiceFilterCriteriaArtifactFilterCriteriaArgs.builder()
                        .anyLocal(true)
                        .anyFederated(true)
                        .build())
                    .build())
                .build());
    
            // Worker triggered by an action that does not accept a filter. `filter_criteria` must
            // be omitted entirely, otherwise the JFrog platform rejects the request.
            var my_build_info_workers_service = new WorkersService("my-build-info-workers-service", WorkersServiceArgs.builder()
                .key("my-build-info-workers-service")
                .enabled(true)
                .description("My workers service triggered after build info is saved")
                .sourceCode("""
    export default async (context: PlatformContext, data: AfterBuildInfoSaveRequest): Promise<AfterBuildInfoSaveResponse> => {
      console.log(await context.clients.platformHttp.get('/artifactory/api/system/ping'));
      return {
        message: 'proceed',
      }
    }
                """)
                .action("AFTER_BUILD_INFO_SAVE")
                .build());
    
            // Worker triggered by schedule
            var my_scheduled_workers_service = new WorkersService("my-scheduled-workers-service", WorkersServiceArgs.builder()
                .key("my-scheduled-workers-service")
                .enabled(true)
                .description("My Scheduled workers service")
                .sourceCode("""
    export default async (context: PlatformContext, data: BeforeDownloadRequest): Promise<BeforeDownloadResponse> => {
      console.log(await context.clients.platformHttp.get('/artifactory/api/system/ping'));
      console.log(await axios.get('https://my.external.resource'));
      return {
        message: 'Request is successful',
      }
    }
                """)
                .action("SCHEDULED_EVENT")
                .filterCriteria(WorkersServiceFilterCriteriaArgs.builder()
                    .schedule(WorkersServiceFilterCriteriaScheduleArgs.builder()
                        .cron("*/2 * * * *")
                        .timezone("UTC")
                        .build())
                    .build())
                .secrets(            
                    WorkersServiceSecretArgs.builder()
                        .key("my-secret-key-1")
                        .value("my-secret-value-1")
                        .build(),
                    WorkersServiceSecretArgs.builder()
                        .key("my-secret-key-2")
                        .value("my-secret-value-2")
                        .build())
                .build());
    
        }
    }
    
    resources:
      # Worker triggered by BEFORE_DOWNLOAD
      my-workers-service:
        type: platform:WorkersService
        properties:
          key: my-workers-service
          enabled: true
          description: My workers service
          sourceCode: |
            export default async (context: PlatformContext, data: BeforeDownloadRequest): Promise<BeforeDownloadResponse> => {
              console.log(await context.clients.platformHttp.get('/artifactory/api/system/ping'));
              console.log(await axios.get('https://my.external.resource'));
              return {
                status: 'DOWNLOAD_PROCEED',
                message: 'proceed',
              }
            }
          action: BEFORE_DOWNLOAD
          filterCriteria:
            artifactFilterCriteria:
              repoKeys:
                - my-repo-key
              includePatterns:
                - '**/*.jar'
              excludePatterns:
                - '**/*.txt'
          secrets:
            - key: my-secret-key-1
              value: my-secret-value-1
            - key: my-secret-key-2
              value: my-secret-value-2
      # Worker triggered by every local and federated repository, without naming any
      # repository explicitly. At least one of `repo_keys`, `any_local`, `any_remote` or
      # `any_federated` must be set.
      my-any-repo-workers-service:
        type: platform:WorkersService
        properties:
          key: my-any-repo-workers-service
          enabled: true
          description: My workers service for every local and federated repository
          sourceCode: |
            export default async (context: PlatformContext, data: BeforeDownloadRequest): Promise<BeforeDownloadResponse> => {
              console.log(await context.clients.platformHttp.get('/artifactory/api/system/ping'));
              return {
                status: 'DOWNLOAD_PROCEED',
                message: 'proceed',
              }
            }
          action: BEFORE_DOWNLOAD
          filterCriteria:
            artifactFilterCriteria:
              anyLocal: true
              anyFederated: true
      # Worker triggered by an action that does not accept a filter. `filter_criteria` must
      # be omitted entirely, otherwise the JFrog platform rejects the request.
      my-build-info-workers-service:
        type: platform:WorkersService
        properties:
          key: my-build-info-workers-service
          enabled: true
          description: My workers service triggered after build info is saved
          sourceCode: |
            export default async (context: PlatformContext, data: AfterBuildInfoSaveRequest): Promise<AfterBuildInfoSaveResponse> => {
              console.log(await context.clients.platformHttp.get('/artifactory/api/system/ping'));
              return {
                message: 'proceed',
              }
            }
          action: AFTER_BUILD_INFO_SAVE
      # Worker triggered by schedule
      my-scheduled-workers-service:
        type: platform:WorkersService
        properties:
          key: my-scheduled-workers-service
          enabled: true
          description: My Scheduled workers service
          sourceCode: |
            export default async (context: PlatformContext, data: BeforeDownloadRequest): Promise<BeforeDownloadResponse> => {
              console.log(await context.clients.platformHttp.get('/artifactory/api/system/ping'));
              console.log(await axios.get('https://my.external.resource'));
              return {
                message: 'Request is successful',
              }
            }
          action: SCHEDULED_EVENT
          filterCriteria:
            schedule:
              cron: '*/2 * * * *'
              timezone: UTC
          secrets:
            - key: my-secret-key-1
              value: my-secret-value-1
            - key: my-secret-key-2
              value: my-secret-value-2
    
    Example coming soon!
    

    Create WorkersService Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new WorkersService(name: string, args: WorkersServiceArgs, opts?: CustomResourceOptions);
    @overload
    def WorkersService(resource_name: str,
                       args: WorkersServiceArgs,
                       opts: Optional[ResourceOptions] = None)
    
    @overload
    def WorkersService(resource_name: str,
                       opts: Optional[ResourceOptions] = None,
                       action: Optional[str] = None,
                       enabled: Optional[bool] = None,
                       key: Optional[str] = None,
                       source_code: Optional[str] = None,
                       description: Optional[str] = None,
                       filter_criteria: Optional[WorkersServiceFilterCriteriaArgs] = None,
                       secrets: Optional[Sequence[WorkersServiceSecretArgs]] = None)
    func NewWorkersService(ctx *Context, name string, args WorkersServiceArgs, opts ...ResourceOption) (*WorkersService, error)
    public WorkersService(string name, WorkersServiceArgs args, CustomResourceOptions? opts = null)
    public WorkersService(String name, WorkersServiceArgs args)
    public WorkersService(String name, WorkersServiceArgs args, CustomResourceOptions options)
    
    type: platform:WorkersService
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    
    resource "platform_workers_service" "name" {
        # resource properties
    }

    Parameters

    name string
    The unique name of the resource.
    args WorkersServiceArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    resource_name str
    The unique name of the resource.
    args WorkersServiceArgs
    The arguments to resource properties.
    opts ResourceOptions
    Bag of options to control resource's behavior.
    ctx Context
    Context object for the current deployment.
    name string
    The unique name of the resource.
    args WorkersServiceArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args WorkersServiceArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args WorkersServiceArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Constructor example

    The following reference example uses placeholder values for all input properties.

    var workersServiceResource = new Platform.WorkersService("workersServiceResource", new()
    {
        Action = "string",
        Enabled = false,
        Key = "string",
        SourceCode = "string",
        Description = "string",
        FilterCriteria = new Platform.Inputs.WorkersServiceFilterCriteriaArgs
        {
            ArtifactFilterCriteria = new Platform.Inputs.WorkersServiceFilterCriteriaArtifactFilterCriteriaArgs
            {
                AnyFederated = false,
                AnyLocal = false,
                AnyRemote = false,
                ExcludePatterns = new[]
                {
                    "string",
                },
                IncludePatterns = new[]
                {
                    "string",
                },
                RepoKeys = new[]
                {
                    "string",
                },
            },
            Schedule = new Platform.Inputs.WorkersServiceFilterCriteriaScheduleArgs
            {
                Cron = "string",
                Timezone = "string",
            },
        },
        Secrets = new[]
        {
            new Platform.Inputs.WorkersServiceSecretArgs
            {
                Key = "string",
                Value = "string",
            },
        },
    });
    
    example, err := platform.NewWorkersService(ctx, "workersServiceResource", &platform.WorkersServiceArgs{
    	Action:      pulumi.String("string"),
    	Enabled:     pulumi.Bool(false),
    	Key:         pulumi.String("string"),
    	SourceCode:  pulumi.String("string"),
    	Description: pulumi.String("string"),
    	FilterCriteria: &platform.WorkersServiceFilterCriteriaArgs{
    		ArtifactFilterCriteria: &platform.WorkersServiceFilterCriteriaArtifactFilterCriteriaArgs{
    			AnyFederated: pulumi.Bool(false),
    			AnyLocal:     pulumi.Bool(false),
    			AnyRemote:    pulumi.Bool(false),
    			ExcludePatterns: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    			IncludePatterns: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    			RepoKeys: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    		},
    		Schedule: &platform.WorkersServiceFilterCriteriaScheduleArgs{
    			Cron:     pulumi.String("string"),
    			Timezone: pulumi.String("string"),
    		},
    	},
    	Secrets: platform.WorkersServiceSecretArray{
    		&platform.WorkersServiceSecretArgs{
    			Key:   pulumi.String("string"),
    			Value: pulumi.String("string"),
    		},
    	},
    })
    
    resource "platform_workers_service" "workersServiceResource" {
      lifecycle {
        create_before_destroy = true
      }
      action      = "string"
      enabled     = false
      key         = "string"
      source_code = "string"
      description = "string"
      filter_criteria = {
        artifact_filter_criteria = {
          any_federated    = false
          any_local        = false
          any_remote       = false
          exclude_patterns = ["string"]
          include_patterns = ["string"]
          repo_keys        = ["string"]
        }
        schedule = {
          cron     = "string"
          timezone = "string"
        }
      }
      secrets {
        key   = "string"
        value = "string"
      }
    }
    
    var workersServiceResource = new WorkersService("workersServiceResource", WorkersServiceArgs.builder()
        .action("string")
        .enabled(false)
        .key("string")
        .sourceCode("string")
        .description("string")
        .filterCriteria(WorkersServiceFilterCriteriaArgs.builder()
            .artifactFilterCriteria(WorkersServiceFilterCriteriaArtifactFilterCriteriaArgs.builder()
                .anyFederated(false)
                .anyLocal(false)
                .anyRemote(false)
                .excludePatterns("string")
                .includePatterns("string")
                .repoKeys("string")
                .build())
            .schedule(WorkersServiceFilterCriteriaScheduleArgs.builder()
                .cron("string")
                .timezone("string")
                .build())
            .build())
        .secrets(WorkersServiceSecretArgs.builder()
            .key("string")
            .value("string")
            .build())
        .build());
    
    workers_service_resource = platform.WorkersService("workersServiceResource",
        action="string",
        enabled=False,
        key="string",
        source_code="string",
        description="string",
        filter_criteria={
            "artifact_filter_criteria": {
                "any_federated": False,
                "any_local": False,
                "any_remote": False,
                "exclude_patterns": ["string"],
                "include_patterns": ["string"],
                "repo_keys": ["string"],
            },
            "schedule": {
                "cron": "string",
                "timezone": "string",
            },
        },
        secrets=[{
            "key": "string",
            "value": "string",
        }])
    
    const workersServiceResource = new platform.WorkersService("workersServiceResource", {
        action: "string",
        enabled: false,
        key: "string",
        sourceCode: "string",
        description: "string",
        filterCriteria: {
            artifactFilterCriteria: {
                anyFederated: false,
                anyLocal: false,
                anyRemote: false,
                excludePatterns: ["string"],
                includePatterns: ["string"],
                repoKeys: ["string"],
            },
            schedule: {
                cron: "string",
                timezone: "string",
            },
        },
        secrets: [{
            key: "string",
            value: "string",
        }],
    });
    
    type: platform:WorkersService
    properties:
        action: string
        description: string
        enabled: false
        filterCriteria:
            artifactFilterCriteria:
                anyFederated: false
                anyLocal: false
                anyRemote: false
                excludePatterns:
                    - string
                includePatterns:
                    - string
                repoKeys:
                    - string
            schedule:
                cron: string
                timezone: string
        key: string
        secrets:
            - key: string
              value: string
        sourceCode: string
    

    WorkersService Resource Properties

    To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

    Inputs

    In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

    The WorkersService resource accepts the following input properties:

    Action string
    The worker action with which the worker is associated. Valid values: BEFOREDOWNLOAD, AFTERDOWNLOAD, BEFOREUPLOAD, AFTERCREATE, AFTERBUILDINFOSAVE, AFTERMOVE, BEFOREPROPERTYCREATE, BEFOREPROPERTYDELETE, AFTERPROPERTYCREATE, AFTERPROPERTYDELETE, SCHEDULED_EVENT
    Enabled bool
    Whether to enable the worker immediately after creation.
    Key string
    The unique ID of the worker.
    SourceCode string
    The worker script in TypeScript or JavaScript.
    Description string
    Description of the worker.
    FilterCriteria WorkersServiceFilterCriteria
    Defines the criteria for triggering the worker, either by specifying repositories and path patterns for artifact-based filtering or by defining a schedule using a Cron expression. Most actions require a filter once the worker is enabled: every artifact action requires artifact_filter_criteria, and SCHEDULED_EVENT requires schedule. AFTER_BUILD_INFO_SAVE is the only action that rejects a filter, so omit this attribute for it.
    Secrets List<WorkersServiceSecret>
    The secrets to be added to the worker.
    Action string
    The worker action with which the worker is associated. Valid values: BEFOREDOWNLOAD, AFTERDOWNLOAD, BEFOREUPLOAD, AFTERCREATE, AFTERBUILDINFOSAVE, AFTERMOVE, BEFOREPROPERTYCREATE, BEFOREPROPERTYDELETE, AFTERPROPERTYCREATE, AFTERPROPERTYDELETE, SCHEDULED_EVENT
    Enabled bool
    Whether to enable the worker immediately after creation.
    Key string
    The unique ID of the worker.
    SourceCode string
    The worker script in TypeScript or JavaScript.
    Description string
    Description of the worker.
    FilterCriteria WorkersServiceFilterCriteriaArgs
    Defines the criteria for triggering the worker, either by specifying repositories and path patterns for artifact-based filtering or by defining a schedule using a Cron expression. Most actions require a filter once the worker is enabled: every artifact action requires artifact_filter_criteria, and SCHEDULED_EVENT requires schedule. AFTER_BUILD_INFO_SAVE is the only action that rejects a filter, so omit this attribute for it.
    Secrets []WorkersServiceSecretArgs
    The secrets to be added to the worker.
    action string
    The worker action with which the worker is associated. Valid values: BEFOREDOWNLOAD, AFTERDOWNLOAD, BEFOREUPLOAD, AFTERCREATE, AFTERBUILDINFOSAVE, AFTERMOVE, BEFOREPROPERTYCREATE, BEFOREPROPERTYDELETE, AFTERPROPERTYCREATE, AFTERPROPERTYDELETE, SCHEDULED_EVENT
    enabled bool
    Whether to enable the worker immediately after creation.
    key string
    The unique ID of the worker.
    source_code string
    The worker script in TypeScript or JavaScript.
    description string
    Description of the worker.
    filter_criteria object
    Defines the criteria for triggering the worker, either by specifying repositories and path patterns for artifact-based filtering or by defining a schedule using a Cron expression. Most actions require a filter once the worker is enabled: every artifact action requires artifact_filter_criteria, and SCHEDULED_EVENT requires schedule. AFTER_BUILD_INFO_SAVE is the only action that rejects a filter, so omit this attribute for it.
    secrets list(object)
    The secrets to be added to the worker.
    action String
    The worker action with which the worker is associated. Valid values: BEFOREDOWNLOAD, AFTERDOWNLOAD, BEFOREUPLOAD, AFTERCREATE, AFTERBUILDINFOSAVE, AFTERMOVE, BEFOREPROPERTYCREATE, BEFOREPROPERTYDELETE, AFTERPROPERTYCREATE, AFTERPROPERTYDELETE, SCHEDULED_EVENT
    enabled Boolean
    Whether to enable the worker immediately after creation.
    key String
    The unique ID of the worker.
    sourceCode String
    The worker script in TypeScript or JavaScript.
    description String
    Description of the worker.
    filterCriteria WorkersServiceFilterCriteria
    Defines the criteria for triggering the worker, either by specifying repositories and path patterns for artifact-based filtering or by defining a schedule using a Cron expression. Most actions require a filter once the worker is enabled: every artifact action requires artifact_filter_criteria, and SCHEDULED_EVENT requires schedule. AFTER_BUILD_INFO_SAVE is the only action that rejects a filter, so omit this attribute for it.
    secrets List<WorkersServiceSecret>
    The secrets to be added to the worker.
    action string
    The worker action with which the worker is associated. Valid values: BEFOREDOWNLOAD, AFTERDOWNLOAD, BEFOREUPLOAD, AFTERCREATE, AFTERBUILDINFOSAVE, AFTERMOVE, BEFOREPROPERTYCREATE, BEFOREPROPERTYDELETE, AFTERPROPERTYCREATE, AFTERPROPERTYDELETE, SCHEDULED_EVENT
    enabled boolean
    Whether to enable the worker immediately after creation.
    key string
    The unique ID of the worker.
    sourceCode string
    The worker script in TypeScript or JavaScript.
    description string
    Description of the worker.
    filterCriteria WorkersServiceFilterCriteria
    Defines the criteria for triggering the worker, either by specifying repositories and path patterns for artifact-based filtering or by defining a schedule using a Cron expression. Most actions require a filter once the worker is enabled: every artifact action requires artifact_filter_criteria, and SCHEDULED_EVENT requires schedule. AFTER_BUILD_INFO_SAVE is the only action that rejects a filter, so omit this attribute for it.
    secrets WorkersServiceSecret[]
    The secrets to be added to the worker.
    action str
    The worker action with which the worker is associated. Valid values: BEFOREDOWNLOAD, AFTERDOWNLOAD, BEFOREUPLOAD, AFTERCREATE, AFTERBUILDINFOSAVE, AFTERMOVE, BEFOREPROPERTYCREATE, BEFOREPROPERTYDELETE, AFTERPROPERTYCREATE, AFTERPROPERTYDELETE, SCHEDULED_EVENT
    enabled bool
    Whether to enable the worker immediately after creation.
    key str
    The unique ID of the worker.
    source_code str
    The worker script in TypeScript or JavaScript.
    description str
    Description of the worker.
    filter_criteria WorkersServiceFilterCriteriaArgs
    Defines the criteria for triggering the worker, either by specifying repositories and path patterns for artifact-based filtering or by defining a schedule using a Cron expression. Most actions require a filter once the worker is enabled: every artifact action requires artifact_filter_criteria, and SCHEDULED_EVENT requires schedule. AFTER_BUILD_INFO_SAVE is the only action that rejects a filter, so omit this attribute for it.
    secrets Sequence[WorkersServiceSecretArgs]
    The secrets to be added to the worker.
    action String
    The worker action with which the worker is associated. Valid values: BEFOREDOWNLOAD, AFTERDOWNLOAD, BEFOREUPLOAD, AFTERCREATE, AFTERBUILDINFOSAVE, AFTERMOVE, BEFOREPROPERTYCREATE, BEFOREPROPERTYDELETE, AFTERPROPERTYCREATE, AFTERPROPERTYDELETE, SCHEDULED_EVENT
    enabled Boolean
    Whether to enable the worker immediately after creation.
    key String
    The unique ID of the worker.
    sourceCode String
    The worker script in TypeScript or JavaScript.
    description String
    Description of the worker.
    filterCriteria Property Map
    Defines the criteria for triggering the worker, either by specifying repositories and path patterns for artifact-based filtering or by defining a schedule using a Cron expression. Most actions require a filter once the worker is enabled: every artifact action requires artifact_filter_criteria, and SCHEDULED_EVENT requires schedule. AFTER_BUILD_INFO_SAVE is the only action that rejects a filter, so omit this attribute for it.
    secrets List<Property Map>
    The secrets to be added to the worker.

    Outputs

    All input properties are implicitly available as output properties. Additionally, the WorkersService resource produces the following output properties:

    Id string
    The provider-assigned unique ID for this managed resource.
    Id string
    The provider-assigned unique ID for this managed resource.
    id string
    The provider-assigned unique ID for this managed resource.
    id String
    The provider-assigned unique ID for this managed resource.
    id string
    The provider-assigned unique ID for this managed resource.
    id str
    The provider-assigned unique ID for this managed resource.
    id String
    The provider-assigned unique ID for this managed resource.

    Look up Existing WorkersService Resource

    Get an existing WorkersService resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

    public static get(name: string, id: Input<ID>, state?: WorkersServiceState, opts?: CustomResourceOptions): WorkersService
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            action: Optional[str] = None,
            description: Optional[str] = None,
            enabled: Optional[bool] = None,
            filter_criteria: Optional[WorkersServiceFilterCriteriaArgs] = None,
            key: Optional[str] = None,
            secrets: Optional[Sequence[WorkersServiceSecretArgs]] = None,
            source_code: Optional[str] = None) -> WorkersService
    func GetWorkersService(ctx *Context, name string, id IDInput, state *WorkersServiceState, opts ...ResourceOption) (*WorkersService, error)
    public static WorkersService Get(string name, Input<string> id, WorkersServiceState? state, CustomResourceOptions? opts = null)
    public static WorkersService get(String name, Output<String> id, WorkersServiceState state, CustomResourceOptions options)
    resources:  _:    type: platform:WorkersService    get:      id: ${id}
    import {
      to = platform_workers_service.example
      id = "${id}"
    }
    
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    resource_name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    The following state arguments are supported:
    Action string
    The worker action with which the worker is associated. Valid values: BEFOREDOWNLOAD, AFTERDOWNLOAD, BEFOREUPLOAD, AFTERCREATE, AFTERBUILDINFOSAVE, AFTERMOVE, BEFOREPROPERTYCREATE, BEFOREPROPERTYDELETE, AFTERPROPERTYCREATE, AFTERPROPERTYDELETE, SCHEDULED_EVENT
    Description string
    Description of the worker.
    Enabled bool
    Whether to enable the worker immediately after creation.
    FilterCriteria WorkersServiceFilterCriteria
    Defines the criteria for triggering the worker, either by specifying repositories and path patterns for artifact-based filtering or by defining a schedule using a Cron expression. Most actions require a filter once the worker is enabled: every artifact action requires artifact_filter_criteria, and SCHEDULED_EVENT requires schedule. AFTER_BUILD_INFO_SAVE is the only action that rejects a filter, so omit this attribute for it.
    Key string
    The unique ID of the worker.
    Secrets List<WorkersServiceSecret>
    The secrets to be added to the worker.
    SourceCode string
    The worker script in TypeScript or JavaScript.
    Action string
    The worker action with which the worker is associated. Valid values: BEFOREDOWNLOAD, AFTERDOWNLOAD, BEFOREUPLOAD, AFTERCREATE, AFTERBUILDINFOSAVE, AFTERMOVE, BEFOREPROPERTYCREATE, BEFOREPROPERTYDELETE, AFTERPROPERTYCREATE, AFTERPROPERTYDELETE, SCHEDULED_EVENT
    Description string
    Description of the worker.
    Enabled bool
    Whether to enable the worker immediately after creation.
    FilterCriteria WorkersServiceFilterCriteriaArgs
    Defines the criteria for triggering the worker, either by specifying repositories and path patterns for artifact-based filtering or by defining a schedule using a Cron expression. Most actions require a filter once the worker is enabled: every artifact action requires artifact_filter_criteria, and SCHEDULED_EVENT requires schedule. AFTER_BUILD_INFO_SAVE is the only action that rejects a filter, so omit this attribute for it.
    Key string
    The unique ID of the worker.
    Secrets []WorkersServiceSecretArgs
    The secrets to be added to the worker.
    SourceCode string
    The worker script in TypeScript or JavaScript.
    action string
    The worker action with which the worker is associated. Valid values: BEFOREDOWNLOAD, AFTERDOWNLOAD, BEFOREUPLOAD, AFTERCREATE, AFTERBUILDINFOSAVE, AFTERMOVE, BEFOREPROPERTYCREATE, BEFOREPROPERTYDELETE, AFTERPROPERTYCREATE, AFTERPROPERTYDELETE, SCHEDULED_EVENT
    description string
    Description of the worker.
    enabled bool
    Whether to enable the worker immediately after creation.
    filter_criteria object
    Defines the criteria for triggering the worker, either by specifying repositories and path patterns for artifact-based filtering or by defining a schedule using a Cron expression. Most actions require a filter once the worker is enabled: every artifact action requires artifact_filter_criteria, and SCHEDULED_EVENT requires schedule. AFTER_BUILD_INFO_SAVE is the only action that rejects a filter, so omit this attribute for it.
    key string
    The unique ID of the worker.
    secrets list(object)
    The secrets to be added to the worker.
    source_code string
    The worker script in TypeScript or JavaScript.
    action String
    The worker action with which the worker is associated. Valid values: BEFOREDOWNLOAD, AFTERDOWNLOAD, BEFOREUPLOAD, AFTERCREATE, AFTERBUILDINFOSAVE, AFTERMOVE, BEFOREPROPERTYCREATE, BEFOREPROPERTYDELETE, AFTERPROPERTYCREATE, AFTERPROPERTYDELETE, SCHEDULED_EVENT
    description String
    Description of the worker.
    enabled Boolean
    Whether to enable the worker immediately after creation.
    filterCriteria WorkersServiceFilterCriteria
    Defines the criteria for triggering the worker, either by specifying repositories and path patterns for artifact-based filtering or by defining a schedule using a Cron expression. Most actions require a filter once the worker is enabled: every artifact action requires artifact_filter_criteria, and SCHEDULED_EVENT requires schedule. AFTER_BUILD_INFO_SAVE is the only action that rejects a filter, so omit this attribute for it.
    key String
    The unique ID of the worker.
    secrets List<WorkersServiceSecret>
    The secrets to be added to the worker.
    sourceCode String
    The worker script in TypeScript or JavaScript.
    action string
    The worker action with which the worker is associated. Valid values: BEFOREDOWNLOAD, AFTERDOWNLOAD, BEFOREUPLOAD, AFTERCREATE, AFTERBUILDINFOSAVE, AFTERMOVE, BEFOREPROPERTYCREATE, BEFOREPROPERTYDELETE, AFTERPROPERTYCREATE, AFTERPROPERTYDELETE, SCHEDULED_EVENT
    description string
    Description of the worker.
    enabled boolean
    Whether to enable the worker immediately after creation.
    filterCriteria WorkersServiceFilterCriteria
    Defines the criteria for triggering the worker, either by specifying repositories and path patterns for artifact-based filtering or by defining a schedule using a Cron expression. Most actions require a filter once the worker is enabled: every artifact action requires artifact_filter_criteria, and SCHEDULED_EVENT requires schedule. AFTER_BUILD_INFO_SAVE is the only action that rejects a filter, so omit this attribute for it.
    key string
    The unique ID of the worker.
    secrets WorkersServiceSecret[]
    The secrets to be added to the worker.
    sourceCode string
    The worker script in TypeScript or JavaScript.
    action str
    The worker action with which the worker is associated. Valid values: BEFOREDOWNLOAD, AFTERDOWNLOAD, BEFOREUPLOAD, AFTERCREATE, AFTERBUILDINFOSAVE, AFTERMOVE, BEFOREPROPERTYCREATE, BEFOREPROPERTYDELETE, AFTERPROPERTYCREATE, AFTERPROPERTYDELETE, SCHEDULED_EVENT
    description str
    Description of the worker.
    enabled bool
    Whether to enable the worker immediately after creation.
    filter_criteria WorkersServiceFilterCriteriaArgs
    Defines the criteria for triggering the worker, either by specifying repositories and path patterns for artifact-based filtering or by defining a schedule using a Cron expression. Most actions require a filter once the worker is enabled: every artifact action requires artifact_filter_criteria, and SCHEDULED_EVENT requires schedule. AFTER_BUILD_INFO_SAVE is the only action that rejects a filter, so omit this attribute for it.
    key str
    The unique ID of the worker.
    secrets Sequence[WorkersServiceSecretArgs]
    The secrets to be added to the worker.
    source_code str
    The worker script in TypeScript or JavaScript.
    action String
    The worker action with which the worker is associated. Valid values: BEFOREDOWNLOAD, AFTERDOWNLOAD, BEFOREUPLOAD, AFTERCREATE, AFTERBUILDINFOSAVE, AFTERMOVE, BEFOREPROPERTYCREATE, BEFOREPROPERTYDELETE, AFTERPROPERTYCREATE, AFTERPROPERTYDELETE, SCHEDULED_EVENT
    description String
    Description of the worker.
    enabled Boolean
    Whether to enable the worker immediately after creation.
    filterCriteria Property Map
    Defines the criteria for triggering the worker, either by specifying repositories and path patterns for artifact-based filtering or by defining a schedule using a Cron expression. Most actions require a filter once the worker is enabled: every artifact action requires artifact_filter_criteria, and SCHEDULED_EVENT requires schedule. AFTER_BUILD_INFO_SAVE is the only action that rejects a filter, so omit this attribute for it.
    key String
    The unique ID of the worker.
    secrets List<Property Map>
    The secrets to be added to the worker.
    sourceCode String
    The worker script in TypeScript or JavaScript.

    Supporting Types

    WorkersServiceFilterCriteria, WorkersServiceFilterCriteriaArgs

    WorkersServiceFilterCriteriaArtifactFilterCriteria, WorkersServiceFilterCriteriaArtifactFilterCriteriaArgs

    AnyFederated bool
    Trigger the worker for every federated repository, in addition to any repository listed in repo_keys.
    AnyLocal bool
    Trigger the worker for every local repository, in addition to any repository listed in repo_keys.
    AnyRemote bool
    Trigger the worker for every remote repository, in addition to any repository listed in repo_keys.
    ExcludePatterns List<string>
    Define patterns to for all repository paths for repositories to be excluded in the repoKeys. Defines those repositories that do not trigger the worker. An explicit empty set is transmitted and round-trips as an empty set; omit the attribute when no exclude patterns are intended.
    IncludePatterns List<string>
    Define patterns to match all repository paths for repositories identified in the repoKeys. Defines those repositories that trigger the worker. An explicit empty set is transmitted and round-trips as an empty set; omit the attribute when no include patterns are intended.
    RepoKeys List<string>
    Defines which repositories are used when an action event occurs to trigger the worker. Can be omitted when at least one of any_local, any_remote, or any_federated is set. An explicit empty set (repo_keys = []) is transmitted to the platform and round-trips as an empty set; omit the attribute entirely when no repository list is intended.
    AnyFederated bool
    Trigger the worker for every federated repository, in addition to any repository listed in repo_keys.
    AnyLocal bool
    Trigger the worker for every local repository, in addition to any repository listed in repo_keys.
    AnyRemote bool
    Trigger the worker for every remote repository, in addition to any repository listed in repo_keys.
    ExcludePatterns []string
    Define patterns to for all repository paths for repositories to be excluded in the repoKeys. Defines those repositories that do not trigger the worker. An explicit empty set is transmitted and round-trips as an empty set; omit the attribute when no exclude patterns are intended.
    IncludePatterns []string
    Define patterns to match all repository paths for repositories identified in the repoKeys. Defines those repositories that trigger the worker. An explicit empty set is transmitted and round-trips as an empty set; omit the attribute when no include patterns are intended.
    RepoKeys []string
    Defines which repositories are used when an action event occurs to trigger the worker. Can be omitted when at least one of any_local, any_remote, or any_federated is set. An explicit empty set (repo_keys = []) is transmitted to the platform and round-trips as an empty set; omit the attribute entirely when no repository list is intended.
    any_federated bool
    Trigger the worker for every federated repository, in addition to any repository listed in repo_keys.
    any_local bool
    Trigger the worker for every local repository, in addition to any repository listed in repo_keys.
    any_remote bool
    Trigger the worker for every remote repository, in addition to any repository listed in repo_keys.
    exclude_patterns list(string)
    Define patterns to for all repository paths for repositories to be excluded in the repoKeys. Defines those repositories that do not trigger the worker. An explicit empty set is transmitted and round-trips as an empty set; omit the attribute when no exclude patterns are intended.
    include_patterns list(string)
    Define patterns to match all repository paths for repositories identified in the repoKeys. Defines those repositories that trigger the worker. An explicit empty set is transmitted and round-trips as an empty set; omit the attribute when no include patterns are intended.
    repo_keys list(string)
    Defines which repositories are used when an action event occurs to trigger the worker. Can be omitted when at least one of any_local, any_remote, or any_federated is set. An explicit empty set (repo_keys = []) is transmitted to the platform and round-trips as an empty set; omit the attribute entirely when no repository list is intended.
    anyFederated Boolean
    Trigger the worker for every federated repository, in addition to any repository listed in repo_keys.
    anyLocal Boolean
    Trigger the worker for every local repository, in addition to any repository listed in repo_keys.
    anyRemote Boolean
    Trigger the worker for every remote repository, in addition to any repository listed in repo_keys.
    excludePatterns List<String>
    Define patterns to for all repository paths for repositories to be excluded in the repoKeys. Defines those repositories that do not trigger the worker. An explicit empty set is transmitted and round-trips as an empty set; omit the attribute when no exclude patterns are intended.
    includePatterns List<String>
    Define patterns to match all repository paths for repositories identified in the repoKeys. Defines those repositories that trigger the worker. An explicit empty set is transmitted and round-trips as an empty set; omit the attribute when no include patterns are intended.
    repoKeys List<String>
    Defines which repositories are used when an action event occurs to trigger the worker. Can be omitted when at least one of any_local, any_remote, or any_federated is set. An explicit empty set (repo_keys = []) is transmitted to the platform and round-trips as an empty set; omit the attribute entirely when no repository list is intended.
    anyFederated boolean
    Trigger the worker for every federated repository, in addition to any repository listed in repo_keys.
    anyLocal boolean
    Trigger the worker for every local repository, in addition to any repository listed in repo_keys.
    anyRemote boolean
    Trigger the worker for every remote repository, in addition to any repository listed in repo_keys.
    excludePatterns string[]
    Define patterns to for all repository paths for repositories to be excluded in the repoKeys. Defines those repositories that do not trigger the worker. An explicit empty set is transmitted and round-trips as an empty set; omit the attribute when no exclude patterns are intended.
    includePatterns string[]
    Define patterns to match all repository paths for repositories identified in the repoKeys. Defines those repositories that trigger the worker. An explicit empty set is transmitted and round-trips as an empty set; omit the attribute when no include patterns are intended.
    repoKeys string[]
    Defines which repositories are used when an action event occurs to trigger the worker. Can be omitted when at least one of any_local, any_remote, or any_federated is set. An explicit empty set (repo_keys = []) is transmitted to the platform and round-trips as an empty set; omit the attribute entirely when no repository list is intended.
    any_federated bool
    Trigger the worker for every federated repository, in addition to any repository listed in repo_keys.
    any_local bool
    Trigger the worker for every local repository, in addition to any repository listed in repo_keys.
    any_remote bool
    Trigger the worker for every remote repository, in addition to any repository listed in repo_keys.
    exclude_patterns Sequence[str]
    Define patterns to for all repository paths for repositories to be excluded in the repoKeys. Defines those repositories that do not trigger the worker. An explicit empty set is transmitted and round-trips as an empty set; omit the attribute when no exclude patterns are intended.
    include_patterns Sequence[str]
    Define patterns to match all repository paths for repositories identified in the repoKeys. Defines those repositories that trigger the worker. An explicit empty set is transmitted and round-trips as an empty set; omit the attribute when no include patterns are intended.
    repo_keys Sequence[str]
    Defines which repositories are used when an action event occurs to trigger the worker. Can be omitted when at least one of any_local, any_remote, or any_federated is set. An explicit empty set (repo_keys = []) is transmitted to the platform and round-trips as an empty set; omit the attribute entirely when no repository list is intended.
    anyFederated Boolean
    Trigger the worker for every federated repository, in addition to any repository listed in repo_keys.
    anyLocal Boolean
    Trigger the worker for every local repository, in addition to any repository listed in repo_keys.
    anyRemote Boolean
    Trigger the worker for every remote repository, in addition to any repository listed in repo_keys.
    excludePatterns List<String>
    Define patterns to for all repository paths for repositories to be excluded in the repoKeys. Defines those repositories that do not trigger the worker. An explicit empty set is transmitted and round-trips as an empty set; omit the attribute when no exclude patterns are intended.
    includePatterns List<String>
    Define patterns to match all repository paths for repositories identified in the repoKeys. Defines those repositories that trigger the worker. An explicit empty set is transmitted and round-trips as an empty set; omit the attribute when no include patterns are intended.
    repoKeys List<String>
    Defines which repositories are used when an action event occurs to trigger the worker. Can be omitted when at least one of any_local, any_remote, or any_federated is set. An explicit empty set (repo_keys = []) is transmitted to the platform and round-trips as an empty set; omit the attribute entirely when no repository list is intended.

    WorkersServiceFilterCriteriaSchedule, WorkersServiceFilterCriteriaScheduleArgs

    Cron string
    Defines the Cron expression to schedule the worker.
    Timezone string
    Define which timezone the schedule applies to if provided.
    Cron string
    Defines the Cron expression to schedule the worker.
    Timezone string
    Define which timezone the schedule applies to if provided.
    cron string
    Defines the Cron expression to schedule the worker.
    timezone string
    Define which timezone the schedule applies to if provided.
    cron String
    Defines the Cron expression to schedule the worker.
    timezone String
    Define which timezone the schedule applies to if provided.
    cron string
    Defines the Cron expression to schedule the worker.
    timezone string
    Define which timezone the schedule applies to if provided.
    cron str
    Defines the Cron expression to schedule the worker.
    timezone str
    Define which timezone the schedule applies to if provided.
    cron String
    Defines the Cron expression to schedule the worker.
    timezone String
    Define which timezone the schedule applies to if provided.

    WorkersServiceSecret, WorkersServiceSecretArgs

    Key string
    The name of the secret.
    Value string
    The name of the secret.
    Key string
    The name of the secret.
    Value string
    The name of the secret.
    key string
    The name of the secret.
    value string
    The name of the secret.
    key String
    The name of the secret.
    value String
    The name of the secret.
    key string
    The name of the secret.
    value string
    The name of the secret.
    key str
    The name of the secret.
    value str
    The name of the secret.
    key String
    The name of the secret.
    value String
    The name of the secret.

    Import

    $ pulumi import platform:index/workersService:WorkersService my-worker-service my-worker-service-key
    

    To learn more about importing existing cloud resources, see Importing resources.

    Package Details

    Repository
    platform jfrog/terraform-provider-platform
    License
    Notes
    This Pulumi package is based on the platform Terraform Provider.
    Viewing docs for platform 2.2.11
    published on Tuesday, Aug 25, 2026 by jfrog

      Try Pulumi Cloud free.
      Your team will thank you.

      Start free trial