1. Packages
  2. Google Cloud (GCP) Classic
  3. API Docs
  4. apihub
  5. Plugin
Google Cloud v8.39.0 published on Tuesday, Jul 22, 2025 by Pulumi

gcp.apihub.Plugin

Explore with Pulumi AI

gcp logo
Google Cloud v8.39.0 published on Tuesday, Jul 22, 2025 by Pulumi

    A plugin resource in the API hub.

    Example Usage

    Apihub Plugin Full

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const apihubPluginFull = new gcp.apihub.Plugin("apihub_plugin_full", {
        location: "us-central1",
        displayName: "Test Plugin",
        description: "Test description",
        pluginId: "plugin-full",
        pluginCategory: "API_GATEWAY",
        actionsConfigs: [{
            id: "sync-metadata",
            displayName: "Sync Metadata",
            description: "Syncs API metadata.",
            triggerMode: "API_HUB_SCHEDULE_TRIGGER",
        }],
        documentation: {
            externalUri: "https://example.com/plugin-documentation",
        },
        hostingService: {
            serviceUri: "https://your-plugin-service.example.com/api",
        },
        configTemplate: {
            authConfigTemplate: {
                supportedAuthTypes: [
                    "NO_AUTH",
                    "USER_PASSWORD",
                ],
                serviceAccount: {
                    serviceAccount: "test@developer.gserviceaccount.com",
                },
            },
            additionalConfigTemplates: [
                {
                    id: "string-val",
                    description: "API key for the service.",
                    valueType: "STRING",
                    required: false,
                    validationRegex: "^[a-zA-Z0-9]{5,20}$",
                },
                {
                    id: "integer-val",
                    description: "API key for the service.",
                    valueType: "INT",
                    required: true,
                    validationRegex: "",
                },
                {
                    id: "bool-val",
                    description: "API key for the service.",
                    valueType: "BOOL",
                    required: false,
                    validationRegex: "",
                },
                {
                    id: "enum-val",
                    description: "API key for the service.",
                    valueType: "ENUM",
                    enumOptions: [
                        {
                            id: "Option1",
                            displayName: "Option1",
                            description: "Description for Option1",
                        },
                        {
                            id: "Option2",
                            displayName: "Option2",
                            description: "Description for Option2",
                        },
                    ],
                    required: false,
                    validationRegex: "",
                },
            ],
        },
    });
    
    import pulumi
    import pulumi_gcp as gcp
    
    apihub_plugin_full = gcp.apihub.Plugin("apihub_plugin_full",
        location="us-central1",
        display_name="Test Plugin",
        description="Test description",
        plugin_id="plugin-full",
        plugin_category="API_GATEWAY",
        actions_configs=[{
            "id": "sync-metadata",
            "display_name": "Sync Metadata",
            "description": "Syncs API metadata.",
            "trigger_mode": "API_HUB_SCHEDULE_TRIGGER",
        }],
        documentation={
            "external_uri": "https://example.com/plugin-documentation",
        },
        hosting_service={
            "service_uri": "https://your-plugin-service.example.com/api",
        },
        config_template={
            "auth_config_template": {
                "supported_auth_types": [
                    "NO_AUTH",
                    "USER_PASSWORD",
                ],
                "service_account": {
                    "service_account": "test@developer.gserviceaccount.com",
                },
            },
            "additional_config_templates": [
                {
                    "id": "string-val",
                    "description": "API key for the service.",
                    "value_type": "STRING",
                    "required": False,
                    "validation_regex": "^[a-zA-Z0-9]{5,20}$",
                },
                {
                    "id": "integer-val",
                    "description": "API key for the service.",
                    "value_type": "INT",
                    "required": True,
                    "validation_regex": "",
                },
                {
                    "id": "bool-val",
                    "description": "API key for the service.",
                    "value_type": "BOOL",
                    "required": False,
                    "validation_regex": "",
                },
                {
                    "id": "enum-val",
                    "description": "API key for the service.",
                    "value_type": "ENUM",
                    "enum_options": [
                        {
                            "id": "Option1",
                            "display_name": "Option1",
                            "description": "Description for Option1",
                        },
                        {
                            "id": "Option2",
                            "display_name": "Option2",
                            "description": "Description for Option2",
                        },
                    ],
                    "required": False,
                    "validation_regex": "",
                },
            ],
        })
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/apihub"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := apihub.NewPlugin(ctx, "apihub_plugin_full", &apihub.PluginArgs{
    			Location:       pulumi.String("us-central1"),
    			DisplayName:    pulumi.String("Test Plugin"),
    			Description:    pulumi.String("Test description"),
    			PluginId:       pulumi.String("plugin-full"),
    			PluginCategory: pulumi.String("API_GATEWAY"),
    			ActionsConfigs: apihub.PluginActionsConfigArray{
    				&apihub.PluginActionsConfigArgs{
    					Id:          pulumi.String("sync-metadata"),
    					DisplayName: pulumi.String("Sync Metadata"),
    					Description: pulumi.String("Syncs API metadata."),
    					TriggerMode: pulumi.String("API_HUB_SCHEDULE_TRIGGER"),
    				},
    			},
    			Documentation: &apihub.PluginDocumentationArgs{
    				ExternalUri: pulumi.String("https://example.com/plugin-documentation"),
    			},
    			HostingService: &apihub.PluginHostingServiceArgs{
    				ServiceUri: pulumi.String("https://your-plugin-service.example.com/api"),
    			},
    			ConfigTemplate: &apihub.PluginConfigTemplateArgs{
    				AuthConfigTemplate: &apihub.PluginConfigTemplateAuthConfigTemplateArgs{
    					SupportedAuthTypes: pulumi.StringArray{
    						pulumi.String("NO_AUTH"),
    						pulumi.String("USER_PASSWORD"),
    					},
    					ServiceAccount: &apihub.PluginConfigTemplateAuthConfigTemplateServiceAccountArgs{
    						ServiceAccount: pulumi.String("test@developer.gserviceaccount.com"),
    					},
    				},
    				AdditionalConfigTemplates: apihub.PluginConfigTemplateAdditionalConfigTemplateArray{
    					&apihub.PluginConfigTemplateAdditionalConfigTemplateArgs{
    						Id:              pulumi.String("string-val"),
    						Description:     pulumi.String("API key for the service."),
    						ValueType:       pulumi.String("STRING"),
    						Required:        pulumi.Bool(false),
    						ValidationRegex: pulumi.String("^[a-zA-Z0-9]{5,20}$"),
    					},
    					&apihub.PluginConfigTemplateAdditionalConfigTemplateArgs{
    						Id:              pulumi.String("integer-val"),
    						Description:     pulumi.String("API key for the service."),
    						ValueType:       pulumi.String("INT"),
    						Required:        pulumi.Bool(true),
    						ValidationRegex: pulumi.String(""),
    					},
    					&apihub.PluginConfigTemplateAdditionalConfigTemplateArgs{
    						Id:              pulumi.String("bool-val"),
    						Description:     pulumi.String("API key for the service."),
    						ValueType:       pulumi.String("BOOL"),
    						Required:        pulumi.Bool(false),
    						ValidationRegex: pulumi.String(""),
    					},
    					&apihub.PluginConfigTemplateAdditionalConfigTemplateArgs{
    						Id:          pulumi.String("enum-val"),
    						Description: pulumi.String("API key for the service."),
    						ValueType:   pulumi.String("ENUM"),
    						EnumOptions: apihub.PluginConfigTemplateAdditionalConfigTemplateEnumOptionArray{
    							&apihub.PluginConfigTemplateAdditionalConfigTemplateEnumOptionArgs{
    								Id:          pulumi.String("Option1"),
    								DisplayName: pulumi.String("Option1"),
    								Description: pulumi.String("Description for Option1"),
    							},
    							&apihub.PluginConfigTemplateAdditionalConfigTemplateEnumOptionArgs{
    								Id:          pulumi.String("Option2"),
    								DisplayName: pulumi.String("Option2"),
    								Description: pulumi.String("Description for Option2"),
    							},
    						},
    						Required:        pulumi.Bool(false),
    						ValidationRegex: pulumi.String(""),
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    
    return await Deployment.RunAsync(() => 
    {
        var apihubPluginFull = new Gcp.ApiHub.Plugin("apihub_plugin_full", new()
        {
            Location = "us-central1",
            DisplayName = "Test Plugin",
            Description = "Test description",
            PluginId = "plugin-full",
            PluginCategory = "API_GATEWAY",
            ActionsConfigs = new[]
            {
                new Gcp.ApiHub.Inputs.PluginActionsConfigArgs
                {
                    Id = "sync-metadata",
                    DisplayName = "Sync Metadata",
                    Description = "Syncs API metadata.",
                    TriggerMode = "API_HUB_SCHEDULE_TRIGGER",
                },
            },
            Documentation = new Gcp.ApiHub.Inputs.PluginDocumentationArgs
            {
                ExternalUri = "https://example.com/plugin-documentation",
            },
            HostingService = new Gcp.ApiHub.Inputs.PluginHostingServiceArgs
            {
                ServiceUri = "https://your-plugin-service.example.com/api",
            },
            ConfigTemplate = new Gcp.ApiHub.Inputs.PluginConfigTemplateArgs
            {
                AuthConfigTemplate = new Gcp.ApiHub.Inputs.PluginConfigTemplateAuthConfigTemplateArgs
                {
                    SupportedAuthTypes = new[]
                    {
                        "NO_AUTH",
                        "USER_PASSWORD",
                    },
                    ServiceAccount = new Gcp.ApiHub.Inputs.PluginConfigTemplateAuthConfigTemplateServiceAccountArgs
                    {
                        ServiceAccount = "test@developer.gserviceaccount.com",
                    },
                },
                AdditionalConfigTemplates = new[]
                {
                    new Gcp.ApiHub.Inputs.PluginConfigTemplateAdditionalConfigTemplateArgs
                    {
                        Id = "string-val",
                        Description = "API key for the service.",
                        ValueType = "STRING",
                        Required = false,
                        ValidationRegex = "^[a-zA-Z0-9]{5,20}$",
                    },
                    new Gcp.ApiHub.Inputs.PluginConfigTemplateAdditionalConfigTemplateArgs
                    {
                        Id = "integer-val",
                        Description = "API key for the service.",
                        ValueType = "INT",
                        Required = true,
                        ValidationRegex = "",
                    },
                    new Gcp.ApiHub.Inputs.PluginConfigTemplateAdditionalConfigTemplateArgs
                    {
                        Id = "bool-val",
                        Description = "API key for the service.",
                        ValueType = "BOOL",
                        Required = false,
                        ValidationRegex = "",
                    },
                    new Gcp.ApiHub.Inputs.PluginConfigTemplateAdditionalConfigTemplateArgs
                    {
                        Id = "enum-val",
                        Description = "API key for the service.",
                        ValueType = "ENUM",
                        EnumOptions = new[]
                        {
                            new Gcp.ApiHub.Inputs.PluginConfigTemplateAdditionalConfigTemplateEnumOptionArgs
                            {
                                Id = "Option1",
                                DisplayName = "Option1",
                                Description = "Description for Option1",
                            },
                            new Gcp.ApiHub.Inputs.PluginConfigTemplateAdditionalConfigTemplateEnumOptionArgs
                            {
                                Id = "Option2",
                                DisplayName = "Option2",
                                Description = "Description for Option2",
                            },
                        },
                        Required = false,
                        ValidationRegex = "",
                    },
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.gcp.apihub.Plugin;
    import com.pulumi.gcp.apihub.PluginArgs;
    import com.pulumi.gcp.apihub.inputs.PluginActionsConfigArgs;
    import com.pulumi.gcp.apihub.inputs.PluginDocumentationArgs;
    import com.pulumi.gcp.apihub.inputs.PluginHostingServiceArgs;
    import com.pulumi.gcp.apihub.inputs.PluginConfigTemplateArgs;
    import com.pulumi.gcp.apihub.inputs.PluginConfigTemplateAuthConfigTemplateArgs;
    import com.pulumi.gcp.apihub.inputs.PluginConfigTemplateAuthConfigTemplateServiceAccountArgs;
    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 apihubPluginFull = new Plugin("apihubPluginFull", PluginArgs.builder()
                .location("us-central1")
                .displayName("Test Plugin")
                .description("Test description")
                .pluginId("plugin-full")
                .pluginCategory("API_GATEWAY")
                .actionsConfigs(PluginActionsConfigArgs.builder()
                    .id("sync-metadata")
                    .displayName("Sync Metadata")
                    .description("Syncs API metadata.")
                    .triggerMode("API_HUB_SCHEDULE_TRIGGER")
                    .build())
                .documentation(PluginDocumentationArgs.builder()
                    .externalUri("https://example.com/plugin-documentation")
                    .build())
                .hostingService(PluginHostingServiceArgs.builder()
                    .serviceUri("https://your-plugin-service.example.com/api")
                    .build())
                .configTemplate(PluginConfigTemplateArgs.builder()
                    .authConfigTemplate(PluginConfigTemplateAuthConfigTemplateArgs.builder()
                        .supportedAuthTypes(                    
                            "NO_AUTH",
                            "USER_PASSWORD")
                        .serviceAccount(PluginConfigTemplateAuthConfigTemplateServiceAccountArgs.builder()
                            .serviceAccount("test@developer.gserviceaccount.com")
                            .build())
                        .build())
                    .additionalConfigTemplates(                
                        PluginConfigTemplateAdditionalConfigTemplateArgs.builder()
                            .id("string-val")
                            .description("API key for the service.")
                            .valueType("STRING")
                            .required(false)
                            .validationRegex("^[a-zA-Z0-9]{5,20}$")
                            .build(),
                        PluginConfigTemplateAdditionalConfigTemplateArgs.builder()
                            .id("integer-val")
                            .description("API key for the service.")
                            .valueType("INT")
                            .required(true)
                            .validationRegex("")
                            .build(),
                        PluginConfigTemplateAdditionalConfigTemplateArgs.builder()
                            .id("bool-val")
                            .description("API key for the service.")
                            .valueType("BOOL")
                            .required(false)
                            .validationRegex("")
                            .build(),
                        PluginConfigTemplateAdditionalConfigTemplateArgs.builder()
                            .id("enum-val")
                            .description("API key for the service.")
                            .valueType("ENUM")
                            .enumOptions(                        
                                PluginConfigTemplateAdditionalConfigTemplateEnumOptionArgs.builder()
                                    .id("Option1")
                                    .displayName("Option1")
                                    .description("Description for Option1")
                                    .build(),
                                PluginConfigTemplateAdditionalConfigTemplateEnumOptionArgs.builder()
                                    .id("Option2")
                                    .displayName("Option2")
                                    .description("Description for Option2")
                                    .build())
                            .required(false)
                            .validationRegex("")
                            .build())
                    .build())
                .build());
    
        }
    }
    
    resources:
      apihubPluginFull:
        type: gcp:apihub:Plugin
        name: apihub_plugin_full
        properties:
          location: us-central1
          displayName: Test Plugin
          description: Test description
          pluginId: plugin-full
          pluginCategory: API_GATEWAY
          actionsConfigs:
            - id: sync-metadata
              displayName: Sync Metadata
              description: Syncs API metadata.
              triggerMode: API_HUB_SCHEDULE_TRIGGER
          documentation:
            externalUri: https://example.com/plugin-documentation
          hostingService:
            serviceUri: https://your-plugin-service.example.com/api
          configTemplate:
            authConfigTemplate:
              supportedAuthTypes:
                - NO_AUTH
                - USER_PASSWORD
              serviceAccount:
                serviceAccount: test@developer.gserviceaccount.com
            additionalConfigTemplates:
              - id: string-val
                description: API key for the service.
                valueType: STRING
                required: false
                validationRegex: ^[a-zA-Z0-9]{5,20}$
              - id: integer-val
                description: API key for the service.
                valueType: INT
                required: true
                validationRegex: ""
              - id: bool-val
                description: API key for the service.
                valueType: BOOL
                required: false
                validationRegex: ""
              - id: enum-val
                description: API key for the service.
                valueType: ENUM
                enumOptions:
                  - id: Option1
                    displayName: Option1
                    description: Description for Option1
                  - id: Option2
                    displayName: Option2
                    description: Description for Option2
                required: false
                validationRegex: ""
    

    Create Plugin Resource

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

    Constructor syntax

    new Plugin(name: string, args: PluginArgs, opts?: CustomResourceOptions);
    @overload
    def Plugin(resource_name: str,
               args: PluginArgs,
               opts: Optional[ResourceOptions] = None)
    
    @overload
    def Plugin(resource_name: str,
               opts: Optional[ResourceOptions] = None,
               display_name: Optional[str] = None,
               location: Optional[str] = None,
               plugin_id: Optional[str] = None,
               actions_configs: Optional[Sequence[PluginActionsConfigArgs]] = None,
               config_template: Optional[PluginConfigTemplateArgs] = None,
               description: Optional[str] = None,
               documentation: Optional[PluginDocumentationArgs] = None,
               hosting_service: Optional[PluginHostingServiceArgs] = None,
               plugin_category: Optional[str] = None,
               project: Optional[str] = None)
    func NewPlugin(ctx *Context, name string, args PluginArgs, opts ...ResourceOption) (*Plugin, error)
    public Plugin(string name, PluginArgs args, CustomResourceOptions? opts = null)
    public Plugin(String name, PluginArgs args)
    public Plugin(String name, PluginArgs args, CustomResourceOptions options)
    
    type: gcp:apihub:Plugin
    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 PluginArgs
    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 PluginArgs
    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 PluginArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args PluginArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args PluginArgs
    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 pluginResource = new Gcp.ApiHub.Plugin("pluginResource", new()
    {
        DisplayName = "string",
        Location = "string",
        PluginId = "string",
        ActionsConfigs = new[]
        {
            new Gcp.ApiHub.Inputs.PluginActionsConfigArgs
            {
                Description = "string",
                DisplayName = "string",
                Id = "string",
                TriggerMode = "string",
            },
        },
        ConfigTemplate = new Gcp.ApiHub.Inputs.PluginConfigTemplateArgs
        {
            AdditionalConfigTemplates = new[]
            {
                new Gcp.ApiHub.Inputs.PluginConfigTemplateAdditionalConfigTemplateArgs
                {
                    Id = "string",
                    ValueType = "string",
                    Description = "string",
                    EnumOptions = new[]
                    {
                        new Gcp.ApiHub.Inputs.PluginConfigTemplateAdditionalConfigTemplateEnumOptionArgs
                        {
                            DisplayName = "string",
                            Id = "string",
                            Description = "string",
                        },
                    },
                    MultiSelectOptions = new[]
                    {
                        new Gcp.ApiHub.Inputs.PluginConfigTemplateAdditionalConfigTemplateMultiSelectOptionArgs
                        {
                            DisplayName = "string",
                            Id = "string",
                            Description = "string",
                        },
                    },
                    Required = false,
                    ValidationRegex = "string",
                },
            },
            AuthConfigTemplate = new Gcp.ApiHub.Inputs.PluginConfigTemplateAuthConfigTemplateArgs
            {
                SupportedAuthTypes = new[]
                {
                    "string",
                },
                ServiceAccount = new Gcp.ApiHub.Inputs.PluginConfigTemplateAuthConfigTemplateServiceAccountArgs
                {
                    ServiceAccount = "string",
                },
            },
        },
        Description = "string",
        Documentation = new Gcp.ApiHub.Inputs.PluginDocumentationArgs
        {
            ExternalUri = "string",
        },
        HostingService = new Gcp.ApiHub.Inputs.PluginHostingServiceArgs
        {
            ServiceUri = "string",
        },
        PluginCategory = "string",
        Project = "string",
    });
    
    example, err := apihub.NewPlugin(ctx, "pluginResource", &apihub.PluginArgs{
    	DisplayName: pulumi.String("string"),
    	Location:    pulumi.String("string"),
    	PluginId:    pulumi.String("string"),
    	ActionsConfigs: apihub.PluginActionsConfigArray{
    		&apihub.PluginActionsConfigArgs{
    			Description: pulumi.String("string"),
    			DisplayName: pulumi.String("string"),
    			Id:          pulumi.String("string"),
    			TriggerMode: pulumi.String("string"),
    		},
    	},
    	ConfigTemplate: &apihub.PluginConfigTemplateArgs{
    		AdditionalConfigTemplates: apihub.PluginConfigTemplateAdditionalConfigTemplateArray{
    			&apihub.PluginConfigTemplateAdditionalConfigTemplateArgs{
    				Id:          pulumi.String("string"),
    				ValueType:   pulumi.String("string"),
    				Description: pulumi.String("string"),
    				EnumOptions: apihub.PluginConfigTemplateAdditionalConfigTemplateEnumOptionArray{
    					&apihub.PluginConfigTemplateAdditionalConfigTemplateEnumOptionArgs{
    						DisplayName: pulumi.String("string"),
    						Id:          pulumi.String("string"),
    						Description: pulumi.String("string"),
    					},
    				},
    				MultiSelectOptions: apihub.PluginConfigTemplateAdditionalConfigTemplateMultiSelectOptionArray{
    					&apihub.PluginConfigTemplateAdditionalConfigTemplateMultiSelectOptionArgs{
    						DisplayName: pulumi.String("string"),
    						Id:          pulumi.String("string"),
    						Description: pulumi.String("string"),
    					},
    				},
    				Required:        pulumi.Bool(false),
    				ValidationRegex: pulumi.String("string"),
    			},
    		},
    		AuthConfigTemplate: &apihub.PluginConfigTemplateAuthConfigTemplateArgs{
    			SupportedAuthTypes: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    			ServiceAccount: &apihub.PluginConfigTemplateAuthConfigTemplateServiceAccountArgs{
    				ServiceAccount: pulumi.String("string"),
    			},
    		},
    	},
    	Description: pulumi.String("string"),
    	Documentation: &apihub.PluginDocumentationArgs{
    		ExternalUri: pulumi.String("string"),
    	},
    	HostingService: &apihub.PluginHostingServiceArgs{
    		ServiceUri: pulumi.String("string"),
    	},
    	PluginCategory: pulumi.String("string"),
    	Project:        pulumi.String("string"),
    })
    
    var pluginResource = new Plugin("pluginResource", PluginArgs.builder()
        .displayName("string")
        .location("string")
        .pluginId("string")
        .actionsConfigs(PluginActionsConfigArgs.builder()
            .description("string")
            .displayName("string")
            .id("string")
            .triggerMode("string")
            .build())
        .configTemplate(PluginConfigTemplateArgs.builder()
            .additionalConfigTemplates(PluginConfigTemplateAdditionalConfigTemplateArgs.builder()
                .id("string")
                .valueType("string")
                .description("string")
                .enumOptions(PluginConfigTemplateAdditionalConfigTemplateEnumOptionArgs.builder()
                    .displayName("string")
                    .id("string")
                    .description("string")
                    .build())
                .multiSelectOptions(PluginConfigTemplateAdditionalConfigTemplateMultiSelectOptionArgs.builder()
                    .displayName("string")
                    .id("string")
                    .description("string")
                    .build())
                .required(false)
                .validationRegex("string")
                .build())
            .authConfigTemplate(PluginConfigTemplateAuthConfigTemplateArgs.builder()
                .supportedAuthTypes("string")
                .serviceAccount(PluginConfigTemplateAuthConfigTemplateServiceAccountArgs.builder()
                    .serviceAccount("string")
                    .build())
                .build())
            .build())
        .description("string")
        .documentation(PluginDocumentationArgs.builder()
            .externalUri("string")
            .build())
        .hostingService(PluginHostingServiceArgs.builder()
            .serviceUri("string")
            .build())
        .pluginCategory("string")
        .project("string")
        .build());
    
    plugin_resource = gcp.apihub.Plugin("pluginResource",
        display_name="string",
        location="string",
        plugin_id="string",
        actions_configs=[{
            "description": "string",
            "display_name": "string",
            "id": "string",
            "trigger_mode": "string",
        }],
        config_template={
            "additional_config_templates": [{
                "id": "string",
                "value_type": "string",
                "description": "string",
                "enum_options": [{
                    "display_name": "string",
                    "id": "string",
                    "description": "string",
                }],
                "multi_select_options": [{
                    "display_name": "string",
                    "id": "string",
                    "description": "string",
                }],
                "required": False,
                "validation_regex": "string",
            }],
            "auth_config_template": {
                "supported_auth_types": ["string"],
                "service_account": {
                    "service_account": "string",
                },
            },
        },
        description="string",
        documentation={
            "external_uri": "string",
        },
        hosting_service={
            "service_uri": "string",
        },
        plugin_category="string",
        project="string")
    
    const pluginResource = new gcp.apihub.Plugin("pluginResource", {
        displayName: "string",
        location: "string",
        pluginId: "string",
        actionsConfigs: [{
            description: "string",
            displayName: "string",
            id: "string",
            triggerMode: "string",
        }],
        configTemplate: {
            additionalConfigTemplates: [{
                id: "string",
                valueType: "string",
                description: "string",
                enumOptions: [{
                    displayName: "string",
                    id: "string",
                    description: "string",
                }],
                multiSelectOptions: [{
                    displayName: "string",
                    id: "string",
                    description: "string",
                }],
                required: false,
                validationRegex: "string",
            }],
            authConfigTemplate: {
                supportedAuthTypes: ["string"],
                serviceAccount: {
                    serviceAccount: "string",
                },
            },
        },
        description: "string",
        documentation: {
            externalUri: "string",
        },
        hostingService: {
            serviceUri: "string",
        },
        pluginCategory: "string",
        project: "string",
    });
    
    type: gcp:apihub:Plugin
    properties:
        actionsConfigs:
            - description: string
              displayName: string
              id: string
              triggerMode: string
        configTemplate:
            additionalConfigTemplates:
                - description: string
                  enumOptions:
                    - description: string
                      displayName: string
                      id: string
                  id: string
                  multiSelectOptions:
                    - description: string
                      displayName: string
                      id: string
                  required: false
                  validationRegex: string
                  valueType: string
            authConfigTemplate:
                serviceAccount:
                    serviceAccount: string
                supportedAuthTypes:
                    - string
        description: string
        displayName: string
        documentation:
            externalUri: string
        hostingService:
            serviceUri: string
        location: string
        pluginCategory: string
        pluginId: string
        project: string
    

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

    DisplayName string
    The display name of the plugin. Max length is 50 characters (Unicode code points).
    Location string
    Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
    PluginId string
    The ID to use for the Plugin resource, which will become the final component of the Plugin's resource name. This field is optional.

    • If provided, the same will be used. The service will throw an error if the specified id is already used by another Plugin resource in the API hub instance.
    • If not provided, a system generated id will be used. This value should be 4-63 characters, overall resource name which will be of format projects/{project}/locations/{location}/plugins/{plugin}, its length is limited to 1000 characters and valid characters are /a-z[0-9]-_/.
    ActionsConfigs List<PluginActionsConfig>
    The configuration of actions supported by the plugin. Structure is documented below.
    ConfigTemplate PluginConfigTemplate
    ConfigTemplate represents the configuration template for a plugin. Structure is documented below.
    Description string
    The plugin description. Max length is 2000 characters (Unicode code points).
    Documentation PluginDocumentation
    Documentation details. Structure is documented below.
    HostingService PluginHostingService
    The information related to the service implemented by the plugin developer, used to invoke the plugin's functionality. Structure is documented below.
    PluginCategory string
    Possible values: PLUGIN_CATEGORY_UNSPECIFIED API_GATEWAY API_PRODUCER
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    DisplayName string
    The display name of the plugin. Max length is 50 characters (Unicode code points).
    Location string
    Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
    PluginId string
    The ID to use for the Plugin resource, which will become the final component of the Plugin's resource name. This field is optional.

    • If provided, the same will be used. The service will throw an error if the specified id is already used by another Plugin resource in the API hub instance.
    • If not provided, a system generated id will be used. This value should be 4-63 characters, overall resource name which will be of format projects/{project}/locations/{location}/plugins/{plugin}, its length is limited to 1000 characters and valid characters are /a-z[0-9]-_/.
    ActionsConfigs []PluginActionsConfigArgs
    The configuration of actions supported by the plugin. Structure is documented below.
    ConfigTemplate PluginConfigTemplateArgs
    ConfigTemplate represents the configuration template for a plugin. Structure is documented below.
    Description string
    The plugin description. Max length is 2000 characters (Unicode code points).
    Documentation PluginDocumentationArgs
    Documentation details. Structure is documented below.
    HostingService PluginHostingServiceArgs
    The information related to the service implemented by the plugin developer, used to invoke the plugin's functionality. Structure is documented below.
    PluginCategory string
    Possible values: PLUGIN_CATEGORY_UNSPECIFIED API_GATEWAY API_PRODUCER
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    displayName String
    The display name of the plugin. Max length is 50 characters (Unicode code points).
    location String
    Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
    pluginId String
    The ID to use for the Plugin resource, which will become the final component of the Plugin's resource name. This field is optional.

    • If provided, the same will be used. The service will throw an error if the specified id is already used by another Plugin resource in the API hub instance.
    • If not provided, a system generated id will be used. This value should be 4-63 characters, overall resource name which will be of format projects/{project}/locations/{location}/plugins/{plugin}, its length is limited to 1000 characters and valid characters are /a-z[0-9]-_/.
    actionsConfigs List<PluginActionsConfig>
    The configuration of actions supported by the plugin. Structure is documented below.
    configTemplate PluginConfigTemplate
    ConfigTemplate represents the configuration template for a plugin. Structure is documented below.
    description String
    The plugin description. Max length is 2000 characters (Unicode code points).
    documentation PluginDocumentation
    Documentation details. Structure is documented below.
    hostingService PluginHostingService
    The information related to the service implemented by the plugin developer, used to invoke the plugin's functionality. Structure is documented below.
    pluginCategory String
    Possible values: PLUGIN_CATEGORY_UNSPECIFIED API_GATEWAY API_PRODUCER
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    displayName string
    The display name of the plugin. Max length is 50 characters (Unicode code points).
    location string
    Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
    pluginId string
    The ID to use for the Plugin resource, which will become the final component of the Plugin's resource name. This field is optional.

    • If provided, the same will be used. The service will throw an error if the specified id is already used by another Plugin resource in the API hub instance.
    • If not provided, a system generated id will be used. This value should be 4-63 characters, overall resource name which will be of format projects/{project}/locations/{location}/plugins/{plugin}, its length is limited to 1000 characters and valid characters are /a-z[0-9]-_/.
    actionsConfigs PluginActionsConfig[]
    The configuration of actions supported by the plugin. Structure is documented below.
    configTemplate PluginConfigTemplate
    ConfigTemplate represents the configuration template for a plugin. Structure is documented below.
    description string
    The plugin description. Max length is 2000 characters (Unicode code points).
    documentation PluginDocumentation
    Documentation details. Structure is documented below.
    hostingService PluginHostingService
    The information related to the service implemented by the plugin developer, used to invoke the plugin's functionality. Structure is documented below.
    pluginCategory string
    Possible values: PLUGIN_CATEGORY_UNSPECIFIED API_GATEWAY API_PRODUCER
    project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    display_name str
    The display name of the plugin. Max length is 50 characters (Unicode code points).
    location str
    Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
    plugin_id str
    The ID to use for the Plugin resource, which will become the final component of the Plugin's resource name. This field is optional.

    • If provided, the same will be used. The service will throw an error if the specified id is already used by another Plugin resource in the API hub instance.
    • If not provided, a system generated id will be used. This value should be 4-63 characters, overall resource name which will be of format projects/{project}/locations/{location}/plugins/{plugin}, its length is limited to 1000 characters and valid characters are /a-z[0-9]-_/.
    actions_configs Sequence[PluginActionsConfigArgs]
    The configuration of actions supported by the plugin. Structure is documented below.
    config_template PluginConfigTemplateArgs
    ConfigTemplate represents the configuration template for a plugin. Structure is documented below.
    description str
    The plugin description. Max length is 2000 characters (Unicode code points).
    documentation PluginDocumentationArgs
    Documentation details. Structure is documented below.
    hosting_service PluginHostingServiceArgs
    The information related to the service implemented by the plugin developer, used to invoke the plugin's functionality. Structure is documented below.
    plugin_category str
    Possible values: PLUGIN_CATEGORY_UNSPECIFIED API_GATEWAY API_PRODUCER
    project str
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    displayName String
    The display name of the plugin. Max length is 50 characters (Unicode code points).
    location String
    Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
    pluginId String
    The ID to use for the Plugin resource, which will become the final component of the Plugin's resource name. This field is optional.

    • If provided, the same will be used. The service will throw an error if the specified id is already used by another Plugin resource in the API hub instance.
    • If not provided, a system generated id will be used. This value should be 4-63 characters, overall resource name which will be of format projects/{project}/locations/{location}/plugins/{plugin}, its length is limited to 1000 characters and valid characters are /a-z[0-9]-_/.
    actionsConfigs List<Property Map>
    The configuration of actions supported by the plugin. Structure is documented below.
    configTemplate Property Map
    ConfigTemplate represents the configuration template for a plugin. Structure is documented below.
    description String
    The plugin description. Max length is 2000 characters (Unicode code points).
    documentation Property Map
    Documentation details. Structure is documented below.
    hostingService Property Map
    The information related to the service implemented by the plugin developer, used to invoke the plugin's functionality. Structure is documented below.
    pluginCategory String
    Possible values: PLUGIN_CATEGORY_UNSPECIFIED API_GATEWAY API_PRODUCER
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.

    Outputs

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

    CreateTime string
    Timestamp indicating when the plugin was created.
    Id string
    The provider-assigned unique ID for this managed resource.
    Name string
    Identifier. The name of the plugin. Format: projects/{project}/locations/{location}/plugins/{plugin}
    OwnershipType string
    The type of the plugin, indicating whether it is 'SYSTEM_OWNED' or 'USER_OWNED'. Possible values: OWNERSHIP_TYPE_UNSPECIFIED SYSTEM_OWNED USER_OWNED
    State string
    Represents the state of the plugin. Note this field will not be set for plugins developed via plugin framework as the state will be managed at plugin instance level. Possible values: STATE_UNSPECIFIED ENABLED DISABLED
    UpdateTime string
    Timestamp indicating when the plugin was last updated.
    CreateTime string
    Timestamp indicating when the plugin was created.
    Id string
    The provider-assigned unique ID for this managed resource.
    Name string
    Identifier. The name of the plugin. Format: projects/{project}/locations/{location}/plugins/{plugin}
    OwnershipType string
    The type of the plugin, indicating whether it is 'SYSTEM_OWNED' or 'USER_OWNED'. Possible values: OWNERSHIP_TYPE_UNSPECIFIED SYSTEM_OWNED USER_OWNED
    State string
    Represents the state of the plugin. Note this field will not be set for plugins developed via plugin framework as the state will be managed at plugin instance level. Possible values: STATE_UNSPECIFIED ENABLED DISABLED
    UpdateTime string
    Timestamp indicating when the plugin was last updated.
    createTime String
    Timestamp indicating when the plugin was created.
    id String
    The provider-assigned unique ID for this managed resource.
    name String
    Identifier. The name of the plugin. Format: projects/{project}/locations/{location}/plugins/{plugin}
    ownershipType String
    The type of the plugin, indicating whether it is 'SYSTEM_OWNED' or 'USER_OWNED'. Possible values: OWNERSHIP_TYPE_UNSPECIFIED SYSTEM_OWNED USER_OWNED
    state String
    Represents the state of the plugin. Note this field will not be set for plugins developed via plugin framework as the state will be managed at plugin instance level. Possible values: STATE_UNSPECIFIED ENABLED DISABLED
    updateTime String
    Timestamp indicating when the plugin was last updated.
    createTime string
    Timestamp indicating when the plugin was created.
    id string
    The provider-assigned unique ID for this managed resource.
    name string
    Identifier. The name of the plugin. Format: projects/{project}/locations/{location}/plugins/{plugin}
    ownershipType string
    The type of the plugin, indicating whether it is 'SYSTEM_OWNED' or 'USER_OWNED'. Possible values: OWNERSHIP_TYPE_UNSPECIFIED SYSTEM_OWNED USER_OWNED
    state string
    Represents the state of the plugin. Note this field will not be set for plugins developed via plugin framework as the state will be managed at plugin instance level. Possible values: STATE_UNSPECIFIED ENABLED DISABLED
    updateTime string
    Timestamp indicating when the plugin was last updated.
    create_time str
    Timestamp indicating when the plugin was created.
    id str
    The provider-assigned unique ID for this managed resource.
    name str
    Identifier. The name of the plugin. Format: projects/{project}/locations/{location}/plugins/{plugin}
    ownership_type str
    The type of the plugin, indicating whether it is 'SYSTEM_OWNED' or 'USER_OWNED'. Possible values: OWNERSHIP_TYPE_UNSPECIFIED SYSTEM_OWNED USER_OWNED
    state str
    Represents the state of the plugin. Note this field will not be set for plugins developed via plugin framework as the state will be managed at plugin instance level. Possible values: STATE_UNSPECIFIED ENABLED DISABLED
    update_time str
    Timestamp indicating when the plugin was last updated.
    createTime String
    Timestamp indicating when the plugin was created.
    id String
    The provider-assigned unique ID for this managed resource.
    name String
    Identifier. The name of the plugin. Format: projects/{project}/locations/{location}/plugins/{plugin}
    ownershipType String
    The type of the plugin, indicating whether it is 'SYSTEM_OWNED' or 'USER_OWNED'. Possible values: OWNERSHIP_TYPE_UNSPECIFIED SYSTEM_OWNED USER_OWNED
    state String
    Represents the state of the plugin. Note this field will not be set for plugins developed via plugin framework as the state will be managed at plugin instance level. Possible values: STATE_UNSPECIFIED ENABLED DISABLED
    updateTime String
    Timestamp indicating when the plugin was last updated.

    Look up Existing Plugin Resource

    Get an existing Plugin 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?: PluginState, opts?: CustomResourceOptions): Plugin
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            actions_configs: Optional[Sequence[PluginActionsConfigArgs]] = None,
            config_template: Optional[PluginConfigTemplateArgs] = None,
            create_time: Optional[str] = None,
            description: Optional[str] = None,
            display_name: Optional[str] = None,
            documentation: Optional[PluginDocumentationArgs] = None,
            hosting_service: Optional[PluginHostingServiceArgs] = None,
            location: Optional[str] = None,
            name: Optional[str] = None,
            ownership_type: Optional[str] = None,
            plugin_category: Optional[str] = None,
            plugin_id: Optional[str] = None,
            project: Optional[str] = None,
            state: Optional[str] = None,
            update_time: Optional[str] = None) -> Plugin
    func GetPlugin(ctx *Context, name string, id IDInput, state *PluginState, opts ...ResourceOption) (*Plugin, error)
    public static Plugin Get(string name, Input<string> id, PluginState? state, CustomResourceOptions? opts = null)
    public static Plugin get(String name, Output<String> id, PluginState state, CustomResourceOptions options)
    resources:  _:    type: gcp:apihub:Plugin    get:      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:
    ActionsConfigs List<PluginActionsConfig>
    The configuration of actions supported by the plugin. Structure is documented below.
    ConfigTemplate PluginConfigTemplate
    ConfigTemplate represents the configuration template for a plugin. Structure is documented below.
    CreateTime string
    Timestamp indicating when the plugin was created.
    Description string
    The plugin description. Max length is 2000 characters (Unicode code points).
    DisplayName string
    The display name of the plugin. Max length is 50 characters (Unicode code points).
    Documentation PluginDocumentation
    Documentation details. Structure is documented below.
    HostingService PluginHostingService
    The information related to the service implemented by the plugin developer, used to invoke the plugin's functionality. Structure is documented below.
    Location string
    Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
    Name string
    Identifier. The name of the plugin. Format: projects/{project}/locations/{location}/plugins/{plugin}
    OwnershipType string
    The type of the plugin, indicating whether it is 'SYSTEM_OWNED' or 'USER_OWNED'. Possible values: OWNERSHIP_TYPE_UNSPECIFIED SYSTEM_OWNED USER_OWNED
    PluginCategory string
    Possible values: PLUGIN_CATEGORY_UNSPECIFIED API_GATEWAY API_PRODUCER
    PluginId string
    The ID to use for the Plugin resource, which will become the final component of the Plugin's resource name. This field is optional.

    • If provided, the same will be used. The service will throw an error if the specified id is already used by another Plugin resource in the API hub instance.
    • If not provided, a system generated id will be used. This value should be 4-63 characters, overall resource name which will be of format projects/{project}/locations/{location}/plugins/{plugin}, its length is limited to 1000 characters and valid characters are /a-z[0-9]-_/.
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    State string
    Represents the state of the plugin. Note this field will not be set for plugins developed via plugin framework as the state will be managed at plugin instance level. Possible values: STATE_UNSPECIFIED ENABLED DISABLED
    UpdateTime string
    Timestamp indicating when the plugin was last updated.
    ActionsConfigs []PluginActionsConfigArgs
    The configuration of actions supported by the plugin. Structure is documented below.
    ConfigTemplate PluginConfigTemplateArgs
    ConfigTemplate represents the configuration template for a plugin. Structure is documented below.
    CreateTime string
    Timestamp indicating when the plugin was created.
    Description string
    The plugin description. Max length is 2000 characters (Unicode code points).
    DisplayName string
    The display name of the plugin. Max length is 50 characters (Unicode code points).
    Documentation PluginDocumentationArgs
    Documentation details. Structure is documented below.
    HostingService PluginHostingServiceArgs
    The information related to the service implemented by the plugin developer, used to invoke the plugin's functionality. Structure is documented below.
    Location string
    Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
    Name string
    Identifier. The name of the plugin. Format: projects/{project}/locations/{location}/plugins/{plugin}
    OwnershipType string
    The type of the plugin, indicating whether it is 'SYSTEM_OWNED' or 'USER_OWNED'. Possible values: OWNERSHIP_TYPE_UNSPECIFIED SYSTEM_OWNED USER_OWNED
    PluginCategory string
    Possible values: PLUGIN_CATEGORY_UNSPECIFIED API_GATEWAY API_PRODUCER
    PluginId string
    The ID to use for the Plugin resource, which will become the final component of the Plugin's resource name. This field is optional.

    • If provided, the same will be used. The service will throw an error if the specified id is already used by another Plugin resource in the API hub instance.
    • If not provided, a system generated id will be used. This value should be 4-63 characters, overall resource name which will be of format projects/{project}/locations/{location}/plugins/{plugin}, its length is limited to 1000 characters and valid characters are /a-z[0-9]-_/.
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    State string
    Represents the state of the plugin. Note this field will not be set for plugins developed via plugin framework as the state will be managed at plugin instance level. Possible values: STATE_UNSPECIFIED ENABLED DISABLED
    UpdateTime string
    Timestamp indicating when the plugin was last updated.
    actionsConfigs List<PluginActionsConfig>
    The configuration of actions supported by the plugin. Structure is documented below.
    configTemplate PluginConfigTemplate
    ConfigTemplate represents the configuration template for a plugin. Structure is documented below.
    createTime String
    Timestamp indicating when the plugin was created.
    description String
    The plugin description. Max length is 2000 characters (Unicode code points).
    displayName String
    The display name of the plugin. Max length is 50 characters (Unicode code points).
    documentation PluginDocumentation
    Documentation details. Structure is documented below.
    hostingService PluginHostingService
    The information related to the service implemented by the plugin developer, used to invoke the plugin's functionality. Structure is documented below.
    location String
    Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
    name String
    Identifier. The name of the plugin. Format: projects/{project}/locations/{location}/plugins/{plugin}
    ownershipType String
    The type of the plugin, indicating whether it is 'SYSTEM_OWNED' or 'USER_OWNED'. Possible values: OWNERSHIP_TYPE_UNSPECIFIED SYSTEM_OWNED USER_OWNED
    pluginCategory String
    Possible values: PLUGIN_CATEGORY_UNSPECIFIED API_GATEWAY API_PRODUCER
    pluginId String
    The ID to use for the Plugin resource, which will become the final component of the Plugin's resource name. This field is optional.

    • If provided, the same will be used. The service will throw an error if the specified id is already used by another Plugin resource in the API hub instance.
    • If not provided, a system generated id will be used. This value should be 4-63 characters, overall resource name which will be of format projects/{project}/locations/{location}/plugins/{plugin}, its length is limited to 1000 characters and valid characters are /a-z[0-9]-_/.
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    state String
    Represents the state of the plugin. Note this field will not be set for plugins developed via plugin framework as the state will be managed at plugin instance level. Possible values: STATE_UNSPECIFIED ENABLED DISABLED
    updateTime String
    Timestamp indicating when the plugin was last updated.
    actionsConfigs PluginActionsConfig[]
    The configuration of actions supported by the plugin. Structure is documented below.
    configTemplate PluginConfigTemplate
    ConfigTemplate represents the configuration template for a plugin. Structure is documented below.
    createTime string
    Timestamp indicating when the plugin was created.
    description string
    The plugin description. Max length is 2000 characters (Unicode code points).
    displayName string
    The display name of the plugin. Max length is 50 characters (Unicode code points).
    documentation PluginDocumentation
    Documentation details. Structure is documented below.
    hostingService PluginHostingService
    The information related to the service implemented by the plugin developer, used to invoke the plugin's functionality. Structure is documented below.
    location string
    Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
    name string
    Identifier. The name of the plugin. Format: projects/{project}/locations/{location}/plugins/{plugin}
    ownershipType string
    The type of the plugin, indicating whether it is 'SYSTEM_OWNED' or 'USER_OWNED'. Possible values: OWNERSHIP_TYPE_UNSPECIFIED SYSTEM_OWNED USER_OWNED
    pluginCategory string
    Possible values: PLUGIN_CATEGORY_UNSPECIFIED API_GATEWAY API_PRODUCER
    pluginId string
    The ID to use for the Plugin resource, which will become the final component of the Plugin's resource name. This field is optional.

    • If provided, the same will be used. The service will throw an error if the specified id is already used by another Plugin resource in the API hub instance.
    • If not provided, a system generated id will be used. This value should be 4-63 characters, overall resource name which will be of format projects/{project}/locations/{location}/plugins/{plugin}, its length is limited to 1000 characters and valid characters are /a-z[0-9]-_/.
    project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    state string
    Represents the state of the plugin. Note this field will not be set for plugins developed via plugin framework as the state will be managed at plugin instance level. Possible values: STATE_UNSPECIFIED ENABLED DISABLED
    updateTime string
    Timestamp indicating when the plugin was last updated.
    actions_configs Sequence[PluginActionsConfigArgs]
    The configuration of actions supported by the plugin. Structure is documented below.
    config_template PluginConfigTemplateArgs
    ConfigTemplate represents the configuration template for a plugin. Structure is documented below.
    create_time str
    Timestamp indicating when the plugin was created.
    description str
    The plugin description. Max length is 2000 characters (Unicode code points).
    display_name str
    The display name of the plugin. Max length is 50 characters (Unicode code points).
    documentation PluginDocumentationArgs
    Documentation details. Structure is documented below.
    hosting_service PluginHostingServiceArgs
    The information related to the service implemented by the plugin developer, used to invoke the plugin's functionality. Structure is documented below.
    location str
    Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
    name str
    Identifier. The name of the plugin. Format: projects/{project}/locations/{location}/plugins/{plugin}
    ownership_type str
    The type of the plugin, indicating whether it is 'SYSTEM_OWNED' or 'USER_OWNED'. Possible values: OWNERSHIP_TYPE_UNSPECIFIED SYSTEM_OWNED USER_OWNED
    plugin_category str
    Possible values: PLUGIN_CATEGORY_UNSPECIFIED API_GATEWAY API_PRODUCER
    plugin_id str
    The ID to use for the Plugin resource, which will become the final component of the Plugin's resource name. This field is optional.

    • If provided, the same will be used. The service will throw an error if the specified id is already used by another Plugin resource in the API hub instance.
    • If not provided, a system generated id will be used. This value should be 4-63 characters, overall resource name which will be of format projects/{project}/locations/{location}/plugins/{plugin}, its length is limited to 1000 characters and valid characters are /a-z[0-9]-_/.
    project str
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    state str
    Represents the state of the plugin. Note this field will not be set for plugins developed via plugin framework as the state will be managed at plugin instance level. Possible values: STATE_UNSPECIFIED ENABLED DISABLED
    update_time str
    Timestamp indicating when the plugin was last updated.
    actionsConfigs List<Property Map>
    The configuration of actions supported by the plugin. Structure is documented below.
    configTemplate Property Map
    ConfigTemplate represents the configuration template for a plugin. Structure is documented below.
    createTime String
    Timestamp indicating when the plugin was created.
    description String
    The plugin description. Max length is 2000 characters (Unicode code points).
    displayName String
    The display name of the plugin. Max length is 50 characters (Unicode code points).
    documentation Property Map
    Documentation details. Structure is documented below.
    hostingService Property Map
    The information related to the service implemented by the plugin developer, used to invoke the plugin's functionality. Structure is documented below.
    location String
    Resource ID segment making up resource name. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
    name String
    Identifier. The name of the plugin. Format: projects/{project}/locations/{location}/plugins/{plugin}
    ownershipType String
    The type of the plugin, indicating whether it is 'SYSTEM_OWNED' or 'USER_OWNED'. Possible values: OWNERSHIP_TYPE_UNSPECIFIED SYSTEM_OWNED USER_OWNED
    pluginCategory String
    Possible values: PLUGIN_CATEGORY_UNSPECIFIED API_GATEWAY API_PRODUCER
    pluginId String
    The ID to use for the Plugin resource, which will become the final component of the Plugin's resource name. This field is optional.

    • If provided, the same will be used. The service will throw an error if the specified id is already used by another Plugin resource in the API hub instance.
    • If not provided, a system generated id will be used. This value should be 4-63 characters, overall resource name which will be of format projects/{project}/locations/{location}/plugins/{plugin}, its length is limited to 1000 characters and valid characters are /a-z[0-9]-_/.
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    state String
    Represents the state of the plugin. Note this field will not be set for plugins developed via plugin framework as the state will be managed at plugin instance level. Possible values: STATE_UNSPECIFIED ENABLED DISABLED
    updateTime String
    Timestamp indicating when the plugin was last updated.

    Supporting Types

    PluginActionsConfig, PluginActionsConfigArgs

    Description string
    The description of the operation performed by the action.
    DisplayName string
    The display name of the action.
    Id string
    The id of the action.
    TriggerMode string
    The trigger mode supported by the action. Possible values: TRIGGER_MODE_UNSPECIFIED API_HUB_ON_DEMAND_TRIGGER API_HUB_SCHEDULE_TRIGGER NON_API_HUB_MANAGED
    Description string
    The description of the operation performed by the action.
    DisplayName string
    The display name of the action.
    Id string
    The id of the action.
    TriggerMode string
    The trigger mode supported by the action. Possible values: TRIGGER_MODE_UNSPECIFIED API_HUB_ON_DEMAND_TRIGGER API_HUB_SCHEDULE_TRIGGER NON_API_HUB_MANAGED
    description String
    The description of the operation performed by the action.
    displayName String
    The display name of the action.
    id String
    The id of the action.
    triggerMode String
    The trigger mode supported by the action. Possible values: TRIGGER_MODE_UNSPECIFIED API_HUB_ON_DEMAND_TRIGGER API_HUB_SCHEDULE_TRIGGER NON_API_HUB_MANAGED
    description string
    The description of the operation performed by the action.
    displayName string
    The display name of the action.
    id string
    The id of the action.
    triggerMode string
    The trigger mode supported by the action. Possible values: TRIGGER_MODE_UNSPECIFIED API_HUB_ON_DEMAND_TRIGGER API_HUB_SCHEDULE_TRIGGER NON_API_HUB_MANAGED
    description str
    The description of the operation performed by the action.
    display_name str
    The display name of the action.
    id str
    The id of the action.
    trigger_mode str
    The trigger mode supported by the action. Possible values: TRIGGER_MODE_UNSPECIFIED API_HUB_ON_DEMAND_TRIGGER API_HUB_SCHEDULE_TRIGGER NON_API_HUB_MANAGED
    description String
    The description of the operation performed by the action.
    displayName String
    The display name of the action.
    id String
    The id of the action.
    triggerMode String
    The trigger mode supported by the action. Possible values: TRIGGER_MODE_UNSPECIFIED API_HUB_ON_DEMAND_TRIGGER API_HUB_SCHEDULE_TRIGGER NON_API_HUB_MANAGED

    PluginConfigTemplate, PluginConfigTemplateArgs

    AdditionalConfigTemplates List<PluginConfigTemplateAdditionalConfigTemplate>
    The list of additional configuration variables for the plugin's configuration. Structure is documented below.
    AuthConfigTemplate PluginConfigTemplateAuthConfigTemplate
    AuthConfigTemplate represents the authentication template for a plugin. Structure is documented below.
    AdditionalConfigTemplates []PluginConfigTemplateAdditionalConfigTemplate
    The list of additional configuration variables for the plugin's configuration. Structure is documented below.
    AuthConfigTemplate PluginConfigTemplateAuthConfigTemplate
    AuthConfigTemplate represents the authentication template for a plugin. Structure is documented below.
    additionalConfigTemplates List<PluginConfigTemplateAdditionalConfigTemplate>
    The list of additional configuration variables for the plugin's configuration. Structure is documented below.
    authConfigTemplate PluginConfigTemplateAuthConfigTemplate
    AuthConfigTemplate represents the authentication template for a plugin. Structure is documented below.
    additionalConfigTemplates PluginConfigTemplateAdditionalConfigTemplate[]
    The list of additional configuration variables for the plugin's configuration. Structure is documented below.
    authConfigTemplate PluginConfigTemplateAuthConfigTemplate
    AuthConfigTemplate represents the authentication template for a plugin. Structure is documented below.
    additional_config_templates Sequence[PluginConfigTemplateAdditionalConfigTemplate]
    The list of additional configuration variables for the plugin's configuration. Structure is documented below.
    auth_config_template PluginConfigTemplateAuthConfigTemplate
    AuthConfigTemplate represents the authentication template for a plugin. Structure is documented below.
    additionalConfigTemplates List<Property Map>
    The list of additional configuration variables for the plugin's configuration. Structure is documented below.
    authConfigTemplate Property Map
    AuthConfigTemplate represents the authentication template for a plugin. Structure is documented below.

    PluginConfigTemplateAdditionalConfigTemplate, PluginConfigTemplateAdditionalConfigTemplateArgs

    Id string
    ID of the config variable. Must be unique within the configuration.
    ValueType string
    Type of the parameter: string, int, bool etc. Possible values: VALUE_TYPE_UNSPECIFIED STRING INT BOOL SECRET ENUM MULTI_SELECT MULTI_STRING MULTI_INT
    Description string
    Description.
    EnumOptions List<PluginConfigTemplateAdditionalConfigTemplateEnumOption>
    Enum options. To be populated if ValueType is ENUM. Structure is documented below.
    MultiSelectOptions List<PluginConfigTemplateAdditionalConfigTemplateMultiSelectOption>
    Multi select options. To be populated if ValueType is MULTI_SELECT. Structure is documented below.
    Required bool
    Flag represents that this ConfigVariable must be provided for a PluginInstance.
    ValidationRegex string
    Regular expression in RE2 syntax used for validating the value of a ConfigVariable.
    Id string
    ID of the config variable. Must be unique within the configuration.
    ValueType string
    Type of the parameter: string, int, bool etc. Possible values: VALUE_TYPE_UNSPECIFIED STRING INT BOOL SECRET ENUM MULTI_SELECT MULTI_STRING MULTI_INT
    Description string
    Description.
    EnumOptions []PluginConfigTemplateAdditionalConfigTemplateEnumOption
    Enum options. To be populated if ValueType is ENUM. Structure is documented below.
    MultiSelectOptions []PluginConfigTemplateAdditionalConfigTemplateMultiSelectOption
    Multi select options. To be populated if ValueType is MULTI_SELECT. Structure is documented below.
    Required bool
    Flag represents that this ConfigVariable must be provided for a PluginInstance.
    ValidationRegex string
    Regular expression in RE2 syntax used for validating the value of a ConfigVariable.
    id String
    ID of the config variable. Must be unique within the configuration.
    valueType String
    Type of the parameter: string, int, bool etc. Possible values: VALUE_TYPE_UNSPECIFIED STRING INT BOOL SECRET ENUM MULTI_SELECT MULTI_STRING MULTI_INT
    description String
    Description.
    enumOptions List<PluginConfigTemplateAdditionalConfigTemplateEnumOption>
    Enum options. To be populated if ValueType is ENUM. Structure is documented below.
    multiSelectOptions List<PluginConfigTemplateAdditionalConfigTemplateMultiSelectOption>
    Multi select options. To be populated if ValueType is MULTI_SELECT. Structure is documented below.
    required Boolean
    Flag represents that this ConfigVariable must be provided for a PluginInstance.
    validationRegex String
    Regular expression in RE2 syntax used for validating the value of a ConfigVariable.
    id string
    ID of the config variable. Must be unique within the configuration.
    valueType string
    Type of the parameter: string, int, bool etc. Possible values: VALUE_TYPE_UNSPECIFIED STRING INT BOOL SECRET ENUM MULTI_SELECT MULTI_STRING MULTI_INT
    description string
    Description.
    enumOptions PluginConfigTemplateAdditionalConfigTemplateEnumOption[]
    Enum options. To be populated if ValueType is ENUM. Structure is documented below.
    multiSelectOptions PluginConfigTemplateAdditionalConfigTemplateMultiSelectOption[]
    Multi select options. To be populated if ValueType is MULTI_SELECT. Structure is documented below.
    required boolean
    Flag represents that this ConfigVariable must be provided for a PluginInstance.
    validationRegex string
    Regular expression in RE2 syntax used for validating the value of a ConfigVariable.
    id str
    ID of the config variable. Must be unique within the configuration.
    value_type str
    Type of the parameter: string, int, bool etc. Possible values: VALUE_TYPE_UNSPECIFIED STRING INT BOOL SECRET ENUM MULTI_SELECT MULTI_STRING MULTI_INT
    description str
    Description.
    enum_options Sequence[PluginConfigTemplateAdditionalConfigTemplateEnumOption]
    Enum options. To be populated if ValueType is ENUM. Structure is documented below.
    multi_select_options Sequence[PluginConfigTemplateAdditionalConfigTemplateMultiSelectOption]
    Multi select options. To be populated if ValueType is MULTI_SELECT. Structure is documented below.
    required bool
    Flag represents that this ConfigVariable must be provided for a PluginInstance.
    validation_regex str
    Regular expression in RE2 syntax used for validating the value of a ConfigVariable.
    id String
    ID of the config variable. Must be unique within the configuration.
    valueType String
    Type of the parameter: string, int, bool etc. Possible values: VALUE_TYPE_UNSPECIFIED STRING INT BOOL SECRET ENUM MULTI_SELECT MULTI_STRING MULTI_INT
    description String
    Description.
    enumOptions List<Property Map>
    Enum options. To be populated if ValueType is ENUM. Structure is documented below.
    multiSelectOptions List<Property Map>
    Multi select options. To be populated if ValueType is MULTI_SELECT. Structure is documented below.
    required Boolean
    Flag represents that this ConfigVariable must be provided for a PluginInstance.
    validationRegex String
    Regular expression in RE2 syntax used for validating the value of a ConfigVariable.

    PluginConfigTemplateAdditionalConfigTemplateEnumOption, PluginConfigTemplateAdditionalConfigTemplateEnumOptionArgs

    DisplayName string
    Display name of the option.
    Id string
    Id of the option.
    Description string
    Description of the option.
    DisplayName string
    Display name of the option.
    Id string
    Id of the option.
    Description string
    Description of the option.
    displayName String
    Display name of the option.
    id String
    Id of the option.
    description String
    Description of the option.
    displayName string
    Display name of the option.
    id string
    Id of the option.
    description string
    Description of the option.
    display_name str
    Display name of the option.
    id str
    Id of the option.
    description str
    Description of the option.
    displayName String
    Display name of the option.
    id String
    Id of the option.
    description String
    Description of the option.

    PluginConfigTemplateAdditionalConfigTemplateMultiSelectOption, PluginConfigTemplateAdditionalConfigTemplateMultiSelectOptionArgs

    DisplayName string
    Display name of the option.
    Id string
    Id of the option.
    Description string
    Description of the option.
    DisplayName string
    Display name of the option.
    Id string
    Id of the option.
    Description string
    Description of the option.
    displayName String
    Display name of the option.
    id String
    Id of the option.
    description String
    Description of the option.
    displayName string
    Display name of the option.
    id string
    Id of the option.
    description string
    Description of the option.
    display_name str
    Display name of the option.
    id str
    Id of the option.
    description str
    Description of the option.
    displayName String
    Display name of the option.
    id String
    Id of the option.
    description String
    Description of the option.

    PluginConfigTemplateAuthConfigTemplate, PluginConfigTemplateAuthConfigTemplateArgs

    SupportedAuthTypes List<string>
    The list of authentication types supported by the plugin.
    ServiceAccount PluginConfigTemplateAuthConfigTemplateServiceAccount
    Config for Google service account authentication. Structure is documented below.
    SupportedAuthTypes []string
    The list of authentication types supported by the plugin.
    ServiceAccount PluginConfigTemplateAuthConfigTemplateServiceAccount
    Config for Google service account authentication. Structure is documented below.
    supportedAuthTypes List<String>
    The list of authentication types supported by the plugin.
    serviceAccount PluginConfigTemplateAuthConfigTemplateServiceAccount
    Config for Google service account authentication. Structure is documented below.
    supportedAuthTypes string[]
    The list of authentication types supported by the plugin.
    serviceAccount PluginConfigTemplateAuthConfigTemplateServiceAccount
    Config for Google service account authentication. Structure is documented below.
    supported_auth_types Sequence[str]
    The list of authentication types supported by the plugin.
    service_account PluginConfigTemplateAuthConfigTemplateServiceAccount
    Config for Google service account authentication. Structure is documented below.
    supportedAuthTypes List<String>
    The list of authentication types supported by the plugin.
    serviceAccount Property Map
    Config for Google service account authentication. Structure is documented below.

    PluginConfigTemplateAuthConfigTemplateServiceAccount, PluginConfigTemplateAuthConfigTemplateServiceAccountArgs

    ServiceAccount string
    The service account to be used for authenticating request. The iam.serviceAccounts.getAccessToken permission should be granted on this service account to the impersonator service account.
    ServiceAccount string
    The service account to be used for authenticating request. The iam.serviceAccounts.getAccessToken permission should be granted on this service account to the impersonator service account.
    serviceAccount String
    The service account to be used for authenticating request. The iam.serviceAccounts.getAccessToken permission should be granted on this service account to the impersonator service account.
    serviceAccount string
    The service account to be used for authenticating request. The iam.serviceAccounts.getAccessToken permission should be granted on this service account to the impersonator service account.
    service_account str
    The service account to be used for authenticating request. The iam.serviceAccounts.getAccessToken permission should be granted on this service account to the impersonator service account.
    serviceAccount String
    The service account to be used for authenticating request. The iam.serviceAccounts.getAccessToken permission should be granted on this service account to the impersonator service account.

    PluginDocumentation, PluginDocumentationArgs

    ExternalUri string
    The uri of the externally hosted documentation.
    ExternalUri string
    The uri of the externally hosted documentation.
    externalUri String
    The uri of the externally hosted documentation.
    externalUri string
    The uri of the externally hosted documentation.
    external_uri str
    The uri of the externally hosted documentation.
    externalUri String
    The uri of the externally hosted documentation.

    PluginHostingService, PluginHostingServiceArgs

    ServiceUri string
    The URI of the service implemented by the plugin developer, used to invoke the plugin's functionality. This information is only required for user defined plugins.
    ServiceUri string
    The URI of the service implemented by the plugin developer, used to invoke the plugin's functionality. This information is only required for user defined plugins.
    serviceUri String
    The URI of the service implemented by the plugin developer, used to invoke the plugin's functionality. This information is only required for user defined plugins.
    serviceUri string
    The URI of the service implemented by the plugin developer, used to invoke the plugin's functionality. This information is only required for user defined plugins.
    service_uri str
    The URI of the service implemented by the plugin developer, used to invoke the plugin's functionality. This information is only required for user defined plugins.
    serviceUri String
    The URI of the service implemented by the plugin developer, used to invoke the plugin's functionality. This information is only required for user defined plugins.

    Import

    Plugin can be imported using any of these accepted formats:

    • projects/{{project}}/locations/{{location}}/plugins/{{plugin_id}}

    • {{project}}/{{location}}/{{plugin_id}}

    • {{location}}/{{plugin_id}}

    When using the pulumi import command, Plugin can be imported using one of the formats above. For example:

    $ pulumi import gcp:apihub/plugin:Plugin default projects/{{project}}/locations/{{location}}/plugins/{{plugin_id}}
    
    $ pulumi import gcp:apihub/plugin:Plugin default {{project}}/{{location}}/{{plugin_id}}
    
    $ pulumi import gcp:apihub/plugin:Plugin default {{location}}/{{plugin_id}}
    

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

    Package Details

    Repository
    Google Cloud (GCP) Classic pulumi/pulumi-gcp
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the google-beta Terraform Provider.
    gcp logo
    Google Cloud v8.39.0 published on Tuesday, Jul 22, 2025 by Pulumi