github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/securityhub/productSubscription.go (about)

     1  // Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
     2  // *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
     3  
     4  package securityhub
     5  
     6  import (
     7  	"context"
     8  	"reflect"
     9  
    10  	"errors"
    11  	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal"
    12  	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    13  )
    14  
    15  // Subscribes to a Security Hub product.
    16  //
    17  // ## Example Usage
    18  //
    19  // <!--Start PulumiCodeChooser -->
    20  // ```go
    21  // package main
    22  //
    23  // import (
    24  //
    25  //	"fmt"
    26  //
    27  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws"
    28  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/securityhub"
    29  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    30  //
    31  // )
    32  //
    33  //	func main() {
    34  //		pulumi.Run(func(ctx *pulumi.Context) error {
    35  //			example, err := securityhub.NewAccount(ctx, "example", nil)
    36  //			if err != nil {
    37  //				return err
    38  //			}
    39  //			current, err := aws.GetRegion(ctx, nil, nil)
    40  //			if err != nil {
    41  //				return err
    42  //			}
    43  //			_, err = securityhub.NewProductSubscription(ctx, "example", &securityhub.ProductSubscriptionArgs{
    44  //				ProductArn: pulumi.String(fmt.Sprintf("arn:aws:securityhub:%v:733251395267:product/alertlogic/althreatmanagement", current.Name)),
    45  //			}, pulumi.DependsOn([]pulumi.Resource{
    46  //				example,
    47  //			}))
    48  //			if err != nil {
    49  //				return err
    50  //			}
    51  //			return nil
    52  //		})
    53  //	}
    54  //
    55  // ```
    56  // <!--End PulumiCodeChooser -->
    57  //
    58  // ## Import
    59  //
    60  // Using `pulumi import`, import Security Hub product subscriptions using `product_arn,arn`. For example:
    61  //
    62  // ```sh
    63  // $ pulumi import aws:securityhub/productSubscription:ProductSubscription example arn:aws:securityhub:eu-west-1:733251395267:product/alertlogic/althreatmanagement,arn:aws:securityhub:eu-west-1:123456789012:product-subscription/alertlogic/althreatmanagement
    64  // ```
    65  type ProductSubscription struct {
    66  	pulumi.CustomResourceState
    67  
    68  	// The ARN of a resource that represents your subscription to the product that generates the findings that you want to import into Security Hub.
    69  	Arn pulumi.StringOutput `pulumi:"arn"`
    70  	// The ARN of the product that generates findings that you want to import into Security Hub - see below.
    71  	//
    72  	// Amazon maintains a list of [Product integrations in AWS Security Hub](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-findings-providers.html) that changes over time. Any of the products on the linked [Available AWS service integrations](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-internal-providers.html) or [Available third-party partner product integrations](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-partner-providers.html) can be configured using `securityhub.ProductSubscription`.
    73  	//
    74  	// Available products can also be listed by running the AWS CLI command `aws securityhub describe-products`.
    75  	//
    76  	// A subset of currently available products (remember to replace `${var.region}` as appropriate) includes:
    77  	//
    78  	// * `arn:aws:securityhub:${var.region}::product/aws/guardduty`
    79  	// * `arn:aws:securityhub:${var.region}::product/aws/inspector`
    80  	// * `arn:aws:securityhub:${var.region}::product/aws/macie`
    81  	// * `arn:aws:securityhub:${var.region}::product/alertlogic/althreatmanagement`
    82  	// * `arn:aws:securityhub:${var.region}::product/armordefense/armoranywhere`
    83  	// * `arn:aws:securityhub:${var.region}::product/barracuda/cloudsecurityguardian`
    84  	// * `arn:aws:securityhub:${var.region}::product/checkpoint/cloudguard-iaas`
    85  	// * `arn:aws:securityhub:${var.region}::product/checkpoint/dome9-arc`
    86  	// * `arn:aws:securityhub:${var.region}::product/crowdstrike/crowdstrike-falcon`
    87  	// * `arn:aws:securityhub:${var.region}::product/cyberark/cyberark-pta`
    88  	// * `arn:aws:securityhub:${var.region}::product/f5networks/f5-advanced-waf`
    89  	// * `arn:aws:securityhub:${var.region}::product/fortinet/fortigate`
    90  	// * `arn:aws:securityhub:${var.region}::product/guardicore/aws-infection-monkey`
    91  	// * `arn:aws:securityhub:${var.region}::product/guardicore/guardicore`
    92  	// * `arn:aws:securityhub:${var.region}::product/ibm/qradar-siem`
    93  	// * `arn:aws:securityhub:${var.region}::product/imperva/imperva-attack-analytics`
    94  	// * `arn:aws:securityhub:${var.region}::product/mcafee-skyhigh/mcafee-mvision-cloud-aws`
    95  	// * `arn:aws:securityhub:${var.region}::product/paloaltonetworks/redlock`
    96  	// * `arn:aws:securityhub:${var.region}::product/paloaltonetworks/vm-series`
    97  	// * `arn:aws:securityhub:${var.region}::product/qualys/qualys-pc`
    98  	// * `arn:aws:securityhub:${var.region}::product/qualys/qualys-vm`
    99  	// * `arn:aws:securityhub:${var.region}::product/rapid7/insightvm`
   100  	// * `arn:aws:securityhub:${var.region}::product/sophos/sophos-server-protection`
   101  	// * `arn:aws:securityhub:${var.region}::product/splunk/splunk-enterprise`
   102  	// * `arn:aws:securityhub:${var.region}::product/splunk/splunk-phantom`
   103  	// * `arn:aws:securityhub:${var.region}::product/sumologicinc/sumologic-mda`
   104  	// * `arn:aws:securityhub:${var.region}::product/symantec-corp/symantec-cwp`
   105  	// * `arn:aws:securityhub:${var.region}::product/tenable/tenable-io`
   106  	// * `arn:aws:securityhub:${var.region}::product/trend-micro/deep-security`
   107  	// * `arn:aws:securityhub:${var.region}::product/turbot/turbot`
   108  	// * `arn:aws:securityhub:${var.region}::product/twistlock/twistlock-enterprise`
   109  	ProductArn pulumi.StringOutput `pulumi:"productArn"`
   110  }
   111  
   112  // NewProductSubscription registers a new resource with the given unique name, arguments, and options.
   113  func NewProductSubscription(ctx *pulumi.Context,
   114  	name string, args *ProductSubscriptionArgs, opts ...pulumi.ResourceOption) (*ProductSubscription, error) {
   115  	if args == nil {
   116  		return nil, errors.New("missing one or more required arguments")
   117  	}
   118  
   119  	if args.ProductArn == nil {
   120  		return nil, errors.New("invalid value for required argument 'ProductArn'")
   121  	}
   122  	opts = internal.PkgResourceDefaultOpts(opts)
   123  	var resource ProductSubscription
   124  	err := ctx.RegisterResource("aws:securityhub/productSubscription:ProductSubscription", name, args, &resource, opts...)
   125  	if err != nil {
   126  		return nil, err
   127  	}
   128  	return &resource, nil
   129  }
   130  
   131  // GetProductSubscription gets an existing ProductSubscription resource's state with the given name, ID, and optional
   132  // state properties that are used to uniquely qualify the lookup (nil if not required).
   133  func GetProductSubscription(ctx *pulumi.Context,
   134  	name string, id pulumi.IDInput, state *ProductSubscriptionState, opts ...pulumi.ResourceOption) (*ProductSubscription, error) {
   135  	var resource ProductSubscription
   136  	err := ctx.ReadResource("aws:securityhub/productSubscription:ProductSubscription", name, id, state, &resource, opts...)
   137  	if err != nil {
   138  		return nil, err
   139  	}
   140  	return &resource, nil
   141  }
   142  
   143  // Input properties used for looking up and filtering ProductSubscription resources.
   144  type productSubscriptionState struct {
   145  	// The ARN of a resource that represents your subscription to the product that generates the findings that you want to import into Security Hub.
   146  	Arn *string `pulumi:"arn"`
   147  	// The ARN of the product that generates findings that you want to import into Security Hub - see below.
   148  	//
   149  	// Amazon maintains a list of [Product integrations in AWS Security Hub](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-findings-providers.html) that changes over time. Any of the products on the linked [Available AWS service integrations](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-internal-providers.html) or [Available third-party partner product integrations](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-partner-providers.html) can be configured using `securityhub.ProductSubscription`.
   150  	//
   151  	// Available products can also be listed by running the AWS CLI command `aws securityhub describe-products`.
   152  	//
   153  	// A subset of currently available products (remember to replace `${var.region}` as appropriate) includes:
   154  	//
   155  	// * `arn:aws:securityhub:${var.region}::product/aws/guardduty`
   156  	// * `arn:aws:securityhub:${var.region}::product/aws/inspector`
   157  	// * `arn:aws:securityhub:${var.region}::product/aws/macie`
   158  	// * `arn:aws:securityhub:${var.region}::product/alertlogic/althreatmanagement`
   159  	// * `arn:aws:securityhub:${var.region}::product/armordefense/armoranywhere`
   160  	// * `arn:aws:securityhub:${var.region}::product/barracuda/cloudsecurityguardian`
   161  	// * `arn:aws:securityhub:${var.region}::product/checkpoint/cloudguard-iaas`
   162  	// * `arn:aws:securityhub:${var.region}::product/checkpoint/dome9-arc`
   163  	// * `arn:aws:securityhub:${var.region}::product/crowdstrike/crowdstrike-falcon`
   164  	// * `arn:aws:securityhub:${var.region}::product/cyberark/cyberark-pta`
   165  	// * `arn:aws:securityhub:${var.region}::product/f5networks/f5-advanced-waf`
   166  	// * `arn:aws:securityhub:${var.region}::product/fortinet/fortigate`
   167  	// * `arn:aws:securityhub:${var.region}::product/guardicore/aws-infection-monkey`
   168  	// * `arn:aws:securityhub:${var.region}::product/guardicore/guardicore`
   169  	// * `arn:aws:securityhub:${var.region}::product/ibm/qradar-siem`
   170  	// * `arn:aws:securityhub:${var.region}::product/imperva/imperva-attack-analytics`
   171  	// * `arn:aws:securityhub:${var.region}::product/mcafee-skyhigh/mcafee-mvision-cloud-aws`
   172  	// * `arn:aws:securityhub:${var.region}::product/paloaltonetworks/redlock`
   173  	// * `arn:aws:securityhub:${var.region}::product/paloaltonetworks/vm-series`
   174  	// * `arn:aws:securityhub:${var.region}::product/qualys/qualys-pc`
   175  	// * `arn:aws:securityhub:${var.region}::product/qualys/qualys-vm`
   176  	// * `arn:aws:securityhub:${var.region}::product/rapid7/insightvm`
   177  	// * `arn:aws:securityhub:${var.region}::product/sophos/sophos-server-protection`
   178  	// * `arn:aws:securityhub:${var.region}::product/splunk/splunk-enterprise`
   179  	// * `arn:aws:securityhub:${var.region}::product/splunk/splunk-phantom`
   180  	// * `arn:aws:securityhub:${var.region}::product/sumologicinc/sumologic-mda`
   181  	// * `arn:aws:securityhub:${var.region}::product/symantec-corp/symantec-cwp`
   182  	// * `arn:aws:securityhub:${var.region}::product/tenable/tenable-io`
   183  	// * `arn:aws:securityhub:${var.region}::product/trend-micro/deep-security`
   184  	// * `arn:aws:securityhub:${var.region}::product/turbot/turbot`
   185  	// * `arn:aws:securityhub:${var.region}::product/twistlock/twistlock-enterprise`
   186  	ProductArn *string `pulumi:"productArn"`
   187  }
   188  
   189  type ProductSubscriptionState struct {
   190  	// The ARN of a resource that represents your subscription to the product that generates the findings that you want to import into Security Hub.
   191  	Arn pulumi.StringPtrInput
   192  	// The ARN of the product that generates findings that you want to import into Security Hub - see below.
   193  	//
   194  	// Amazon maintains a list of [Product integrations in AWS Security Hub](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-findings-providers.html) that changes over time. Any of the products on the linked [Available AWS service integrations](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-internal-providers.html) or [Available third-party partner product integrations](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-partner-providers.html) can be configured using `securityhub.ProductSubscription`.
   195  	//
   196  	// Available products can also be listed by running the AWS CLI command `aws securityhub describe-products`.
   197  	//
   198  	// A subset of currently available products (remember to replace `${var.region}` as appropriate) includes:
   199  	//
   200  	// * `arn:aws:securityhub:${var.region}::product/aws/guardduty`
   201  	// * `arn:aws:securityhub:${var.region}::product/aws/inspector`
   202  	// * `arn:aws:securityhub:${var.region}::product/aws/macie`
   203  	// * `arn:aws:securityhub:${var.region}::product/alertlogic/althreatmanagement`
   204  	// * `arn:aws:securityhub:${var.region}::product/armordefense/armoranywhere`
   205  	// * `arn:aws:securityhub:${var.region}::product/barracuda/cloudsecurityguardian`
   206  	// * `arn:aws:securityhub:${var.region}::product/checkpoint/cloudguard-iaas`
   207  	// * `arn:aws:securityhub:${var.region}::product/checkpoint/dome9-arc`
   208  	// * `arn:aws:securityhub:${var.region}::product/crowdstrike/crowdstrike-falcon`
   209  	// * `arn:aws:securityhub:${var.region}::product/cyberark/cyberark-pta`
   210  	// * `arn:aws:securityhub:${var.region}::product/f5networks/f5-advanced-waf`
   211  	// * `arn:aws:securityhub:${var.region}::product/fortinet/fortigate`
   212  	// * `arn:aws:securityhub:${var.region}::product/guardicore/aws-infection-monkey`
   213  	// * `arn:aws:securityhub:${var.region}::product/guardicore/guardicore`
   214  	// * `arn:aws:securityhub:${var.region}::product/ibm/qradar-siem`
   215  	// * `arn:aws:securityhub:${var.region}::product/imperva/imperva-attack-analytics`
   216  	// * `arn:aws:securityhub:${var.region}::product/mcafee-skyhigh/mcafee-mvision-cloud-aws`
   217  	// * `arn:aws:securityhub:${var.region}::product/paloaltonetworks/redlock`
   218  	// * `arn:aws:securityhub:${var.region}::product/paloaltonetworks/vm-series`
   219  	// * `arn:aws:securityhub:${var.region}::product/qualys/qualys-pc`
   220  	// * `arn:aws:securityhub:${var.region}::product/qualys/qualys-vm`
   221  	// * `arn:aws:securityhub:${var.region}::product/rapid7/insightvm`
   222  	// * `arn:aws:securityhub:${var.region}::product/sophos/sophos-server-protection`
   223  	// * `arn:aws:securityhub:${var.region}::product/splunk/splunk-enterprise`
   224  	// * `arn:aws:securityhub:${var.region}::product/splunk/splunk-phantom`
   225  	// * `arn:aws:securityhub:${var.region}::product/sumologicinc/sumologic-mda`
   226  	// * `arn:aws:securityhub:${var.region}::product/symantec-corp/symantec-cwp`
   227  	// * `arn:aws:securityhub:${var.region}::product/tenable/tenable-io`
   228  	// * `arn:aws:securityhub:${var.region}::product/trend-micro/deep-security`
   229  	// * `arn:aws:securityhub:${var.region}::product/turbot/turbot`
   230  	// * `arn:aws:securityhub:${var.region}::product/twistlock/twistlock-enterprise`
   231  	ProductArn pulumi.StringPtrInput
   232  }
   233  
   234  func (ProductSubscriptionState) ElementType() reflect.Type {
   235  	return reflect.TypeOf((*productSubscriptionState)(nil)).Elem()
   236  }
   237  
   238  type productSubscriptionArgs struct {
   239  	// The ARN of the product that generates findings that you want to import into Security Hub - see below.
   240  	//
   241  	// Amazon maintains a list of [Product integrations in AWS Security Hub](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-findings-providers.html) that changes over time. Any of the products on the linked [Available AWS service integrations](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-internal-providers.html) or [Available third-party partner product integrations](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-partner-providers.html) can be configured using `securityhub.ProductSubscription`.
   242  	//
   243  	// Available products can also be listed by running the AWS CLI command `aws securityhub describe-products`.
   244  	//
   245  	// A subset of currently available products (remember to replace `${var.region}` as appropriate) includes:
   246  	//
   247  	// * `arn:aws:securityhub:${var.region}::product/aws/guardduty`
   248  	// * `arn:aws:securityhub:${var.region}::product/aws/inspector`
   249  	// * `arn:aws:securityhub:${var.region}::product/aws/macie`
   250  	// * `arn:aws:securityhub:${var.region}::product/alertlogic/althreatmanagement`
   251  	// * `arn:aws:securityhub:${var.region}::product/armordefense/armoranywhere`
   252  	// * `arn:aws:securityhub:${var.region}::product/barracuda/cloudsecurityguardian`
   253  	// * `arn:aws:securityhub:${var.region}::product/checkpoint/cloudguard-iaas`
   254  	// * `arn:aws:securityhub:${var.region}::product/checkpoint/dome9-arc`
   255  	// * `arn:aws:securityhub:${var.region}::product/crowdstrike/crowdstrike-falcon`
   256  	// * `arn:aws:securityhub:${var.region}::product/cyberark/cyberark-pta`
   257  	// * `arn:aws:securityhub:${var.region}::product/f5networks/f5-advanced-waf`
   258  	// * `arn:aws:securityhub:${var.region}::product/fortinet/fortigate`
   259  	// * `arn:aws:securityhub:${var.region}::product/guardicore/aws-infection-monkey`
   260  	// * `arn:aws:securityhub:${var.region}::product/guardicore/guardicore`
   261  	// * `arn:aws:securityhub:${var.region}::product/ibm/qradar-siem`
   262  	// * `arn:aws:securityhub:${var.region}::product/imperva/imperva-attack-analytics`
   263  	// * `arn:aws:securityhub:${var.region}::product/mcafee-skyhigh/mcafee-mvision-cloud-aws`
   264  	// * `arn:aws:securityhub:${var.region}::product/paloaltonetworks/redlock`
   265  	// * `arn:aws:securityhub:${var.region}::product/paloaltonetworks/vm-series`
   266  	// * `arn:aws:securityhub:${var.region}::product/qualys/qualys-pc`
   267  	// * `arn:aws:securityhub:${var.region}::product/qualys/qualys-vm`
   268  	// * `arn:aws:securityhub:${var.region}::product/rapid7/insightvm`
   269  	// * `arn:aws:securityhub:${var.region}::product/sophos/sophos-server-protection`
   270  	// * `arn:aws:securityhub:${var.region}::product/splunk/splunk-enterprise`
   271  	// * `arn:aws:securityhub:${var.region}::product/splunk/splunk-phantom`
   272  	// * `arn:aws:securityhub:${var.region}::product/sumologicinc/sumologic-mda`
   273  	// * `arn:aws:securityhub:${var.region}::product/symantec-corp/symantec-cwp`
   274  	// * `arn:aws:securityhub:${var.region}::product/tenable/tenable-io`
   275  	// * `arn:aws:securityhub:${var.region}::product/trend-micro/deep-security`
   276  	// * `arn:aws:securityhub:${var.region}::product/turbot/turbot`
   277  	// * `arn:aws:securityhub:${var.region}::product/twistlock/twistlock-enterprise`
   278  	ProductArn string `pulumi:"productArn"`
   279  }
   280  
   281  // The set of arguments for constructing a ProductSubscription resource.
   282  type ProductSubscriptionArgs struct {
   283  	// The ARN of the product that generates findings that you want to import into Security Hub - see below.
   284  	//
   285  	// Amazon maintains a list of [Product integrations in AWS Security Hub](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-findings-providers.html) that changes over time. Any of the products on the linked [Available AWS service integrations](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-internal-providers.html) or [Available third-party partner product integrations](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-partner-providers.html) can be configured using `securityhub.ProductSubscription`.
   286  	//
   287  	// Available products can also be listed by running the AWS CLI command `aws securityhub describe-products`.
   288  	//
   289  	// A subset of currently available products (remember to replace `${var.region}` as appropriate) includes:
   290  	//
   291  	// * `arn:aws:securityhub:${var.region}::product/aws/guardduty`
   292  	// * `arn:aws:securityhub:${var.region}::product/aws/inspector`
   293  	// * `arn:aws:securityhub:${var.region}::product/aws/macie`
   294  	// * `arn:aws:securityhub:${var.region}::product/alertlogic/althreatmanagement`
   295  	// * `arn:aws:securityhub:${var.region}::product/armordefense/armoranywhere`
   296  	// * `arn:aws:securityhub:${var.region}::product/barracuda/cloudsecurityguardian`
   297  	// * `arn:aws:securityhub:${var.region}::product/checkpoint/cloudguard-iaas`
   298  	// * `arn:aws:securityhub:${var.region}::product/checkpoint/dome9-arc`
   299  	// * `arn:aws:securityhub:${var.region}::product/crowdstrike/crowdstrike-falcon`
   300  	// * `arn:aws:securityhub:${var.region}::product/cyberark/cyberark-pta`
   301  	// * `arn:aws:securityhub:${var.region}::product/f5networks/f5-advanced-waf`
   302  	// * `arn:aws:securityhub:${var.region}::product/fortinet/fortigate`
   303  	// * `arn:aws:securityhub:${var.region}::product/guardicore/aws-infection-monkey`
   304  	// * `arn:aws:securityhub:${var.region}::product/guardicore/guardicore`
   305  	// * `arn:aws:securityhub:${var.region}::product/ibm/qradar-siem`
   306  	// * `arn:aws:securityhub:${var.region}::product/imperva/imperva-attack-analytics`
   307  	// * `arn:aws:securityhub:${var.region}::product/mcafee-skyhigh/mcafee-mvision-cloud-aws`
   308  	// * `arn:aws:securityhub:${var.region}::product/paloaltonetworks/redlock`
   309  	// * `arn:aws:securityhub:${var.region}::product/paloaltonetworks/vm-series`
   310  	// * `arn:aws:securityhub:${var.region}::product/qualys/qualys-pc`
   311  	// * `arn:aws:securityhub:${var.region}::product/qualys/qualys-vm`
   312  	// * `arn:aws:securityhub:${var.region}::product/rapid7/insightvm`
   313  	// * `arn:aws:securityhub:${var.region}::product/sophos/sophos-server-protection`
   314  	// * `arn:aws:securityhub:${var.region}::product/splunk/splunk-enterprise`
   315  	// * `arn:aws:securityhub:${var.region}::product/splunk/splunk-phantom`
   316  	// * `arn:aws:securityhub:${var.region}::product/sumologicinc/sumologic-mda`
   317  	// * `arn:aws:securityhub:${var.region}::product/symantec-corp/symantec-cwp`
   318  	// * `arn:aws:securityhub:${var.region}::product/tenable/tenable-io`
   319  	// * `arn:aws:securityhub:${var.region}::product/trend-micro/deep-security`
   320  	// * `arn:aws:securityhub:${var.region}::product/turbot/turbot`
   321  	// * `arn:aws:securityhub:${var.region}::product/twistlock/twistlock-enterprise`
   322  	ProductArn pulumi.StringInput
   323  }
   324  
   325  func (ProductSubscriptionArgs) ElementType() reflect.Type {
   326  	return reflect.TypeOf((*productSubscriptionArgs)(nil)).Elem()
   327  }
   328  
   329  type ProductSubscriptionInput interface {
   330  	pulumi.Input
   331  
   332  	ToProductSubscriptionOutput() ProductSubscriptionOutput
   333  	ToProductSubscriptionOutputWithContext(ctx context.Context) ProductSubscriptionOutput
   334  }
   335  
   336  func (*ProductSubscription) ElementType() reflect.Type {
   337  	return reflect.TypeOf((**ProductSubscription)(nil)).Elem()
   338  }
   339  
   340  func (i *ProductSubscription) ToProductSubscriptionOutput() ProductSubscriptionOutput {
   341  	return i.ToProductSubscriptionOutputWithContext(context.Background())
   342  }
   343  
   344  func (i *ProductSubscription) ToProductSubscriptionOutputWithContext(ctx context.Context) ProductSubscriptionOutput {
   345  	return pulumi.ToOutputWithContext(ctx, i).(ProductSubscriptionOutput)
   346  }
   347  
   348  // ProductSubscriptionArrayInput is an input type that accepts ProductSubscriptionArray and ProductSubscriptionArrayOutput values.
   349  // You can construct a concrete instance of `ProductSubscriptionArrayInput` via:
   350  //
   351  //	ProductSubscriptionArray{ ProductSubscriptionArgs{...} }
   352  type ProductSubscriptionArrayInput interface {
   353  	pulumi.Input
   354  
   355  	ToProductSubscriptionArrayOutput() ProductSubscriptionArrayOutput
   356  	ToProductSubscriptionArrayOutputWithContext(context.Context) ProductSubscriptionArrayOutput
   357  }
   358  
   359  type ProductSubscriptionArray []ProductSubscriptionInput
   360  
   361  func (ProductSubscriptionArray) ElementType() reflect.Type {
   362  	return reflect.TypeOf((*[]*ProductSubscription)(nil)).Elem()
   363  }
   364  
   365  func (i ProductSubscriptionArray) ToProductSubscriptionArrayOutput() ProductSubscriptionArrayOutput {
   366  	return i.ToProductSubscriptionArrayOutputWithContext(context.Background())
   367  }
   368  
   369  func (i ProductSubscriptionArray) ToProductSubscriptionArrayOutputWithContext(ctx context.Context) ProductSubscriptionArrayOutput {
   370  	return pulumi.ToOutputWithContext(ctx, i).(ProductSubscriptionArrayOutput)
   371  }
   372  
   373  // ProductSubscriptionMapInput is an input type that accepts ProductSubscriptionMap and ProductSubscriptionMapOutput values.
   374  // You can construct a concrete instance of `ProductSubscriptionMapInput` via:
   375  //
   376  //	ProductSubscriptionMap{ "key": ProductSubscriptionArgs{...} }
   377  type ProductSubscriptionMapInput interface {
   378  	pulumi.Input
   379  
   380  	ToProductSubscriptionMapOutput() ProductSubscriptionMapOutput
   381  	ToProductSubscriptionMapOutputWithContext(context.Context) ProductSubscriptionMapOutput
   382  }
   383  
   384  type ProductSubscriptionMap map[string]ProductSubscriptionInput
   385  
   386  func (ProductSubscriptionMap) ElementType() reflect.Type {
   387  	return reflect.TypeOf((*map[string]*ProductSubscription)(nil)).Elem()
   388  }
   389  
   390  func (i ProductSubscriptionMap) ToProductSubscriptionMapOutput() ProductSubscriptionMapOutput {
   391  	return i.ToProductSubscriptionMapOutputWithContext(context.Background())
   392  }
   393  
   394  func (i ProductSubscriptionMap) ToProductSubscriptionMapOutputWithContext(ctx context.Context) ProductSubscriptionMapOutput {
   395  	return pulumi.ToOutputWithContext(ctx, i).(ProductSubscriptionMapOutput)
   396  }
   397  
   398  type ProductSubscriptionOutput struct{ *pulumi.OutputState }
   399  
   400  func (ProductSubscriptionOutput) ElementType() reflect.Type {
   401  	return reflect.TypeOf((**ProductSubscription)(nil)).Elem()
   402  }
   403  
   404  func (o ProductSubscriptionOutput) ToProductSubscriptionOutput() ProductSubscriptionOutput {
   405  	return o
   406  }
   407  
   408  func (o ProductSubscriptionOutput) ToProductSubscriptionOutputWithContext(ctx context.Context) ProductSubscriptionOutput {
   409  	return o
   410  }
   411  
   412  // The ARN of a resource that represents your subscription to the product that generates the findings that you want to import into Security Hub.
   413  func (o ProductSubscriptionOutput) Arn() pulumi.StringOutput {
   414  	return o.ApplyT(func(v *ProductSubscription) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   415  }
   416  
   417  // The ARN of the product that generates findings that you want to import into Security Hub - see below.
   418  //
   419  // Amazon maintains a list of [Product integrations in AWS Security Hub](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-findings-providers.html) that changes over time. Any of the products on the linked [Available AWS service integrations](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-internal-providers.html) or [Available third-party partner product integrations](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-partner-providers.html) can be configured using `securityhub.ProductSubscription`.
   420  //
   421  // Available products can also be listed by running the AWS CLI command `aws securityhub describe-products`.
   422  //
   423  // A subset of currently available products (remember to replace `${var.region}` as appropriate) includes:
   424  //
   425  // * `arn:aws:securityhub:${var.region}::product/aws/guardduty`
   426  // * `arn:aws:securityhub:${var.region}::product/aws/inspector`
   427  // * `arn:aws:securityhub:${var.region}::product/aws/macie`
   428  // * `arn:aws:securityhub:${var.region}::product/alertlogic/althreatmanagement`
   429  // * `arn:aws:securityhub:${var.region}::product/armordefense/armoranywhere`
   430  // * `arn:aws:securityhub:${var.region}::product/barracuda/cloudsecurityguardian`
   431  // * `arn:aws:securityhub:${var.region}::product/checkpoint/cloudguard-iaas`
   432  // * `arn:aws:securityhub:${var.region}::product/checkpoint/dome9-arc`
   433  // * `arn:aws:securityhub:${var.region}::product/crowdstrike/crowdstrike-falcon`
   434  // * `arn:aws:securityhub:${var.region}::product/cyberark/cyberark-pta`
   435  // * `arn:aws:securityhub:${var.region}::product/f5networks/f5-advanced-waf`
   436  // * `arn:aws:securityhub:${var.region}::product/fortinet/fortigate`
   437  // * `arn:aws:securityhub:${var.region}::product/guardicore/aws-infection-monkey`
   438  // * `arn:aws:securityhub:${var.region}::product/guardicore/guardicore`
   439  // * `arn:aws:securityhub:${var.region}::product/ibm/qradar-siem`
   440  // * `arn:aws:securityhub:${var.region}::product/imperva/imperva-attack-analytics`
   441  // * `arn:aws:securityhub:${var.region}::product/mcafee-skyhigh/mcafee-mvision-cloud-aws`
   442  // * `arn:aws:securityhub:${var.region}::product/paloaltonetworks/redlock`
   443  // * `arn:aws:securityhub:${var.region}::product/paloaltonetworks/vm-series`
   444  // * `arn:aws:securityhub:${var.region}::product/qualys/qualys-pc`
   445  // * `arn:aws:securityhub:${var.region}::product/qualys/qualys-vm`
   446  // * `arn:aws:securityhub:${var.region}::product/rapid7/insightvm`
   447  // * `arn:aws:securityhub:${var.region}::product/sophos/sophos-server-protection`
   448  // * `arn:aws:securityhub:${var.region}::product/splunk/splunk-enterprise`
   449  // * `arn:aws:securityhub:${var.region}::product/splunk/splunk-phantom`
   450  // * `arn:aws:securityhub:${var.region}::product/sumologicinc/sumologic-mda`
   451  // * `arn:aws:securityhub:${var.region}::product/symantec-corp/symantec-cwp`
   452  // * `arn:aws:securityhub:${var.region}::product/tenable/tenable-io`
   453  // * `arn:aws:securityhub:${var.region}::product/trend-micro/deep-security`
   454  // * `arn:aws:securityhub:${var.region}::product/turbot/turbot`
   455  // * `arn:aws:securityhub:${var.region}::product/twistlock/twistlock-enterprise`
   456  func (o ProductSubscriptionOutput) ProductArn() pulumi.StringOutput {
   457  	return o.ApplyT(func(v *ProductSubscription) pulumi.StringOutput { return v.ProductArn }).(pulumi.StringOutput)
   458  }
   459  
   460  type ProductSubscriptionArrayOutput struct{ *pulumi.OutputState }
   461  
   462  func (ProductSubscriptionArrayOutput) ElementType() reflect.Type {
   463  	return reflect.TypeOf((*[]*ProductSubscription)(nil)).Elem()
   464  }
   465  
   466  func (o ProductSubscriptionArrayOutput) ToProductSubscriptionArrayOutput() ProductSubscriptionArrayOutput {
   467  	return o
   468  }
   469  
   470  func (o ProductSubscriptionArrayOutput) ToProductSubscriptionArrayOutputWithContext(ctx context.Context) ProductSubscriptionArrayOutput {
   471  	return o
   472  }
   473  
   474  func (o ProductSubscriptionArrayOutput) Index(i pulumi.IntInput) ProductSubscriptionOutput {
   475  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ProductSubscription {
   476  		return vs[0].([]*ProductSubscription)[vs[1].(int)]
   477  	}).(ProductSubscriptionOutput)
   478  }
   479  
   480  type ProductSubscriptionMapOutput struct{ *pulumi.OutputState }
   481  
   482  func (ProductSubscriptionMapOutput) ElementType() reflect.Type {
   483  	return reflect.TypeOf((*map[string]*ProductSubscription)(nil)).Elem()
   484  }
   485  
   486  func (o ProductSubscriptionMapOutput) ToProductSubscriptionMapOutput() ProductSubscriptionMapOutput {
   487  	return o
   488  }
   489  
   490  func (o ProductSubscriptionMapOutput) ToProductSubscriptionMapOutputWithContext(ctx context.Context) ProductSubscriptionMapOutput {
   491  	return o
   492  }
   493  
   494  func (o ProductSubscriptionMapOutput) MapIndex(k pulumi.StringInput) ProductSubscriptionOutput {
   495  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ProductSubscription {
   496  		return vs[0].(map[string]*ProductSubscription)[vs[1].(string)]
   497  	}).(ProductSubscriptionOutput)
   498  }
   499  
   500  func init() {
   501  	pulumi.RegisterInputType(reflect.TypeOf((*ProductSubscriptionInput)(nil)).Elem(), &ProductSubscription{})
   502  	pulumi.RegisterInputType(reflect.TypeOf((*ProductSubscriptionArrayInput)(nil)).Elem(), ProductSubscriptionArray{})
   503  	pulumi.RegisterInputType(reflect.TypeOf((*ProductSubscriptionMapInput)(nil)).Elem(), ProductSubscriptionMap{})
   504  	pulumi.RegisterOutputType(ProductSubscriptionOutput{})
   505  	pulumi.RegisterOutputType(ProductSubscriptionArrayOutput{})
   506  	pulumi.RegisterOutputType(ProductSubscriptionMapOutput{})
   507  }