1. Packages
  2. Artifactory Provider
  3. API Docs
  4. ArtifactLifecycleCustomWebhook
artifactory v8.4.0 published on Tuesday, Nov 19, 2024 by Pulumi

artifactory.ArtifactLifecycleCustomWebhook

Explore with Pulumi AI

artifactory logo
artifactory v8.4.0 published on Tuesday, Nov 19, 2024 by Pulumi

    Provides an Artifactory custom webhook resource. This can be used to register and manage Artifactory webhook subscription which enables you to be notified or notify other users when such events take place in Artifactory.

    Example Usage

    .

    import * as pulumi from "@pulumi/pulumi";
    import * as artifactory from "@pulumi/artifactory";
    
    const artifact_lifecycle_custom_webhook = new artifactory.ArtifactLifecycleCustomWebhook("artifact-lifecycle-custom-webhook", {
        key: "artifact-lifecycle-custom-webhook",
        eventTypes: [
            "archive",
            "restore",
        ],
        handlers: [{
            url: "https://tempurl.org",
            secrets: {
                secretName1: "value1",
                secretName2: "value2",
            },
            httpHeaders: {
                headerName1: "value1",
                headerName2: "value2",
            },
            payload: "{ \"ref\": \"main\" , \"inputs\": { \"artifact_path\": \"test-repo/repo-path\" } }",
        }],
    });
    
    import pulumi
    import pulumi_artifactory as artifactory
    
    artifact_lifecycle_custom_webhook = artifactory.ArtifactLifecycleCustomWebhook("artifact-lifecycle-custom-webhook",
        key="artifact-lifecycle-custom-webhook",
        event_types=[
            "archive",
            "restore",
        ],
        handlers=[{
            "url": "https://tempurl.org",
            "secrets": {
                "secretName1": "value1",
                "secretName2": "value2",
            },
            "http_headers": {
                "headerName1": "value1",
                "headerName2": "value2",
            },
            "payload": "{ \"ref\": \"main\" , \"inputs\": { \"artifact_path\": \"test-repo/repo-path\" } }",
        }])
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-artifactory/sdk/v8/go/artifactory"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := artifactory.NewArtifactLifecycleCustomWebhook(ctx, "artifact-lifecycle-custom-webhook", &artifactory.ArtifactLifecycleCustomWebhookArgs{
    			Key: pulumi.String("artifact-lifecycle-custom-webhook"),
    			EventTypes: pulumi.StringArray{
    				pulumi.String("archive"),
    				pulumi.String("restore"),
    			},
    			Handlers: artifactory.ArtifactLifecycleCustomWebhookHandlerArray{
    				&artifactory.ArtifactLifecycleCustomWebhookHandlerArgs{
    					Url: pulumi.String("https://tempurl.org"),
    					Secrets: pulumi.StringMap{
    						"secretName1": pulumi.String("value1"),
    						"secretName2": pulumi.String("value2"),
    					},
    					HttpHeaders: pulumi.StringMap{
    						"headerName1": pulumi.String("value1"),
    						"headerName2": pulumi.String("value2"),
    					},
    					Payload: pulumi.String("{ \"ref\": \"main\" , \"inputs\": { \"artifact_path\": \"test-repo/repo-path\" } }"),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Artifactory = Pulumi.Artifactory;
    
    return await Deployment.RunAsync(() => 
    {
        var artifact_lifecycle_custom_webhook = new Artifactory.ArtifactLifecycleCustomWebhook("artifact-lifecycle-custom-webhook", new()
        {
            Key = "artifact-lifecycle-custom-webhook",
            EventTypes = new[]
            {
                "archive",
                "restore",
            },
            Handlers = new[]
            {
                new Artifactory.Inputs.ArtifactLifecycleCustomWebhookHandlerArgs
                {
                    Url = "https://tempurl.org",
                    Secrets = 
                    {
                        { "secretName1", "value1" },
                        { "secretName2", "value2" },
                    },
                    HttpHeaders = 
                    {
                        { "headerName1", "value1" },
                        { "headerName2", "value2" },
                    },
                    Payload = "{ \"ref\": \"main\" , \"inputs\": { \"artifact_path\": \"test-repo/repo-path\" } }",
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.artifactory.ArtifactLifecycleCustomWebhook;
    import com.pulumi.artifactory.ArtifactLifecycleCustomWebhookArgs;
    import com.pulumi.artifactory.inputs.ArtifactLifecycleCustomWebhookHandlerArgs;
    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 artifact_lifecycle_custom_webhook = new ArtifactLifecycleCustomWebhook("artifact-lifecycle-custom-webhook", ArtifactLifecycleCustomWebhookArgs.builder()
                .key("artifact-lifecycle-custom-webhook")
                .eventTypes(            
                    "archive",
                    "restore")
                .handlers(ArtifactLifecycleCustomWebhookHandlerArgs.builder()
                    .url("https://tempurl.org")
                    .secrets(Map.ofEntries(
                        Map.entry("secretName1", "value1"),
                        Map.entry("secretName2", "value2")
                    ))
                    .httpHeaders(Map.ofEntries(
                        Map.entry("headerName1", "value1"),
                        Map.entry("headerName2", "value2")
                    ))
                    .payload("{ \"ref\": \"main\" , \"inputs\": { \"artifact_path\": \"test-repo/repo-path\" } }")
                    .build())
                .build());
    
        }
    }
    
    resources:
      artifact-lifecycle-custom-webhook:
        type: artifactory:ArtifactLifecycleCustomWebhook
        properties:
          key: artifact-lifecycle-custom-webhook
          eventTypes:
            - archive
            - restore
          handlers:
            - url: https://tempurl.org
              secrets:
                secretName1: value1
                secretName2: value2
              httpHeaders:
                headerName1: value1
                headerName2: value2
              payload: '{ "ref": "main" , "inputs": { "artifact_path": "test-repo/repo-path" } }'
    

    Create ArtifactLifecycleCustomWebhook Resource

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

    Constructor syntax

    new ArtifactLifecycleCustomWebhook(name: string, args: ArtifactLifecycleCustomWebhookArgs, opts?: CustomResourceOptions);
    @overload
    def ArtifactLifecycleCustomWebhook(resource_name: str,
                                       args: ArtifactLifecycleCustomWebhookArgs,
                                       opts: Optional[ResourceOptions] = None)
    
    @overload
    def ArtifactLifecycleCustomWebhook(resource_name: str,
                                       opts: Optional[ResourceOptions] = None,
                                       event_types: Optional[Sequence[str]] = None,
                                       key: Optional[str] = None,
                                       description: Optional[str] = None,
                                       enabled: Optional[bool] = None,
                                       handlers: Optional[Sequence[ArtifactLifecycleCustomWebhookHandlerArgs]] = None)
    func NewArtifactLifecycleCustomWebhook(ctx *Context, name string, args ArtifactLifecycleCustomWebhookArgs, opts ...ResourceOption) (*ArtifactLifecycleCustomWebhook, error)
    public ArtifactLifecycleCustomWebhook(string name, ArtifactLifecycleCustomWebhookArgs args, CustomResourceOptions? opts = null)
    public ArtifactLifecycleCustomWebhook(String name, ArtifactLifecycleCustomWebhookArgs args)
    public ArtifactLifecycleCustomWebhook(String name, ArtifactLifecycleCustomWebhookArgs args, CustomResourceOptions options)
    
    type: artifactory:ArtifactLifecycleCustomWebhook
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    

    Parameters

    name string
    The unique name of the resource.
    args ArtifactLifecycleCustomWebhookArgs
    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 ArtifactLifecycleCustomWebhookArgs
    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 ArtifactLifecycleCustomWebhookArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args ArtifactLifecycleCustomWebhookArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args ArtifactLifecycleCustomWebhookArgs
    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 artifactLifecycleCustomWebhookResource = new Artifactory.ArtifactLifecycleCustomWebhook("artifactLifecycleCustomWebhookResource", new()
    {
        EventTypes = new[]
        {
            "string",
        },
        Key = "string",
        Description = "string",
        Enabled = false,
        Handlers = new[]
        {
            new Artifactory.Inputs.ArtifactLifecycleCustomWebhookHandlerArgs
            {
                Url = "string",
                HttpHeaders = 
                {
                    { "string", "string" },
                },
                Payload = "string",
                Proxy = "string",
                Secrets = 
                {
                    { "string", "string" },
                },
            },
        },
    });
    
    example, err := artifactory.NewArtifactLifecycleCustomWebhook(ctx, "artifactLifecycleCustomWebhookResource", &artifactory.ArtifactLifecycleCustomWebhookArgs{
    	EventTypes: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	Key:         pulumi.String("string"),
    	Description: pulumi.String("string"),
    	Enabled:     pulumi.Bool(false),
    	Handlers: artifactory.ArtifactLifecycleCustomWebhookHandlerArray{
    		&artifactory.ArtifactLifecycleCustomWebhookHandlerArgs{
    			Url: pulumi.String("string"),
    			HttpHeaders: pulumi.StringMap{
    				"string": pulumi.String("string"),
    			},
    			Payload: pulumi.String("string"),
    			Proxy:   pulumi.String("string"),
    			Secrets: pulumi.StringMap{
    				"string": pulumi.String("string"),
    			},
    		},
    	},
    })
    
    var artifactLifecycleCustomWebhookResource = new ArtifactLifecycleCustomWebhook("artifactLifecycleCustomWebhookResource", ArtifactLifecycleCustomWebhookArgs.builder()
        .eventTypes("string")
        .key("string")
        .description("string")
        .enabled(false)
        .handlers(ArtifactLifecycleCustomWebhookHandlerArgs.builder()
            .url("string")
            .httpHeaders(Map.of("string", "string"))
            .payload("string")
            .proxy("string")
            .secrets(Map.of("string", "string"))
            .build())
        .build());
    
    artifact_lifecycle_custom_webhook_resource = artifactory.ArtifactLifecycleCustomWebhook("artifactLifecycleCustomWebhookResource",
        event_types=["string"],
        key="string",
        description="string",
        enabled=False,
        handlers=[{
            "url": "string",
            "http_headers": {
                "string": "string",
            },
            "payload": "string",
            "proxy": "string",
            "secrets": {
                "string": "string",
            },
        }])
    
    const artifactLifecycleCustomWebhookResource = new artifactory.ArtifactLifecycleCustomWebhook("artifactLifecycleCustomWebhookResource", {
        eventTypes: ["string"],
        key: "string",
        description: "string",
        enabled: false,
        handlers: [{
            url: "string",
            httpHeaders: {
                string: "string",
            },
            payload: "string",
            proxy: "string",
            secrets: {
                string: "string",
            },
        }],
    });
    
    type: artifactory:ArtifactLifecycleCustomWebhook
    properties:
        description: string
        enabled: false
        eventTypes:
            - string
        handlers:
            - httpHeaders:
                string: string
              payload: string
              proxy: string
              secrets:
                string: string
              url: string
        key: string
    

    ArtifactLifecycleCustomWebhook 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 ArtifactLifecycleCustomWebhook resource accepts the following input properties:

    EventTypes List<string>
    List of event triggers for the Webhook. Allow values: archive, restore
    Key string
    The identity key of the webhook. Must be between 2 and 200 characters. Cannot contain spaces.
    Description string
    Webhook description. Max length 1000 characters.
    Enabled bool
    Status of webhook. Default to true
    Handlers List<ArtifactLifecycleCustomWebhookHandler>
    At least one is required.
    EventTypes []string
    List of event triggers for the Webhook. Allow values: archive, restore
    Key string
    The identity key of the webhook. Must be between 2 and 200 characters. Cannot contain spaces.
    Description string
    Webhook description. Max length 1000 characters.
    Enabled bool
    Status of webhook. Default to true
    Handlers []ArtifactLifecycleCustomWebhookHandlerArgs
    At least one is required.
    eventTypes List<String>
    List of event triggers for the Webhook. Allow values: archive, restore
    key String
    The identity key of the webhook. Must be between 2 and 200 characters. Cannot contain spaces.
    description String
    Webhook description. Max length 1000 characters.
    enabled Boolean
    Status of webhook. Default to true
    handlers List<ArtifactLifecycleCustomWebhookHandler>
    At least one is required.
    eventTypes string[]
    List of event triggers for the Webhook. Allow values: archive, restore
    key string
    The identity key of the webhook. Must be between 2 and 200 characters. Cannot contain spaces.
    description string
    Webhook description. Max length 1000 characters.
    enabled boolean
    Status of webhook. Default to true
    handlers ArtifactLifecycleCustomWebhookHandler[]
    At least one is required.
    event_types Sequence[str]
    List of event triggers for the Webhook. Allow values: archive, restore
    key str
    The identity key of the webhook. Must be between 2 and 200 characters. Cannot contain spaces.
    description str
    Webhook description. Max length 1000 characters.
    enabled bool
    Status of webhook. Default to true
    handlers Sequence[ArtifactLifecycleCustomWebhookHandlerArgs]
    At least one is required.
    eventTypes List<String>
    List of event triggers for the Webhook. Allow values: archive, restore
    key String
    The identity key of the webhook. Must be between 2 and 200 characters. Cannot contain spaces.
    description String
    Webhook description. Max length 1000 characters.
    enabled Boolean
    Status of webhook. Default to true
    handlers List<Property Map>
    At least one is required.

    Outputs

    All input properties are implicitly available as output properties. Additionally, the ArtifactLifecycleCustomWebhook 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 str
    The provider-assigned unique ID for this managed resource.
    id String
    The provider-assigned unique ID for this managed resource.

    Look up Existing ArtifactLifecycleCustomWebhook Resource

    Get an existing ArtifactLifecycleCustomWebhook 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?: ArtifactLifecycleCustomWebhookState, opts?: CustomResourceOptions): ArtifactLifecycleCustomWebhook
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            description: Optional[str] = None,
            enabled: Optional[bool] = None,
            event_types: Optional[Sequence[str]] = None,
            handlers: Optional[Sequence[ArtifactLifecycleCustomWebhookHandlerArgs]] = None,
            key: Optional[str] = None) -> ArtifactLifecycleCustomWebhook
    func GetArtifactLifecycleCustomWebhook(ctx *Context, name string, id IDInput, state *ArtifactLifecycleCustomWebhookState, opts ...ResourceOption) (*ArtifactLifecycleCustomWebhook, error)
    public static ArtifactLifecycleCustomWebhook Get(string name, Input<string> id, ArtifactLifecycleCustomWebhookState? state, CustomResourceOptions? opts = null)
    public static ArtifactLifecycleCustomWebhook get(String name, Output<String> id, ArtifactLifecycleCustomWebhookState state, CustomResourceOptions options)
    Resource lookup is not supported in YAML
    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:
    Description string
    Webhook description. Max length 1000 characters.
    Enabled bool
    Status of webhook. Default to true
    EventTypes List<string>
    List of event triggers for the Webhook. Allow values: archive, restore
    Handlers List<ArtifactLifecycleCustomWebhookHandler>
    At least one is required.
    Key string
    The identity key of the webhook. Must be between 2 and 200 characters. Cannot contain spaces.
    Description string
    Webhook description. Max length 1000 characters.
    Enabled bool
    Status of webhook. Default to true
    EventTypes []string
    List of event triggers for the Webhook. Allow values: archive, restore
    Handlers []ArtifactLifecycleCustomWebhookHandlerArgs
    At least one is required.
    Key string
    The identity key of the webhook. Must be between 2 and 200 characters. Cannot contain spaces.
    description String
    Webhook description. Max length 1000 characters.
    enabled Boolean
    Status of webhook. Default to true
    eventTypes List<String>
    List of event triggers for the Webhook. Allow values: archive, restore
    handlers List<ArtifactLifecycleCustomWebhookHandler>
    At least one is required.
    key String
    The identity key of the webhook. Must be between 2 and 200 characters. Cannot contain spaces.
    description string
    Webhook description. Max length 1000 characters.
    enabled boolean
    Status of webhook. Default to true
    eventTypes string[]
    List of event triggers for the Webhook. Allow values: archive, restore
    handlers ArtifactLifecycleCustomWebhookHandler[]
    At least one is required.
    key string
    The identity key of the webhook. Must be between 2 and 200 characters. Cannot contain spaces.
    description str
    Webhook description. Max length 1000 characters.
    enabled bool
    Status of webhook. Default to true
    event_types Sequence[str]
    List of event triggers for the Webhook. Allow values: archive, restore
    handlers Sequence[ArtifactLifecycleCustomWebhookHandlerArgs]
    At least one is required.
    key str
    The identity key of the webhook. Must be between 2 and 200 characters. Cannot contain spaces.
    description String
    Webhook description. Max length 1000 characters.
    enabled Boolean
    Status of webhook. Default to true
    eventTypes List<String>
    List of event triggers for the Webhook. Allow values: archive, restore
    handlers List<Property Map>
    At least one is required.
    key String
    The identity key of the webhook. Must be between 2 and 200 characters. Cannot contain spaces.

    Supporting Types

    ArtifactLifecycleCustomWebhookHandler, ArtifactLifecycleCustomWebhookHandlerArgs

    Url string
    Specifies the URL that the Webhook invokes. This will be the URL that Artifactory will send an HTTP POST request to.
    HttpHeaders Dictionary<string, string>
    HTTP headers you wish to use to invoke the Webhook, comprise key/value pair.
    Payload string
    This attribute is used to build the request body. Used in custom webhooks
    Proxy string
    Proxy key from Artifactory UI (Administration > Proxies > Configuration).
    Secrets Dictionary<string, string>
    Defines a set of sensitive values (such as, tokens and passwords) that can be injected in the headers and/or payload.Secrets’ values are encrypted. In the header/payload, the value can be invoked using the {{.secrets.token}} format, where token is the name provided for the secret value. Comprise key/value pair. Note: if multiple handlers are used, same secret name and different secret value for the same url won't work. Example:
    Url string
    Specifies the URL that the Webhook invokes. This will be the URL that Artifactory will send an HTTP POST request to.
    HttpHeaders map[string]string
    HTTP headers you wish to use to invoke the Webhook, comprise key/value pair.
    Payload string
    This attribute is used to build the request body. Used in custom webhooks
    Proxy string
    Proxy key from Artifactory UI (Administration > Proxies > Configuration).
    Secrets map[string]string
    Defines a set of sensitive values (such as, tokens and passwords) that can be injected in the headers and/or payload.Secrets’ values are encrypted. In the header/payload, the value can be invoked using the {{.secrets.token}} format, where token is the name provided for the secret value. Comprise key/value pair. Note: if multiple handlers are used, same secret name and different secret value for the same url won't work. Example:
    url String
    Specifies the URL that the Webhook invokes. This will be the URL that Artifactory will send an HTTP POST request to.
    httpHeaders Map<String,String>
    HTTP headers you wish to use to invoke the Webhook, comprise key/value pair.
    payload String
    This attribute is used to build the request body. Used in custom webhooks
    proxy String
    Proxy key from Artifactory UI (Administration > Proxies > Configuration).
    secrets Map<String,String>
    Defines a set of sensitive values (such as, tokens and passwords) that can be injected in the headers and/or payload.Secrets’ values are encrypted. In the header/payload, the value can be invoked using the {{.secrets.token}} format, where token is the name provided for the secret value. Comprise key/value pair. Note: if multiple handlers are used, same secret name and different secret value for the same url won't work. Example:
    url string
    Specifies the URL that the Webhook invokes. This will be the URL that Artifactory will send an HTTP POST request to.
    httpHeaders {[key: string]: string}
    HTTP headers you wish to use to invoke the Webhook, comprise key/value pair.
    payload string
    This attribute is used to build the request body. Used in custom webhooks
    proxy string
    Proxy key from Artifactory UI (Administration > Proxies > Configuration).
    secrets {[key: string]: string}
    Defines a set of sensitive values (such as, tokens and passwords) that can be injected in the headers and/or payload.Secrets’ values are encrypted. In the header/payload, the value can be invoked using the {{.secrets.token}} format, where token is the name provided for the secret value. Comprise key/value pair. Note: if multiple handlers are used, same secret name and different secret value for the same url won't work. Example:
    url str
    Specifies the URL that the Webhook invokes. This will be the URL that Artifactory will send an HTTP POST request to.
    http_headers Mapping[str, str]
    HTTP headers you wish to use to invoke the Webhook, comprise key/value pair.
    payload str
    This attribute is used to build the request body. Used in custom webhooks
    proxy str
    Proxy key from Artifactory UI (Administration > Proxies > Configuration).
    secrets Mapping[str, str]
    Defines a set of sensitive values (such as, tokens and passwords) that can be injected in the headers and/or payload.Secrets’ values are encrypted. In the header/payload, the value can be invoked using the {{.secrets.token}} format, where token is the name provided for the secret value. Comprise key/value pair. Note: if multiple handlers are used, same secret name and different secret value for the same url won't work. Example:
    url String
    Specifies the URL that the Webhook invokes. This will be the URL that Artifactory will send an HTTP POST request to.
    httpHeaders Map<String>
    HTTP headers you wish to use to invoke the Webhook, comprise key/value pair.
    payload String
    This attribute is used to build the request body. Used in custom webhooks
    proxy String
    Proxy key from Artifactory UI (Administration > Proxies > Configuration).
    secrets Map<String>
    Defines a set of sensitive values (such as, tokens and passwords) that can be injected in the headers and/or payload.Secrets’ values are encrypted. In the header/payload, the value can be invoked using the {{.secrets.token}} format, where token is the name provided for the secret value. Comprise key/value pair. Note: if multiple handlers are used, same secret name and different secret value for the same url won't work. Example:

    Package Details

    Repository
    artifactory pulumi/pulumi-artifactory
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the artifactory Terraform Provider.
    artifactory logo
    artifactory v8.4.0 published on Tuesday, Nov 19, 2024 by Pulumi