1. Packages
  2. Artifactory Provider
  3. API Docs
  4. UserCustomWebhook
artifactory v8.8.1 published on Wednesday, Apr 9, 2025 by Pulumi

artifactory.UserCustomWebhook

Explore with Pulumi AI

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 user_custom_webhook = new artifactory.UserCustomWebhook("user-custom-webhook", {
    key: "user-custom-webhook",
    eventTypes: ["locked"],
    handlers: [{
        url: "https://tempurl.org",
        method: "POST",
        secrets: {
            secretName1: "value1",
            secretName2: "value2",
        },
        httpHeaders: {
            headerName1: "value1",
            headerName2: "value2",
        },
        payload: "{ \"ref\": \"main\" , \"inputs\": { \"artifact_path\": \"test-repo/repo-path\" } }",
    }],
});
Copy
import pulumi
import pulumi_artifactory as artifactory

user_custom_webhook = artifactory.UserCustomWebhook("user-custom-webhook",
    key="user-custom-webhook",
    event_types=["locked"],
    handlers=[{
        "url": "https://tempurl.org",
        "method": "POST",
        "secrets": {
            "secretName1": "value1",
            "secretName2": "value2",
        },
        "http_headers": {
            "headerName1": "value1",
            "headerName2": "value2",
        },
        "payload": "{ \"ref\": \"main\" , \"inputs\": { \"artifact_path\": \"test-repo/repo-path\" } }",
    }])
Copy
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.NewUserCustomWebhook(ctx, "user-custom-webhook", &artifactory.UserCustomWebhookArgs{
			Key: pulumi.String("user-custom-webhook"),
			EventTypes: pulumi.StringArray{
				pulumi.String("locked"),
			},
			Handlers: artifactory.UserCustomWebhookHandlerArray{
				&artifactory.UserCustomWebhookHandlerArgs{
					Url:    pulumi.String("https://tempurl.org"),
					Method: pulumi.String("POST"),
					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
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Artifactory = Pulumi.Artifactory;

return await Deployment.RunAsync(() => 
{
    var user_custom_webhook = new Artifactory.UserCustomWebhook("user-custom-webhook", new()
    {
        Key = "user-custom-webhook",
        EventTypes = new[]
        {
            "locked",
        },
        Handlers = new[]
        {
            new Artifactory.Inputs.UserCustomWebhookHandlerArgs
            {
                Url = "https://tempurl.org",
                Method = "POST",
                Secrets = 
                {
                    { "secretName1", "value1" },
                    { "secretName2", "value2" },
                },
                HttpHeaders = 
                {
                    { "headerName1", "value1" },
                    { "headerName2", "value2" },
                },
                Payload = "{ \"ref\": \"main\" , \"inputs\": { \"artifact_path\": \"test-repo/repo-path\" } }",
            },
        },
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.artifactory.UserCustomWebhook;
import com.pulumi.artifactory.UserCustomWebhookArgs;
import com.pulumi.artifactory.inputs.UserCustomWebhookHandlerArgs;
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 user_custom_webhook = new UserCustomWebhook("user-custom-webhook", UserCustomWebhookArgs.builder()
            .key("user-custom-webhook")
            .eventTypes("locked")
            .handlers(UserCustomWebhookHandlerArgs.builder()
                .url("https://tempurl.org")
                .method("POST")
                .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());

    }
}
Copy
resources:
  user-custom-webhook:
    type: artifactory:UserCustomWebhook
    properties:
      key: user-custom-webhook
      eventTypes:
        - locked
      handlers:
        - url: https://tempurl.org
          method: POST
          secrets:
            secretName1: value1
            secretName2: value2
          httpHeaders:
            headerName1: value1
            headerName2: value2
          payload: '{ "ref": "main" , "inputs": { "artifact_path": "test-repo/repo-path" } }'
Copy

Create UserCustomWebhook Resource

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

Constructor syntax

new UserCustomWebhook(name: string, args: UserCustomWebhookArgs, opts?: CustomResourceOptions);
@overload
def UserCustomWebhook(resource_name: str,
                      args: UserCustomWebhookArgs,
                      opts: Optional[ResourceOptions] = None)

@overload
def UserCustomWebhook(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[UserCustomWebhookHandlerArgs]] = None)
func NewUserCustomWebhook(ctx *Context, name string, args UserCustomWebhookArgs, opts ...ResourceOption) (*UserCustomWebhook, error)
public UserCustomWebhook(string name, UserCustomWebhookArgs args, CustomResourceOptions? opts = null)
public UserCustomWebhook(String name, UserCustomWebhookArgs args)
public UserCustomWebhook(String name, UserCustomWebhookArgs args, CustomResourceOptions options)
type: artifactory:UserCustomWebhook
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.

Parameters

name This property is required. string
The unique name of the resource.
args This property is required. UserCustomWebhookArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.
resource_name This property is required. str
The unique name of the resource.
args This property is required. UserCustomWebhookArgs
The arguments to resource properties.
opts ResourceOptions
Bag of options to control resource's behavior.
ctx Context
Context object for the current deployment.
name This property is required. string
The unique name of the resource.
args This property is required. UserCustomWebhookArgs
The arguments to resource properties.
opts ResourceOption
Bag of options to control resource's behavior.
name This property is required. string
The unique name of the resource.
args This property is required. UserCustomWebhookArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.
name This property is required. String
The unique name of the resource.
args This property is required. UserCustomWebhookArgs
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 userCustomWebhookResource = new Artifactory.UserCustomWebhook("userCustomWebhookResource", new()
{
    EventTypes = new[]
    {
        "string",
    },
    Key = "string",
    Description = "string",
    Enabled = false,
    Handlers = new[]
    {
        new Artifactory.Inputs.UserCustomWebhookHandlerArgs
        {
            Url = "string",
            HttpHeaders = 
            {
                { "string", "string" },
            },
            Method = "string",
            Payload = "string",
            Proxy = "string",
            Secrets = 
            {
                { "string", "string" },
            },
        },
    },
});
Copy
example, err := artifactory.NewUserCustomWebhook(ctx, "userCustomWebhookResource", &artifactory.UserCustomWebhookArgs{
	EventTypes: pulumi.StringArray{
		pulumi.String("string"),
	},
	Key:         pulumi.String("string"),
	Description: pulumi.String("string"),
	Enabled:     pulumi.Bool(false),
	Handlers: artifactory.UserCustomWebhookHandlerArray{
		&artifactory.UserCustomWebhookHandlerArgs{
			Url: pulumi.String("string"),
			HttpHeaders: pulumi.StringMap{
				"string": pulumi.String("string"),
			},
			Method:  pulumi.String("string"),
			Payload: pulumi.String("string"),
			Proxy:   pulumi.String("string"),
			Secrets: pulumi.StringMap{
				"string": pulumi.String("string"),
			},
		},
	},
})
Copy
var userCustomWebhookResource = new UserCustomWebhook("userCustomWebhookResource", UserCustomWebhookArgs.builder()
    .eventTypes("string")
    .key("string")
    .description("string")
    .enabled(false)
    .handlers(UserCustomWebhookHandlerArgs.builder()
        .url("string")
        .httpHeaders(Map.of("string", "string"))
        .method("string")
        .payload("string")
        .proxy("string")
        .secrets(Map.of("string", "string"))
        .build())
    .build());
Copy
user_custom_webhook_resource = artifactory.UserCustomWebhook("userCustomWebhookResource",
    event_types=["string"],
    key="string",
    description="string",
    enabled=False,
    handlers=[{
        "url": "string",
        "http_headers": {
            "string": "string",
        },
        "method": "string",
        "payload": "string",
        "proxy": "string",
        "secrets": {
            "string": "string",
        },
    }])
Copy
const userCustomWebhookResource = new artifactory.UserCustomWebhook("userCustomWebhookResource", {
    eventTypes: ["string"],
    key: "string",
    description: "string",
    enabled: false,
    handlers: [{
        url: "string",
        httpHeaders: {
            string: "string",
        },
        method: "string",
        payload: "string",
        proxy: "string",
        secrets: {
            string: "string",
        },
    }],
});
Copy
type: artifactory:UserCustomWebhook
properties:
    description: string
    enabled: false
    eventTypes:
        - string
    handlers:
        - httpHeaders:
            string: string
          method: string
          payload: string
          proxy: string
          secrets:
            string: string
          url: string
    key: string
Copy

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

EventTypes This property is required. List<string>
List of event triggers for the Webhook. Allow values: locked
Key This property is required. 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<UserCustomWebhookHandler>
At least one is required.
EventTypes This property is required. []string
List of event triggers for the Webhook. Allow values: locked
Key This property is required. 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 []UserCustomWebhookHandlerArgs
At least one is required.
eventTypes This property is required. List<String>
List of event triggers for the Webhook. Allow values: locked
key This property is required. 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<UserCustomWebhookHandler>
At least one is required.
eventTypes This property is required. string[]
List of event triggers for the Webhook. Allow values: locked
key This property is required. 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 UserCustomWebhookHandler[]
At least one is required.
event_types This property is required. Sequence[str]
List of event triggers for the Webhook. Allow values: locked
key This property is required. 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[UserCustomWebhookHandlerArgs]
At least one is required.
eventTypes This property is required. List<String>
List of event triggers for the Webhook. Allow values: locked
key This property is required. 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 UserCustomWebhook 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 UserCustomWebhook Resource

Get an existing UserCustomWebhook 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?: UserCustomWebhookState, opts?: CustomResourceOptions): UserCustomWebhook
@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[UserCustomWebhookHandlerArgs]] = None,
        key: Optional[str] = None) -> UserCustomWebhook
func GetUserCustomWebhook(ctx *Context, name string, id IDInput, state *UserCustomWebhookState, opts ...ResourceOption) (*UserCustomWebhook, error)
public static UserCustomWebhook Get(string name, Input<string> id, UserCustomWebhookState? state, CustomResourceOptions? opts = null)
public static UserCustomWebhook get(String name, Output<String> id, UserCustomWebhookState state, CustomResourceOptions options)
resources:  _:    type: artifactory:UserCustomWebhook    get:      id: ${id}
name This property is required.
The unique name of the resulting resource.
id This property is required.
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 This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
name This property is required.
The unique name of the resulting resource.
id This property is required.
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 This property is required.
The unique name of the resulting resource.
id This property is required.
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 This property is required.
The unique name of the resulting resource.
id This property is required.
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: locked
Handlers List<UserCustomWebhookHandler>
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: locked
Handlers []UserCustomWebhookHandlerArgs
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: locked
handlers List<UserCustomWebhookHandler>
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: locked
handlers UserCustomWebhookHandler[]
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: locked
handlers Sequence[UserCustomWebhookHandlerArgs]
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: locked
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

UserCustomWebhookHandler
, UserCustomWebhookHandlerArgs

Url This property is required. string
Specifies the URL that the Webhook invokes. This will be the URL that Artifactory will send a request to.
HttpHeaders Dictionary<string, string>
HTTP headers you wish to use to invoke the Webhook, comprise key/value pair.
Method string
Specifies the HTTP method for the URL that the Webhook invokes. Allowed values are: GET, POST, PUT, PATCH, DELETE.
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 This property is required. string
Specifies the URL that the Webhook invokes. This will be the URL that Artifactory will send a request to.
HttpHeaders map[string]string
HTTP headers you wish to use to invoke the Webhook, comprise key/value pair.
Method string
Specifies the HTTP method for the URL that the Webhook invokes. Allowed values are: GET, POST, PUT, PATCH, DELETE.
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 This property is required. String
Specifies the URL that the Webhook invokes. This will be the URL that Artifactory will send a request to.
httpHeaders Map<String,String>
HTTP headers you wish to use to invoke the Webhook, comprise key/value pair.
method String
Specifies the HTTP method for the URL that the Webhook invokes. Allowed values are: GET, POST, PUT, PATCH, DELETE.
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 This property is required. string
Specifies the URL that the Webhook invokes. This will be the URL that Artifactory will send a request to.
httpHeaders {[key: string]: string}
HTTP headers you wish to use to invoke the Webhook, comprise key/value pair.
method string
Specifies the HTTP method for the URL that the Webhook invokes. Allowed values are: GET, POST, PUT, PATCH, DELETE.
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 This property is required. str
Specifies the URL that the Webhook invokes. This will be the URL that Artifactory will send a request to.
http_headers Mapping[str, str]
HTTP headers you wish to use to invoke the Webhook, comprise key/value pair.
method str
Specifies the HTTP method for the URL that the Webhook invokes. Allowed values are: GET, POST, PUT, PATCH, DELETE.
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 This property is required. String
Specifies the URL that the Webhook invokes. This will be the URL that Artifactory will send a request to.
httpHeaders Map<String>
HTTP headers you wish to use to invoke the Webhook, comprise key/value pair.
method String
Specifies the HTTP method for the URL that the Webhook invokes. Allowed values are: GET, POST, PUT, PATCH, DELETE.
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.