// *** WARNING: this file was generated by the Pulumi SDK Generator. *** // *** Do not edit by hand unless you're certain you know what you are doing! *** package v1 import ( "context" "reflect" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // A specification of the type and number of accelerator cards attached to the instance. type AcceleratorConfig struct { // The number of the guest accelerator cards exposed to this instance. AcceleratorCount *int `pulumi:"acceleratorCount"` // Full or partial URL of the accelerator type resource to attach to this instance. For example: projects/my-project/zones/us-central1-c/acceleratorTypes/nvidia-tesla-p100 If you are creating an instance template, specify only the accelerator name. See GPUs on Compute Engine for a full list of accelerator types. AcceleratorType *string `pulumi:"acceleratorType"` } // AcceleratorConfigInput is an input type that accepts AcceleratorConfigArgs and AcceleratorConfigOutput values. // You can construct a concrete instance of `AcceleratorConfigInput` via: // // AcceleratorConfigArgs{...} type AcceleratorConfigInput interface { pulumi.Input ToAcceleratorConfigOutput() AcceleratorConfigOutput ToAcceleratorConfigOutputWithContext(context.Context) AcceleratorConfigOutput } // A specification of the type and number of accelerator cards attached to the instance. type AcceleratorConfigArgs struct { // The number of the guest accelerator cards exposed to this instance. AcceleratorCount pulumi.IntPtrInput `pulumi:"acceleratorCount"` // Full or partial URL of the accelerator type resource to attach to this instance. For example: projects/my-project/zones/us-central1-c/acceleratorTypes/nvidia-tesla-p100 If you are creating an instance template, specify only the accelerator name. See GPUs on Compute Engine for a full list of accelerator types. AcceleratorType pulumi.StringPtrInput `pulumi:"acceleratorType"` } func (AcceleratorConfigArgs) ElementType() reflect.Type { return reflect.TypeOf((*AcceleratorConfig)(nil)).Elem() } func (i AcceleratorConfigArgs) ToAcceleratorConfigOutput() AcceleratorConfigOutput { return i.ToAcceleratorConfigOutputWithContext(context.Background()) } func (i AcceleratorConfigArgs) ToAcceleratorConfigOutputWithContext(ctx context.Context) AcceleratorConfigOutput { return pulumi.ToOutputWithContext(ctx, i).(AcceleratorConfigOutput) } // AcceleratorConfigArrayInput is an input type that accepts AcceleratorConfigArray and AcceleratorConfigArrayOutput values. // You can construct a concrete instance of `AcceleratorConfigArrayInput` via: // // AcceleratorConfigArray{ AcceleratorConfigArgs{...} } type AcceleratorConfigArrayInput interface { pulumi.Input ToAcceleratorConfigArrayOutput() AcceleratorConfigArrayOutput ToAcceleratorConfigArrayOutputWithContext(context.Context) AcceleratorConfigArrayOutput } type AcceleratorConfigArray []AcceleratorConfigInput func (AcceleratorConfigArray) ElementType() reflect.Type { return reflect.TypeOf((*[]AcceleratorConfig)(nil)).Elem() } func (i AcceleratorConfigArray) ToAcceleratorConfigArrayOutput() AcceleratorConfigArrayOutput { return i.ToAcceleratorConfigArrayOutputWithContext(context.Background()) } func (i AcceleratorConfigArray) ToAcceleratorConfigArrayOutputWithContext(ctx context.Context) AcceleratorConfigArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(AcceleratorConfigArrayOutput) } // A specification of the type and number of accelerator cards attached to the instance. type AcceleratorConfigOutput struct{ *pulumi.OutputState } func (AcceleratorConfigOutput) ElementType() reflect.Type { return reflect.TypeOf((*AcceleratorConfig)(nil)).Elem() } func (o AcceleratorConfigOutput) ToAcceleratorConfigOutput() AcceleratorConfigOutput { return o } func (o AcceleratorConfigOutput) ToAcceleratorConfigOutputWithContext(ctx context.Context) AcceleratorConfigOutput { return o } // The number of the guest accelerator cards exposed to this instance. func (o AcceleratorConfigOutput) AcceleratorCount() pulumi.IntPtrOutput { return o.ApplyT(func(v AcceleratorConfig) *int { return v.AcceleratorCount }).(pulumi.IntPtrOutput) } // Full or partial URL of the accelerator type resource to attach to this instance. For example: projects/my-project/zones/us-central1-c/acceleratorTypes/nvidia-tesla-p100 If you are creating an instance template, specify only the accelerator name. See GPUs on Compute Engine for a full list of accelerator types. func (o AcceleratorConfigOutput) AcceleratorType() pulumi.StringPtrOutput { return o.ApplyT(func(v AcceleratorConfig) *string { return v.AcceleratorType }).(pulumi.StringPtrOutput) } type AcceleratorConfigArrayOutput struct{ *pulumi.OutputState } func (AcceleratorConfigArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]AcceleratorConfig)(nil)).Elem() } func (o AcceleratorConfigArrayOutput) ToAcceleratorConfigArrayOutput() AcceleratorConfigArrayOutput { return o } func (o AcceleratorConfigArrayOutput) ToAcceleratorConfigArrayOutputWithContext(ctx context.Context) AcceleratorConfigArrayOutput { return o } func (o AcceleratorConfigArrayOutput) Index(i pulumi.IntInput) AcceleratorConfigOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) AcceleratorConfig { return vs[0].([]AcceleratorConfig)[vs[1].(int)] }).(AcceleratorConfigOutput) } // A specification of the type and number of accelerator cards attached to the instance. type AcceleratorConfigResponse struct { // The number of the guest accelerator cards exposed to this instance. AcceleratorCount int `pulumi:"acceleratorCount"` // Full or partial URL of the accelerator type resource to attach to this instance. For example: projects/my-project/zones/us-central1-c/acceleratorTypes/nvidia-tesla-p100 If you are creating an instance template, specify only the accelerator name. See GPUs on Compute Engine for a full list of accelerator types. AcceleratorType string `pulumi:"acceleratorType"` } // A specification of the type and number of accelerator cards attached to the instance. type AcceleratorConfigResponseOutput struct{ *pulumi.OutputState } func (AcceleratorConfigResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*AcceleratorConfigResponse)(nil)).Elem() } func (o AcceleratorConfigResponseOutput) ToAcceleratorConfigResponseOutput() AcceleratorConfigResponseOutput { return o } func (o AcceleratorConfigResponseOutput) ToAcceleratorConfigResponseOutputWithContext(ctx context.Context) AcceleratorConfigResponseOutput { return o } // The number of the guest accelerator cards exposed to this instance. func (o AcceleratorConfigResponseOutput) AcceleratorCount() pulumi.IntOutput { return o.ApplyT(func(v AcceleratorConfigResponse) int { return v.AcceleratorCount }).(pulumi.IntOutput) } // Full or partial URL of the accelerator type resource to attach to this instance. For example: projects/my-project/zones/us-central1-c/acceleratorTypes/nvidia-tesla-p100 If you are creating an instance template, specify only the accelerator name. See GPUs on Compute Engine for a full list of accelerator types. func (o AcceleratorConfigResponseOutput) AcceleratorType() pulumi.StringOutput { return o.ApplyT(func(v AcceleratorConfigResponse) string { return v.AcceleratorType }).(pulumi.StringOutput) } type AcceleratorConfigResponseArrayOutput struct{ *pulumi.OutputState } func (AcceleratorConfigResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]AcceleratorConfigResponse)(nil)).Elem() } func (o AcceleratorConfigResponseArrayOutput) ToAcceleratorConfigResponseArrayOutput() AcceleratorConfigResponseArrayOutput { return o } func (o AcceleratorConfigResponseArrayOutput) ToAcceleratorConfigResponseArrayOutputWithContext(ctx context.Context) AcceleratorConfigResponseArrayOutput { return o } func (o AcceleratorConfigResponseArrayOutput) Index(i pulumi.IntInput) AcceleratorConfigResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) AcceleratorConfigResponse { return vs[0].([]AcceleratorConfigResponse)[vs[1].(int)] }).(AcceleratorConfigResponseOutput) } // An access configuration attached to an instance's network interface. Only one access config per instance is supported. type AccessConfig struct { // The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. The field is output only, an IPv6 address from a subnetwork associated with the instance will be allocated dynamically. ExternalIpv6 *string `pulumi:"externalIpv6"` // The prefix length of the external IPv6 range. ExternalIpv6PrefixLength *int `pulumi:"externalIpv6PrefixLength"` // The name of this access configuration. The default and recommended name is External NAT, but you can use any arbitrary string, such as My external IP or Network Access. Name *string `pulumi:"name"` // An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance. NatIP *string `pulumi:"natIP"` // This signifies the networking tier used for configuring this access configuration and can only take the following values: PREMIUM, STANDARD. If an AccessConfig is specified without a valid external IP address, an ephemeral IP will be created with this networkTier. If an AccessConfig with a valid external IP address is specified, it must match that of the networkTier associated with the Address resource owning that IP. NetworkTier *AccessConfigNetworkTier `pulumi:"networkTier"` // The DNS domain name for the public PTR record. You can set this field only if the `setPublicPtr` field is enabled in accessConfig. If this field is unspecified in ipv6AccessConfig, a default PTR record will be createc for first IP in associated external IPv6 range. PublicPtrDomainName *string `pulumi:"publicPtrDomainName"` // Specifies whether a public DNS 'PTR' record should be created to map the external IP address of the instance to a DNS domain name. This field is not used in ipv6AccessConfig. A default PTR record will be created if the VM has external IPv6 range associated. SetPublicPtr *bool `pulumi:"setPublicPtr"` // The type of configuration. The default and only option is ONE_TO_ONE_NAT. Type *AccessConfigType `pulumi:"type"` } // AccessConfigInput is an input type that accepts AccessConfigArgs and AccessConfigOutput values. // You can construct a concrete instance of `AccessConfigInput` via: // // AccessConfigArgs{...} type AccessConfigInput interface { pulumi.Input ToAccessConfigOutput() AccessConfigOutput ToAccessConfigOutputWithContext(context.Context) AccessConfigOutput } // An access configuration attached to an instance's network interface. Only one access config per instance is supported. type AccessConfigArgs struct { // The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. The field is output only, an IPv6 address from a subnetwork associated with the instance will be allocated dynamically. ExternalIpv6 pulumi.StringPtrInput `pulumi:"externalIpv6"` // The prefix length of the external IPv6 range. ExternalIpv6PrefixLength pulumi.IntPtrInput `pulumi:"externalIpv6PrefixLength"` // The name of this access configuration. The default and recommended name is External NAT, but you can use any arbitrary string, such as My external IP or Network Access. Name pulumi.StringPtrInput `pulumi:"name"` // An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance. NatIP pulumi.StringPtrInput `pulumi:"natIP"` // This signifies the networking tier used for configuring this access configuration and can only take the following values: PREMIUM, STANDARD. If an AccessConfig is specified without a valid external IP address, an ephemeral IP will be created with this networkTier. If an AccessConfig with a valid external IP address is specified, it must match that of the networkTier associated with the Address resource owning that IP. NetworkTier AccessConfigNetworkTierPtrInput `pulumi:"networkTier"` // The DNS domain name for the public PTR record. You can set this field only if the `setPublicPtr` field is enabled in accessConfig. If this field is unspecified in ipv6AccessConfig, a default PTR record will be createc for first IP in associated external IPv6 range. PublicPtrDomainName pulumi.StringPtrInput `pulumi:"publicPtrDomainName"` // Specifies whether a public DNS 'PTR' record should be created to map the external IP address of the instance to a DNS domain name. This field is not used in ipv6AccessConfig. A default PTR record will be created if the VM has external IPv6 range associated. SetPublicPtr pulumi.BoolPtrInput `pulumi:"setPublicPtr"` // The type of configuration. The default and only option is ONE_TO_ONE_NAT. Type AccessConfigTypePtrInput `pulumi:"type"` } func (AccessConfigArgs) ElementType() reflect.Type { return reflect.TypeOf((*AccessConfig)(nil)).Elem() } func (i AccessConfigArgs) ToAccessConfigOutput() AccessConfigOutput { return i.ToAccessConfigOutputWithContext(context.Background()) } func (i AccessConfigArgs) ToAccessConfigOutputWithContext(ctx context.Context) AccessConfigOutput { return pulumi.ToOutputWithContext(ctx, i).(AccessConfigOutput) } // AccessConfigArrayInput is an input type that accepts AccessConfigArray and AccessConfigArrayOutput values. // You can construct a concrete instance of `AccessConfigArrayInput` via: // // AccessConfigArray{ AccessConfigArgs{...} } type AccessConfigArrayInput interface { pulumi.Input ToAccessConfigArrayOutput() AccessConfigArrayOutput ToAccessConfigArrayOutputWithContext(context.Context) AccessConfigArrayOutput } type AccessConfigArray []AccessConfigInput func (AccessConfigArray) ElementType() reflect.Type { return reflect.TypeOf((*[]AccessConfig)(nil)).Elem() } func (i AccessConfigArray) ToAccessConfigArrayOutput() AccessConfigArrayOutput { return i.ToAccessConfigArrayOutputWithContext(context.Background()) } func (i AccessConfigArray) ToAccessConfigArrayOutputWithContext(ctx context.Context) AccessConfigArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(AccessConfigArrayOutput) } // An access configuration attached to an instance's network interface. Only one access config per instance is supported. type AccessConfigOutput struct{ *pulumi.OutputState } func (AccessConfigOutput) ElementType() reflect.Type { return reflect.TypeOf((*AccessConfig)(nil)).Elem() } func (o AccessConfigOutput) ToAccessConfigOutput() AccessConfigOutput { return o } func (o AccessConfigOutput) ToAccessConfigOutputWithContext(ctx context.Context) AccessConfigOutput { return o } // The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. The field is output only, an IPv6 address from a subnetwork associated with the instance will be allocated dynamically. func (o AccessConfigOutput) ExternalIpv6() pulumi.StringPtrOutput { return o.ApplyT(func(v AccessConfig) *string { return v.ExternalIpv6 }).(pulumi.StringPtrOutput) } // The prefix length of the external IPv6 range. func (o AccessConfigOutput) ExternalIpv6PrefixLength() pulumi.IntPtrOutput { return o.ApplyT(func(v AccessConfig) *int { return v.ExternalIpv6PrefixLength }).(pulumi.IntPtrOutput) } // The name of this access configuration. The default and recommended name is External NAT, but you can use any arbitrary string, such as My external IP or Network Access. func (o AccessConfigOutput) Name() pulumi.StringPtrOutput { return o.ApplyT(func(v AccessConfig) *string { return v.Name }).(pulumi.StringPtrOutput) } // An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance. func (o AccessConfigOutput) NatIP() pulumi.StringPtrOutput { return o.ApplyT(func(v AccessConfig) *string { return v.NatIP }).(pulumi.StringPtrOutput) } // This signifies the networking tier used for configuring this access configuration and can only take the following values: PREMIUM, STANDARD. If an AccessConfig is specified without a valid external IP address, an ephemeral IP will be created with this networkTier. If an AccessConfig with a valid external IP address is specified, it must match that of the networkTier associated with the Address resource owning that IP. func (o AccessConfigOutput) NetworkTier() AccessConfigNetworkTierPtrOutput { return o.ApplyT(func(v AccessConfig) *AccessConfigNetworkTier { return v.NetworkTier }).(AccessConfigNetworkTierPtrOutput) } // The DNS domain name for the public PTR record. You can set this field only if the `setPublicPtr` field is enabled in accessConfig. If this field is unspecified in ipv6AccessConfig, a default PTR record will be createc for first IP in associated external IPv6 range. func (o AccessConfigOutput) PublicPtrDomainName() pulumi.StringPtrOutput { return o.ApplyT(func(v AccessConfig) *string { return v.PublicPtrDomainName }).(pulumi.StringPtrOutput) } // Specifies whether a public DNS 'PTR' record should be created to map the external IP address of the instance to a DNS domain name. This field is not used in ipv6AccessConfig. A default PTR record will be created if the VM has external IPv6 range associated. func (o AccessConfigOutput) SetPublicPtr() pulumi.BoolPtrOutput { return o.ApplyT(func(v AccessConfig) *bool { return v.SetPublicPtr }).(pulumi.BoolPtrOutput) } // The type of configuration. The default and only option is ONE_TO_ONE_NAT. func (o AccessConfigOutput) Type() AccessConfigTypePtrOutput { return o.ApplyT(func(v AccessConfig) *AccessConfigType { return v.Type }).(AccessConfigTypePtrOutput) } type AccessConfigArrayOutput struct{ *pulumi.OutputState } func (AccessConfigArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]AccessConfig)(nil)).Elem() } func (o AccessConfigArrayOutput) ToAccessConfigArrayOutput() AccessConfigArrayOutput { return o } func (o AccessConfigArrayOutput) ToAccessConfigArrayOutputWithContext(ctx context.Context) AccessConfigArrayOutput { return o } func (o AccessConfigArrayOutput) Index(i pulumi.IntInput) AccessConfigOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) AccessConfig { return vs[0].([]AccessConfig)[vs[1].(int)] }).(AccessConfigOutput) } // An access configuration attached to an instance's network interface. Only one access config per instance is supported. type AccessConfigResponse struct { // The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. The field is output only, an IPv6 address from a subnetwork associated with the instance will be allocated dynamically. ExternalIpv6 string `pulumi:"externalIpv6"` // The prefix length of the external IPv6 range. ExternalIpv6PrefixLength int `pulumi:"externalIpv6PrefixLength"` // Type of the resource. Always compute#accessConfig for access configs. Kind string `pulumi:"kind"` // The name of this access configuration. The default and recommended name is External NAT, but you can use any arbitrary string, such as My external IP or Network Access. Name string `pulumi:"name"` // An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance. NatIP string `pulumi:"natIP"` // This signifies the networking tier used for configuring this access configuration and can only take the following values: PREMIUM, STANDARD. If an AccessConfig is specified without a valid external IP address, an ephemeral IP will be created with this networkTier. If an AccessConfig with a valid external IP address is specified, it must match that of the networkTier associated with the Address resource owning that IP. NetworkTier string `pulumi:"networkTier"` // The DNS domain name for the public PTR record. You can set this field only if the `setPublicPtr` field is enabled in accessConfig. If this field is unspecified in ipv6AccessConfig, a default PTR record will be createc for first IP in associated external IPv6 range. PublicPtrDomainName string `pulumi:"publicPtrDomainName"` // Specifies whether a public DNS 'PTR' record should be created to map the external IP address of the instance to a DNS domain name. This field is not used in ipv6AccessConfig. A default PTR record will be created if the VM has external IPv6 range associated. SetPublicPtr bool `pulumi:"setPublicPtr"` // The type of configuration. The default and only option is ONE_TO_ONE_NAT. Type string `pulumi:"type"` } // An access configuration attached to an instance's network interface. Only one access config per instance is supported. type AccessConfigResponseOutput struct{ *pulumi.OutputState } func (AccessConfigResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*AccessConfigResponse)(nil)).Elem() } func (o AccessConfigResponseOutput) ToAccessConfigResponseOutput() AccessConfigResponseOutput { return o } func (o AccessConfigResponseOutput) ToAccessConfigResponseOutputWithContext(ctx context.Context) AccessConfigResponseOutput { return o } // The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. The field is output only, an IPv6 address from a subnetwork associated with the instance will be allocated dynamically. func (o AccessConfigResponseOutput) ExternalIpv6() pulumi.StringOutput { return o.ApplyT(func(v AccessConfigResponse) string { return v.ExternalIpv6 }).(pulumi.StringOutput) } // The prefix length of the external IPv6 range. func (o AccessConfigResponseOutput) ExternalIpv6PrefixLength() pulumi.IntOutput { return o.ApplyT(func(v AccessConfigResponse) int { return v.ExternalIpv6PrefixLength }).(pulumi.IntOutput) } // Type of the resource. Always compute#accessConfig for access configs. func (o AccessConfigResponseOutput) Kind() pulumi.StringOutput { return o.ApplyT(func(v AccessConfigResponse) string { return v.Kind }).(pulumi.StringOutput) } // The name of this access configuration. The default and recommended name is External NAT, but you can use any arbitrary string, such as My external IP or Network Access. func (o AccessConfigResponseOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v AccessConfigResponse) string { return v.Name }).(pulumi.StringOutput) } // An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance. func (o AccessConfigResponseOutput) NatIP() pulumi.StringOutput { return o.ApplyT(func(v AccessConfigResponse) string { return v.NatIP }).(pulumi.StringOutput) } // This signifies the networking tier used for configuring this access configuration and can only take the following values: PREMIUM, STANDARD. If an AccessConfig is specified without a valid external IP address, an ephemeral IP will be created with this networkTier. If an AccessConfig with a valid external IP address is specified, it must match that of the networkTier associated with the Address resource owning that IP. func (o AccessConfigResponseOutput) NetworkTier() pulumi.StringOutput { return o.ApplyT(func(v AccessConfigResponse) string { return v.NetworkTier }).(pulumi.StringOutput) } // The DNS domain name for the public PTR record. You can set this field only if the `setPublicPtr` field is enabled in accessConfig. If this field is unspecified in ipv6AccessConfig, a default PTR record will be createc for first IP in associated external IPv6 range. func (o AccessConfigResponseOutput) PublicPtrDomainName() pulumi.StringOutput { return o.ApplyT(func(v AccessConfigResponse) string { return v.PublicPtrDomainName }).(pulumi.StringOutput) } // Specifies whether a public DNS 'PTR' record should be created to map the external IP address of the instance to a DNS domain name. This field is not used in ipv6AccessConfig. A default PTR record will be created if the VM has external IPv6 range associated. func (o AccessConfigResponseOutput) SetPublicPtr() pulumi.BoolOutput { return o.ApplyT(func(v AccessConfigResponse) bool { return v.SetPublicPtr }).(pulumi.BoolOutput) } // The type of configuration. The default and only option is ONE_TO_ONE_NAT. func (o AccessConfigResponseOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v AccessConfigResponse) string { return v.Type }).(pulumi.StringOutput) } type AccessConfigResponseArrayOutput struct{ *pulumi.OutputState } func (AccessConfigResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]AccessConfigResponse)(nil)).Elem() } func (o AccessConfigResponseArrayOutput) ToAccessConfigResponseArrayOutput() AccessConfigResponseArrayOutput { return o } func (o AccessConfigResponseArrayOutput) ToAccessConfigResponseArrayOutputWithContext(ctx context.Context) AccessConfigResponseArrayOutput { return o } func (o AccessConfigResponseArrayOutput) Index(i pulumi.IntInput) AccessConfigResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) AccessConfigResponse { return vs[0].([]AccessConfigResponse)[vs[1].(int)] }).(AccessConfigResponseOutput) } // Specifies options for controlling advanced machine features. Options that would traditionally be configured in a BIOS belong here. Features that require operating system support may have corresponding entries in the GuestOsFeatures of an Image (e.g., whether or not the OS in the Image supports nested virtualization being enabled or disabled). type AdvancedMachineFeatures struct { // Whether to enable nested virtualization or not (default is false). EnableNestedVirtualization *bool `pulumi:"enableNestedVirtualization"` // Whether to enable UEFI networking for instance creation. EnableUefiNetworking *bool `pulumi:"enableUefiNetworking"` // The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed. ThreadsPerCore *int `pulumi:"threadsPerCore"` } // AdvancedMachineFeaturesInput is an input type that accepts AdvancedMachineFeaturesArgs and AdvancedMachineFeaturesOutput values. // You can construct a concrete instance of `AdvancedMachineFeaturesInput` via: // // AdvancedMachineFeaturesArgs{...} type AdvancedMachineFeaturesInput interface { pulumi.Input ToAdvancedMachineFeaturesOutput() AdvancedMachineFeaturesOutput ToAdvancedMachineFeaturesOutputWithContext(context.Context) AdvancedMachineFeaturesOutput } // Specifies options for controlling advanced machine features. Options that would traditionally be configured in a BIOS belong here. Features that require operating system support may have corresponding entries in the GuestOsFeatures of an Image (e.g., whether or not the OS in the Image supports nested virtualization being enabled or disabled). type AdvancedMachineFeaturesArgs struct { // Whether to enable nested virtualization or not (default is false). EnableNestedVirtualization pulumi.BoolPtrInput `pulumi:"enableNestedVirtualization"` // Whether to enable UEFI networking for instance creation. EnableUefiNetworking pulumi.BoolPtrInput `pulumi:"enableUefiNetworking"` // The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed. ThreadsPerCore pulumi.IntPtrInput `pulumi:"threadsPerCore"` } func (AdvancedMachineFeaturesArgs) ElementType() reflect.Type { return reflect.TypeOf((*AdvancedMachineFeatures)(nil)).Elem() } func (i AdvancedMachineFeaturesArgs) ToAdvancedMachineFeaturesOutput() AdvancedMachineFeaturesOutput { return i.ToAdvancedMachineFeaturesOutputWithContext(context.Background()) } func (i AdvancedMachineFeaturesArgs) ToAdvancedMachineFeaturesOutputWithContext(ctx context.Context) AdvancedMachineFeaturesOutput { return pulumi.ToOutputWithContext(ctx, i).(AdvancedMachineFeaturesOutput) } func (i AdvancedMachineFeaturesArgs) ToAdvancedMachineFeaturesPtrOutput() AdvancedMachineFeaturesPtrOutput { return i.ToAdvancedMachineFeaturesPtrOutputWithContext(context.Background()) } func (i AdvancedMachineFeaturesArgs) ToAdvancedMachineFeaturesPtrOutputWithContext(ctx context.Context) AdvancedMachineFeaturesPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(AdvancedMachineFeaturesOutput).ToAdvancedMachineFeaturesPtrOutputWithContext(ctx) } // AdvancedMachineFeaturesPtrInput is an input type that accepts AdvancedMachineFeaturesArgs, AdvancedMachineFeaturesPtr and AdvancedMachineFeaturesPtrOutput values. // You can construct a concrete instance of `AdvancedMachineFeaturesPtrInput` via: // // AdvancedMachineFeaturesArgs{...} // // or: // // nil type AdvancedMachineFeaturesPtrInput interface { pulumi.Input ToAdvancedMachineFeaturesPtrOutput() AdvancedMachineFeaturesPtrOutput ToAdvancedMachineFeaturesPtrOutputWithContext(context.Context) AdvancedMachineFeaturesPtrOutput } type advancedMachineFeaturesPtrType AdvancedMachineFeaturesArgs func AdvancedMachineFeaturesPtr(v *AdvancedMachineFeaturesArgs) AdvancedMachineFeaturesPtrInput { return (*advancedMachineFeaturesPtrType)(v) } func (*advancedMachineFeaturesPtrType) ElementType() reflect.Type { return reflect.TypeOf((**AdvancedMachineFeatures)(nil)).Elem() } func (i *advancedMachineFeaturesPtrType) ToAdvancedMachineFeaturesPtrOutput() AdvancedMachineFeaturesPtrOutput { return i.ToAdvancedMachineFeaturesPtrOutputWithContext(context.Background()) } func (i *advancedMachineFeaturesPtrType) ToAdvancedMachineFeaturesPtrOutputWithContext(ctx context.Context) AdvancedMachineFeaturesPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(AdvancedMachineFeaturesPtrOutput) } // Specifies options for controlling advanced machine features. Options that would traditionally be configured in a BIOS belong here. Features that require operating system support may have corresponding entries in the GuestOsFeatures of an Image (e.g., whether or not the OS in the Image supports nested virtualization being enabled or disabled). type AdvancedMachineFeaturesOutput struct{ *pulumi.OutputState } func (AdvancedMachineFeaturesOutput) ElementType() reflect.Type { return reflect.TypeOf((*AdvancedMachineFeatures)(nil)).Elem() } func (o AdvancedMachineFeaturesOutput) ToAdvancedMachineFeaturesOutput() AdvancedMachineFeaturesOutput { return o } func (o AdvancedMachineFeaturesOutput) ToAdvancedMachineFeaturesOutputWithContext(ctx context.Context) AdvancedMachineFeaturesOutput { return o } func (o AdvancedMachineFeaturesOutput) ToAdvancedMachineFeaturesPtrOutput() AdvancedMachineFeaturesPtrOutput { return o.ToAdvancedMachineFeaturesPtrOutputWithContext(context.Background()) } func (o AdvancedMachineFeaturesOutput) ToAdvancedMachineFeaturesPtrOutputWithContext(ctx context.Context) AdvancedMachineFeaturesPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v AdvancedMachineFeatures) *AdvancedMachineFeatures { return &v }).(AdvancedMachineFeaturesPtrOutput) } // Whether to enable nested virtualization or not (default is false). func (o AdvancedMachineFeaturesOutput) EnableNestedVirtualization() pulumi.BoolPtrOutput { return o.ApplyT(func(v AdvancedMachineFeatures) *bool { return v.EnableNestedVirtualization }).(pulumi.BoolPtrOutput) } // Whether to enable UEFI networking for instance creation. func (o AdvancedMachineFeaturesOutput) EnableUefiNetworking() pulumi.BoolPtrOutput { return o.ApplyT(func(v AdvancedMachineFeatures) *bool { return v.EnableUefiNetworking }).(pulumi.BoolPtrOutput) } // The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed. func (o AdvancedMachineFeaturesOutput) ThreadsPerCore() pulumi.IntPtrOutput { return o.ApplyT(func(v AdvancedMachineFeatures) *int { return v.ThreadsPerCore }).(pulumi.IntPtrOutput) } type AdvancedMachineFeaturesPtrOutput struct{ *pulumi.OutputState } func (AdvancedMachineFeaturesPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**AdvancedMachineFeatures)(nil)).Elem() } func (o AdvancedMachineFeaturesPtrOutput) ToAdvancedMachineFeaturesPtrOutput() AdvancedMachineFeaturesPtrOutput { return o } func (o AdvancedMachineFeaturesPtrOutput) ToAdvancedMachineFeaturesPtrOutputWithContext(ctx context.Context) AdvancedMachineFeaturesPtrOutput { return o } func (o AdvancedMachineFeaturesPtrOutput) Elem() AdvancedMachineFeaturesOutput { return o.ApplyT(func(v *AdvancedMachineFeatures) AdvancedMachineFeatures { if v != nil { return *v } var ret AdvancedMachineFeatures return ret }).(AdvancedMachineFeaturesOutput) } // Whether to enable nested virtualization or not (default is false). func (o AdvancedMachineFeaturesPtrOutput) EnableNestedVirtualization() pulumi.BoolPtrOutput { return o.ApplyT(func(v *AdvancedMachineFeatures) *bool { if v == nil { return nil } return v.EnableNestedVirtualization }).(pulumi.BoolPtrOutput) } // Whether to enable UEFI networking for instance creation. func (o AdvancedMachineFeaturesPtrOutput) EnableUefiNetworking() pulumi.BoolPtrOutput { return o.ApplyT(func(v *AdvancedMachineFeatures) *bool { if v == nil { return nil } return v.EnableUefiNetworking }).(pulumi.BoolPtrOutput) } // The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed. func (o AdvancedMachineFeaturesPtrOutput) ThreadsPerCore() pulumi.IntPtrOutput { return o.ApplyT(func(v *AdvancedMachineFeatures) *int { if v == nil { return nil } return v.ThreadsPerCore }).(pulumi.IntPtrOutput) } // Specifies options for controlling advanced machine features. Options that would traditionally be configured in a BIOS belong here. Features that require operating system support may have corresponding entries in the GuestOsFeatures of an Image (e.g., whether or not the OS in the Image supports nested virtualization being enabled or disabled). type AdvancedMachineFeaturesResponse struct { // Whether to enable nested virtualization or not (default is false). EnableNestedVirtualization bool `pulumi:"enableNestedVirtualization"` // Whether to enable UEFI networking for instance creation. EnableUefiNetworking bool `pulumi:"enableUefiNetworking"` // The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed. ThreadsPerCore int `pulumi:"threadsPerCore"` } // Specifies options for controlling advanced machine features. Options that would traditionally be configured in a BIOS belong here. Features that require operating system support may have corresponding entries in the GuestOsFeatures of an Image (e.g., whether or not the OS in the Image supports nested virtualization being enabled or disabled). type AdvancedMachineFeaturesResponseOutput struct{ *pulumi.OutputState } func (AdvancedMachineFeaturesResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*AdvancedMachineFeaturesResponse)(nil)).Elem() } func (o AdvancedMachineFeaturesResponseOutput) ToAdvancedMachineFeaturesResponseOutput() AdvancedMachineFeaturesResponseOutput { return o } func (o AdvancedMachineFeaturesResponseOutput) ToAdvancedMachineFeaturesResponseOutputWithContext(ctx context.Context) AdvancedMachineFeaturesResponseOutput { return o } // Whether to enable nested virtualization or not (default is false). func (o AdvancedMachineFeaturesResponseOutput) EnableNestedVirtualization() pulumi.BoolOutput { return o.ApplyT(func(v AdvancedMachineFeaturesResponse) bool { return v.EnableNestedVirtualization }).(pulumi.BoolOutput) } // Whether to enable UEFI networking for instance creation. func (o AdvancedMachineFeaturesResponseOutput) EnableUefiNetworking() pulumi.BoolOutput { return o.ApplyT(func(v AdvancedMachineFeaturesResponse) bool { return v.EnableUefiNetworking }).(pulumi.BoolOutput) } // The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed. func (o AdvancedMachineFeaturesResponseOutput) ThreadsPerCore() pulumi.IntOutput { return o.ApplyT(func(v AdvancedMachineFeaturesResponse) int { return v.ThreadsPerCore }).(pulumi.IntOutput) } // An alias IP range attached to an instance's network interface. type AliasIpRange struct { // The IP alias ranges to allocate for this interface. This IP CIDR range must belong to the specified subnetwork and cannot contain IP addresses reserved by system or used by other network interfaces. This range may be a single IP address (such as 10.2.3.4), a netmask (such as /24) or a CIDR-formatted string (such as 10.1.2.0/24). IpCidrRange *string `pulumi:"ipCidrRange"` // The name of a subnetwork secondary IP range from which to allocate an IP alias range. If not specified, the primary range of the subnetwork is used. SubnetworkRangeName *string `pulumi:"subnetworkRangeName"` } // AliasIpRangeInput is an input type that accepts AliasIpRangeArgs and AliasIpRangeOutput values. // You can construct a concrete instance of `AliasIpRangeInput` via: // // AliasIpRangeArgs{...} type AliasIpRangeInput interface { pulumi.Input ToAliasIpRangeOutput() AliasIpRangeOutput ToAliasIpRangeOutputWithContext(context.Context) AliasIpRangeOutput } // An alias IP range attached to an instance's network interface. type AliasIpRangeArgs struct { // The IP alias ranges to allocate for this interface. This IP CIDR range must belong to the specified subnetwork and cannot contain IP addresses reserved by system or used by other network interfaces. This range may be a single IP address (such as 10.2.3.4), a netmask (such as /24) or a CIDR-formatted string (such as 10.1.2.0/24). IpCidrRange pulumi.StringPtrInput `pulumi:"ipCidrRange"` // The name of a subnetwork secondary IP range from which to allocate an IP alias range. If not specified, the primary range of the subnetwork is used. SubnetworkRangeName pulumi.StringPtrInput `pulumi:"subnetworkRangeName"` } func (AliasIpRangeArgs) ElementType() reflect.Type { return reflect.TypeOf((*AliasIpRange)(nil)).Elem() } func (i AliasIpRangeArgs) ToAliasIpRangeOutput() AliasIpRangeOutput { return i.ToAliasIpRangeOutputWithContext(context.Background()) } func (i AliasIpRangeArgs) ToAliasIpRangeOutputWithContext(ctx context.Context) AliasIpRangeOutput { return pulumi.ToOutputWithContext(ctx, i).(AliasIpRangeOutput) } // AliasIpRangeArrayInput is an input type that accepts AliasIpRangeArray and AliasIpRangeArrayOutput values. // You can construct a concrete instance of `AliasIpRangeArrayInput` via: // // AliasIpRangeArray{ AliasIpRangeArgs{...} } type AliasIpRangeArrayInput interface { pulumi.Input ToAliasIpRangeArrayOutput() AliasIpRangeArrayOutput ToAliasIpRangeArrayOutputWithContext(context.Context) AliasIpRangeArrayOutput } type AliasIpRangeArray []AliasIpRangeInput func (AliasIpRangeArray) ElementType() reflect.Type { return reflect.TypeOf((*[]AliasIpRange)(nil)).Elem() } func (i AliasIpRangeArray) ToAliasIpRangeArrayOutput() AliasIpRangeArrayOutput { return i.ToAliasIpRangeArrayOutputWithContext(context.Background()) } func (i AliasIpRangeArray) ToAliasIpRangeArrayOutputWithContext(ctx context.Context) AliasIpRangeArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(AliasIpRangeArrayOutput) } // An alias IP range attached to an instance's network interface. type AliasIpRangeOutput struct{ *pulumi.OutputState } func (AliasIpRangeOutput) ElementType() reflect.Type { return reflect.TypeOf((*AliasIpRange)(nil)).Elem() } func (o AliasIpRangeOutput) ToAliasIpRangeOutput() AliasIpRangeOutput { return o } func (o AliasIpRangeOutput) ToAliasIpRangeOutputWithContext(ctx context.Context) AliasIpRangeOutput { return o } // The IP alias ranges to allocate for this interface. This IP CIDR range must belong to the specified subnetwork and cannot contain IP addresses reserved by system or used by other network interfaces. This range may be a single IP address (such as 10.2.3.4), a netmask (such as /24) or a CIDR-formatted string (such as 10.1.2.0/24). func (o AliasIpRangeOutput) IpCidrRange() pulumi.StringPtrOutput { return o.ApplyT(func(v AliasIpRange) *string { return v.IpCidrRange }).(pulumi.StringPtrOutput) } // The name of a subnetwork secondary IP range from which to allocate an IP alias range. If not specified, the primary range of the subnetwork is used. func (o AliasIpRangeOutput) SubnetworkRangeName() pulumi.StringPtrOutput { return o.ApplyT(func(v AliasIpRange) *string { return v.SubnetworkRangeName }).(pulumi.StringPtrOutput) } type AliasIpRangeArrayOutput struct{ *pulumi.OutputState } func (AliasIpRangeArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]AliasIpRange)(nil)).Elem() } func (o AliasIpRangeArrayOutput) ToAliasIpRangeArrayOutput() AliasIpRangeArrayOutput { return o } func (o AliasIpRangeArrayOutput) ToAliasIpRangeArrayOutputWithContext(ctx context.Context) AliasIpRangeArrayOutput { return o } func (o AliasIpRangeArrayOutput) Index(i pulumi.IntInput) AliasIpRangeOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) AliasIpRange { return vs[0].([]AliasIpRange)[vs[1].(int)] }).(AliasIpRangeOutput) } // An alias IP range attached to an instance's network interface. type AliasIpRangeResponse struct { // The IP alias ranges to allocate for this interface. This IP CIDR range must belong to the specified subnetwork and cannot contain IP addresses reserved by system or used by other network interfaces. This range may be a single IP address (such as 10.2.3.4), a netmask (such as /24) or a CIDR-formatted string (such as 10.1.2.0/24). IpCidrRange string `pulumi:"ipCidrRange"` // The name of a subnetwork secondary IP range from which to allocate an IP alias range. If not specified, the primary range of the subnetwork is used. SubnetworkRangeName string `pulumi:"subnetworkRangeName"` } // An alias IP range attached to an instance's network interface. type AliasIpRangeResponseOutput struct{ *pulumi.OutputState } func (AliasIpRangeResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*AliasIpRangeResponse)(nil)).Elem() } func (o AliasIpRangeResponseOutput) ToAliasIpRangeResponseOutput() AliasIpRangeResponseOutput { return o } func (o AliasIpRangeResponseOutput) ToAliasIpRangeResponseOutputWithContext(ctx context.Context) AliasIpRangeResponseOutput { return o } // The IP alias ranges to allocate for this interface. This IP CIDR range must belong to the specified subnetwork and cannot contain IP addresses reserved by system or used by other network interfaces. This range may be a single IP address (such as 10.2.3.4), a netmask (such as /24) or a CIDR-formatted string (such as 10.1.2.0/24). func (o AliasIpRangeResponseOutput) IpCidrRange() pulumi.StringOutput { return o.ApplyT(func(v AliasIpRangeResponse) string { return v.IpCidrRange }).(pulumi.StringOutput) } // The name of a subnetwork secondary IP range from which to allocate an IP alias range. If not specified, the primary range of the subnetwork is used. func (o AliasIpRangeResponseOutput) SubnetworkRangeName() pulumi.StringOutput { return o.ApplyT(func(v AliasIpRangeResponse) string { return v.SubnetworkRangeName }).(pulumi.StringOutput) } type AliasIpRangeResponseArrayOutput struct{ *pulumi.OutputState } func (AliasIpRangeResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]AliasIpRangeResponse)(nil)).Elem() } func (o AliasIpRangeResponseArrayOutput) ToAliasIpRangeResponseArrayOutput() AliasIpRangeResponseArrayOutput { return o } func (o AliasIpRangeResponseArrayOutput) ToAliasIpRangeResponseArrayOutputWithContext(ctx context.Context) AliasIpRangeResponseArrayOutput { return o } func (o AliasIpRangeResponseArrayOutput) Index(i pulumi.IntInput) AliasIpRangeResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) AliasIpRangeResponse { return vs[0].([]AliasIpRangeResponse)[vs[1].(int)] }).(AliasIpRangeResponseOutput) } type AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk struct { // Specifies the size of the disk in base-2 GB. DiskSizeGb *string `pulumi:"diskSizeGb"` // Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI. For performance characteristics of SCSI over NVMe, see Local SSD performance. Interface *AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskInterface `pulumi:"interface"` } // AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskInput is an input type that accepts AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskArgs and AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskOutput values. // You can construct a concrete instance of `AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskInput` via: // // AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskArgs{...} type AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskInput interface { pulumi.Input ToAllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskOutput() AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskOutput ToAllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskOutputWithContext(context.Context) AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskOutput } type AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskArgs struct { // Specifies the size of the disk in base-2 GB. DiskSizeGb pulumi.StringPtrInput `pulumi:"diskSizeGb"` // Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI. For performance characteristics of SCSI over NVMe, see Local SSD performance. Interface AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskInterfacePtrInput `pulumi:"interface"` } func (AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskArgs) ElementType() reflect.Type { return reflect.TypeOf((*AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk)(nil)).Elem() } func (i AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskArgs) ToAllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskOutput() AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskOutput { return i.ToAllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskOutputWithContext(context.Background()) } func (i AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskArgs) ToAllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskOutputWithContext(ctx context.Context) AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskOutput { return pulumi.ToOutputWithContext(ctx, i).(AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskOutput) } // AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskArrayInput is an input type that accepts AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskArray and AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskArrayOutput values. // You can construct a concrete instance of `AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskArrayInput` via: // // AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskArray{ AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskArgs{...} } type AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskArrayInput interface { pulumi.Input ToAllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskArrayOutput() AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskArrayOutput ToAllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskArrayOutputWithContext(context.Context) AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskArrayOutput } type AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskArray []AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskInput func (AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskArray) ElementType() reflect.Type { return reflect.TypeOf((*[]AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk)(nil)).Elem() } func (i AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskArray) ToAllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskArrayOutput() AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskArrayOutput { return i.ToAllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskArrayOutputWithContext(context.Background()) } func (i AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskArray) ToAllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskArrayOutputWithContext(ctx context.Context) AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskArrayOutput) } type AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskOutput struct{ *pulumi.OutputState } func (AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskOutput) ElementType() reflect.Type { return reflect.TypeOf((*AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk)(nil)).Elem() } func (o AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskOutput) ToAllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskOutput() AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskOutput { return o } func (o AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskOutput) ToAllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskOutputWithContext(ctx context.Context) AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskOutput { return o } // Specifies the size of the disk in base-2 GB. func (o AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskOutput) DiskSizeGb() pulumi.StringPtrOutput { return o.ApplyT(func(v AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk) *string { return v.DiskSizeGb }).(pulumi.StringPtrOutput) } // Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI. For performance characteristics of SCSI over NVMe, see Local SSD performance. func (o AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskOutput) Interface() AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskInterfacePtrOutput { return o.ApplyT(func(v AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk) *AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskInterface { return v.Interface }).(AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskInterfacePtrOutput) } type AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskArrayOutput struct{ *pulumi.OutputState } func (AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk)(nil)).Elem() } func (o AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskArrayOutput) ToAllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskArrayOutput() AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskArrayOutput { return o } func (o AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskArrayOutput) ToAllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskArrayOutputWithContext(ctx context.Context) AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskArrayOutput { return o } func (o AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskArrayOutput) Index(i pulumi.IntInput) AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk { return vs[0].([]AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk)[vs[1].(int)] }).(AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskOutput) } type AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskResponse struct { // Specifies the size of the disk in base-2 GB. DiskSizeGb string `pulumi:"diskSizeGb"` // Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI. For performance characteristics of SCSI over NVMe, see Local SSD performance. Interface string `pulumi:"interface"` } type AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskResponseOutput struct{ *pulumi.OutputState } func (AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskResponse)(nil)).Elem() } func (o AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskResponseOutput) ToAllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskResponseOutput() AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskResponseOutput { return o } func (o AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskResponseOutput) ToAllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskResponseOutputWithContext(ctx context.Context) AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskResponseOutput { return o } // Specifies the size of the disk in base-2 GB. func (o AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskResponseOutput) DiskSizeGb() pulumi.StringOutput { return o.ApplyT(func(v AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskResponse) string { return v.DiskSizeGb }).(pulumi.StringOutput) } // Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI. For performance characteristics of SCSI over NVMe, see Local SSD performance. func (o AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskResponseOutput) Interface() pulumi.StringOutput { return o.ApplyT(func(v AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskResponse) string { return v.Interface }).(pulumi.StringOutput) } type AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskResponseArrayOutput struct{ *pulumi.OutputState } func (AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskResponse)(nil)).Elem() } func (o AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskResponseArrayOutput) ToAllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskResponseArrayOutput() AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskResponseArrayOutput { return o } func (o AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskResponseArrayOutput) ToAllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskResponseArrayOutputWithContext(ctx context.Context) AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskResponseArrayOutput { return o } func (o AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskResponseArrayOutput) Index(i pulumi.IntInput) AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskResponse { return vs[0].([]AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskResponse)[vs[1].(int)] }).(AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskResponseOutput) } // Properties of the SKU instances being reserved. Next ID: 9 type AllocationSpecificSKUAllocationReservedInstanceProperties struct { // Specifies accelerator type and count. GuestAccelerators []AcceleratorConfig `pulumi:"guestAccelerators"` // Specifies amount of local ssd to reserve with each instance. The type of disk is local-ssd. LocalSsds []AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk `pulumi:"localSsds"` // An opaque location hint used to place the allocation close to other resources. This field is for use by internal tools that use the public API. LocationHint *string `pulumi:"locationHint"` // Specifies type of machine (name only) which has fixed number of vCPUs and fixed amount of memory. This also includes specifying custom machine type following custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY pattern. MachineType *string `pulumi:"machineType"` // Minimum cpu platform the reservation. MinCpuPlatform *string `pulumi:"minCpuPlatform"` } // AllocationSpecificSKUAllocationReservedInstancePropertiesInput is an input type that accepts AllocationSpecificSKUAllocationReservedInstancePropertiesArgs and AllocationSpecificSKUAllocationReservedInstancePropertiesOutput values. // You can construct a concrete instance of `AllocationSpecificSKUAllocationReservedInstancePropertiesInput` via: // // AllocationSpecificSKUAllocationReservedInstancePropertiesArgs{...} type AllocationSpecificSKUAllocationReservedInstancePropertiesInput interface { pulumi.Input ToAllocationSpecificSKUAllocationReservedInstancePropertiesOutput() AllocationSpecificSKUAllocationReservedInstancePropertiesOutput ToAllocationSpecificSKUAllocationReservedInstancePropertiesOutputWithContext(context.Context) AllocationSpecificSKUAllocationReservedInstancePropertiesOutput } // Properties of the SKU instances being reserved. Next ID: 9 type AllocationSpecificSKUAllocationReservedInstancePropertiesArgs struct { // Specifies accelerator type and count. GuestAccelerators AcceleratorConfigArrayInput `pulumi:"guestAccelerators"` // Specifies amount of local ssd to reserve with each instance. The type of disk is local-ssd. LocalSsds AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskArrayInput `pulumi:"localSsds"` // An opaque location hint used to place the allocation close to other resources. This field is for use by internal tools that use the public API. LocationHint pulumi.StringPtrInput `pulumi:"locationHint"` // Specifies type of machine (name only) which has fixed number of vCPUs and fixed amount of memory. This also includes specifying custom machine type following custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY pattern. MachineType pulumi.StringPtrInput `pulumi:"machineType"` // Minimum cpu platform the reservation. MinCpuPlatform pulumi.StringPtrInput `pulumi:"minCpuPlatform"` } func (AllocationSpecificSKUAllocationReservedInstancePropertiesArgs) ElementType() reflect.Type { return reflect.TypeOf((*AllocationSpecificSKUAllocationReservedInstanceProperties)(nil)).Elem() } func (i AllocationSpecificSKUAllocationReservedInstancePropertiesArgs) ToAllocationSpecificSKUAllocationReservedInstancePropertiesOutput() AllocationSpecificSKUAllocationReservedInstancePropertiesOutput { return i.ToAllocationSpecificSKUAllocationReservedInstancePropertiesOutputWithContext(context.Background()) } func (i AllocationSpecificSKUAllocationReservedInstancePropertiesArgs) ToAllocationSpecificSKUAllocationReservedInstancePropertiesOutputWithContext(ctx context.Context) AllocationSpecificSKUAllocationReservedInstancePropertiesOutput { return pulumi.ToOutputWithContext(ctx, i).(AllocationSpecificSKUAllocationReservedInstancePropertiesOutput) } func (i AllocationSpecificSKUAllocationReservedInstancePropertiesArgs) ToAllocationSpecificSKUAllocationReservedInstancePropertiesPtrOutput() AllocationSpecificSKUAllocationReservedInstancePropertiesPtrOutput { return i.ToAllocationSpecificSKUAllocationReservedInstancePropertiesPtrOutputWithContext(context.Background()) } func (i AllocationSpecificSKUAllocationReservedInstancePropertiesArgs) ToAllocationSpecificSKUAllocationReservedInstancePropertiesPtrOutputWithContext(ctx context.Context) AllocationSpecificSKUAllocationReservedInstancePropertiesPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(AllocationSpecificSKUAllocationReservedInstancePropertiesOutput).ToAllocationSpecificSKUAllocationReservedInstancePropertiesPtrOutputWithContext(ctx) } // AllocationSpecificSKUAllocationReservedInstancePropertiesPtrInput is an input type that accepts AllocationSpecificSKUAllocationReservedInstancePropertiesArgs, AllocationSpecificSKUAllocationReservedInstancePropertiesPtr and AllocationSpecificSKUAllocationReservedInstancePropertiesPtrOutput values. // You can construct a concrete instance of `AllocationSpecificSKUAllocationReservedInstancePropertiesPtrInput` via: // // AllocationSpecificSKUAllocationReservedInstancePropertiesArgs{...} // // or: // // nil type AllocationSpecificSKUAllocationReservedInstancePropertiesPtrInput interface { pulumi.Input ToAllocationSpecificSKUAllocationReservedInstancePropertiesPtrOutput() AllocationSpecificSKUAllocationReservedInstancePropertiesPtrOutput ToAllocationSpecificSKUAllocationReservedInstancePropertiesPtrOutputWithContext(context.Context) AllocationSpecificSKUAllocationReservedInstancePropertiesPtrOutput } type allocationSpecificSKUAllocationReservedInstancePropertiesPtrType AllocationSpecificSKUAllocationReservedInstancePropertiesArgs func AllocationSpecificSKUAllocationReservedInstancePropertiesPtr(v *AllocationSpecificSKUAllocationReservedInstancePropertiesArgs) AllocationSpecificSKUAllocationReservedInstancePropertiesPtrInput { return (*allocationSpecificSKUAllocationReservedInstancePropertiesPtrType)(v) } func (*allocationSpecificSKUAllocationReservedInstancePropertiesPtrType) ElementType() reflect.Type { return reflect.TypeOf((**AllocationSpecificSKUAllocationReservedInstanceProperties)(nil)).Elem() } func (i *allocationSpecificSKUAllocationReservedInstancePropertiesPtrType) ToAllocationSpecificSKUAllocationReservedInstancePropertiesPtrOutput() AllocationSpecificSKUAllocationReservedInstancePropertiesPtrOutput { return i.ToAllocationSpecificSKUAllocationReservedInstancePropertiesPtrOutputWithContext(context.Background()) } func (i *allocationSpecificSKUAllocationReservedInstancePropertiesPtrType) ToAllocationSpecificSKUAllocationReservedInstancePropertiesPtrOutputWithContext(ctx context.Context) AllocationSpecificSKUAllocationReservedInstancePropertiesPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(AllocationSpecificSKUAllocationReservedInstancePropertiesPtrOutput) } // Properties of the SKU instances being reserved. Next ID: 9 type AllocationSpecificSKUAllocationReservedInstancePropertiesOutput struct{ *pulumi.OutputState } func (AllocationSpecificSKUAllocationReservedInstancePropertiesOutput) ElementType() reflect.Type { return reflect.TypeOf((*AllocationSpecificSKUAllocationReservedInstanceProperties)(nil)).Elem() } func (o AllocationSpecificSKUAllocationReservedInstancePropertiesOutput) ToAllocationSpecificSKUAllocationReservedInstancePropertiesOutput() AllocationSpecificSKUAllocationReservedInstancePropertiesOutput { return o } func (o AllocationSpecificSKUAllocationReservedInstancePropertiesOutput) ToAllocationSpecificSKUAllocationReservedInstancePropertiesOutputWithContext(ctx context.Context) AllocationSpecificSKUAllocationReservedInstancePropertiesOutput { return o } func (o AllocationSpecificSKUAllocationReservedInstancePropertiesOutput) ToAllocationSpecificSKUAllocationReservedInstancePropertiesPtrOutput() AllocationSpecificSKUAllocationReservedInstancePropertiesPtrOutput { return o.ToAllocationSpecificSKUAllocationReservedInstancePropertiesPtrOutputWithContext(context.Background()) } func (o AllocationSpecificSKUAllocationReservedInstancePropertiesOutput) ToAllocationSpecificSKUAllocationReservedInstancePropertiesPtrOutputWithContext(ctx context.Context) AllocationSpecificSKUAllocationReservedInstancePropertiesPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v AllocationSpecificSKUAllocationReservedInstanceProperties) *AllocationSpecificSKUAllocationReservedInstanceProperties { return &v }).(AllocationSpecificSKUAllocationReservedInstancePropertiesPtrOutput) } // Specifies accelerator type and count. func (o AllocationSpecificSKUAllocationReservedInstancePropertiesOutput) GuestAccelerators() AcceleratorConfigArrayOutput { return o.ApplyT(func(v AllocationSpecificSKUAllocationReservedInstanceProperties) []AcceleratorConfig { return v.GuestAccelerators }).(AcceleratorConfigArrayOutput) } // Specifies amount of local ssd to reserve with each instance. The type of disk is local-ssd. func (o AllocationSpecificSKUAllocationReservedInstancePropertiesOutput) LocalSsds() AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskArrayOutput { return o.ApplyT(func(v AllocationSpecificSKUAllocationReservedInstanceProperties) []AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk { return v.LocalSsds }).(AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskArrayOutput) } // An opaque location hint used to place the allocation close to other resources. This field is for use by internal tools that use the public API. func (o AllocationSpecificSKUAllocationReservedInstancePropertiesOutput) LocationHint() pulumi.StringPtrOutput { return o.ApplyT(func(v AllocationSpecificSKUAllocationReservedInstanceProperties) *string { return v.LocationHint }).(pulumi.StringPtrOutput) } // Specifies type of machine (name only) which has fixed number of vCPUs and fixed amount of memory. This also includes specifying custom machine type following custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY pattern. func (o AllocationSpecificSKUAllocationReservedInstancePropertiesOutput) MachineType() pulumi.StringPtrOutput { return o.ApplyT(func(v AllocationSpecificSKUAllocationReservedInstanceProperties) *string { return v.MachineType }).(pulumi.StringPtrOutput) } // Minimum cpu platform the reservation. func (o AllocationSpecificSKUAllocationReservedInstancePropertiesOutput) MinCpuPlatform() pulumi.StringPtrOutput { return o.ApplyT(func(v AllocationSpecificSKUAllocationReservedInstanceProperties) *string { return v.MinCpuPlatform }).(pulumi.StringPtrOutput) } type AllocationSpecificSKUAllocationReservedInstancePropertiesPtrOutput struct{ *pulumi.OutputState } func (AllocationSpecificSKUAllocationReservedInstancePropertiesPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**AllocationSpecificSKUAllocationReservedInstanceProperties)(nil)).Elem() } func (o AllocationSpecificSKUAllocationReservedInstancePropertiesPtrOutput) ToAllocationSpecificSKUAllocationReservedInstancePropertiesPtrOutput() AllocationSpecificSKUAllocationReservedInstancePropertiesPtrOutput { return o } func (o AllocationSpecificSKUAllocationReservedInstancePropertiesPtrOutput) ToAllocationSpecificSKUAllocationReservedInstancePropertiesPtrOutputWithContext(ctx context.Context) AllocationSpecificSKUAllocationReservedInstancePropertiesPtrOutput { return o } func (o AllocationSpecificSKUAllocationReservedInstancePropertiesPtrOutput) Elem() AllocationSpecificSKUAllocationReservedInstancePropertiesOutput { return o.ApplyT(func(v *AllocationSpecificSKUAllocationReservedInstanceProperties) AllocationSpecificSKUAllocationReservedInstanceProperties { if v != nil { return *v } var ret AllocationSpecificSKUAllocationReservedInstanceProperties return ret }).(AllocationSpecificSKUAllocationReservedInstancePropertiesOutput) } // Specifies accelerator type and count. func (o AllocationSpecificSKUAllocationReservedInstancePropertiesPtrOutput) GuestAccelerators() AcceleratorConfigArrayOutput { return o.ApplyT(func(v *AllocationSpecificSKUAllocationReservedInstanceProperties) []AcceleratorConfig { if v == nil { return nil } return v.GuestAccelerators }).(AcceleratorConfigArrayOutput) } // Specifies amount of local ssd to reserve with each instance. The type of disk is local-ssd. func (o AllocationSpecificSKUAllocationReservedInstancePropertiesPtrOutput) LocalSsds() AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskArrayOutput { return o.ApplyT(func(v *AllocationSpecificSKUAllocationReservedInstanceProperties) []AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk { if v == nil { return nil } return v.LocalSsds }).(AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskArrayOutput) } // An opaque location hint used to place the allocation close to other resources. This field is for use by internal tools that use the public API. func (o AllocationSpecificSKUAllocationReservedInstancePropertiesPtrOutput) LocationHint() pulumi.StringPtrOutput { return o.ApplyT(func(v *AllocationSpecificSKUAllocationReservedInstanceProperties) *string { if v == nil { return nil } return v.LocationHint }).(pulumi.StringPtrOutput) } // Specifies type of machine (name only) which has fixed number of vCPUs and fixed amount of memory. This also includes specifying custom machine type following custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY pattern. func (o AllocationSpecificSKUAllocationReservedInstancePropertiesPtrOutput) MachineType() pulumi.StringPtrOutput { return o.ApplyT(func(v *AllocationSpecificSKUAllocationReservedInstanceProperties) *string { if v == nil { return nil } return v.MachineType }).(pulumi.StringPtrOutput) } // Minimum cpu platform the reservation. func (o AllocationSpecificSKUAllocationReservedInstancePropertiesPtrOutput) MinCpuPlatform() pulumi.StringPtrOutput { return o.ApplyT(func(v *AllocationSpecificSKUAllocationReservedInstanceProperties) *string { if v == nil { return nil } return v.MinCpuPlatform }).(pulumi.StringPtrOutput) } // Properties of the SKU instances being reserved. Next ID: 9 type AllocationSpecificSKUAllocationReservedInstancePropertiesResponse struct { // Specifies accelerator type and count. GuestAccelerators []AcceleratorConfigResponse `pulumi:"guestAccelerators"` // Specifies amount of local ssd to reserve with each instance. The type of disk is local-ssd. LocalSsds []AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskResponse `pulumi:"localSsds"` // An opaque location hint used to place the allocation close to other resources. This field is for use by internal tools that use the public API. LocationHint string `pulumi:"locationHint"` // Specifies type of machine (name only) which has fixed number of vCPUs and fixed amount of memory. This also includes specifying custom machine type following custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY pattern. MachineType string `pulumi:"machineType"` // Minimum cpu platform the reservation. MinCpuPlatform string `pulumi:"minCpuPlatform"` } // Properties of the SKU instances being reserved. Next ID: 9 type AllocationSpecificSKUAllocationReservedInstancePropertiesResponseOutput struct{ *pulumi.OutputState } func (AllocationSpecificSKUAllocationReservedInstancePropertiesResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*AllocationSpecificSKUAllocationReservedInstancePropertiesResponse)(nil)).Elem() } func (o AllocationSpecificSKUAllocationReservedInstancePropertiesResponseOutput) ToAllocationSpecificSKUAllocationReservedInstancePropertiesResponseOutput() AllocationSpecificSKUAllocationReservedInstancePropertiesResponseOutput { return o } func (o AllocationSpecificSKUAllocationReservedInstancePropertiesResponseOutput) ToAllocationSpecificSKUAllocationReservedInstancePropertiesResponseOutputWithContext(ctx context.Context) AllocationSpecificSKUAllocationReservedInstancePropertiesResponseOutput { return o } // Specifies accelerator type and count. func (o AllocationSpecificSKUAllocationReservedInstancePropertiesResponseOutput) GuestAccelerators() AcceleratorConfigResponseArrayOutput { return o.ApplyT(func(v AllocationSpecificSKUAllocationReservedInstancePropertiesResponse) []AcceleratorConfigResponse { return v.GuestAccelerators }).(AcceleratorConfigResponseArrayOutput) } // Specifies amount of local ssd to reserve with each instance. The type of disk is local-ssd. func (o AllocationSpecificSKUAllocationReservedInstancePropertiesResponseOutput) LocalSsds() AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskResponseArrayOutput { return o.ApplyT(func(v AllocationSpecificSKUAllocationReservedInstancePropertiesResponse) []AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskResponse { return v.LocalSsds }).(AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskResponseArrayOutput) } // An opaque location hint used to place the allocation close to other resources. This field is for use by internal tools that use the public API. func (o AllocationSpecificSKUAllocationReservedInstancePropertiesResponseOutput) LocationHint() pulumi.StringOutput { return o.ApplyT(func(v AllocationSpecificSKUAllocationReservedInstancePropertiesResponse) string { return v.LocationHint }).(pulumi.StringOutput) } // Specifies type of machine (name only) which has fixed number of vCPUs and fixed amount of memory. This also includes specifying custom machine type following custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY pattern. func (o AllocationSpecificSKUAllocationReservedInstancePropertiesResponseOutput) MachineType() pulumi.StringOutput { return o.ApplyT(func(v AllocationSpecificSKUAllocationReservedInstancePropertiesResponse) string { return v.MachineType }).(pulumi.StringOutput) } // Minimum cpu platform the reservation. func (o AllocationSpecificSKUAllocationReservedInstancePropertiesResponseOutput) MinCpuPlatform() pulumi.StringOutput { return o.ApplyT(func(v AllocationSpecificSKUAllocationReservedInstancePropertiesResponse) string { return v.MinCpuPlatform }).(pulumi.StringOutput) } // This reservation type allows to pre allocate specific instance configuration. Next ID: 5 type AllocationSpecificSKUReservation struct { // Specifies the number of resources that are allocated. Count *string `pulumi:"count"` // The instance properties for the reservation. InstanceProperties *AllocationSpecificSKUAllocationReservedInstanceProperties `pulumi:"instanceProperties"` } // AllocationSpecificSKUReservationInput is an input type that accepts AllocationSpecificSKUReservationArgs and AllocationSpecificSKUReservationOutput values. // You can construct a concrete instance of `AllocationSpecificSKUReservationInput` via: // // AllocationSpecificSKUReservationArgs{...} type AllocationSpecificSKUReservationInput interface { pulumi.Input ToAllocationSpecificSKUReservationOutput() AllocationSpecificSKUReservationOutput ToAllocationSpecificSKUReservationOutputWithContext(context.Context) AllocationSpecificSKUReservationOutput } // This reservation type allows to pre allocate specific instance configuration. Next ID: 5 type AllocationSpecificSKUReservationArgs struct { // Specifies the number of resources that are allocated. Count pulumi.StringPtrInput `pulumi:"count"` // The instance properties for the reservation. InstanceProperties AllocationSpecificSKUAllocationReservedInstancePropertiesPtrInput `pulumi:"instanceProperties"` } func (AllocationSpecificSKUReservationArgs) ElementType() reflect.Type { return reflect.TypeOf((*AllocationSpecificSKUReservation)(nil)).Elem() } func (i AllocationSpecificSKUReservationArgs) ToAllocationSpecificSKUReservationOutput() AllocationSpecificSKUReservationOutput { return i.ToAllocationSpecificSKUReservationOutputWithContext(context.Background()) } func (i AllocationSpecificSKUReservationArgs) ToAllocationSpecificSKUReservationOutputWithContext(ctx context.Context) AllocationSpecificSKUReservationOutput { return pulumi.ToOutputWithContext(ctx, i).(AllocationSpecificSKUReservationOutput) } func (i AllocationSpecificSKUReservationArgs) ToAllocationSpecificSKUReservationPtrOutput() AllocationSpecificSKUReservationPtrOutput { return i.ToAllocationSpecificSKUReservationPtrOutputWithContext(context.Background()) } func (i AllocationSpecificSKUReservationArgs) ToAllocationSpecificSKUReservationPtrOutputWithContext(ctx context.Context) AllocationSpecificSKUReservationPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(AllocationSpecificSKUReservationOutput).ToAllocationSpecificSKUReservationPtrOutputWithContext(ctx) } // AllocationSpecificSKUReservationPtrInput is an input type that accepts AllocationSpecificSKUReservationArgs, AllocationSpecificSKUReservationPtr and AllocationSpecificSKUReservationPtrOutput values. // You can construct a concrete instance of `AllocationSpecificSKUReservationPtrInput` via: // // AllocationSpecificSKUReservationArgs{...} // // or: // // nil type AllocationSpecificSKUReservationPtrInput interface { pulumi.Input ToAllocationSpecificSKUReservationPtrOutput() AllocationSpecificSKUReservationPtrOutput ToAllocationSpecificSKUReservationPtrOutputWithContext(context.Context) AllocationSpecificSKUReservationPtrOutput } type allocationSpecificSKUReservationPtrType AllocationSpecificSKUReservationArgs func AllocationSpecificSKUReservationPtr(v *AllocationSpecificSKUReservationArgs) AllocationSpecificSKUReservationPtrInput { return (*allocationSpecificSKUReservationPtrType)(v) } func (*allocationSpecificSKUReservationPtrType) ElementType() reflect.Type { return reflect.TypeOf((**AllocationSpecificSKUReservation)(nil)).Elem() } func (i *allocationSpecificSKUReservationPtrType) ToAllocationSpecificSKUReservationPtrOutput() AllocationSpecificSKUReservationPtrOutput { return i.ToAllocationSpecificSKUReservationPtrOutputWithContext(context.Background()) } func (i *allocationSpecificSKUReservationPtrType) ToAllocationSpecificSKUReservationPtrOutputWithContext(ctx context.Context) AllocationSpecificSKUReservationPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(AllocationSpecificSKUReservationPtrOutput) } // This reservation type allows to pre allocate specific instance configuration. Next ID: 5 type AllocationSpecificSKUReservationOutput struct{ *pulumi.OutputState } func (AllocationSpecificSKUReservationOutput) ElementType() reflect.Type { return reflect.TypeOf((*AllocationSpecificSKUReservation)(nil)).Elem() } func (o AllocationSpecificSKUReservationOutput) ToAllocationSpecificSKUReservationOutput() AllocationSpecificSKUReservationOutput { return o } func (o AllocationSpecificSKUReservationOutput) ToAllocationSpecificSKUReservationOutputWithContext(ctx context.Context) AllocationSpecificSKUReservationOutput { return o } func (o AllocationSpecificSKUReservationOutput) ToAllocationSpecificSKUReservationPtrOutput() AllocationSpecificSKUReservationPtrOutput { return o.ToAllocationSpecificSKUReservationPtrOutputWithContext(context.Background()) } func (o AllocationSpecificSKUReservationOutput) ToAllocationSpecificSKUReservationPtrOutputWithContext(ctx context.Context) AllocationSpecificSKUReservationPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v AllocationSpecificSKUReservation) *AllocationSpecificSKUReservation { return &v }).(AllocationSpecificSKUReservationPtrOutput) } // Specifies the number of resources that are allocated. func (o AllocationSpecificSKUReservationOutput) Count() pulumi.StringPtrOutput { return o.ApplyT(func(v AllocationSpecificSKUReservation) *string { return v.Count }).(pulumi.StringPtrOutput) } // The instance properties for the reservation. func (o AllocationSpecificSKUReservationOutput) InstanceProperties() AllocationSpecificSKUAllocationReservedInstancePropertiesPtrOutput { return o.ApplyT(func(v AllocationSpecificSKUReservation) *AllocationSpecificSKUAllocationReservedInstanceProperties { return v.InstanceProperties }).(AllocationSpecificSKUAllocationReservedInstancePropertiesPtrOutput) } type AllocationSpecificSKUReservationPtrOutput struct{ *pulumi.OutputState } func (AllocationSpecificSKUReservationPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**AllocationSpecificSKUReservation)(nil)).Elem() } func (o AllocationSpecificSKUReservationPtrOutput) ToAllocationSpecificSKUReservationPtrOutput() AllocationSpecificSKUReservationPtrOutput { return o } func (o AllocationSpecificSKUReservationPtrOutput) ToAllocationSpecificSKUReservationPtrOutputWithContext(ctx context.Context) AllocationSpecificSKUReservationPtrOutput { return o } func (o AllocationSpecificSKUReservationPtrOutput) Elem() AllocationSpecificSKUReservationOutput { return o.ApplyT(func(v *AllocationSpecificSKUReservation) AllocationSpecificSKUReservation { if v != nil { return *v } var ret AllocationSpecificSKUReservation return ret }).(AllocationSpecificSKUReservationOutput) } // Specifies the number of resources that are allocated. func (o AllocationSpecificSKUReservationPtrOutput) Count() pulumi.StringPtrOutput { return o.ApplyT(func(v *AllocationSpecificSKUReservation) *string { if v == nil { return nil } return v.Count }).(pulumi.StringPtrOutput) } // The instance properties for the reservation. func (o AllocationSpecificSKUReservationPtrOutput) InstanceProperties() AllocationSpecificSKUAllocationReservedInstancePropertiesPtrOutput { return o.ApplyT(func(v *AllocationSpecificSKUReservation) *AllocationSpecificSKUAllocationReservedInstanceProperties { if v == nil { return nil } return v.InstanceProperties }).(AllocationSpecificSKUAllocationReservedInstancePropertiesPtrOutput) } // This reservation type allows to pre allocate specific instance configuration. Next ID: 5 type AllocationSpecificSKUReservationResponse struct { // Specifies the number of resources that are allocated. Count string `pulumi:"count"` // Indicates how many instances are in use. InUseCount string `pulumi:"inUseCount"` // The instance properties for the reservation. InstanceProperties AllocationSpecificSKUAllocationReservedInstancePropertiesResponse `pulumi:"instanceProperties"` } // This reservation type allows to pre allocate specific instance configuration. Next ID: 5 type AllocationSpecificSKUReservationResponseOutput struct{ *pulumi.OutputState } func (AllocationSpecificSKUReservationResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*AllocationSpecificSKUReservationResponse)(nil)).Elem() } func (o AllocationSpecificSKUReservationResponseOutput) ToAllocationSpecificSKUReservationResponseOutput() AllocationSpecificSKUReservationResponseOutput { return o } func (o AllocationSpecificSKUReservationResponseOutput) ToAllocationSpecificSKUReservationResponseOutputWithContext(ctx context.Context) AllocationSpecificSKUReservationResponseOutput { return o } // Specifies the number of resources that are allocated. func (o AllocationSpecificSKUReservationResponseOutput) Count() pulumi.StringOutput { return o.ApplyT(func(v AllocationSpecificSKUReservationResponse) string { return v.Count }).(pulumi.StringOutput) } // Indicates how many instances are in use. func (o AllocationSpecificSKUReservationResponseOutput) InUseCount() pulumi.StringOutput { return o.ApplyT(func(v AllocationSpecificSKUReservationResponse) string { return v.InUseCount }).(pulumi.StringOutput) } // The instance properties for the reservation. func (o AllocationSpecificSKUReservationResponseOutput) InstanceProperties() AllocationSpecificSKUAllocationReservedInstancePropertiesResponseOutput { return o.ApplyT(func(v AllocationSpecificSKUReservationResponse) AllocationSpecificSKUAllocationReservedInstancePropertiesResponse { return v.InstanceProperties }).(AllocationSpecificSKUAllocationReservedInstancePropertiesResponseOutput) } // An instance-attached disk resource. type AttachedDisk struct { // Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance). AutoDelete *bool `pulumi:"autoDelete"` // Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem. Boot *bool `pulumi:"boot"` // Specifies a unique device name of your choice that is reflected into the /dev/disk/by-id/google-* tree of a Linux operating system running within the instance. This name can be used to reference the device for mounting, resizing, and so on, from within the instance. If not specified, the server chooses a default device name to apply to this disk, in the form persistent-disk-x, where x is a number assigned by Google Compute Engine. This field is only applicable for persistent disks. DeviceName *string `pulumi:"deviceName"` // Encrypts or decrypts a disk using a customer-supplied encryption key. If you are creating a new disk, this field encrypts the new disk using an encryption key that you provide. If you are attaching an existing disk that is already encrypted, this field decrypts the disk using the customer-supplied encryption key. If you encrypt a disk using a customer-supplied key, you must provide the same key again when you attempt to use this resource at a later time. For example, you must provide the key when you create a snapshot or an image from the disk or when you attach the disk to a virtual machine instance. If you do not provide an encryption key, then the disk will be encrypted using an automatically generated key and you do not need to provide a key to use the disk later. Instance templates do not store customer-supplied encryption keys, so you cannot use your own keys to encrypt disks in a managed instance group. DiskEncryptionKey *CustomerEncryptionKey `pulumi:"diskEncryptionKey"` // The size of the disk in GB. DiskSizeGb *string `pulumi:"diskSizeGb"` // A list of features to enable on the guest operating system. Applicable only for bootable images. Read Enabling guest operating system features to see a list of available options. GuestOsFeatures []GuestOsFeature `pulumi:"guestOsFeatures"` // [Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. This property is mutually exclusive with the source property; you can only define one or the other, but not both. InitializeParams *AttachedDiskInitializeParams `pulumi:"initializeParams"` // Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI. Persistent disks must always use SCSI and the request will fail if you attempt to attach a persistent disk in any other format than SCSI. Local SSDs can use either NVME or SCSI. For performance characteristics of SCSI over NVMe, see Local SSD performance. Interface *AttachedDiskInterface `pulumi:"interface"` // The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If not specified, the default is to attach the disk in READ_WRITE mode. Mode *AttachedDiskMode `pulumi:"mode"` // Specifies a valid partial or full URL to an existing Persistent Disk resource. When creating a new instance, one of initializeParams.sourceImage or initializeParams.sourceSnapshot or disks.source is required except for local SSD. If desired, you can also attach existing non-root persistent disks using this property. This field is only applicable for persistent disks. Note that for InstanceTemplate, specify the disk name for zonal disk, and the URL for regional disk. Source *string `pulumi:"source"` // Specifies the type of the disk, either SCRATCH or PERSISTENT. If not specified, the default is PERSISTENT. Type *AttachedDiskType `pulumi:"type"` } // AttachedDiskInput is an input type that accepts AttachedDiskArgs and AttachedDiskOutput values. // You can construct a concrete instance of `AttachedDiskInput` via: // // AttachedDiskArgs{...} type AttachedDiskInput interface { pulumi.Input ToAttachedDiskOutput() AttachedDiskOutput ToAttachedDiskOutputWithContext(context.Context) AttachedDiskOutput } // An instance-attached disk resource. type AttachedDiskArgs struct { // Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance). AutoDelete pulumi.BoolPtrInput `pulumi:"autoDelete"` // Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem. Boot pulumi.BoolPtrInput `pulumi:"boot"` // Specifies a unique device name of your choice that is reflected into the /dev/disk/by-id/google-* tree of a Linux operating system running within the instance. This name can be used to reference the device for mounting, resizing, and so on, from within the instance. If not specified, the server chooses a default device name to apply to this disk, in the form persistent-disk-x, where x is a number assigned by Google Compute Engine. This field is only applicable for persistent disks. DeviceName pulumi.StringPtrInput `pulumi:"deviceName"` // Encrypts or decrypts a disk using a customer-supplied encryption key. If you are creating a new disk, this field encrypts the new disk using an encryption key that you provide. If you are attaching an existing disk that is already encrypted, this field decrypts the disk using the customer-supplied encryption key. If you encrypt a disk using a customer-supplied key, you must provide the same key again when you attempt to use this resource at a later time. For example, you must provide the key when you create a snapshot or an image from the disk or when you attach the disk to a virtual machine instance. If you do not provide an encryption key, then the disk will be encrypted using an automatically generated key and you do not need to provide a key to use the disk later. Instance templates do not store customer-supplied encryption keys, so you cannot use your own keys to encrypt disks in a managed instance group. DiskEncryptionKey CustomerEncryptionKeyPtrInput `pulumi:"diskEncryptionKey"` // The size of the disk in GB. DiskSizeGb pulumi.StringPtrInput `pulumi:"diskSizeGb"` // A list of features to enable on the guest operating system. Applicable only for bootable images. Read Enabling guest operating system features to see a list of available options. GuestOsFeatures GuestOsFeatureArrayInput `pulumi:"guestOsFeatures"` // [Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. This property is mutually exclusive with the source property; you can only define one or the other, but not both. InitializeParams AttachedDiskInitializeParamsPtrInput `pulumi:"initializeParams"` // Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI. Persistent disks must always use SCSI and the request will fail if you attempt to attach a persistent disk in any other format than SCSI. Local SSDs can use either NVME or SCSI. For performance characteristics of SCSI over NVMe, see Local SSD performance. Interface AttachedDiskInterfacePtrInput `pulumi:"interface"` // The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If not specified, the default is to attach the disk in READ_WRITE mode. Mode AttachedDiskModePtrInput `pulumi:"mode"` // Specifies a valid partial or full URL to an existing Persistent Disk resource. When creating a new instance, one of initializeParams.sourceImage or initializeParams.sourceSnapshot or disks.source is required except for local SSD. If desired, you can also attach existing non-root persistent disks using this property. This field is only applicable for persistent disks. Note that for InstanceTemplate, specify the disk name for zonal disk, and the URL for regional disk. Source pulumi.StringPtrInput `pulumi:"source"` // Specifies the type of the disk, either SCRATCH or PERSISTENT. If not specified, the default is PERSISTENT. Type AttachedDiskTypePtrInput `pulumi:"type"` } func (AttachedDiskArgs) ElementType() reflect.Type { return reflect.TypeOf((*AttachedDisk)(nil)).Elem() } func (i AttachedDiskArgs) ToAttachedDiskOutput() AttachedDiskOutput { return i.ToAttachedDiskOutputWithContext(context.Background()) } func (i AttachedDiskArgs) ToAttachedDiskOutputWithContext(ctx context.Context) AttachedDiskOutput { return pulumi.ToOutputWithContext(ctx, i).(AttachedDiskOutput) } // AttachedDiskArrayInput is an input type that accepts AttachedDiskArray and AttachedDiskArrayOutput values. // You can construct a concrete instance of `AttachedDiskArrayInput` via: // // AttachedDiskArray{ AttachedDiskArgs{...} } type AttachedDiskArrayInput interface { pulumi.Input ToAttachedDiskArrayOutput() AttachedDiskArrayOutput ToAttachedDiskArrayOutputWithContext(context.Context) AttachedDiskArrayOutput } type AttachedDiskArray []AttachedDiskInput func (AttachedDiskArray) ElementType() reflect.Type { return reflect.TypeOf((*[]AttachedDisk)(nil)).Elem() } func (i AttachedDiskArray) ToAttachedDiskArrayOutput() AttachedDiskArrayOutput { return i.ToAttachedDiskArrayOutputWithContext(context.Background()) } func (i AttachedDiskArray) ToAttachedDiskArrayOutputWithContext(ctx context.Context) AttachedDiskArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(AttachedDiskArrayOutput) } // An instance-attached disk resource. type AttachedDiskOutput struct{ *pulumi.OutputState } func (AttachedDiskOutput) ElementType() reflect.Type { return reflect.TypeOf((*AttachedDisk)(nil)).Elem() } func (o AttachedDiskOutput) ToAttachedDiskOutput() AttachedDiskOutput { return o } func (o AttachedDiskOutput) ToAttachedDiskOutputWithContext(ctx context.Context) AttachedDiskOutput { return o } // Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance). func (o AttachedDiskOutput) AutoDelete() pulumi.BoolPtrOutput { return o.ApplyT(func(v AttachedDisk) *bool { return v.AutoDelete }).(pulumi.BoolPtrOutput) } // Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem. func (o AttachedDiskOutput) Boot() pulumi.BoolPtrOutput { return o.ApplyT(func(v AttachedDisk) *bool { return v.Boot }).(pulumi.BoolPtrOutput) } // Specifies a unique device name of your choice that is reflected into the /dev/disk/by-id/google-* tree of a Linux operating system running within the instance. This name can be used to reference the device for mounting, resizing, and so on, from within the instance. If not specified, the server chooses a default device name to apply to this disk, in the form persistent-disk-x, where x is a number assigned by Google Compute Engine. This field is only applicable for persistent disks. func (o AttachedDiskOutput) DeviceName() pulumi.StringPtrOutput { return o.ApplyT(func(v AttachedDisk) *string { return v.DeviceName }).(pulumi.StringPtrOutput) } // Encrypts or decrypts a disk using a customer-supplied encryption key. If you are creating a new disk, this field encrypts the new disk using an encryption key that you provide. If you are attaching an existing disk that is already encrypted, this field decrypts the disk using the customer-supplied encryption key. If you encrypt a disk using a customer-supplied key, you must provide the same key again when you attempt to use this resource at a later time. For example, you must provide the key when you create a snapshot or an image from the disk or when you attach the disk to a virtual machine instance. If you do not provide an encryption key, then the disk will be encrypted using an automatically generated key and you do not need to provide a key to use the disk later. Instance templates do not store customer-supplied encryption keys, so you cannot use your own keys to encrypt disks in a managed instance group. func (o AttachedDiskOutput) DiskEncryptionKey() CustomerEncryptionKeyPtrOutput { return o.ApplyT(func(v AttachedDisk) *CustomerEncryptionKey { return v.DiskEncryptionKey }).(CustomerEncryptionKeyPtrOutput) } // The size of the disk in GB. func (o AttachedDiskOutput) DiskSizeGb() pulumi.StringPtrOutput { return o.ApplyT(func(v AttachedDisk) *string { return v.DiskSizeGb }).(pulumi.StringPtrOutput) } // A list of features to enable on the guest operating system. Applicable only for bootable images. Read Enabling guest operating system features to see a list of available options. func (o AttachedDiskOutput) GuestOsFeatures() GuestOsFeatureArrayOutput { return o.ApplyT(func(v AttachedDisk) []GuestOsFeature { return v.GuestOsFeatures }).(GuestOsFeatureArrayOutput) } // [Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. This property is mutually exclusive with the source property; you can only define one or the other, but not both. func (o AttachedDiskOutput) InitializeParams() AttachedDiskInitializeParamsPtrOutput { return o.ApplyT(func(v AttachedDisk) *AttachedDiskInitializeParams { return v.InitializeParams }).(AttachedDiskInitializeParamsPtrOutput) } // Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI. Persistent disks must always use SCSI and the request will fail if you attempt to attach a persistent disk in any other format than SCSI. Local SSDs can use either NVME or SCSI. For performance characteristics of SCSI over NVMe, see Local SSD performance. func (o AttachedDiskOutput) Interface() AttachedDiskInterfacePtrOutput { return o.ApplyT(func(v AttachedDisk) *AttachedDiskInterface { return v.Interface }).(AttachedDiskInterfacePtrOutput) } // The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If not specified, the default is to attach the disk in READ_WRITE mode. func (o AttachedDiskOutput) Mode() AttachedDiskModePtrOutput { return o.ApplyT(func(v AttachedDisk) *AttachedDiskMode { return v.Mode }).(AttachedDiskModePtrOutput) } // Specifies a valid partial or full URL to an existing Persistent Disk resource. When creating a new instance, one of initializeParams.sourceImage or initializeParams.sourceSnapshot or disks.source is required except for local SSD. If desired, you can also attach existing non-root persistent disks using this property. This field is only applicable for persistent disks. Note that for InstanceTemplate, specify the disk name for zonal disk, and the URL for regional disk. func (o AttachedDiskOutput) Source() pulumi.StringPtrOutput { return o.ApplyT(func(v AttachedDisk) *string { return v.Source }).(pulumi.StringPtrOutput) } // Specifies the type of the disk, either SCRATCH or PERSISTENT. If not specified, the default is PERSISTENT. func (o AttachedDiskOutput) Type() AttachedDiskTypePtrOutput { return o.ApplyT(func(v AttachedDisk) *AttachedDiskType { return v.Type }).(AttachedDiskTypePtrOutput) } type AttachedDiskArrayOutput struct{ *pulumi.OutputState } func (AttachedDiskArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]AttachedDisk)(nil)).Elem() } func (o AttachedDiskArrayOutput) ToAttachedDiskArrayOutput() AttachedDiskArrayOutput { return o } func (o AttachedDiskArrayOutput) ToAttachedDiskArrayOutputWithContext(ctx context.Context) AttachedDiskArrayOutput { return o } func (o AttachedDiskArrayOutput) Index(i pulumi.IntInput) AttachedDiskOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) AttachedDisk { return vs[0].([]AttachedDisk)[vs[1].(int)] }).(AttachedDiskOutput) } // [Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. This property is mutually exclusive with the source property; you can only define one or the other, but not both. type AttachedDiskInitializeParams struct { // An optional description. Provide this property when creating the disk. Description *string `pulumi:"description"` // Specifies the disk name. If not specified, the default is to use the name of the instance. If a disk with the same name already exists in the given region, the existing disk is attached to the new instance and the new disk is not created. DiskName *string `pulumi:"diskName"` // Specifies the size of the disk in base-2 GB. The size must be at least 10 GB. If you specify a sourceImage, which is required for boot disks, the default size is the size of the sourceImage. If you do not specify a sourceImage, the default disk size is 500 GB. DiskSizeGb *string `pulumi:"diskSizeGb"` // Specifies the disk type to use to create the instance. If not specified, the default is pd-standard, specified using the full URL. For example: https://www.googleapis.com/compute/v1/projects/project/zones/zone /diskTypes/pd-standard For a full list of acceptable values, see Persistent disk types. If you define this field, you can provide either the full or partial URL. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /diskTypes/diskType - projects/project/zones/zone/diskTypes/diskType - zones/zone/diskTypes/diskType Note that for InstanceTemplate, this is the name of the disk type, not URL. DiskType *string `pulumi:"diskType"` // Labels to apply to this disk. These can be later modified by the disks.setLabels method. This field is only applicable for persistent disks. Labels map[string]string `pulumi:"labels"` // A list of publicly visible licenses. Reserved for Google's use. Licenses []string `pulumi:"licenses"` // Specifies which action to take on instance update with this disk. Default is to use the existing disk. OnUpdateAction *AttachedDiskInitializeParamsOnUpdateAction `pulumi:"onUpdateAction"` // Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle. Values must be between 10,000 and 120,000. For more details, see the Extreme persistent disk documentation. ProvisionedIops *string `pulumi:"provisionedIops"` // Resource policies applied to this disk for automatic snapshot creations. Specified using the full or partial URL. For instance template, specify only the resource policy name. ResourcePolicies []string `pulumi:"resourcePolicies"` // The source image to create this disk. When creating a new instance, one of initializeParams.sourceImage or initializeParams.sourceSnapshot or disks.source is required except for local SSD. To create a disk with one of the public operating system images, specify the image by its family name. For example, specify family/debian-9 to use the latest Debian 9 image: projects/debian-cloud/global/images/family/debian-9 Alternatively, use a specific version of a public operating system image: projects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD To create a disk with a custom image that you created, specify the image name in the following format: global/images/my-custom-image You can also specify a custom image by its image family, which returns the latest version of the image in that family. Replace the image name with family/family-name: global/images/family/my-image-family If the source image is deleted later, this field will not be set. SourceImage *string `pulumi:"sourceImage"` // The customer-supplied encryption key of the source image. Required if the source image is protected by a customer-supplied encryption key. Instance templates do not store customer-supplied encryption keys, so you cannot create disks for instances in a managed instance group if the source images are encrypted with your own keys. SourceImageEncryptionKey *CustomerEncryptionKey `pulumi:"sourceImageEncryptionKey"` // The source snapshot to create this disk. When creating a new instance, one of initializeParams.sourceSnapshot or initializeParams.sourceImage or disks.source is required except for local SSD. To create a disk with a snapshot that you created, specify the snapshot name in the following format: global/snapshots/my-backup If the source snapshot is deleted later, this field will not be set. SourceSnapshot *string `pulumi:"sourceSnapshot"` // The customer-supplied encryption key of the source snapshot. SourceSnapshotEncryptionKey *CustomerEncryptionKey `pulumi:"sourceSnapshotEncryptionKey"` } // AttachedDiskInitializeParamsInput is an input type that accepts AttachedDiskInitializeParamsArgs and AttachedDiskInitializeParamsOutput values. // You can construct a concrete instance of `AttachedDiskInitializeParamsInput` via: // // AttachedDiskInitializeParamsArgs{...} type AttachedDiskInitializeParamsInput interface { pulumi.Input ToAttachedDiskInitializeParamsOutput() AttachedDiskInitializeParamsOutput ToAttachedDiskInitializeParamsOutputWithContext(context.Context) AttachedDiskInitializeParamsOutput } // [Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. This property is mutually exclusive with the source property; you can only define one or the other, but not both. type AttachedDiskInitializeParamsArgs struct { // An optional description. Provide this property when creating the disk. Description pulumi.StringPtrInput `pulumi:"description"` // Specifies the disk name. If not specified, the default is to use the name of the instance. If a disk with the same name already exists in the given region, the existing disk is attached to the new instance and the new disk is not created. DiskName pulumi.StringPtrInput `pulumi:"diskName"` // Specifies the size of the disk in base-2 GB. The size must be at least 10 GB. If you specify a sourceImage, which is required for boot disks, the default size is the size of the sourceImage. If you do not specify a sourceImage, the default disk size is 500 GB. DiskSizeGb pulumi.StringPtrInput `pulumi:"diskSizeGb"` // Specifies the disk type to use to create the instance. If not specified, the default is pd-standard, specified using the full URL. For example: https://www.googleapis.com/compute/v1/projects/project/zones/zone /diskTypes/pd-standard For a full list of acceptable values, see Persistent disk types. If you define this field, you can provide either the full or partial URL. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /diskTypes/diskType - projects/project/zones/zone/diskTypes/diskType - zones/zone/diskTypes/diskType Note that for InstanceTemplate, this is the name of the disk type, not URL. DiskType pulumi.StringPtrInput `pulumi:"diskType"` // Labels to apply to this disk. These can be later modified by the disks.setLabels method. This field is only applicable for persistent disks. Labels pulumi.StringMapInput `pulumi:"labels"` // A list of publicly visible licenses. Reserved for Google's use. Licenses pulumi.StringArrayInput `pulumi:"licenses"` // Specifies which action to take on instance update with this disk. Default is to use the existing disk. OnUpdateAction AttachedDiskInitializeParamsOnUpdateActionPtrInput `pulumi:"onUpdateAction"` // Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle. Values must be between 10,000 and 120,000. For more details, see the Extreme persistent disk documentation. ProvisionedIops pulumi.StringPtrInput `pulumi:"provisionedIops"` // Resource policies applied to this disk for automatic snapshot creations. Specified using the full or partial URL. For instance template, specify only the resource policy name. ResourcePolicies pulumi.StringArrayInput `pulumi:"resourcePolicies"` // The source image to create this disk. When creating a new instance, one of initializeParams.sourceImage or initializeParams.sourceSnapshot or disks.source is required except for local SSD. To create a disk with one of the public operating system images, specify the image by its family name. For example, specify family/debian-9 to use the latest Debian 9 image: projects/debian-cloud/global/images/family/debian-9 Alternatively, use a specific version of a public operating system image: projects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD To create a disk with a custom image that you created, specify the image name in the following format: global/images/my-custom-image You can also specify a custom image by its image family, which returns the latest version of the image in that family. Replace the image name with family/family-name: global/images/family/my-image-family If the source image is deleted later, this field will not be set. SourceImage pulumi.StringPtrInput `pulumi:"sourceImage"` // The customer-supplied encryption key of the source image. Required if the source image is protected by a customer-supplied encryption key. Instance templates do not store customer-supplied encryption keys, so you cannot create disks for instances in a managed instance group if the source images are encrypted with your own keys. SourceImageEncryptionKey CustomerEncryptionKeyPtrInput `pulumi:"sourceImageEncryptionKey"` // The source snapshot to create this disk. When creating a new instance, one of initializeParams.sourceSnapshot or initializeParams.sourceImage or disks.source is required except for local SSD. To create a disk with a snapshot that you created, specify the snapshot name in the following format: global/snapshots/my-backup If the source snapshot is deleted later, this field will not be set. SourceSnapshot pulumi.StringPtrInput `pulumi:"sourceSnapshot"` // The customer-supplied encryption key of the source snapshot. SourceSnapshotEncryptionKey CustomerEncryptionKeyPtrInput `pulumi:"sourceSnapshotEncryptionKey"` } func (AttachedDiskInitializeParamsArgs) ElementType() reflect.Type { return reflect.TypeOf((*AttachedDiskInitializeParams)(nil)).Elem() } func (i AttachedDiskInitializeParamsArgs) ToAttachedDiskInitializeParamsOutput() AttachedDiskInitializeParamsOutput { return i.ToAttachedDiskInitializeParamsOutputWithContext(context.Background()) } func (i AttachedDiskInitializeParamsArgs) ToAttachedDiskInitializeParamsOutputWithContext(ctx context.Context) AttachedDiskInitializeParamsOutput { return pulumi.ToOutputWithContext(ctx, i).(AttachedDiskInitializeParamsOutput) } func (i AttachedDiskInitializeParamsArgs) ToAttachedDiskInitializeParamsPtrOutput() AttachedDiskInitializeParamsPtrOutput { return i.ToAttachedDiskInitializeParamsPtrOutputWithContext(context.Background()) } func (i AttachedDiskInitializeParamsArgs) ToAttachedDiskInitializeParamsPtrOutputWithContext(ctx context.Context) AttachedDiskInitializeParamsPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(AttachedDiskInitializeParamsOutput).ToAttachedDiskInitializeParamsPtrOutputWithContext(ctx) } // AttachedDiskInitializeParamsPtrInput is an input type that accepts AttachedDiskInitializeParamsArgs, AttachedDiskInitializeParamsPtr and AttachedDiskInitializeParamsPtrOutput values. // You can construct a concrete instance of `AttachedDiskInitializeParamsPtrInput` via: // // AttachedDiskInitializeParamsArgs{...} // // or: // // nil type AttachedDiskInitializeParamsPtrInput interface { pulumi.Input ToAttachedDiskInitializeParamsPtrOutput() AttachedDiskInitializeParamsPtrOutput ToAttachedDiskInitializeParamsPtrOutputWithContext(context.Context) AttachedDiskInitializeParamsPtrOutput } type attachedDiskInitializeParamsPtrType AttachedDiskInitializeParamsArgs func AttachedDiskInitializeParamsPtr(v *AttachedDiskInitializeParamsArgs) AttachedDiskInitializeParamsPtrInput { return (*attachedDiskInitializeParamsPtrType)(v) } func (*attachedDiskInitializeParamsPtrType) ElementType() reflect.Type { return reflect.TypeOf((**AttachedDiskInitializeParams)(nil)).Elem() } func (i *attachedDiskInitializeParamsPtrType) ToAttachedDiskInitializeParamsPtrOutput() AttachedDiskInitializeParamsPtrOutput { return i.ToAttachedDiskInitializeParamsPtrOutputWithContext(context.Background()) } func (i *attachedDiskInitializeParamsPtrType) ToAttachedDiskInitializeParamsPtrOutputWithContext(ctx context.Context) AttachedDiskInitializeParamsPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(AttachedDiskInitializeParamsPtrOutput) } // [Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. This property is mutually exclusive with the source property; you can only define one or the other, but not both. type AttachedDiskInitializeParamsOutput struct{ *pulumi.OutputState } func (AttachedDiskInitializeParamsOutput) ElementType() reflect.Type { return reflect.TypeOf((*AttachedDiskInitializeParams)(nil)).Elem() } func (o AttachedDiskInitializeParamsOutput) ToAttachedDiskInitializeParamsOutput() AttachedDiskInitializeParamsOutput { return o } func (o AttachedDiskInitializeParamsOutput) ToAttachedDiskInitializeParamsOutputWithContext(ctx context.Context) AttachedDiskInitializeParamsOutput { return o } func (o AttachedDiskInitializeParamsOutput) ToAttachedDiskInitializeParamsPtrOutput() AttachedDiskInitializeParamsPtrOutput { return o.ToAttachedDiskInitializeParamsPtrOutputWithContext(context.Background()) } func (o AttachedDiskInitializeParamsOutput) ToAttachedDiskInitializeParamsPtrOutputWithContext(ctx context.Context) AttachedDiskInitializeParamsPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v AttachedDiskInitializeParams) *AttachedDiskInitializeParams { return &v }).(AttachedDiskInitializeParamsPtrOutput) } // An optional description. Provide this property when creating the disk. func (o AttachedDiskInitializeParamsOutput) Description() pulumi.StringPtrOutput { return o.ApplyT(func(v AttachedDiskInitializeParams) *string { return v.Description }).(pulumi.StringPtrOutput) } // Specifies the disk name. If not specified, the default is to use the name of the instance. If a disk with the same name already exists in the given region, the existing disk is attached to the new instance and the new disk is not created. func (o AttachedDiskInitializeParamsOutput) DiskName() pulumi.StringPtrOutput { return o.ApplyT(func(v AttachedDiskInitializeParams) *string { return v.DiskName }).(pulumi.StringPtrOutput) } // Specifies the size of the disk in base-2 GB. The size must be at least 10 GB. If you specify a sourceImage, which is required for boot disks, the default size is the size of the sourceImage. If you do not specify a sourceImage, the default disk size is 500 GB. func (o AttachedDiskInitializeParamsOutput) DiskSizeGb() pulumi.StringPtrOutput { return o.ApplyT(func(v AttachedDiskInitializeParams) *string { return v.DiskSizeGb }).(pulumi.StringPtrOutput) } // Specifies the disk type to use to create the instance. If not specified, the default is pd-standard, specified using the full URL. For example: https://www.googleapis.com/compute/v1/projects/project/zones/zone /diskTypes/pd-standard For a full list of acceptable values, see Persistent disk types. If you define this field, you can provide either the full or partial URL. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /diskTypes/diskType - projects/project/zones/zone/diskTypes/diskType - zones/zone/diskTypes/diskType Note that for InstanceTemplate, this is the name of the disk type, not URL. func (o AttachedDiskInitializeParamsOutput) DiskType() pulumi.StringPtrOutput { return o.ApplyT(func(v AttachedDiskInitializeParams) *string { return v.DiskType }).(pulumi.StringPtrOutput) } // Labels to apply to this disk. These can be later modified by the disks.setLabels method. This field is only applicable for persistent disks. func (o AttachedDiskInitializeParamsOutput) Labels() pulumi.StringMapOutput { return o.ApplyT(func(v AttachedDiskInitializeParams) map[string]string { return v.Labels }).(pulumi.StringMapOutput) } // A list of publicly visible licenses. Reserved for Google's use. func (o AttachedDiskInitializeParamsOutput) Licenses() pulumi.StringArrayOutput { return o.ApplyT(func(v AttachedDiskInitializeParams) []string { return v.Licenses }).(pulumi.StringArrayOutput) } // Specifies which action to take on instance update with this disk. Default is to use the existing disk. func (o AttachedDiskInitializeParamsOutput) OnUpdateAction() AttachedDiskInitializeParamsOnUpdateActionPtrOutput { return o.ApplyT(func(v AttachedDiskInitializeParams) *AttachedDiskInitializeParamsOnUpdateAction { return v.OnUpdateAction }).(AttachedDiskInitializeParamsOnUpdateActionPtrOutput) } // Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle. Values must be between 10,000 and 120,000. For more details, see the Extreme persistent disk documentation. func (o AttachedDiskInitializeParamsOutput) ProvisionedIops() pulumi.StringPtrOutput { return o.ApplyT(func(v AttachedDiskInitializeParams) *string { return v.ProvisionedIops }).(pulumi.StringPtrOutput) } // Resource policies applied to this disk for automatic snapshot creations. Specified using the full or partial URL. For instance template, specify only the resource policy name. func (o AttachedDiskInitializeParamsOutput) ResourcePolicies() pulumi.StringArrayOutput { return o.ApplyT(func(v AttachedDiskInitializeParams) []string { return v.ResourcePolicies }).(pulumi.StringArrayOutput) } // The source image to create this disk. When creating a new instance, one of initializeParams.sourceImage or initializeParams.sourceSnapshot or disks.source is required except for local SSD. To create a disk with one of the public operating system images, specify the image by its family name. For example, specify family/debian-9 to use the latest Debian 9 image: projects/debian-cloud/global/images/family/debian-9 Alternatively, use a specific version of a public operating system image: projects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD To create a disk with a custom image that you created, specify the image name in the following format: global/images/my-custom-image You can also specify a custom image by its image family, which returns the latest version of the image in that family. Replace the image name with family/family-name: global/images/family/my-image-family If the source image is deleted later, this field will not be set. func (o AttachedDiskInitializeParamsOutput) SourceImage() pulumi.StringPtrOutput { return o.ApplyT(func(v AttachedDiskInitializeParams) *string { return v.SourceImage }).(pulumi.StringPtrOutput) } // The customer-supplied encryption key of the source image. Required if the source image is protected by a customer-supplied encryption key. Instance templates do not store customer-supplied encryption keys, so you cannot create disks for instances in a managed instance group if the source images are encrypted with your own keys. func (o AttachedDiskInitializeParamsOutput) SourceImageEncryptionKey() CustomerEncryptionKeyPtrOutput { return o.ApplyT(func(v AttachedDiskInitializeParams) *CustomerEncryptionKey { return v.SourceImageEncryptionKey }).(CustomerEncryptionKeyPtrOutput) } // The source snapshot to create this disk. When creating a new instance, one of initializeParams.sourceSnapshot or initializeParams.sourceImage or disks.source is required except for local SSD. To create a disk with a snapshot that you created, specify the snapshot name in the following format: global/snapshots/my-backup If the source snapshot is deleted later, this field will not be set. func (o AttachedDiskInitializeParamsOutput) SourceSnapshot() pulumi.StringPtrOutput { return o.ApplyT(func(v AttachedDiskInitializeParams) *string { return v.SourceSnapshot }).(pulumi.StringPtrOutput) } // The customer-supplied encryption key of the source snapshot. func (o AttachedDiskInitializeParamsOutput) SourceSnapshotEncryptionKey() CustomerEncryptionKeyPtrOutput { return o.ApplyT(func(v AttachedDiskInitializeParams) *CustomerEncryptionKey { return v.SourceSnapshotEncryptionKey }).(CustomerEncryptionKeyPtrOutput) } type AttachedDiskInitializeParamsPtrOutput struct{ *pulumi.OutputState } func (AttachedDiskInitializeParamsPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**AttachedDiskInitializeParams)(nil)).Elem() } func (o AttachedDiskInitializeParamsPtrOutput) ToAttachedDiskInitializeParamsPtrOutput() AttachedDiskInitializeParamsPtrOutput { return o } func (o AttachedDiskInitializeParamsPtrOutput) ToAttachedDiskInitializeParamsPtrOutputWithContext(ctx context.Context) AttachedDiskInitializeParamsPtrOutput { return o } func (o AttachedDiskInitializeParamsPtrOutput) Elem() AttachedDiskInitializeParamsOutput { return o.ApplyT(func(v *AttachedDiskInitializeParams) AttachedDiskInitializeParams { if v != nil { return *v } var ret AttachedDiskInitializeParams return ret }).(AttachedDiskInitializeParamsOutput) } // An optional description. Provide this property when creating the disk. func (o AttachedDiskInitializeParamsPtrOutput) Description() pulumi.StringPtrOutput { return o.ApplyT(func(v *AttachedDiskInitializeParams) *string { if v == nil { return nil } return v.Description }).(pulumi.StringPtrOutput) } // Specifies the disk name. If not specified, the default is to use the name of the instance. If a disk with the same name already exists in the given region, the existing disk is attached to the new instance and the new disk is not created. func (o AttachedDiskInitializeParamsPtrOutput) DiskName() pulumi.StringPtrOutput { return o.ApplyT(func(v *AttachedDiskInitializeParams) *string { if v == nil { return nil } return v.DiskName }).(pulumi.StringPtrOutput) } // Specifies the size of the disk in base-2 GB. The size must be at least 10 GB. If you specify a sourceImage, which is required for boot disks, the default size is the size of the sourceImage. If you do not specify a sourceImage, the default disk size is 500 GB. func (o AttachedDiskInitializeParamsPtrOutput) DiskSizeGb() pulumi.StringPtrOutput { return o.ApplyT(func(v *AttachedDiskInitializeParams) *string { if v == nil { return nil } return v.DiskSizeGb }).(pulumi.StringPtrOutput) } // Specifies the disk type to use to create the instance. If not specified, the default is pd-standard, specified using the full URL. For example: https://www.googleapis.com/compute/v1/projects/project/zones/zone /diskTypes/pd-standard For a full list of acceptable values, see Persistent disk types. If you define this field, you can provide either the full or partial URL. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /diskTypes/diskType - projects/project/zones/zone/diskTypes/diskType - zones/zone/diskTypes/diskType Note that for InstanceTemplate, this is the name of the disk type, not URL. func (o AttachedDiskInitializeParamsPtrOutput) DiskType() pulumi.StringPtrOutput { return o.ApplyT(func(v *AttachedDiskInitializeParams) *string { if v == nil { return nil } return v.DiskType }).(pulumi.StringPtrOutput) } // Labels to apply to this disk. These can be later modified by the disks.setLabels method. This field is only applicable for persistent disks. func (o AttachedDiskInitializeParamsPtrOutput) Labels() pulumi.StringMapOutput { return o.ApplyT(func(v *AttachedDiskInitializeParams) map[string]string { if v == nil { return nil } return v.Labels }).(pulumi.StringMapOutput) } // A list of publicly visible licenses. Reserved for Google's use. func (o AttachedDiskInitializeParamsPtrOutput) Licenses() pulumi.StringArrayOutput { return o.ApplyT(func(v *AttachedDiskInitializeParams) []string { if v == nil { return nil } return v.Licenses }).(pulumi.StringArrayOutput) } // Specifies which action to take on instance update with this disk. Default is to use the existing disk. func (o AttachedDiskInitializeParamsPtrOutput) OnUpdateAction() AttachedDiskInitializeParamsOnUpdateActionPtrOutput { return o.ApplyT(func(v *AttachedDiskInitializeParams) *AttachedDiskInitializeParamsOnUpdateAction { if v == nil { return nil } return v.OnUpdateAction }).(AttachedDiskInitializeParamsOnUpdateActionPtrOutput) } // Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle. Values must be between 10,000 and 120,000. For more details, see the Extreme persistent disk documentation. func (o AttachedDiskInitializeParamsPtrOutput) ProvisionedIops() pulumi.StringPtrOutput { return o.ApplyT(func(v *AttachedDiskInitializeParams) *string { if v == nil { return nil } return v.ProvisionedIops }).(pulumi.StringPtrOutput) } // Resource policies applied to this disk for automatic snapshot creations. Specified using the full or partial URL. For instance template, specify only the resource policy name. func (o AttachedDiskInitializeParamsPtrOutput) ResourcePolicies() pulumi.StringArrayOutput { return o.ApplyT(func(v *AttachedDiskInitializeParams) []string { if v == nil { return nil } return v.ResourcePolicies }).(pulumi.StringArrayOutput) } // The source image to create this disk. When creating a new instance, one of initializeParams.sourceImage or initializeParams.sourceSnapshot or disks.source is required except for local SSD. To create a disk with one of the public operating system images, specify the image by its family name. For example, specify family/debian-9 to use the latest Debian 9 image: projects/debian-cloud/global/images/family/debian-9 Alternatively, use a specific version of a public operating system image: projects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD To create a disk with a custom image that you created, specify the image name in the following format: global/images/my-custom-image You can also specify a custom image by its image family, which returns the latest version of the image in that family. Replace the image name with family/family-name: global/images/family/my-image-family If the source image is deleted later, this field will not be set. func (o AttachedDiskInitializeParamsPtrOutput) SourceImage() pulumi.StringPtrOutput { return o.ApplyT(func(v *AttachedDiskInitializeParams) *string { if v == nil { return nil } return v.SourceImage }).(pulumi.StringPtrOutput) } // The customer-supplied encryption key of the source image. Required if the source image is protected by a customer-supplied encryption key. Instance templates do not store customer-supplied encryption keys, so you cannot create disks for instances in a managed instance group if the source images are encrypted with your own keys. func (o AttachedDiskInitializeParamsPtrOutput) SourceImageEncryptionKey() CustomerEncryptionKeyPtrOutput { return o.ApplyT(func(v *AttachedDiskInitializeParams) *CustomerEncryptionKey { if v == nil { return nil } return v.SourceImageEncryptionKey }).(CustomerEncryptionKeyPtrOutput) } // The source snapshot to create this disk. When creating a new instance, one of initializeParams.sourceSnapshot or initializeParams.sourceImage or disks.source is required except for local SSD. To create a disk with a snapshot that you created, specify the snapshot name in the following format: global/snapshots/my-backup If the source snapshot is deleted later, this field will not be set. func (o AttachedDiskInitializeParamsPtrOutput) SourceSnapshot() pulumi.StringPtrOutput { return o.ApplyT(func(v *AttachedDiskInitializeParams) *string { if v == nil { return nil } return v.SourceSnapshot }).(pulumi.StringPtrOutput) } // The customer-supplied encryption key of the source snapshot. func (o AttachedDiskInitializeParamsPtrOutput) SourceSnapshotEncryptionKey() CustomerEncryptionKeyPtrOutput { return o.ApplyT(func(v *AttachedDiskInitializeParams) *CustomerEncryptionKey { if v == nil { return nil } return v.SourceSnapshotEncryptionKey }).(CustomerEncryptionKeyPtrOutput) } // [Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. This property is mutually exclusive with the source property; you can only define one or the other, but not both. type AttachedDiskInitializeParamsResponse struct { // An optional description. Provide this property when creating the disk. Description string `pulumi:"description"` // Specifies the disk name. If not specified, the default is to use the name of the instance. If a disk with the same name already exists in the given region, the existing disk is attached to the new instance and the new disk is not created. DiskName string `pulumi:"diskName"` // Specifies the size of the disk in base-2 GB. The size must be at least 10 GB. If you specify a sourceImage, which is required for boot disks, the default size is the size of the sourceImage. If you do not specify a sourceImage, the default disk size is 500 GB. DiskSizeGb string `pulumi:"diskSizeGb"` // Specifies the disk type to use to create the instance. If not specified, the default is pd-standard, specified using the full URL. For example: https://www.googleapis.com/compute/v1/projects/project/zones/zone /diskTypes/pd-standard For a full list of acceptable values, see Persistent disk types. If you define this field, you can provide either the full or partial URL. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /diskTypes/diskType - projects/project/zones/zone/diskTypes/diskType - zones/zone/diskTypes/diskType Note that for InstanceTemplate, this is the name of the disk type, not URL. DiskType string `pulumi:"diskType"` // Labels to apply to this disk. These can be later modified by the disks.setLabels method. This field is only applicable for persistent disks. Labels map[string]string `pulumi:"labels"` // A list of publicly visible licenses. Reserved for Google's use. Licenses []string `pulumi:"licenses"` // Specifies which action to take on instance update with this disk. Default is to use the existing disk. OnUpdateAction string `pulumi:"onUpdateAction"` // Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle. Values must be between 10,000 and 120,000. For more details, see the Extreme persistent disk documentation. ProvisionedIops string `pulumi:"provisionedIops"` // Resource policies applied to this disk for automatic snapshot creations. Specified using the full or partial URL. For instance template, specify only the resource policy name. ResourcePolicies []string `pulumi:"resourcePolicies"` // The source image to create this disk. When creating a new instance, one of initializeParams.sourceImage or initializeParams.sourceSnapshot or disks.source is required except for local SSD. To create a disk with one of the public operating system images, specify the image by its family name. For example, specify family/debian-9 to use the latest Debian 9 image: projects/debian-cloud/global/images/family/debian-9 Alternatively, use a specific version of a public operating system image: projects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD To create a disk with a custom image that you created, specify the image name in the following format: global/images/my-custom-image You can also specify a custom image by its image family, which returns the latest version of the image in that family. Replace the image name with family/family-name: global/images/family/my-image-family If the source image is deleted later, this field will not be set. SourceImage string `pulumi:"sourceImage"` // The customer-supplied encryption key of the source image. Required if the source image is protected by a customer-supplied encryption key. Instance templates do not store customer-supplied encryption keys, so you cannot create disks for instances in a managed instance group if the source images are encrypted with your own keys. SourceImageEncryptionKey CustomerEncryptionKeyResponse `pulumi:"sourceImageEncryptionKey"` // The source snapshot to create this disk. When creating a new instance, one of initializeParams.sourceSnapshot or initializeParams.sourceImage or disks.source is required except for local SSD. To create a disk with a snapshot that you created, specify the snapshot name in the following format: global/snapshots/my-backup If the source snapshot is deleted later, this field will not be set. SourceSnapshot string `pulumi:"sourceSnapshot"` // The customer-supplied encryption key of the source snapshot. SourceSnapshotEncryptionKey CustomerEncryptionKeyResponse `pulumi:"sourceSnapshotEncryptionKey"` } // [Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. This property is mutually exclusive with the source property; you can only define one or the other, but not both. type AttachedDiskInitializeParamsResponseOutput struct{ *pulumi.OutputState } func (AttachedDiskInitializeParamsResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*AttachedDiskInitializeParamsResponse)(nil)).Elem() } func (o AttachedDiskInitializeParamsResponseOutput) ToAttachedDiskInitializeParamsResponseOutput() AttachedDiskInitializeParamsResponseOutput { return o } func (o AttachedDiskInitializeParamsResponseOutput) ToAttachedDiskInitializeParamsResponseOutputWithContext(ctx context.Context) AttachedDiskInitializeParamsResponseOutput { return o } // An optional description. Provide this property when creating the disk. func (o AttachedDiskInitializeParamsResponseOutput) Description() pulumi.StringOutput { return o.ApplyT(func(v AttachedDiskInitializeParamsResponse) string { return v.Description }).(pulumi.StringOutput) } // Specifies the disk name. If not specified, the default is to use the name of the instance. If a disk with the same name already exists in the given region, the existing disk is attached to the new instance and the new disk is not created. func (o AttachedDiskInitializeParamsResponseOutput) DiskName() pulumi.StringOutput { return o.ApplyT(func(v AttachedDiskInitializeParamsResponse) string { return v.DiskName }).(pulumi.StringOutput) } // Specifies the size of the disk in base-2 GB. The size must be at least 10 GB. If you specify a sourceImage, which is required for boot disks, the default size is the size of the sourceImage. If you do not specify a sourceImage, the default disk size is 500 GB. func (o AttachedDiskInitializeParamsResponseOutput) DiskSizeGb() pulumi.StringOutput { return o.ApplyT(func(v AttachedDiskInitializeParamsResponse) string { return v.DiskSizeGb }).(pulumi.StringOutput) } // Specifies the disk type to use to create the instance. If not specified, the default is pd-standard, specified using the full URL. For example: https://www.googleapis.com/compute/v1/projects/project/zones/zone /diskTypes/pd-standard For a full list of acceptable values, see Persistent disk types. If you define this field, you can provide either the full or partial URL. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /diskTypes/diskType - projects/project/zones/zone/diskTypes/diskType - zones/zone/diskTypes/diskType Note that for InstanceTemplate, this is the name of the disk type, not URL. func (o AttachedDiskInitializeParamsResponseOutput) DiskType() pulumi.StringOutput { return o.ApplyT(func(v AttachedDiskInitializeParamsResponse) string { return v.DiskType }).(pulumi.StringOutput) } // Labels to apply to this disk. These can be later modified by the disks.setLabels method. This field is only applicable for persistent disks. func (o AttachedDiskInitializeParamsResponseOutput) Labels() pulumi.StringMapOutput { return o.ApplyT(func(v AttachedDiskInitializeParamsResponse) map[string]string { return v.Labels }).(pulumi.StringMapOutput) } // A list of publicly visible licenses. Reserved for Google's use. func (o AttachedDiskInitializeParamsResponseOutput) Licenses() pulumi.StringArrayOutput { return o.ApplyT(func(v AttachedDiskInitializeParamsResponse) []string { return v.Licenses }).(pulumi.StringArrayOutput) } // Specifies which action to take on instance update with this disk. Default is to use the existing disk. func (o AttachedDiskInitializeParamsResponseOutput) OnUpdateAction() pulumi.StringOutput { return o.ApplyT(func(v AttachedDiskInitializeParamsResponse) string { return v.OnUpdateAction }).(pulumi.StringOutput) } // Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle. Values must be between 10,000 and 120,000. For more details, see the Extreme persistent disk documentation. func (o AttachedDiskInitializeParamsResponseOutput) ProvisionedIops() pulumi.StringOutput { return o.ApplyT(func(v AttachedDiskInitializeParamsResponse) string { return v.ProvisionedIops }).(pulumi.StringOutput) } // Resource policies applied to this disk for automatic snapshot creations. Specified using the full or partial URL. For instance template, specify only the resource policy name. func (o AttachedDiskInitializeParamsResponseOutput) ResourcePolicies() pulumi.StringArrayOutput { return o.ApplyT(func(v AttachedDiskInitializeParamsResponse) []string { return v.ResourcePolicies }).(pulumi.StringArrayOutput) } // The source image to create this disk. When creating a new instance, one of initializeParams.sourceImage or initializeParams.sourceSnapshot or disks.source is required except for local SSD. To create a disk with one of the public operating system images, specify the image by its family name. For example, specify family/debian-9 to use the latest Debian 9 image: projects/debian-cloud/global/images/family/debian-9 Alternatively, use a specific version of a public operating system image: projects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD To create a disk with a custom image that you created, specify the image name in the following format: global/images/my-custom-image You can also specify a custom image by its image family, which returns the latest version of the image in that family. Replace the image name with family/family-name: global/images/family/my-image-family If the source image is deleted later, this field will not be set. func (o AttachedDiskInitializeParamsResponseOutput) SourceImage() pulumi.StringOutput { return o.ApplyT(func(v AttachedDiskInitializeParamsResponse) string { return v.SourceImage }).(pulumi.StringOutput) } // The customer-supplied encryption key of the source image. Required if the source image is protected by a customer-supplied encryption key. Instance templates do not store customer-supplied encryption keys, so you cannot create disks for instances in a managed instance group if the source images are encrypted with your own keys. func (o AttachedDiskInitializeParamsResponseOutput) SourceImageEncryptionKey() CustomerEncryptionKeyResponseOutput { return o.ApplyT(func(v AttachedDiskInitializeParamsResponse) CustomerEncryptionKeyResponse { return v.SourceImageEncryptionKey }).(CustomerEncryptionKeyResponseOutput) } // The source snapshot to create this disk. When creating a new instance, one of initializeParams.sourceSnapshot or initializeParams.sourceImage or disks.source is required except for local SSD. To create a disk with a snapshot that you created, specify the snapshot name in the following format: global/snapshots/my-backup If the source snapshot is deleted later, this field will not be set. func (o AttachedDiskInitializeParamsResponseOutput) SourceSnapshot() pulumi.StringOutput { return o.ApplyT(func(v AttachedDiskInitializeParamsResponse) string { return v.SourceSnapshot }).(pulumi.StringOutput) } // The customer-supplied encryption key of the source snapshot. func (o AttachedDiskInitializeParamsResponseOutput) SourceSnapshotEncryptionKey() CustomerEncryptionKeyResponseOutput { return o.ApplyT(func(v AttachedDiskInitializeParamsResponse) CustomerEncryptionKeyResponse { return v.SourceSnapshotEncryptionKey }).(CustomerEncryptionKeyResponseOutput) } // An instance-attached disk resource. type AttachedDiskResponse struct { // Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance). AutoDelete bool `pulumi:"autoDelete"` // Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem. Boot bool `pulumi:"boot"` // Specifies a unique device name of your choice that is reflected into the /dev/disk/by-id/google-* tree of a Linux operating system running within the instance. This name can be used to reference the device for mounting, resizing, and so on, from within the instance. If not specified, the server chooses a default device name to apply to this disk, in the form persistent-disk-x, where x is a number assigned by Google Compute Engine. This field is only applicable for persistent disks. DeviceName string `pulumi:"deviceName"` // Encrypts or decrypts a disk using a customer-supplied encryption key. If you are creating a new disk, this field encrypts the new disk using an encryption key that you provide. If you are attaching an existing disk that is already encrypted, this field decrypts the disk using the customer-supplied encryption key. If you encrypt a disk using a customer-supplied key, you must provide the same key again when you attempt to use this resource at a later time. For example, you must provide the key when you create a snapshot or an image from the disk or when you attach the disk to a virtual machine instance. If you do not provide an encryption key, then the disk will be encrypted using an automatically generated key and you do not need to provide a key to use the disk later. Instance templates do not store customer-supplied encryption keys, so you cannot use your own keys to encrypt disks in a managed instance group. DiskEncryptionKey CustomerEncryptionKeyResponse `pulumi:"diskEncryptionKey"` // The size of the disk in GB. DiskSizeGb string `pulumi:"diskSizeGb"` // A list of features to enable on the guest operating system. Applicable only for bootable images. Read Enabling guest operating system features to see a list of available options. GuestOsFeatures []GuestOsFeatureResponse `pulumi:"guestOsFeatures"` // A zero-based index to this disk, where 0 is reserved for the boot disk. If you have many disks attached to an instance, each disk would have a unique index number. Index int `pulumi:"index"` // [Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. This property is mutually exclusive with the source property; you can only define one or the other, but not both. InitializeParams AttachedDiskInitializeParamsResponse `pulumi:"initializeParams"` // Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI. Persistent disks must always use SCSI and the request will fail if you attempt to attach a persistent disk in any other format than SCSI. Local SSDs can use either NVME or SCSI. For performance characteristics of SCSI over NVMe, see Local SSD performance. Interface string `pulumi:"interface"` // Type of the resource. Always compute#attachedDisk for attached disks. Kind string `pulumi:"kind"` // Any valid publicly visible licenses. Licenses []string `pulumi:"licenses"` // The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If not specified, the default is to attach the disk in READ_WRITE mode. Mode string `pulumi:"mode"` // shielded vm initial state stored on disk ShieldedInstanceInitialState InitialStateConfigResponse `pulumi:"shieldedInstanceInitialState"` // Specifies a valid partial or full URL to an existing Persistent Disk resource. When creating a new instance, one of initializeParams.sourceImage or initializeParams.sourceSnapshot or disks.source is required except for local SSD. If desired, you can also attach existing non-root persistent disks using this property. This field is only applicable for persistent disks. Note that for InstanceTemplate, specify the disk name for zonal disk, and the URL for regional disk. Source string `pulumi:"source"` // Specifies the type of the disk, either SCRATCH or PERSISTENT. If not specified, the default is PERSISTENT. Type string `pulumi:"type"` } // An instance-attached disk resource. type AttachedDiskResponseOutput struct{ *pulumi.OutputState } func (AttachedDiskResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*AttachedDiskResponse)(nil)).Elem() } func (o AttachedDiskResponseOutput) ToAttachedDiskResponseOutput() AttachedDiskResponseOutput { return o } func (o AttachedDiskResponseOutput) ToAttachedDiskResponseOutputWithContext(ctx context.Context) AttachedDiskResponseOutput { return o } // Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance). func (o AttachedDiskResponseOutput) AutoDelete() pulumi.BoolOutput { return o.ApplyT(func(v AttachedDiskResponse) bool { return v.AutoDelete }).(pulumi.BoolOutput) } // Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem. func (o AttachedDiskResponseOutput) Boot() pulumi.BoolOutput { return o.ApplyT(func(v AttachedDiskResponse) bool { return v.Boot }).(pulumi.BoolOutput) } // Specifies a unique device name of your choice that is reflected into the /dev/disk/by-id/google-* tree of a Linux operating system running within the instance. This name can be used to reference the device for mounting, resizing, and so on, from within the instance. If not specified, the server chooses a default device name to apply to this disk, in the form persistent-disk-x, where x is a number assigned by Google Compute Engine. This field is only applicable for persistent disks. func (o AttachedDiskResponseOutput) DeviceName() pulumi.StringOutput { return o.ApplyT(func(v AttachedDiskResponse) string { return v.DeviceName }).(pulumi.StringOutput) } // Encrypts or decrypts a disk using a customer-supplied encryption key. If you are creating a new disk, this field encrypts the new disk using an encryption key that you provide. If you are attaching an existing disk that is already encrypted, this field decrypts the disk using the customer-supplied encryption key. If you encrypt a disk using a customer-supplied key, you must provide the same key again when you attempt to use this resource at a later time. For example, you must provide the key when you create a snapshot or an image from the disk or when you attach the disk to a virtual machine instance. If you do not provide an encryption key, then the disk will be encrypted using an automatically generated key and you do not need to provide a key to use the disk later. Instance templates do not store customer-supplied encryption keys, so you cannot use your own keys to encrypt disks in a managed instance group. func (o AttachedDiskResponseOutput) DiskEncryptionKey() CustomerEncryptionKeyResponseOutput { return o.ApplyT(func(v AttachedDiskResponse) CustomerEncryptionKeyResponse { return v.DiskEncryptionKey }).(CustomerEncryptionKeyResponseOutput) } // The size of the disk in GB. func (o AttachedDiskResponseOutput) DiskSizeGb() pulumi.StringOutput { return o.ApplyT(func(v AttachedDiskResponse) string { return v.DiskSizeGb }).(pulumi.StringOutput) } // A list of features to enable on the guest operating system. Applicable only for bootable images. Read Enabling guest operating system features to see a list of available options. func (o AttachedDiskResponseOutput) GuestOsFeatures() GuestOsFeatureResponseArrayOutput { return o.ApplyT(func(v AttachedDiskResponse) []GuestOsFeatureResponse { return v.GuestOsFeatures }).(GuestOsFeatureResponseArrayOutput) } // A zero-based index to this disk, where 0 is reserved for the boot disk. If you have many disks attached to an instance, each disk would have a unique index number. func (o AttachedDiskResponseOutput) Index() pulumi.IntOutput { return o.ApplyT(func(v AttachedDiskResponse) int { return v.Index }).(pulumi.IntOutput) } // [Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. This property is mutually exclusive with the source property; you can only define one or the other, but not both. func (o AttachedDiskResponseOutput) InitializeParams() AttachedDiskInitializeParamsResponseOutput { return o.ApplyT(func(v AttachedDiskResponse) AttachedDiskInitializeParamsResponse { return v.InitializeParams }).(AttachedDiskInitializeParamsResponseOutput) } // Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI. Persistent disks must always use SCSI and the request will fail if you attempt to attach a persistent disk in any other format than SCSI. Local SSDs can use either NVME or SCSI. For performance characteristics of SCSI over NVMe, see Local SSD performance. func (o AttachedDiskResponseOutput) Interface() pulumi.StringOutput { return o.ApplyT(func(v AttachedDiskResponse) string { return v.Interface }).(pulumi.StringOutput) } // Type of the resource. Always compute#attachedDisk for attached disks. func (o AttachedDiskResponseOutput) Kind() pulumi.StringOutput { return o.ApplyT(func(v AttachedDiskResponse) string { return v.Kind }).(pulumi.StringOutput) } // Any valid publicly visible licenses. func (o AttachedDiskResponseOutput) Licenses() pulumi.StringArrayOutput { return o.ApplyT(func(v AttachedDiskResponse) []string { return v.Licenses }).(pulumi.StringArrayOutput) } // The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If not specified, the default is to attach the disk in READ_WRITE mode. func (o AttachedDiskResponseOutput) Mode() pulumi.StringOutput { return o.ApplyT(func(v AttachedDiskResponse) string { return v.Mode }).(pulumi.StringOutput) } // shielded vm initial state stored on disk func (o AttachedDiskResponseOutput) ShieldedInstanceInitialState() InitialStateConfigResponseOutput { return o.ApplyT(func(v AttachedDiskResponse) InitialStateConfigResponse { return v.ShieldedInstanceInitialState }).(InitialStateConfigResponseOutput) } // Specifies a valid partial or full URL to an existing Persistent Disk resource. When creating a new instance, one of initializeParams.sourceImage or initializeParams.sourceSnapshot or disks.source is required except for local SSD. If desired, you can also attach existing non-root persistent disks using this property. This field is only applicable for persistent disks. Note that for InstanceTemplate, specify the disk name for zonal disk, and the URL for regional disk. func (o AttachedDiskResponseOutput) Source() pulumi.StringOutput { return o.ApplyT(func(v AttachedDiskResponse) string { return v.Source }).(pulumi.StringOutput) } // Specifies the type of the disk, either SCRATCH or PERSISTENT. If not specified, the default is PERSISTENT. func (o AttachedDiskResponseOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v AttachedDiskResponse) string { return v.Type }).(pulumi.StringOutput) } type AttachedDiskResponseArrayOutput struct{ *pulumi.OutputState } func (AttachedDiskResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]AttachedDiskResponse)(nil)).Elem() } func (o AttachedDiskResponseArrayOutput) ToAttachedDiskResponseArrayOutput() AttachedDiskResponseArrayOutput { return o } func (o AttachedDiskResponseArrayOutput) ToAttachedDiskResponseArrayOutputWithContext(ctx context.Context) AttachedDiskResponseArrayOutput { return o } func (o AttachedDiskResponseArrayOutput) Index(i pulumi.IntInput) AttachedDiskResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) AttachedDiskResponse { return vs[0].([]AttachedDiskResponse)[vs[1].(int)] }).(AttachedDiskResponseOutput) } // Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging. type AuditConfig struct { // The configuration for logging of each type of permission. AuditLogConfigs []AuditLogConfig `pulumi:"auditLogConfigs"` // This is deprecated and has no effect. Do not use. ExemptedMembers []string `pulumi:"exemptedMembers"` // Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. Service *string `pulumi:"service"` } // AuditConfigInput is an input type that accepts AuditConfigArgs and AuditConfigOutput values. // You can construct a concrete instance of `AuditConfigInput` via: // // AuditConfigArgs{...} type AuditConfigInput interface { pulumi.Input ToAuditConfigOutput() AuditConfigOutput ToAuditConfigOutputWithContext(context.Context) AuditConfigOutput } // Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging. type AuditConfigArgs struct { // The configuration for logging of each type of permission. AuditLogConfigs AuditLogConfigArrayInput `pulumi:"auditLogConfigs"` // This is deprecated and has no effect. Do not use. ExemptedMembers pulumi.StringArrayInput `pulumi:"exemptedMembers"` // Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. Service pulumi.StringPtrInput `pulumi:"service"` } func (AuditConfigArgs) ElementType() reflect.Type { return reflect.TypeOf((*AuditConfig)(nil)).Elem() } func (i AuditConfigArgs) ToAuditConfigOutput() AuditConfigOutput { return i.ToAuditConfigOutputWithContext(context.Background()) } func (i AuditConfigArgs) ToAuditConfigOutputWithContext(ctx context.Context) AuditConfigOutput { return pulumi.ToOutputWithContext(ctx, i).(AuditConfigOutput) } // AuditConfigArrayInput is an input type that accepts AuditConfigArray and AuditConfigArrayOutput values. // You can construct a concrete instance of `AuditConfigArrayInput` via: // // AuditConfigArray{ AuditConfigArgs{...} } type AuditConfigArrayInput interface { pulumi.Input ToAuditConfigArrayOutput() AuditConfigArrayOutput ToAuditConfigArrayOutputWithContext(context.Context) AuditConfigArrayOutput } type AuditConfigArray []AuditConfigInput func (AuditConfigArray) ElementType() reflect.Type { return reflect.TypeOf((*[]AuditConfig)(nil)).Elem() } func (i AuditConfigArray) ToAuditConfigArrayOutput() AuditConfigArrayOutput { return i.ToAuditConfigArrayOutputWithContext(context.Background()) } func (i AuditConfigArray) ToAuditConfigArrayOutputWithContext(ctx context.Context) AuditConfigArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(AuditConfigArrayOutput) } // Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging. type AuditConfigOutput struct{ *pulumi.OutputState } func (AuditConfigOutput) ElementType() reflect.Type { return reflect.TypeOf((*AuditConfig)(nil)).Elem() } func (o AuditConfigOutput) ToAuditConfigOutput() AuditConfigOutput { return o } func (o AuditConfigOutput) ToAuditConfigOutputWithContext(ctx context.Context) AuditConfigOutput { return o } // The configuration for logging of each type of permission. func (o AuditConfigOutput) AuditLogConfigs() AuditLogConfigArrayOutput { return o.ApplyT(func(v AuditConfig) []AuditLogConfig { return v.AuditLogConfigs }).(AuditLogConfigArrayOutput) } // This is deprecated and has no effect. Do not use. func (o AuditConfigOutput) ExemptedMembers() pulumi.StringArrayOutput { return o.ApplyT(func(v AuditConfig) []string { return v.ExemptedMembers }).(pulumi.StringArrayOutput) } // Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. func (o AuditConfigOutput) Service() pulumi.StringPtrOutput { return o.ApplyT(func(v AuditConfig) *string { return v.Service }).(pulumi.StringPtrOutput) } type AuditConfigArrayOutput struct{ *pulumi.OutputState } func (AuditConfigArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]AuditConfig)(nil)).Elem() } func (o AuditConfigArrayOutput) ToAuditConfigArrayOutput() AuditConfigArrayOutput { return o } func (o AuditConfigArrayOutput) ToAuditConfigArrayOutputWithContext(ctx context.Context) AuditConfigArrayOutput { return o } func (o AuditConfigArrayOutput) Index(i pulumi.IntInput) AuditConfigOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) AuditConfig { return vs[0].([]AuditConfig)[vs[1].(int)] }).(AuditConfigOutput) } // Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging. type AuditConfigResponse struct { // The configuration for logging of each type of permission. AuditLogConfigs []AuditLogConfigResponse `pulumi:"auditLogConfigs"` // This is deprecated and has no effect. Do not use. ExemptedMembers []string `pulumi:"exemptedMembers"` // Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. Service string `pulumi:"service"` } // Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging. type AuditConfigResponseOutput struct{ *pulumi.OutputState } func (AuditConfigResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*AuditConfigResponse)(nil)).Elem() } func (o AuditConfigResponseOutput) ToAuditConfigResponseOutput() AuditConfigResponseOutput { return o } func (o AuditConfigResponseOutput) ToAuditConfigResponseOutputWithContext(ctx context.Context) AuditConfigResponseOutput { return o } // The configuration for logging of each type of permission. func (o AuditConfigResponseOutput) AuditLogConfigs() AuditLogConfigResponseArrayOutput { return o.ApplyT(func(v AuditConfigResponse) []AuditLogConfigResponse { return v.AuditLogConfigs }).(AuditLogConfigResponseArrayOutput) } // This is deprecated and has no effect. Do not use. func (o AuditConfigResponseOutput) ExemptedMembers() pulumi.StringArrayOutput { return o.ApplyT(func(v AuditConfigResponse) []string { return v.ExemptedMembers }).(pulumi.StringArrayOutput) } // Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services. func (o AuditConfigResponseOutput) Service() pulumi.StringOutput { return o.ApplyT(func(v AuditConfigResponse) string { return v.Service }).(pulumi.StringOutput) } type AuditConfigResponseArrayOutput struct{ *pulumi.OutputState } func (AuditConfigResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]AuditConfigResponse)(nil)).Elem() } func (o AuditConfigResponseArrayOutput) ToAuditConfigResponseArrayOutput() AuditConfigResponseArrayOutput { return o } func (o AuditConfigResponseArrayOutput) ToAuditConfigResponseArrayOutputWithContext(ctx context.Context) AuditConfigResponseArrayOutput { return o } func (o AuditConfigResponseArrayOutput) Index(i pulumi.IntInput) AuditConfigResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) AuditConfigResponse { return vs[0].([]AuditConfigResponse)[vs[1].(int)] }).(AuditConfigResponseOutput) } // Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. type AuditLogConfig struct { // Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. ExemptedMembers []string `pulumi:"exemptedMembers"` // This is deprecated and has no effect. Do not use. IgnoreChildExemptions *bool `pulumi:"ignoreChildExemptions"` // The log type that this config enables. LogType *AuditLogConfigLogType `pulumi:"logType"` } // AuditLogConfigInput is an input type that accepts AuditLogConfigArgs and AuditLogConfigOutput values. // You can construct a concrete instance of `AuditLogConfigInput` via: // // AuditLogConfigArgs{...} type AuditLogConfigInput interface { pulumi.Input ToAuditLogConfigOutput() AuditLogConfigOutput ToAuditLogConfigOutputWithContext(context.Context) AuditLogConfigOutput } // Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. type AuditLogConfigArgs struct { // Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. ExemptedMembers pulumi.StringArrayInput `pulumi:"exemptedMembers"` // This is deprecated and has no effect. Do not use. IgnoreChildExemptions pulumi.BoolPtrInput `pulumi:"ignoreChildExemptions"` // The log type that this config enables. LogType AuditLogConfigLogTypePtrInput `pulumi:"logType"` } func (AuditLogConfigArgs) ElementType() reflect.Type { return reflect.TypeOf((*AuditLogConfig)(nil)).Elem() } func (i AuditLogConfigArgs) ToAuditLogConfigOutput() AuditLogConfigOutput { return i.ToAuditLogConfigOutputWithContext(context.Background()) } func (i AuditLogConfigArgs) ToAuditLogConfigOutputWithContext(ctx context.Context) AuditLogConfigOutput { return pulumi.ToOutputWithContext(ctx, i).(AuditLogConfigOutput) } // AuditLogConfigArrayInput is an input type that accepts AuditLogConfigArray and AuditLogConfigArrayOutput values. // You can construct a concrete instance of `AuditLogConfigArrayInput` via: // // AuditLogConfigArray{ AuditLogConfigArgs{...} } type AuditLogConfigArrayInput interface { pulumi.Input ToAuditLogConfigArrayOutput() AuditLogConfigArrayOutput ToAuditLogConfigArrayOutputWithContext(context.Context) AuditLogConfigArrayOutput } type AuditLogConfigArray []AuditLogConfigInput func (AuditLogConfigArray) ElementType() reflect.Type { return reflect.TypeOf((*[]AuditLogConfig)(nil)).Elem() } func (i AuditLogConfigArray) ToAuditLogConfigArrayOutput() AuditLogConfigArrayOutput { return i.ToAuditLogConfigArrayOutputWithContext(context.Background()) } func (i AuditLogConfigArray) ToAuditLogConfigArrayOutputWithContext(ctx context.Context) AuditLogConfigArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(AuditLogConfigArrayOutput) } // Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. type AuditLogConfigOutput struct{ *pulumi.OutputState } func (AuditLogConfigOutput) ElementType() reflect.Type { return reflect.TypeOf((*AuditLogConfig)(nil)).Elem() } func (o AuditLogConfigOutput) ToAuditLogConfigOutput() AuditLogConfigOutput { return o } func (o AuditLogConfigOutput) ToAuditLogConfigOutputWithContext(ctx context.Context) AuditLogConfigOutput { return o } // Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. func (o AuditLogConfigOutput) ExemptedMembers() pulumi.StringArrayOutput { return o.ApplyT(func(v AuditLogConfig) []string { return v.ExemptedMembers }).(pulumi.StringArrayOutput) } // This is deprecated and has no effect. Do not use. func (o AuditLogConfigOutput) IgnoreChildExemptions() pulumi.BoolPtrOutput { return o.ApplyT(func(v AuditLogConfig) *bool { return v.IgnoreChildExemptions }).(pulumi.BoolPtrOutput) } // The log type that this config enables. func (o AuditLogConfigOutput) LogType() AuditLogConfigLogTypePtrOutput { return o.ApplyT(func(v AuditLogConfig) *AuditLogConfigLogType { return v.LogType }).(AuditLogConfigLogTypePtrOutput) } type AuditLogConfigArrayOutput struct{ *pulumi.OutputState } func (AuditLogConfigArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]AuditLogConfig)(nil)).Elem() } func (o AuditLogConfigArrayOutput) ToAuditLogConfigArrayOutput() AuditLogConfigArrayOutput { return o } func (o AuditLogConfigArrayOutput) ToAuditLogConfigArrayOutputWithContext(ctx context.Context) AuditLogConfigArrayOutput { return o } func (o AuditLogConfigArrayOutput) Index(i pulumi.IntInput) AuditLogConfigOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) AuditLogConfig { return vs[0].([]AuditLogConfig)[vs[1].(int)] }).(AuditLogConfigOutput) } // Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. type AuditLogConfigResponse struct { // Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. ExemptedMembers []string `pulumi:"exemptedMembers"` // This is deprecated and has no effect. Do not use. IgnoreChildExemptions bool `pulumi:"ignoreChildExemptions"` // The log type that this config enables. LogType string `pulumi:"logType"` } // Provides the configuration for logging a type of permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging. type AuditLogConfigResponseOutput struct{ *pulumi.OutputState } func (AuditLogConfigResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*AuditLogConfigResponse)(nil)).Elem() } func (o AuditLogConfigResponseOutput) ToAuditLogConfigResponseOutput() AuditLogConfigResponseOutput { return o } func (o AuditLogConfigResponseOutput) ToAuditLogConfigResponseOutputWithContext(ctx context.Context) AuditLogConfigResponseOutput { return o } // Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. func (o AuditLogConfigResponseOutput) ExemptedMembers() pulumi.StringArrayOutput { return o.ApplyT(func(v AuditLogConfigResponse) []string { return v.ExemptedMembers }).(pulumi.StringArrayOutput) } // This is deprecated and has no effect. Do not use. func (o AuditLogConfigResponseOutput) IgnoreChildExemptions() pulumi.BoolOutput { return o.ApplyT(func(v AuditLogConfigResponse) bool { return v.IgnoreChildExemptions }).(pulumi.BoolOutput) } // The log type that this config enables. func (o AuditLogConfigResponseOutput) LogType() pulumi.StringOutput { return o.ApplyT(func(v AuditLogConfigResponse) string { return v.LogType }).(pulumi.StringOutput) } type AuditLogConfigResponseArrayOutput struct{ *pulumi.OutputState } func (AuditLogConfigResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]AuditLogConfigResponse)(nil)).Elem() } func (o AuditLogConfigResponseArrayOutput) ToAuditLogConfigResponseArrayOutput() AuditLogConfigResponseArrayOutput { return o } func (o AuditLogConfigResponseArrayOutput) ToAuditLogConfigResponseArrayOutputWithContext(ctx context.Context) AuditLogConfigResponseArrayOutput { return o } func (o AuditLogConfigResponseArrayOutput) Index(i pulumi.IntInput) AuditLogConfigResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) AuditLogConfigResponse { return vs[0].([]AuditLogConfigResponse)[vs[1].(int)] }).(AuditLogConfigResponseOutput) } // This is deprecated and has no effect. Do not use. type AuthorizationLoggingOptions struct { // This is deprecated and has no effect. Do not use. PermissionType *AuthorizationLoggingOptionsPermissionType `pulumi:"permissionType"` } // AuthorizationLoggingOptionsInput is an input type that accepts AuthorizationLoggingOptionsArgs and AuthorizationLoggingOptionsOutput values. // You can construct a concrete instance of `AuthorizationLoggingOptionsInput` via: // // AuthorizationLoggingOptionsArgs{...} type AuthorizationLoggingOptionsInput interface { pulumi.Input ToAuthorizationLoggingOptionsOutput() AuthorizationLoggingOptionsOutput ToAuthorizationLoggingOptionsOutputWithContext(context.Context) AuthorizationLoggingOptionsOutput } // This is deprecated and has no effect. Do not use. type AuthorizationLoggingOptionsArgs struct { // This is deprecated and has no effect. Do not use. PermissionType AuthorizationLoggingOptionsPermissionTypePtrInput `pulumi:"permissionType"` } func (AuthorizationLoggingOptionsArgs) ElementType() reflect.Type { return reflect.TypeOf((*AuthorizationLoggingOptions)(nil)).Elem() } func (i AuthorizationLoggingOptionsArgs) ToAuthorizationLoggingOptionsOutput() AuthorizationLoggingOptionsOutput { return i.ToAuthorizationLoggingOptionsOutputWithContext(context.Background()) } func (i AuthorizationLoggingOptionsArgs) ToAuthorizationLoggingOptionsOutputWithContext(ctx context.Context) AuthorizationLoggingOptionsOutput { return pulumi.ToOutputWithContext(ctx, i).(AuthorizationLoggingOptionsOutput) } func (i AuthorizationLoggingOptionsArgs) ToAuthorizationLoggingOptionsPtrOutput() AuthorizationLoggingOptionsPtrOutput { return i.ToAuthorizationLoggingOptionsPtrOutputWithContext(context.Background()) } func (i AuthorizationLoggingOptionsArgs) ToAuthorizationLoggingOptionsPtrOutputWithContext(ctx context.Context) AuthorizationLoggingOptionsPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(AuthorizationLoggingOptionsOutput).ToAuthorizationLoggingOptionsPtrOutputWithContext(ctx) } // AuthorizationLoggingOptionsPtrInput is an input type that accepts AuthorizationLoggingOptionsArgs, AuthorizationLoggingOptionsPtr and AuthorizationLoggingOptionsPtrOutput values. // You can construct a concrete instance of `AuthorizationLoggingOptionsPtrInput` via: // // AuthorizationLoggingOptionsArgs{...} // // or: // // nil type AuthorizationLoggingOptionsPtrInput interface { pulumi.Input ToAuthorizationLoggingOptionsPtrOutput() AuthorizationLoggingOptionsPtrOutput ToAuthorizationLoggingOptionsPtrOutputWithContext(context.Context) AuthorizationLoggingOptionsPtrOutput } type authorizationLoggingOptionsPtrType AuthorizationLoggingOptionsArgs func AuthorizationLoggingOptionsPtr(v *AuthorizationLoggingOptionsArgs) AuthorizationLoggingOptionsPtrInput { return (*authorizationLoggingOptionsPtrType)(v) } func (*authorizationLoggingOptionsPtrType) ElementType() reflect.Type { return reflect.TypeOf((**AuthorizationLoggingOptions)(nil)).Elem() } func (i *authorizationLoggingOptionsPtrType) ToAuthorizationLoggingOptionsPtrOutput() AuthorizationLoggingOptionsPtrOutput { return i.ToAuthorizationLoggingOptionsPtrOutputWithContext(context.Background()) } func (i *authorizationLoggingOptionsPtrType) ToAuthorizationLoggingOptionsPtrOutputWithContext(ctx context.Context) AuthorizationLoggingOptionsPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(AuthorizationLoggingOptionsPtrOutput) } // This is deprecated and has no effect. Do not use. type AuthorizationLoggingOptionsOutput struct{ *pulumi.OutputState } func (AuthorizationLoggingOptionsOutput) ElementType() reflect.Type { return reflect.TypeOf((*AuthorizationLoggingOptions)(nil)).Elem() } func (o AuthorizationLoggingOptionsOutput) ToAuthorizationLoggingOptionsOutput() AuthorizationLoggingOptionsOutput { return o } func (o AuthorizationLoggingOptionsOutput) ToAuthorizationLoggingOptionsOutputWithContext(ctx context.Context) AuthorizationLoggingOptionsOutput { return o } func (o AuthorizationLoggingOptionsOutput) ToAuthorizationLoggingOptionsPtrOutput() AuthorizationLoggingOptionsPtrOutput { return o.ToAuthorizationLoggingOptionsPtrOutputWithContext(context.Background()) } func (o AuthorizationLoggingOptionsOutput) ToAuthorizationLoggingOptionsPtrOutputWithContext(ctx context.Context) AuthorizationLoggingOptionsPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v AuthorizationLoggingOptions) *AuthorizationLoggingOptions { return &v }).(AuthorizationLoggingOptionsPtrOutput) } // This is deprecated and has no effect. Do not use. func (o AuthorizationLoggingOptionsOutput) PermissionType() AuthorizationLoggingOptionsPermissionTypePtrOutput { return o.ApplyT(func(v AuthorizationLoggingOptions) *AuthorizationLoggingOptionsPermissionType { return v.PermissionType }).(AuthorizationLoggingOptionsPermissionTypePtrOutput) } type AuthorizationLoggingOptionsPtrOutput struct{ *pulumi.OutputState } func (AuthorizationLoggingOptionsPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**AuthorizationLoggingOptions)(nil)).Elem() } func (o AuthorizationLoggingOptionsPtrOutput) ToAuthorizationLoggingOptionsPtrOutput() AuthorizationLoggingOptionsPtrOutput { return o } func (o AuthorizationLoggingOptionsPtrOutput) ToAuthorizationLoggingOptionsPtrOutputWithContext(ctx context.Context) AuthorizationLoggingOptionsPtrOutput { return o } func (o AuthorizationLoggingOptionsPtrOutput) Elem() AuthorizationLoggingOptionsOutput { return o.ApplyT(func(v *AuthorizationLoggingOptions) AuthorizationLoggingOptions { if v != nil { return *v } var ret AuthorizationLoggingOptions return ret }).(AuthorizationLoggingOptionsOutput) } // This is deprecated and has no effect. Do not use. func (o AuthorizationLoggingOptionsPtrOutput) PermissionType() AuthorizationLoggingOptionsPermissionTypePtrOutput { return o.ApplyT(func(v *AuthorizationLoggingOptions) *AuthorizationLoggingOptionsPermissionType { if v == nil { return nil } return v.PermissionType }).(AuthorizationLoggingOptionsPermissionTypePtrOutput) } // This is deprecated and has no effect. Do not use. type AuthorizationLoggingOptionsResponse struct { // This is deprecated and has no effect. Do not use. PermissionType string `pulumi:"permissionType"` } // This is deprecated and has no effect. Do not use. type AuthorizationLoggingOptionsResponseOutput struct{ *pulumi.OutputState } func (AuthorizationLoggingOptionsResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*AuthorizationLoggingOptionsResponse)(nil)).Elem() } func (o AuthorizationLoggingOptionsResponseOutput) ToAuthorizationLoggingOptionsResponseOutput() AuthorizationLoggingOptionsResponseOutput { return o } func (o AuthorizationLoggingOptionsResponseOutput) ToAuthorizationLoggingOptionsResponseOutputWithContext(ctx context.Context) AuthorizationLoggingOptionsResponseOutput { return o } // This is deprecated and has no effect. Do not use. func (o AuthorizationLoggingOptionsResponseOutput) PermissionType() pulumi.StringOutput { return o.ApplyT(func(v AuthorizationLoggingOptionsResponse) string { return v.PermissionType }).(pulumi.StringOutput) } type AutoscalerStatusDetailsResponse struct { // The status message. Message string `pulumi:"message"` // The type of error, warning, or notice returned. Current set of possible values: - ALL_INSTANCES_UNHEALTHY (WARNING): All instances in the instance group are unhealthy (not in RUNNING state). - BACKEND_SERVICE_DOES_NOT_EXIST (ERROR): There is no backend service attached to the instance group. - CAPPED_AT_MAX_NUM_REPLICAS (WARNING): Autoscaler recommends a size greater than maxNumReplicas. - CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE (WARNING): The custom metric samples are not exported often enough to be a credible base for autoscaling. - CUSTOM_METRIC_INVALID (ERROR): The custom metric that was specified does not exist or does not have the necessary labels. - MIN_EQUALS_MAX (WARNING): The minNumReplicas is equal to maxNumReplicas. This means the autoscaler cannot add or remove instances from the instance group. - MISSING_CUSTOM_METRIC_DATA_POINTS (WARNING): The autoscaler did not receive any data from the custom metric configured for autoscaling. - MISSING_LOAD_BALANCING_DATA_POINTS (WARNING): The autoscaler is configured to scale based on a load balancing signal but the instance group has not received any requests from the load balancer. - MODE_OFF (WARNING): Autoscaling is turned off. The number of instances in the group won't change automatically. The autoscaling configuration is preserved. - MODE_ONLY_UP (WARNING): Autoscaling is in the "Autoscale only out" mode. The autoscaler can add instances but not remove any. - MORE_THAN_ONE_BACKEND_SERVICE (ERROR): The instance group cannot be autoscaled because it has more than one backend service attached to it. - NOT_ENOUGH_QUOTA_AVAILABLE (ERROR): There is insufficient quota for the necessary resources, such as CPU or number of instances. - REGION_RESOURCE_STOCKOUT (ERROR): Shown only for regional autoscalers: there is a resource stockout in the chosen region. - SCALING_TARGET_DOES_NOT_EXIST (ERROR): The target to be scaled does not exist. - UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION (ERROR): Autoscaling does not work with an HTTP/S load balancer that has been configured for maxRate. - ZONE_RESOURCE_STOCKOUT (ERROR): For zonal autoscalers: there is a resource stockout in the chosen zone. For regional autoscalers: in at least one of the zones you're using there is a resource stockout. New values might be added in the future. Some of the values might not be available in all API versions. Type string `pulumi:"type"` } type AutoscalerStatusDetailsResponseOutput struct{ *pulumi.OutputState } func (AutoscalerStatusDetailsResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*AutoscalerStatusDetailsResponse)(nil)).Elem() } func (o AutoscalerStatusDetailsResponseOutput) ToAutoscalerStatusDetailsResponseOutput() AutoscalerStatusDetailsResponseOutput { return o } func (o AutoscalerStatusDetailsResponseOutput) ToAutoscalerStatusDetailsResponseOutputWithContext(ctx context.Context) AutoscalerStatusDetailsResponseOutput { return o } // The status message. func (o AutoscalerStatusDetailsResponseOutput) Message() pulumi.StringOutput { return o.ApplyT(func(v AutoscalerStatusDetailsResponse) string { return v.Message }).(pulumi.StringOutput) } // The type of error, warning, or notice returned. Current set of possible values: - ALL_INSTANCES_UNHEALTHY (WARNING): All instances in the instance group are unhealthy (not in RUNNING state). - BACKEND_SERVICE_DOES_NOT_EXIST (ERROR): There is no backend service attached to the instance group. - CAPPED_AT_MAX_NUM_REPLICAS (WARNING): Autoscaler recommends a size greater than maxNumReplicas. - CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE (WARNING): The custom metric samples are not exported often enough to be a credible base for autoscaling. - CUSTOM_METRIC_INVALID (ERROR): The custom metric that was specified does not exist or does not have the necessary labels. - MIN_EQUALS_MAX (WARNING): The minNumReplicas is equal to maxNumReplicas. This means the autoscaler cannot add or remove instances from the instance group. - MISSING_CUSTOM_METRIC_DATA_POINTS (WARNING): The autoscaler did not receive any data from the custom metric configured for autoscaling. - MISSING_LOAD_BALANCING_DATA_POINTS (WARNING): The autoscaler is configured to scale based on a load balancing signal but the instance group has not received any requests from the load balancer. - MODE_OFF (WARNING): Autoscaling is turned off. The number of instances in the group won't change automatically. The autoscaling configuration is preserved. - MODE_ONLY_UP (WARNING): Autoscaling is in the "Autoscale only out" mode. The autoscaler can add instances but not remove any. - MORE_THAN_ONE_BACKEND_SERVICE (ERROR): The instance group cannot be autoscaled because it has more than one backend service attached to it. - NOT_ENOUGH_QUOTA_AVAILABLE (ERROR): There is insufficient quota for the necessary resources, such as CPU or number of instances. - REGION_RESOURCE_STOCKOUT (ERROR): Shown only for regional autoscalers: there is a resource stockout in the chosen region. - SCALING_TARGET_DOES_NOT_EXIST (ERROR): The target to be scaled does not exist. - UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION (ERROR): Autoscaling does not work with an HTTP/S load balancer that has been configured for maxRate. - ZONE_RESOURCE_STOCKOUT (ERROR): For zonal autoscalers: there is a resource stockout in the chosen zone. For regional autoscalers: in at least one of the zones you're using there is a resource stockout. New values might be added in the future. Some of the values might not be available in all API versions. func (o AutoscalerStatusDetailsResponseOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v AutoscalerStatusDetailsResponse) string { return v.Type }).(pulumi.StringOutput) } type AutoscalerStatusDetailsResponseArrayOutput struct{ *pulumi.OutputState } func (AutoscalerStatusDetailsResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]AutoscalerStatusDetailsResponse)(nil)).Elem() } func (o AutoscalerStatusDetailsResponseArrayOutput) ToAutoscalerStatusDetailsResponseArrayOutput() AutoscalerStatusDetailsResponseArrayOutput { return o } func (o AutoscalerStatusDetailsResponseArrayOutput) ToAutoscalerStatusDetailsResponseArrayOutputWithContext(ctx context.Context) AutoscalerStatusDetailsResponseArrayOutput { return o } func (o AutoscalerStatusDetailsResponseArrayOutput) Index(i pulumi.IntInput) AutoscalerStatusDetailsResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) AutoscalerStatusDetailsResponse { return vs[0].([]AutoscalerStatusDetailsResponse)[vs[1].(int)] }).(AutoscalerStatusDetailsResponseOutput) } // Cloud Autoscaler policy. type AutoscalingPolicy struct { // The number of seconds that the autoscaler waits before it starts collecting information from a new instance. This prevents the autoscaler from collecting information when the instance is initializing, during which the collected usage would not be reliable. The default time autoscaler waits is 60 seconds. Virtual machine initialization times might vary because of numerous factors. We recommend that you test how long an instance may take to initialize. To do this, create an instance and time the startup process. CoolDownPeriodSec *int `pulumi:"coolDownPeriodSec"` // Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group. CpuUtilization *AutoscalingPolicyCpuUtilization `pulumi:"cpuUtilization"` // Configuration parameters of autoscaling based on a custom metric. CustomMetricUtilizations []AutoscalingPolicyCustomMetricUtilization `pulumi:"customMetricUtilizations"` // Configuration parameters of autoscaling based on load balancer. LoadBalancingUtilization *AutoscalingPolicyLoadBalancingUtilization `pulumi:"loadBalancingUtilization"` // The maximum number of instances that the autoscaler can scale out to. This is required when creating or updating an autoscaler. The maximum number of replicas must not be lower than minimal number of replicas. MaxNumReplicas *int `pulumi:"maxNumReplicas"` // The minimum number of replicas that the autoscaler can scale in to. This cannot be less than 0. If not provided, autoscaler chooses a default value depending on maximum number of instances allowed. MinNumReplicas *int `pulumi:"minNumReplicas"` // Defines operating mode for this policy. Mode *AutoscalingPolicyMode `pulumi:"mode"` ScaleInControl *AutoscalingPolicyScaleInControl `pulumi:"scaleInControl"` // Scaling schedules defined for an autoscaler. Multiple schedules can be set on an autoscaler, and they can overlap. During overlapping periods the greatest min_required_replicas of all scaling schedules is applied. Up to 128 scaling schedules are allowed. ScalingSchedules map[string]string `pulumi:"scalingSchedules"` } // AutoscalingPolicyInput is an input type that accepts AutoscalingPolicyArgs and AutoscalingPolicyOutput values. // You can construct a concrete instance of `AutoscalingPolicyInput` via: // // AutoscalingPolicyArgs{...} type AutoscalingPolicyInput interface { pulumi.Input ToAutoscalingPolicyOutput() AutoscalingPolicyOutput ToAutoscalingPolicyOutputWithContext(context.Context) AutoscalingPolicyOutput } // Cloud Autoscaler policy. type AutoscalingPolicyArgs struct { // The number of seconds that the autoscaler waits before it starts collecting information from a new instance. This prevents the autoscaler from collecting information when the instance is initializing, during which the collected usage would not be reliable. The default time autoscaler waits is 60 seconds. Virtual machine initialization times might vary because of numerous factors. We recommend that you test how long an instance may take to initialize. To do this, create an instance and time the startup process. CoolDownPeriodSec pulumi.IntPtrInput `pulumi:"coolDownPeriodSec"` // Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group. CpuUtilization AutoscalingPolicyCpuUtilizationPtrInput `pulumi:"cpuUtilization"` // Configuration parameters of autoscaling based on a custom metric. CustomMetricUtilizations AutoscalingPolicyCustomMetricUtilizationArrayInput `pulumi:"customMetricUtilizations"` // Configuration parameters of autoscaling based on load balancer. LoadBalancingUtilization AutoscalingPolicyLoadBalancingUtilizationPtrInput `pulumi:"loadBalancingUtilization"` // The maximum number of instances that the autoscaler can scale out to. This is required when creating or updating an autoscaler. The maximum number of replicas must not be lower than minimal number of replicas. MaxNumReplicas pulumi.IntPtrInput `pulumi:"maxNumReplicas"` // The minimum number of replicas that the autoscaler can scale in to. This cannot be less than 0. If not provided, autoscaler chooses a default value depending on maximum number of instances allowed. MinNumReplicas pulumi.IntPtrInput `pulumi:"minNumReplicas"` // Defines operating mode for this policy. Mode AutoscalingPolicyModePtrInput `pulumi:"mode"` ScaleInControl AutoscalingPolicyScaleInControlPtrInput `pulumi:"scaleInControl"` // Scaling schedules defined for an autoscaler. Multiple schedules can be set on an autoscaler, and they can overlap. During overlapping periods the greatest min_required_replicas of all scaling schedules is applied. Up to 128 scaling schedules are allowed. ScalingSchedules pulumi.StringMapInput `pulumi:"scalingSchedules"` } func (AutoscalingPolicyArgs) ElementType() reflect.Type { return reflect.TypeOf((*AutoscalingPolicy)(nil)).Elem() } func (i AutoscalingPolicyArgs) ToAutoscalingPolicyOutput() AutoscalingPolicyOutput { return i.ToAutoscalingPolicyOutputWithContext(context.Background()) } func (i AutoscalingPolicyArgs) ToAutoscalingPolicyOutputWithContext(ctx context.Context) AutoscalingPolicyOutput { return pulumi.ToOutputWithContext(ctx, i).(AutoscalingPolicyOutput) } func (i AutoscalingPolicyArgs) ToAutoscalingPolicyPtrOutput() AutoscalingPolicyPtrOutput { return i.ToAutoscalingPolicyPtrOutputWithContext(context.Background()) } func (i AutoscalingPolicyArgs) ToAutoscalingPolicyPtrOutputWithContext(ctx context.Context) AutoscalingPolicyPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(AutoscalingPolicyOutput).ToAutoscalingPolicyPtrOutputWithContext(ctx) } // AutoscalingPolicyPtrInput is an input type that accepts AutoscalingPolicyArgs, AutoscalingPolicyPtr and AutoscalingPolicyPtrOutput values. // You can construct a concrete instance of `AutoscalingPolicyPtrInput` via: // // AutoscalingPolicyArgs{...} // // or: // // nil type AutoscalingPolicyPtrInput interface { pulumi.Input ToAutoscalingPolicyPtrOutput() AutoscalingPolicyPtrOutput ToAutoscalingPolicyPtrOutputWithContext(context.Context) AutoscalingPolicyPtrOutput } type autoscalingPolicyPtrType AutoscalingPolicyArgs func AutoscalingPolicyPtr(v *AutoscalingPolicyArgs) AutoscalingPolicyPtrInput { return (*autoscalingPolicyPtrType)(v) } func (*autoscalingPolicyPtrType) ElementType() reflect.Type { return reflect.TypeOf((**AutoscalingPolicy)(nil)).Elem() } func (i *autoscalingPolicyPtrType) ToAutoscalingPolicyPtrOutput() AutoscalingPolicyPtrOutput { return i.ToAutoscalingPolicyPtrOutputWithContext(context.Background()) } func (i *autoscalingPolicyPtrType) ToAutoscalingPolicyPtrOutputWithContext(ctx context.Context) AutoscalingPolicyPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(AutoscalingPolicyPtrOutput) } // Cloud Autoscaler policy. type AutoscalingPolicyOutput struct{ *pulumi.OutputState } func (AutoscalingPolicyOutput) ElementType() reflect.Type { return reflect.TypeOf((*AutoscalingPolicy)(nil)).Elem() } func (o AutoscalingPolicyOutput) ToAutoscalingPolicyOutput() AutoscalingPolicyOutput { return o } func (o AutoscalingPolicyOutput) ToAutoscalingPolicyOutputWithContext(ctx context.Context) AutoscalingPolicyOutput { return o } func (o AutoscalingPolicyOutput) ToAutoscalingPolicyPtrOutput() AutoscalingPolicyPtrOutput { return o.ToAutoscalingPolicyPtrOutputWithContext(context.Background()) } func (o AutoscalingPolicyOutput) ToAutoscalingPolicyPtrOutputWithContext(ctx context.Context) AutoscalingPolicyPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v AutoscalingPolicy) *AutoscalingPolicy { return &v }).(AutoscalingPolicyPtrOutput) } // The number of seconds that the autoscaler waits before it starts collecting information from a new instance. This prevents the autoscaler from collecting information when the instance is initializing, during which the collected usage would not be reliable. The default time autoscaler waits is 60 seconds. Virtual machine initialization times might vary because of numerous factors. We recommend that you test how long an instance may take to initialize. To do this, create an instance and time the startup process. func (o AutoscalingPolicyOutput) CoolDownPeriodSec() pulumi.IntPtrOutput { return o.ApplyT(func(v AutoscalingPolicy) *int { return v.CoolDownPeriodSec }).(pulumi.IntPtrOutput) } // Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group. func (o AutoscalingPolicyOutput) CpuUtilization() AutoscalingPolicyCpuUtilizationPtrOutput { return o.ApplyT(func(v AutoscalingPolicy) *AutoscalingPolicyCpuUtilization { return v.CpuUtilization }).(AutoscalingPolicyCpuUtilizationPtrOutput) } // Configuration parameters of autoscaling based on a custom metric. func (o AutoscalingPolicyOutput) CustomMetricUtilizations() AutoscalingPolicyCustomMetricUtilizationArrayOutput { return o.ApplyT(func(v AutoscalingPolicy) []AutoscalingPolicyCustomMetricUtilization { return v.CustomMetricUtilizations }).(AutoscalingPolicyCustomMetricUtilizationArrayOutput) } // Configuration parameters of autoscaling based on load balancer. func (o AutoscalingPolicyOutput) LoadBalancingUtilization() AutoscalingPolicyLoadBalancingUtilizationPtrOutput { return o.ApplyT(func(v AutoscalingPolicy) *AutoscalingPolicyLoadBalancingUtilization { return v.LoadBalancingUtilization }).(AutoscalingPolicyLoadBalancingUtilizationPtrOutput) } // The maximum number of instances that the autoscaler can scale out to. This is required when creating or updating an autoscaler. The maximum number of replicas must not be lower than minimal number of replicas. func (o AutoscalingPolicyOutput) MaxNumReplicas() pulumi.IntPtrOutput { return o.ApplyT(func(v AutoscalingPolicy) *int { return v.MaxNumReplicas }).(pulumi.IntPtrOutput) } // The minimum number of replicas that the autoscaler can scale in to. This cannot be less than 0. If not provided, autoscaler chooses a default value depending on maximum number of instances allowed. func (o AutoscalingPolicyOutput) MinNumReplicas() pulumi.IntPtrOutput { return o.ApplyT(func(v AutoscalingPolicy) *int { return v.MinNumReplicas }).(pulumi.IntPtrOutput) } // Defines operating mode for this policy. func (o AutoscalingPolicyOutput) Mode() AutoscalingPolicyModePtrOutput { return o.ApplyT(func(v AutoscalingPolicy) *AutoscalingPolicyMode { return v.Mode }).(AutoscalingPolicyModePtrOutput) } func (o AutoscalingPolicyOutput) ScaleInControl() AutoscalingPolicyScaleInControlPtrOutput { return o.ApplyT(func(v AutoscalingPolicy) *AutoscalingPolicyScaleInControl { return v.ScaleInControl }).(AutoscalingPolicyScaleInControlPtrOutput) } // Scaling schedules defined for an autoscaler. Multiple schedules can be set on an autoscaler, and they can overlap. During overlapping periods the greatest min_required_replicas of all scaling schedules is applied. Up to 128 scaling schedules are allowed. func (o AutoscalingPolicyOutput) ScalingSchedules() pulumi.StringMapOutput { return o.ApplyT(func(v AutoscalingPolicy) map[string]string { return v.ScalingSchedules }).(pulumi.StringMapOutput) } type AutoscalingPolicyPtrOutput struct{ *pulumi.OutputState } func (AutoscalingPolicyPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**AutoscalingPolicy)(nil)).Elem() } func (o AutoscalingPolicyPtrOutput) ToAutoscalingPolicyPtrOutput() AutoscalingPolicyPtrOutput { return o } func (o AutoscalingPolicyPtrOutput) ToAutoscalingPolicyPtrOutputWithContext(ctx context.Context) AutoscalingPolicyPtrOutput { return o } func (o AutoscalingPolicyPtrOutput) Elem() AutoscalingPolicyOutput { return o.ApplyT(func(v *AutoscalingPolicy) AutoscalingPolicy { if v != nil { return *v } var ret AutoscalingPolicy return ret }).(AutoscalingPolicyOutput) } // The number of seconds that the autoscaler waits before it starts collecting information from a new instance. This prevents the autoscaler from collecting information when the instance is initializing, during which the collected usage would not be reliable. The default time autoscaler waits is 60 seconds. Virtual machine initialization times might vary because of numerous factors. We recommend that you test how long an instance may take to initialize. To do this, create an instance and time the startup process. func (o AutoscalingPolicyPtrOutput) CoolDownPeriodSec() pulumi.IntPtrOutput { return o.ApplyT(func(v *AutoscalingPolicy) *int { if v == nil { return nil } return v.CoolDownPeriodSec }).(pulumi.IntPtrOutput) } // Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group. func (o AutoscalingPolicyPtrOutput) CpuUtilization() AutoscalingPolicyCpuUtilizationPtrOutput { return o.ApplyT(func(v *AutoscalingPolicy) *AutoscalingPolicyCpuUtilization { if v == nil { return nil } return v.CpuUtilization }).(AutoscalingPolicyCpuUtilizationPtrOutput) } // Configuration parameters of autoscaling based on a custom metric. func (o AutoscalingPolicyPtrOutput) CustomMetricUtilizations() AutoscalingPolicyCustomMetricUtilizationArrayOutput { return o.ApplyT(func(v *AutoscalingPolicy) []AutoscalingPolicyCustomMetricUtilization { if v == nil { return nil } return v.CustomMetricUtilizations }).(AutoscalingPolicyCustomMetricUtilizationArrayOutput) } // Configuration parameters of autoscaling based on load balancer. func (o AutoscalingPolicyPtrOutput) LoadBalancingUtilization() AutoscalingPolicyLoadBalancingUtilizationPtrOutput { return o.ApplyT(func(v *AutoscalingPolicy) *AutoscalingPolicyLoadBalancingUtilization { if v == nil { return nil } return v.LoadBalancingUtilization }).(AutoscalingPolicyLoadBalancingUtilizationPtrOutput) } // The maximum number of instances that the autoscaler can scale out to. This is required when creating or updating an autoscaler. The maximum number of replicas must not be lower than minimal number of replicas. func (o AutoscalingPolicyPtrOutput) MaxNumReplicas() pulumi.IntPtrOutput { return o.ApplyT(func(v *AutoscalingPolicy) *int { if v == nil { return nil } return v.MaxNumReplicas }).(pulumi.IntPtrOutput) } // The minimum number of replicas that the autoscaler can scale in to. This cannot be less than 0. If not provided, autoscaler chooses a default value depending on maximum number of instances allowed. func (o AutoscalingPolicyPtrOutput) MinNumReplicas() pulumi.IntPtrOutput { return o.ApplyT(func(v *AutoscalingPolicy) *int { if v == nil { return nil } return v.MinNumReplicas }).(pulumi.IntPtrOutput) } // Defines operating mode for this policy. func (o AutoscalingPolicyPtrOutput) Mode() AutoscalingPolicyModePtrOutput { return o.ApplyT(func(v *AutoscalingPolicy) *AutoscalingPolicyMode { if v == nil { return nil } return v.Mode }).(AutoscalingPolicyModePtrOutput) } func (o AutoscalingPolicyPtrOutput) ScaleInControl() AutoscalingPolicyScaleInControlPtrOutput { return o.ApplyT(func(v *AutoscalingPolicy) *AutoscalingPolicyScaleInControl { if v == nil { return nil } return v.ScaleInControl }).(AutoscalingPolicyScaleInControlPtrOutput) } // Scaling schedules defined for an autoscaler. Multiple schedules can be set on an autoscaler, and they can overlap. During overlapping periods the greatest min_required_replicas of all scaling schedules is applied. Up to 128 scaling schedules are allowed. func (o AutoscalingPolicyPtrOutput) ScalingSchedules() pulumi.StringMapOutput { return o.ApplyT(func(v *AutoscalingPolicy) map[string]string { if v == nil { return nil } return v.ScalingSchedules }).(pulumi.StringMapOutput) } // CPU utilization policy. type AutoscalingPolicyCpuUtilization struct { // Indicates whether predictive autoscaling based on CPU metric is enabled. Valid values are: * NONE (default). No predictive method is used. The autoscaler scales the group to meet current demand based on real-time metrics. * OPTIMIZE_AVAILABILITY. Predictive autoscaling improves availability by monitoring daily and weekly load patterns and scaling out ahead of anticipated demand. PredictiveMethod *AutoscalingPolicyCpuUtilizationPredictiveMethod `pulumi:"predictiveMethod"` // The target CPU utilization that the autoscaler maintains. Must be a float value in the range (0, 1]. If not specified, the default is 0.6. If the CPU level is below the target utilization, the autoscaler scales in the number of instances until it reaches the minimum number of instances you specified or until the average CPU of your instances reaches the target utilization. If the average CPU is above the target utilization, the autoscaler scales out until it reaches the maximum number of instances you specified or until the average utilization reaches the target utilization. UtilizationTarget *float64 `pulumi:"utilizationTarget"` } // AutoscalingPolicyCpuUtilizationInput is an input type that accepts AutoscalingPolicyCpuUtilizationArgs and AutoscalingPolicyCpuUtilizationOutput values. // You can construct a concrete instance of `AutoscalingPolicyCpuUtilizationInput` via: // // AutoscalingPolicyCpuUtilizationArgs{...} type AutoscalingPolicyCpuUtilizationInput interface { pulumi.Input ToAutoscalingPolicyCpuUtilizationOutput() AutoscalingPolicyCpuUtilizationOutput ToAutoscalingPolicyCpuUtilizationOutputWithContext(context.Context) AutoscalingPolicyCpuUtilizationOutput } // CPU utilization policy. type AutoscalingPolicyCpuUtilizationArgs struct { // Indicates whether predictive autoscaling based on CPU metric is enabled. Valid values are: * NONE (default). No predictive method is used. The autoscaler scales the group to meet current demand based on real-time metrics. * OPTIMIZE_AVAILABILITY. Predictive autoscaling improves availability by monitoring daily and weekly load patterns and scaling out ahead of anticipated demand. PredictiveMethod AutoscalingPolicyCpuUtilizationPredictiveMethodPtrInput `pulumi:"predictiveMethod"` // The target CPU utilization that the autoscaler maintains. Must be a float value in the range (0, 1]. If not specified, the default is 0.6. If the CPU level is below the target utilization, the autoscaler scales in the number of instances until it reaches the minimum number of instances you specified or until the average CPU of your instances reaches the target utilization. If the average CPU is above the target utilization, the autoscaler scales out until it reaches the maximum number of instances you specified or until the average utilization reaches the target utilization. UtilizationTarget pulumi.Float64PtrInput `pulumi:"utilizationTarget"` } func (AutoscalingPolicyCpuUtilizationArgs) ElementType() reflect.Type { return reflect.TypeOf((*AutoscalingPolicyCpuUtilization)(nil)).Elem() } func (i AutoscalingPolicyCpuUtilizationArgs) ToAutoscalingPolicyCpuUtilizationOutput() AutoscalingPolicyCpuUtilizationOutput { return i.ToAutoscalingPolicyCpuUtilizationOutputWithContext(context.Background()) } func (i AutoscalingPolicyCpuUtilizationArgs) ToAutoscalingPolicyCpuUtilizationOutputWithContext(ctx context.Context) AutoscalingPolicyCpuUtilizationOutput { return pulumi.ToOutputWithContext(ctx, i).(AutoscalingPolicyCpuUtilizationOutput) } func (i AutoscalingPolicyCpuUtilizationArgs) ToAutoscalingPolicyCpuUtilizationPtrOutput() AutoscalingPolicyCpuUtilizationPtrOutput { return i.ToAutoscalingPolicyCpuUtilizationPtrOutputWithContext(context.Background()) } func (i AutoscalingPolicyCpuUtilizationArgs) ToAutoscalingPolicyCpuUtilizationPtrOutputWithContext(ctx context.Context) AutoscalingPolicyCpuUtilizationPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(AutoscalingPolicyCpuUtilizationOutput).ToAutoscalingPolicyCpuUtilizationPtrOutputWithContext(ctx) } // AutoscalingPolicyCpuUtilizationPtrInput is an input type that accepts AutoscalingPolicyCpuUtilizationArgs, AutoscalingPolicyCpuUtilizationPtr and AutoscalingPolicyCpuUtilizationPtrOutput values. // You can construct a concrete instance of `AutoscalingPolicyCpuUtilizationPtrInput` via: // // AutoscalingPolicyCpuUtilizationArgs{...} // // or: // // nil type AutoscalingPolicyCpuUtilizationPtrInput interface { pulumi.Input ToAutoscalingPolicyCpuUtilizationPtrOutput() AutoscalingPolicyCpuUtilizationPtrOutput ToAutoscalingPolicyCpuUtilizationPtrOutputWithContext(context.Context) AutoscalingPolicyCpuUtilizationPtrOutput } type autoscalingPolicyCpuUtilizationPtrType AutoscalingPolicyCpuUtilizationArgs func AutoscalingPolicyCpuUtilizationPtr(v *AutoscalingPolicyCpuUtilizationArgs) AutoscalingPolicyCpuUtilizationPtrInput { return (*autoscalingPolicyCpuUtilizationPtrType)(v) } func (*autoscalingPolicyCpuUtilizationPtrType) ElementType() reflect.Type { return reflect.TypeOf((**AutoscalingPolicyCpuUtilization)(nil)).Elem() } func (i *autoscalingPolicyCpuUtilizationPtrType) ToAutoscalingPolicyCpuUtilizationPtrOutput() AutoscalingPolicyCpuUtilizationPtrOutput { return i.ToAutoscalingPolicyCpuUtilizationPtrOutputWithContext(context.Background()) } func (i *autoscalingPolicyCpuUtilizationPtrType) ToAutoscalingPolicyCpuUtilizationPtrOutputWithContext(ctx context.Context) AutoscalingPolicyCpuUtilizationPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(AutoscalingPolicyCpuUtilizationPtrOutput) } // CPU utilization policy. type AutoscalingPolicyCpuUtilizationOutput struct{ *pulumi.OutputState } func (AutoscalingPolicyCpuUtilizationOutput) ElementType() reflect.Type { return reflect.TypeOf((*AutoscalingPolicyCpuUtilization)(nil)).Elem() } func (o AutoscalingPolicyCpuUtilizationOutput) ToAutoscalingPolicyCpuUtilizationOutput() AutoscalingPolicyCpuUtilizationOutput { return o } func (o AutoscalingPolicyCpuUtilizationOutput) ToAutoscalingPolicyCpuUtilizationOutputWithContext(ctx context.Context) AutoscalingPolicyCpuUtilizationOutput { return o } func (o AutoscalingPolicyCpuUtilizationOutput) ToAutoscalingPolicyCpuUtilizationPtrOutput() AutoscalingPolicyCpuUtilizationPtrOutput { return o.ToAutoscalingPolicyCpuUtilizationPtrOutputWithContext(context.Background()) } func (o AutoscalingPolicyCpuUtilizationOutput) ToAutoscalingPolicyCpuUtilizationPtrOutputWithContext(ctx context.Context) AutoscalingPolicyCpuUtilizationPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v AutoscalingPolicyCpuUtilization) *AutoscalingPolicyCpuUtilization { return &v }).(AutoscalingPolicyCpuUtilizationPtrOutput) } // Indicates whether predictive autoscaling based on CPU metric is enabled. Valid values are: * NONE (default). No predictive method is used. The autoscaler scales the group to meet current demand based on real-time metrics. * OPTIMIZE_AVAILABILITY. Predictive autoscaling improves availability by monitoring daily and weekly load patterns and scaling out ahead of anticipated demand. func (o AutoscalingPolicyCpuUtilizationOutput) PredictiveMethod() AutoscalingPolicyCpuUtilizationPredictiveMethodPtrOutput { return o.ApplyT(func(v AutoscalingPolicyCpuUtilization) *AutoscalingPolicyCpuUtilizationPredictiveMethod { return v.PredictiveMethod }).(AutoscalingPolicyCpuUtilizationPredictiveMethodPtrOutput) } // The target CPU utilization that the autoscaler maintains. Must be a float value in the range (0, 1]. If not specified, the default is 0.6. If the CPU level is below the target utilization, the autoscaler scales in the number of instances until it reaches the minimum number of instances you specified or until the average CPU of your instances reaches the target utilization. If the average CPU is above the target utilization, the autoscaler scales out until it reaches the maximum number of instances you specified or until the average utilization reaches the target utilization. func (o AutoscalingPolicyCpuUtilizationOutput) UtilizationTarget() pulumi.Float64PtrOutput { return o.ApplyT(func(v AutoscalingPolicyCpuUtilization) *float64 { return v.UtilizationTarget }).(pulumi.Float64PtrOutput) } type AutoscalingPolicyCpuUtilizationPtrOutput struct{ *pulumi.OutputState } func (AutoscalingPolicyCpuUtilizationPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**AutoscalingPolicyCpuUtilization)(nil)).Elem() } func (o AutoscalingPolicyCpuUtilizationPtrOutput) ToAutoscalingPolicyCpuUtilizationPtrOutput() AutoscalingPolicyCpuUtilizationPtrOutput { return o } func (o AutoscalingPolicyCpuUtilizationPtrOutput) ToAutoscalingPolicyCpuUtilizationPtrOutputWithContext(ctx context.Context) AutoscalingPolicyCpuUtilizationPtrOutput { return o } func (o AutoscalingPolicyCpuUtilizationPtrOutput) Elem() AutoscalingPolicyCpuUtilizationOutput { return o.ApplyT(func(v *AutoscalingPolicyCpuUtilization) AutoscalingPolicyCpuUtilization { if v != nil { return *v } var ret AutoscalingPolicyCpuUtilization return ret }).(AutoscalingPolicyCpuUtilizationOutput) } // Indicates whether predictive autoscaling based on CPU metric is enabled. Valid values are: * NONE (default). No predictive method is used. The autoscaler scales the group to meet current demand based on real-time metrics. * OPTIMIZE_AVAILABILITY. Predictive autoscaling improves availability by monitoring daily and weekly load patterns and scaling out ahead of anticipated demand. func (o AutoscalingPolicyCpuUtilizationPtrOutput) PredictiveMethod() AutoscalingPolicyCpuUtilizationPredictiveMethodPtrOutput { return o.ApplyT(func(v *AutoscalingPolicyCpuUtilization) *AutoscalingPolicyCpuUtilizationPredictiveMethod { if v == nil { return nil } return v.PredictiveMethod }).(AutoscalingPolicyCpuUtilizationPredictiveMethodPtrOutput) } // The target CPU utilization that the autoscaler maintains. Must be a float value in the range (0, 1]. If not specified, the default is 0.6. If the CPU level is below the target utilization, the autoscaler scales in the number of instances until it reaches the minimum number of instances you specified or until the average CPU of your instances reaches the target utilization. If the average CPU is above the target utilization, the autoscaler scales out until it reaches the maximum number of instances you specified or until the average utilization reaches the target utilization. func (o AutoscalingPolicyCpuUtilizationPtrOutput) UtilizationTarget() pulumi.Float64PtrOutput { return o.ApplyT(func(v *AutoscalingPolicyCpuUtilization) *float64 { if v == nil { return nil } return v.UtilizationTarget }).(pulumi.Float64PtrOutput) } // CPU utilization policy. type AutoscalingPolicyCpuUtilizationResponse struct { // Indicates whether predictive autoscaling based on CPU metric is enabled. Valid values are: * NONE (default). No predictive method is used. The autoscaler scales the group to meet current demand based on real-time metrics. * OPTIMIZE_AVAILABILITY. Predictive autoscaling improves availability by monitoring daily and weekly load patterns and scaling out ahead of anticipated demand. PredictiveMethod string `pulumi:"predictiveMethod"` // The target CPU utilization that the autoscaler maintains. Must be a float value in the range (0, 1]. If not specified, the default is 0.6. If the CPU level is below the target utilization, the autoscaler scales in the number of instances until it reaches the minimum number of instances you specified or until the average CPU of your instances reaches the target utilization. If the average CPU is above the target utilization, the autoscaler scales out until it reaches the maximum number of instances you specified or until the average utilization reaches the target utilization. UtilizationTarget float64 `pulumi:"utilizationTarget"` } // CPU utilization policy. type AutoscalingPolicyCpuUtilizationResponseOutput struct{ *pulumi.OutputState } func (AutoscalingPolicyCpuUtilizationResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*AutoscalingPolicyCpuUtilizationResponse)(nil)).Elem() } func (o AutoscalingPolicyCpuUtilizationResponseOutput) ToAutoscalingPolicyCpuUtilizationResponseOutput() AutoscalingPolicyCpuUtilizationResponseOutput { return o } func (o AutoscalingPolicyCpuUtilizationResponseOutput) ToAutoscalingPolicyCpuUtilizationResponseOutputWithContext(ctx context.Context) AutoscalingPolicyCpuUtilizationResponseOutput { return o } // Indicates whether predictive autoscaling based on CPU metric is enabled. Valid values are: * NONE (default). No predictive method is used. The autoscaler scales the group to meet current demand based on real-time metrics. * OPTIMIZE_AVAILABILITY. Predictive autoscaling improves availability by monitoring daily and weekly load patterns and scaling out ahead of anticipated demand. func (o AutoscalingPolicyCpuUtilizationResponseOutput) PredictiveMethod() pulumi.StringOutput { return o.ApplyT(func(v AutoscalingPolicyCpuUtilizationResponse) string { return v.PredictiveMethod }).(pulumi.StringOutput) } // The target CPU utilization that the autoscaler maintains. Must be a float value in the range (0, 1]. If not specified, the default is 0.6. If the CPU level is below the target utilization, the autoscaler scales in the number of instances until it reaches the minimum number of instances you specified or until the average CPU of your instances reaches the target utilization. If the average CPU is above the target utilization, the autoscaler scales out until it reaches the maximum number of instances you specified or until the average utilization reaches the target utilization. func (o AutoscalingPolicyCpuUtilizationResponseOutput) UtilizationTarget() pulumi.Float64Output { return o.ApplyT(func(v AutoscalingPolicyCpuUtilizationResponse) float64 { return v.UtilizationTarget }).(pulumi.Float64Output) } // Custom utilization metric policy. type AutoscalingPolicyCustomMetricUtilization struct { // A filter string, compatible with a Stackdriver Monitoring filter string for TimeSeries.list API call. This filter is used to select a specific TimeSeries for the purpose of autoscaling and to determine whether the metric is exporting per-instance or per-group data. For the filter to be valid for autoscaling purposes, the following rules apply: - You can only use the AND operator for joining selectors. - You can only use direct equality comparison operator (=) without any functions for each selector. - You can specify the metric in both the filter string and in the metric field. However, if specified in both places, the metric must be identical. - The monitored resource type determines what kind of values are expected for the metric. If it is a gce_instance, the autoscaler expects the metric to include a separate TimeSeries for each instance in a group. In such a case, you cannot filter on resource labels. If the resource type is any other value, the autoscaler expects this metric to contain values that apply to the entire autoscaled instance group and resource label filtering can be performed to point autoscaler at the correct TimeSeries to scale upon. This is called a *per-group metric* for the purpose of autoscaling. If not specified, the type defaults to gce_instance. Try to provide a filter that is selective enough to pick just one TimeSeries for the autoscaled group or for each of the instances (if you are using gce_instance resource type). If multiple TimeSeries are returned upon the query execution, the autoscaler will sum their respective values to obtain its scaling value. Filter *string `pulumi:"filter"` // The identifier (type) of the Stackdriver Monitoring metric. The metric cannot have negative values. The metric must have a value type of INT64 or DOUBLE. Metric *string `pulumi:"metric"` // If scaling is based on a per-group metric value that represents the total amount of work to be done or resource usage, set this value to an amount assigned for a single instance of the scaled group. Autoscaler keeps the number of instances proportional to the value of this metric. The metric itself does not change value due to group resizing. A good metric to use with the target is for example pubsub.googleapis.com/subscription/num_undelivered_messages or a custom metric exporting the total number of requests coming to your instances. A bad example would be a metric exporting an average or median latency, since this value can't include a chunk assignable to a single instance, it could be better used with utilization_target instead. SingleInstanceAssignment *float64 `pulumi:"singleInstanceAssignment"` // The target value of the metric that autoscaler maintains. This must be a positive value. A utilization metric scales number of virtual machines handling requests to increase or decrease proportionally to the metric. For example, a good metric to use as a utilization_target is https://www.googleapis.com/compute/v1/instance/network/received_bytes_count. The autoscaler works to keep this value constant for each of the instances. UtilizationTarget *float64 `pulumi:"utilizationTarget"` // Defines how target utilization value is expressed for a Stackdriver Monitoring metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE. UtilizationTargetType *AutoscalingPolicyCustomMetricUtilizationUtilizationTargetType `pulumi:"utilizationTargetType"` } // AutoscalingPolicyCustomMetricUtilizationInput is an input type that accepts AutoscalingPolicyCustomMetricUtilizationArgs and AutoscalingPolicyCustomMetricUtilizationOutput values. // You can construct a concrete instance of `AutoscalingPolicyCustomMetricUtilizationInput` via: // // AutoscalingPolicyCustomMetricUtilizationArgs{...} type AutoscalingPolicyCustomMetricUtilizationInput interface { pulumi.Input ToAutoscalingPolicyCustomMetricUtilizationOutput() AutoscalingPolicyCustomMetricUtilizationOutput ToAutoscalingPolicyCustomMetricUtilizationOutputWithContext(context.Context) AutoscalingPolicyCustomMetricUtilizationOutput } // Custom utilization metric policy. type AutoscalingPolicyCustomMetricUtilizationArgs struct { // A filter string, compatible with a Stackdriver Monitoring filter string for TimeSeries.list API call. This filter is used to select a specific TimeSeries for the purpose of autoscaling and to determine whether the metric is exporting per-instance or per-group data. For the filter to be valid for autoscaling purposes, the following rules apply: - You can only use the AND operator for joining selectors. - You can only use direct equality comparison operator (=) without any functions for each selector. - You can specify the metric in both the filter string and in the metric field. However, if specified in both places, the metric must be identical. - The monitored resource type determines what kind of values are expected for the metric. If it is a gce_instance, the autoscaler expects the metric to include a separate TimeSeries for each instance in a group. In such a case, you cannot filter on resource labels. If the resource type is any other value, the autoscaler expects this metric to contain values that apply to the entire autoscaled instance group and resource label filtering can be performed to point autoscaler at the correct TimeSeries to scale upon. This is called a *per-group metric* for the purpose of autoscaling. If not specified, the type defaults to gce_instance. Try to provide a filter that is selective enough to pick just one TimeSeries for the autoscaled group or for each of the instances (if you are using gce_instance resource type). If multiple TimeSeries are returned upon the query execution, the autoscaler will sum their respective values to obtain its scaling value. Filter pulumi.StringPtrInput `pulumi:"filter"` // The identifier (type) of the Stackdriver Monitoring metric. The metric cannot have negative values. The metric must have a value type of INT64 or DOUBLE. Metric pulumi.StringPtrInput `pulumi:"metric"` // If scaling is based on a per-group metric value that represents the total amount of work to be done or resource usage, set this value to an amount assigned for a single instance of the scaled group. Autoscaler keeps the number of instances proportional to the value of this metric. The metric itself does not change value due to group resizing. A good metric to use with the target is for example pubsub.googleapis.com/subscription/num_undelivered_messages or a custom metric exporting the total number of requests coming to your instances. A bad example would be a metric exporting an average or median latency, since this value can't include a chunk assignable to a single instance, it could be better used with utilization_target instead. SingleInstanceAssignment pulumi.Float64PtrInput `pulumi:"singleInstanceAssignment"` // The target value of the metric that autoscaler maintains. This must be a positive value. A utilization metric scales number of virtual machines handling requests to increase or decrease proportionally to the metric. For example, a good metric to use as a utilization_target is https://www.googleapis.com/compute/v1/instance/network/received_bytes_count. The autoscaler works to keep this value constant for each of the instances. UtilizationTarget pulumi.Float64PtrInput `pulumi:"utilizationTarget"` // Defines how target utilization value is expressed for a Stackdriver Monitoring metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE. UtilizationTargetType AutoscalingPolicyCustomMetricUtilizationUtilizationTargetTypePtrInput `pulumi:"utilizationTargetType"` } func (AutoscalingPolicyCustomMetricUtilizationArgs) ElementType() reflect.Type { return reflect.TypeOf((*AutoscalingPolicyCustomMetricUtilization)(nil)).Elem() } func (i AutoscalingPolicyCustomMetricUtilizationArgs) ToAutoscalingPolicyCustomMetricUtilizationOutput() AutoscalingPolicyCustomMetricUtilizationOutput { return i.ToAutoscalingPolicyCustomMetricUtilizationOutputWithContext(context.Background()) } func (i AutoscalingPolicyCustomMetricUtilizationArgs) ToAutoscalingPolicyCustomMetricUtilizationOutputWithContext(ctx context.Context) AutoscalingPolicyCustomMetricUtilizationOutput { return pulumi.ToOutputWithContext(ctx, i).(AutoscalingPolicyCustomMetricUtilizationOutput) } // AutoscalingPolicyCustomMetricUtilizationArrayInput is an input type that accepts AutoscalingPolicyCustomMetricUtilizationArray and AutoscalingPolicyCustomMetricUtilizationArrayOutput values. // You can construct a concrete instance of `AutoscalingPolicyCustomMetricUtilizationArrayInput` via: // // AutoscalingPolicyCustomMetricUtilizationArray{ AutoscalingPolicyCustomMetricUtilizationArgs{...} } type AutoscalingPolicyCustomMetricUtilizationArrayInput interface { pulumi.Input ToAutoscalingPolicyCustomMetricUtilizationArrayOutput() AutoscalingPolicyCustomMetricUtilizationArrayOutput ToAutoscalingPolicyCustomMetricUtilizationArrayOutputWithContext(context.Context) AutoscalingPolicyCustomMetricUtilizationArrayOutput } type AutoscalingPolicyCustomMetricUtilizationArray []AutoscalingPolicyCustomMetricUtilizationInput func (AutoscalingPolicyCustomMetricUtilizationArray) ElementType() reflect.Type { return reflect.TypeOf((*[]AutoscalingPolicyCustomMetricUtilization)(nil)).Elem() } func (i AutoscalingPolicyCustomMetricUtilizationArray) ToAutoscalingPolicyCustomMetricUtilizationArrayOutput() AutoscalingPolicyCustomMetricUtilizationArrayOutput { return i.ToAutoscalingPolicyCustomMetricUtilizationArrayOutputWithContext(context.Background()) } func (i AutoscalingPolicyCustomMetricUtilizationArray) ToAutoscalingPolicyCustomMetricUtilizationArrayOutputWithContext(ctx context.Context) AutoscalingPolicyCustomMetricUtilizationArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(AutoscalingPolicyCustomMetricUtilizationArrayOutput) } // Custom utilization metric policy. type AutoscalingPolicyCustomMetricUtilizationOutput struct{ *pulumi.OutputState } func (AutoscalingPolicyCustomMetricUtilizationOutput) ElementType() reflect.Type { return reflect.TypeOf((*AutoscalingPolicyCustomMetricUtilization)(nil)).Elem() } func (o AutoscalingPolicyCustomMetricUtilizationOutput) ToAutoscalingPolicyCustomMetricUtilizationOutput() AutoscalingPolicyCustomMetricUtilizationOutput { return o } func (o AutoscalingPolicyCustomMetricUtilizationOutput) ToAutoscalingPolicyCustomMetricUtilizationOutputWithContext(ctx context.Context) AutoscalingPolicyCustomMetricUtilizationOutput { return o } // A filter string, compatible with a Stackdriver Monitoring filter string for TimeSeries.list API call. This filter is used to select a specific TimeSeries for the purpose of autoscaling and to determine whether the metric is exporting per-instance or per-group data. For the filter to be valid for autoscaling purposes, the following rules apply: - You can only use the AND operator for joining selectors. - You can only use direct equality comparison operator (=) without any functions for each selector. - You can specify the metric in both the filter string and in the metric field. However, if specified in both places, the metric must be identical. - The monitored resource type determines what kind of values are expected for the metric. If it is a gce_instance, the autoscaler expects the metric to include a separate TimeSeries for each instance in a group. In such a case, you cannot filter on resource labels. If the resource type is any other value, the autoscaler expects this metric to contain values that apply to the entire autoscaled instance group and resource label filtering can be performed to point autoscaler at the correct TimeSeries to scale upon. This is called a *per-group metric* for the purpose of autoscaling. If not specified, the type defaults to gce_instance. Try to provide a filter that is selective enough to pick just one TimeSeries for the autoscaled group or for each of the instances (if you are using gce_instance resource type). If multiple TimeSeries are returned upon the query execution, the autoscaler will sum their respective values to obtain its scaling value. func (o AutoscalingPolicyCustomMetricUtilizationOutput) Filter() pulumi.StringPtrOutput { return o.ApplyT(func(v AutoscalingPolicyCustomMetricUtilization) *string { return v.Filter }).(pulumi.StringPtrOutput) } // The identifier (type) of the Stackdriver Monitoring metric. The metric cannot have negative values. The metric must have a value type of INT64 or DOUBLE. func (o AutoscalingPolicyCustomMetricUtilizationOutput) Metric() pulumi.StringPtrOutput { return o.ApplyT(func(v AutoscalingPolicyCustomMetricUtilization) *string { return v.Metric }).(pulumi.StringPtrOutput) } // If scaling is based on a per-group metric value that represents the total amount of work to be done or resource usage, set this value to an amount assigned for a single instance of the scaled group. Autoscaler keeps the number of instances proportional to the value of this metric. The metric itself does not change value due to group resizing. A good metric to use with the target is for example pubsub.googleapis.com/subscription/num_undelivered_messages or a custom metric exporting the total number of requests coming to your instances. A bad example would be a metric exporting an average or median latency, since this value can't include a chunk assignable to a single instance, it could be better used with utilization_target instead. func (o AutoscalingPolicyCustomMetricUtilizationOutput) SingleInstanceAssignment() pulumi.Float64PtrOutput { return o.ApplyT(func(v AutoscalingPolicyCustomMetricUtilization) *float64 { return v.SingleInstanceAssignment }).(pulumi.Float64PtrOutput) } // The target value of the metric that autoscaler maintains. This must be a positive value. A utilization metric scales number of virtual machines handling requests to increase or decrease proportionally to the metric. For example, a good metric to use as a utilization_target is https://www.googleapis.com/compute/v1/instance/network/received_bytes_count. The autoscaler works to keep this value constant for each of the instances. func (o AutoscalingPolicyCustomMetricUtilizationOutput) UtilizationTarget() pulumi.Float64PtrOutput { return o.ApplyT(func(v AutoscalingPolicyCustomMetricUtilization) *float64 { return v.UtilizationTarget }).(pulumi.Float64PtrOutput) } // Defines how target utilization value is expressed for a Stackdriver Monitoring metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE. func (o AutoscalingPolicyCustomMetricUtilizationOutput) UtilizationTargetType() AutoscalingPolicyCustomMetricUtilizationUtilizationTargetTypePtrOutput { return o.ApplyT(func(v AutoscalingPolicyCustomMetricUtilization) *AutoscalingPolicyCustomMetricUtilizationUtilizationTargetType { return v.UtilizationTargetType }).(AutoscalingPolicyCustomMetricUtilizationUtilizationTargetTypePtrOutput) } type AutoscalingPolicyCustomMetricUtilizationArrayOutput struct{ *pulumi.OutputState } func (AutoscalingPolicyCustomMetricUtilizationArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]AutoscalingPolicyCustomMetricUtilization)(nil)).Elem() } func (o AutoscalingPolicyCustomMetricUtilizationArrayOutput) ToAutoscalingPolicyCustomMetricUtilizationArrayOutput() AutoscalingPolicyCustomMetricUtilizationArrayOutput { return o } func (o AutoscalingPolicyCustomMetricUtilizationArrayOutput) ToAutoscalingPolicyCustomMetricUtilizationArrayOutputWithContext(ctx context.Context) AutoscalingPolicyCustomMetricUtilizationArrayOutput { return o } func (o AutoscalingPolicyCustomMetricUtilizationArrayOutput) Index(i pulumi.IntInput) AutoscalingPolicyCustomMetricUtilizationOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) AutoscalingPolicyCustomMetricUtilization { return vs[0].([]AutoscalingPolicyCustomMetricUtilization)[vs[1].(int)] }).(AutoscalingPolicyCustomMetricUtilizationOutput) } // Custom utilization metric policy. type AutoscalingPolicyCustomMetricUtilizationResponse struct { // A filter string, compatible with a Stackdriver Monitoring filter string for TimeSeries.list API call. This filter is used to select a specific TimeSeries for the purpose of autoscaling and to determine whether the metric is exporting per-instance or per-group data. For the filter to be valid for autoscaling purposes, the following rules apply: - You can only use the AND operator for joining selectors. - You can only use direct equality comparison operator (=) without any functions for each selector. - You can specify the metric in both the filter string and in the metric field. However, if specified in both places, the metric must be identical. - The monitored resource type determines what kind of values are expected for the metric. If it is a gce_instance, the autoscaler expects the metric to include a separate TimeSeries for each instance in a group. In such a case, you cannot filter on resource labels. If the resource type is any other value, the autoscaler expects this metric to contain values that apply to the entire autoscaled instance group and resource label filtering can be performed to point autoscaler at the correct TimeSeries to scale upon. This is called a *per-group metric* for the purpose of autoscaling. If not specified, the type defaults to gce_instance. Try to provide a filter that is selective enough to pick just one TimeSeries for the autoscaled group or for each of the instances (if you are using gce_instance resource type). If multiple TimeSeries are returned upon the query execution, the autoscaler will sum their respective values to obtain its scaling value. Filter string `pulumi:"filter"` // The identifier (type) of the Stackdriver Monitoring metric. The metric cannot have negative values. The metric must have a value type of INT64 or DOUBLE. Metric string `pulumi:"metric"` // If scaling is based on a per-group metric value that represents the total amount of work to be done or resource usage, set this value to an amount assigned for a single instance of the scaled group. Autoscaler keeps the number of instances proportional to the value of this metric. The metric itself does not change value due to group resizing. A good metric to use with the target is for example pubsub.googleapis.com/subscription/num_undelivered_messages or a custom metric exporting the total number of requests coming to your instances. A bad example would be a metric exporting an average or median latency, since this value can't include a chunk assignable to a single instance, it could be better used with utilization_target instead. SingleInstanceAssignment float64 `pulumi:"singleInstanceAssignment"` // The target value of the metric that autoscaler maintains. This must be a positive value. A utilization metric scales number of virtual machines handling requests to increase or decrease proportionally to the metric. For example, a good metric to use as a utilization_target is https://www.googleapis.com/compute/v1/instance/network/received_bytes_count. The autoscaler works to keep this value constant for each of the instances. UtilizationTarget float64 `pulumi:"utilizationTarget"` // Defines how target utilization value is expressed for a Stackdriver Monitoring metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE. UtilizationTargetType string `pulumi:"utilizationTargetType"` } // Custom utilization metric policy. type AutoscalingPolicyCustomMetricUtilizationResponseOutput struct{ *pulumi.OutputState } func (AutoscalingPolicyCustomMetricUtilizationResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*AutoscalingPolicyCustomMetricUtilizationResponse)(nil)).Elem() } func (o AutoscalingPolicyCustomMetricUtilizationResponseOutput) ToAutoscalingPolicyCustomMetricUtilizationResponseOutput() AutoscalingPolicyCustomMetricUtilizationResponseOutput { return o } func (o AutoscalingPolicyCustomMetricUtilizationResponseOutput) ToAutoscalingPolicyCustomMetricUtilizationResponseOutputWithContext(ctx context.Context) AutoscalingPolicyCustomMetricUtilizationResponseOutput { return o } // A filter string, compatible with a Stackdriver Monitoring filter string for TimeSeries.list API call. This filter is used to select a specific TimeSeries for the purpose of autoscaling and to determine whether the metric is exporting per-instance or per-group data. For the filter to be valid for autoscaling purposes, the following rules apply: - You can only use the AND operator for joining selectors. - You can only use direct equality comparison operator (=) without any functions for each selector. - You can specify the metric in both the filter string and in the metric field. However, if specified in both places, the metric must be identical. - The monitored resource type determines what kind of values are expected for the metric. If it is a gce_instance, the autoscaler expects the metric to include a separate TimeSeries for each instance in a group. In such a case, you cannot filter on resource labels. If the resource type is any other value, the autoscaler expects this metric to contain values that apply to the entire autoscaled instance group and resource label filtering can be performed to point autoscaler at the correct TimeSeries to scale upon. This is called a *per-group metric* for the purpose of autoscaling. If not specified, the type defaults to gce_instance. Try to provide a filter that is selective enough to pick just one TimeSeries for the autoscaled group or for each of the instances (if you are using gce_instance resource type). If multiple TimeSeries are returned upon the query execution, the autoscaler will sum their respective values to obtain its scaling value. func (o AutoscalingPolicyCustomMetricUtilizationResponseOutput) Filter() pulumi.StringOutput { return o.ApplyT(func(v AutoscalingPolicyCustomMetricUtilizationResponse) string { return v.Filter }).(pulumi.StringOutput) } // The identifier (type) of the Stackdriver Monitoring metric. The metric cannot have negative values. The metric must have a value type of INT64 or DOUBLE. func (o AutoscalingPolicyCustomMetricUtilizationResponseOutput) Metric() pulumi.StringOutput { return o.ApplyT(func(v AutoscalingPolicyCustomMetricUtilizationResponse) string { return v.Metric }).(pulumi.StringOutput) } // If scaling is based on a per-group metric value that represents the total amount of work to be done or resource usage, set this value to an amount assigned for a single instance of the scaled group. Autoscaler keeps the number of instances proportional to the value of this metric. The metric itself does not change value due to group resizing. A good metric to use with the target is for example pubsub.googleapis.com/subscription/num_undelivered_messages or a custom metric exporting the total number of requests coming to your instances. A bad example would be a metric exporting an average or median latency, since this value can't include a chunk assignable to a single instance, it could be better used with utilization_target instead. func (o AutoscalingPolicyCustomMetricUtilizationResponseOutput) SingleInstanceAssignment() pulumi.Float64Output { return o.ApplyT(func(v AutoscalingPolicyCustomMetricUtilizationResponse) float64 { return v.SingleInstanceAssignment }).(pulumi.Float64Output) } // The target value of the metric that autoscaler maintains. This must be a positive value. A utilization metric scales number of virtual machines handling requests to increase or decrease proportionally to the metric. For example, a good metric to use as a utilization_target is https://www.googleapis.com/compute/v1/instance/network/received_bytes_count. The autoscaler works to keep this value constant for each of the instances. func (o AutoscalingPolicyCustomMetricUtilizationResponseOutput) UtilizationTarget() pulumi.Float64Output { return o.ApplyT(func(v AutoscalingPolicyCustomMetricUtilizationResponse) float64 { return v.UtilizationTarget }).(pulumi.Float64Output) } // Defines how target utilization value is expressed for a Stackdriver Monitoring metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE. func (o AutoscalingPolicyCustomMetricUtilizationResponseOutput) UtilizationTargetType() pulumi.StringOutput { return o.ApplyT(func(v AutoscalingPolicyCustomMetricUtilizationResponse) string { return v.UtilizationTargetType }).(pulumi.StringOutput) } type AutoscalingPolicyCustomMetricUtilizationResponseArrayOutput struct{ *pulumi.OutputState } func (AutoscalingPolicyCustomMetricUtilizationResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]AutoscalingPolicyCustomMetricUtilizationResponse)(nil)).Elem() } func (o AutoscalingPolicyCustomMetricUtilizationResponseArrayOutput) ToAutoscalingPolicyCustomMetricUtilizationResponseArrayOutput() AutoscalingPolicyCustomMetricUtilizationResponseArrayOutput { return o } func (o AutoscalingPolicyCustomMetricUtilizationResponseArrayOutput) ToAutoscalingPolicyCustomMetricUtilizationResponseArrayOutputWithContext(ctx context.Context) AutoscalingPolicyCustomMetricUtilizationResponseArrayOutput { return o } func (o AutoscalingPolicyCustomMetricUtilizationResponseArrayOutput) Index(i pulumi.IntInput) AutoscalingPolicyCustomMetricUtilizationResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) AutoscalingPolicyCustomMetricUtilizationResponse { return vs[0].([]AutoscalingPolicyCustomMetricUtilizationResponse)[vs[1].(int)] }).(AutoscalingPolicyCustomMetricUtilizationResponseOutput) } // Configuration parameters of autoscaling based on load balancing. type AutoscalingPolicyLoadBalancingUtilization struct { // Fraction of backend capacity utilization (set in HTTP(S) load balancing configuration) that the autoscaler maintains. Must be a positive float value. If not defined, the default is 0.8. UtilizationTarget *float64 `pulumi:"utilizationTarget"` } // AutoscalingPolicyLoadBalancingUtilizationInput is an input type that accepts AutoscalingPolicyLoadBalancingUtilizationArgs and AutoscalingPolicyLoadBalancingUtilizationOutput values. // You can construct a concrete instance of `AutoscalingPolicyLoadBalancingUtilizationInput` via: // // AutoscalingPolicyLoadBalancingUtilizationArgs{...} type AutoscalingPolicyLoadBalancingUtilizationInput interface { pulumi.Input ToAutoscalingPolicyLoadBalancingUtilizationOutput() AutoscalingPolicyLoadBalancingUtilizationOutput ToAutoscalingPolicyLoadBalancingUtilizationOutputWithContext(context.Context) AutoscalingPolicyLoadBalancingUtilizationOutput } // Configuration parameters of autoscaling based on load balancing. type AutoscalingPolicyLoadBalancingUtilizationArgs struct { // Fraction of backend capacity utilization (set in HTTP(S) load balancing configuration) that the autoscaler maintains. Must be a positive float value. If not defined, the default is 0.8. UtilizationTarget pulumi.Float64PtrInput `pulumi:"utilizationTarget"` } func (AutoscalingPolicyLoadBalancingUtilizationArgs) ElementType() reflect.Type { return reflect.TypeOf((*AutoscalingPolicyLoadBalancingUtilization)(nil)).Elem() } func (i AutoscalingPolicyLoadBalancingUtilizationArgs) ToAutoscalingPolicyLoadBalancingUtilizationOutput() AutoscalingPolicyLoadBalancingUtilizationOutput { return i.ToAutoscalingPolicyLoadBalancingUtilizationOutputWithContext(context.Background()) } func (i AutoscalingPolicyLoadBalancingUtilizationArgs) ToAutoscalingPolicyLoadBalancingUtilizationOutputWithContext(ctx context.Context) AutoscalingPolicyLoadBalancingUtilizationOutput { return pulumi.ToOutputWithContext(ctx, i).(AutoscalingPolicyLoadBalancingUtilizationOutput) } func (i AutoscalingPolicyLoadBalancingUtilizationArgs) ToAutoscalingPolicyLoadBalancingUtilizationPtrOutput() AutoscalingPolicyLoadBalancingUtilizationPtrOutput { return i.ToAutoscalingPolicyLoadBalancingUtilizationPtrOutputWithContext(context.Background()) } func (i AutoscalingPolicyLoadBalancingUtilizationArgs) ToAutoscalingPolicyLoadBalancingUtilizationPtrOutputWithContext(ctx context.Context) AutoscalingPolicyLoadBalancingUtilizationPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(AutoscalingPolicyLoadBalancingUtilizationOutput).ToAutoscalingPolicyLoadBalancingUtilizationPtrOutputWithContext(ctx) } // AutoscalingPolicyLoadBalancingUtilizationPtrInput is an input type that accepts AutoscalingPolicyLoadBalancingUtilizationArgs, AutoscalingPolicyLoadBalancingUtilizationPtr and AutoscalingPolicyLoadBalancingUtilizationPtrOutput values. // You can construct a concrete instance of `AutoscalingPolicyLoadBalancingUtilizationPtrInput` via: // // AutoscalingPolicyLoadBalancingUtilizationArgs{...} // // or: // // nil type AutoscalingPolicyLoadBalancingUtilizationPtrInput interface { pulumi.Input ToAutoscalingPolicyLoadBalancingUtilizationPtrOutput() AutoscalingPolicyLoadBalancingUtilizationPtrOutput ToAutoscalingPolicyLoadBalancingUtilizationPtrOutputWithContext(context.Context) AutoscalingPolicyLoadBalancingUtilizationPtrOutput } type autoscalingPolicyLoadBalancingUtilizationPtrType AutoscalingPolicyLoadBalancingUtilizationArgs func AutoscalingPolicyLoadBalancingUtilizationPtr(v *AutoscalingPolicyLoadBalancingUtilizationArgs) AutoscalingPolicyLoadBalancingUtilizationPtrInput { return (*autoscalingPolicyLoadBalancingUtilizationPtrType)(v) } func (*autoscalingPolicyLoadBalancingUtilizationPtrType) ElementType() reflect.Type { return reflect.TypeOf((**AutoscalingPolicyLoadBalancingUtilization)(nil)).Elem() } func (i *autoscalingPolicyLoadBalancingUtilizationPtrType) ToAutoscalingPolicyLoadBalancingUtilizationPtrOutput() AutoscalingPolicyLoadBalancingUtilizationPtrOutput { return i.ToAutoscalingPolicyLoadBalancingUtilizationPtrOutputWithContext(context.Background()) } func (i *autoscalingPolicyLoadBalancingUtilizationPtrType) ToAutoscalingPolicyLoadBalancingUtilizationPtrOutputWithContext(ctx context.Context) AutoscalingPolicyLoadBalancingUtilizationPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(AutoscalingPolicyLoadBalancingUtilizationPtrOutput) } // Configuration parameters of autoscaling based on load balancing. type AutoscalingPolicyLoadBalancingUtilizationOutput struct{ *pulumi.OutputState } func (AutoscalingPolicyLoadBalancingUtilizationOutput) ElementType() reflect.Type { return reflect.TypeOf((*AutoscalingPolicyLoadBalancingUtilization)(nil)).Elem() } func (o AutoscalingPolicyLoadBalancingUtilizationOutput) ToAutoscalingPolicyLoadBalancingUtilizationOutput() AutoscalingPolicyLoadBalancingUtilizationOutput { return o } func (o AutoscalingPolicyLoadBalancingUtilizationOutput) ToAutoscalingPolicyLoadBalancingUtilizationOutputWithContext(ctx context.Context) AutoscalingPolicyLoadBalancingUtilizationOutput { return o } func (o AutoscalingPolicyLoadBalancingUtilizationOutput) ToAutoscalingPolicyLoadBalancingUtilizationPtrOutput() AutoscalingPolicyLoadBalancingUtilizationPtrOutput { return o.ToAutoscalingPolicyLoadBalancingUtilizationPtrOutputWithContext(context.Background()) } func (o AutoscalingPolicyLoadBalancingUtilizationOutput) ToAutoscalingPolicyLoadBalancingUtilizationPtrOutputWithContext(ctx context.Context) AutoscalingPolicyLoadBalancingUtilizationPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v AutoscalingPolicyLoadBalancingUtilization) *AutoscalingPolicyLoadBalancingUtilization { return &v }).(AutoscalingPolicyLoadBalancingUtilizationPtrOutput) } // Fraction of backend capacity utilization (set in HTTP(S) load balancing configuration) that the autoscaler maintains. Must be a positive float value. If not defined, the default is 0.8. func (o AutoscalingPolicyLoadBalancingUtilizationOutput) UtilizationTarget() pulumi.Float64PtrOutput { return o.ApplyT(func(v AutoscalingPolicyLoadBalancingUtilization) *float64 { return v.UtilizationTarget }).(pulumi.Float64PtrOutput) } type AutoscalingPolicyLoadBalancingUtilizationPtrOutput struct{ *pulumi.OutputState } func (AutoscalingPolicyLoadBalancingUtilizationPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**AutoscalingPolicyLoadBalancingUtilization)(nil)).Elem() } func (o AutoscalingPolicyLoadBalancingUtilizationPtrOutput) ToAutoscalingPolicyLoadBalancingUtilizationPtrOutput() AutoscalingPolicyLoadBalancingUtilizationPtrOutput { return o } func (o AutoscalingPolicyLoadBalancingUtilizationPtrOutput) ToAutoscalingPolicyLoadBalancingUtilizationPtrOutputWithContext(ctx context.Context) AutoscalingPolicyLoadBalancingUtilizationPtrOutput { return o } func (o AutoscalingPolicyLoadBalancingUtilizationPtrOutput) Elem() AutoscalingPolicyLoadBalancingUtilizationOutput { return o.ApplyT(func(v *AutoscalingPolicyLoadBalancingUtilization) AutoscalingPolicyLoadBalancingUtilization { if v != nil { return *v } var ret AutoscalingPolicyLoadBalancingUtilization return ret }).(AutoscalingPolicyLoadBalancingUtilizationOutput) } // Fraction of backend capacity utilization (set in HTTP(S) load balancing configuration) that the autoscaler maintains. Must be a positive float value. If not defined, the default is 0.8. func (o AutoscalingPolicyLoadBalancingUtilizationPtrOutput) UtilizationTarget() pulumi.Float64PtrOutput { return o.ApplyT(func(v *AutoscalingPolicyLoadBalancingUtilization) *float64 { if v == nil { return nil } return v.UtilizationTarget }).(pulumi.Float64PtrOutput) } // Configuration parameters of autoscaling based on load balancing. type AutoscalingPolicyLoadBalancingUtilizationResponse struct { // Fraction of backend capacity utilization (set in HTTP(S) load balancing configuration) that the autoscaler maintains. Must be a positive float value. If not defined, the default is 0.8. UtilizationTarget float64 `pulumi:"utilizationTarget"` } // Configuration parameters of autoscaling based on load balancing. type AutoscalingPolicyLoadBalancingUtilizationResponseOutput struct{ *pulumi.OutputState } func (AutoscalingPolicyLoadBalancingUtilizationResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*AutoscalingPolicyLoadBalancingUtilizationResponse)(nil)).Elem() } func (o AutoscalingPolicyLoadBalancingUtilizationResponseOutput) ToAutoscalingPolicyLoadBalancingUtilizationResponseOutput() AutoscalingPolicyLoadBalancingUtilizationResponseOutput { return o } func (o AutoscalingPolicyLoadBalancingUtilizationResponseOutput) ToAutoscalingPolicyLoadBalancingUtilizationResponseOutputWithContext(ctx context.Context) AutoscalingPolicyLoadBalancingUtilizationResponseOutput { return o } // Fraction of backend capacity utilization (set in HTTP(S) load balancing configuration) that the autoscaler maintains. Must be a positive float value. If not defined, the default is 0.8. func (o AutoscalingPolicyLoadBalancingUtilizationResponseOutput) UtilizationTarget() pulumi.Float64Output { return o.ApplyT(func(v AutoscalingPolicyLoadBalancingUtilizationResponse) float64 { return v.UtilizationTarget }).(pulumi.Float64Output) } // Cloud Autoscaler policy. type AutoscalingPolicyResponse struct { // The number of seconds that the autoscaler waits before it starts collecting information from a new instance. This prevents the autoscaler from collecting information when the instance is initializing, during which the collected usage would not be reliable. The default time autoscaler waits is 60 seconds. Virtual machine initialization times might vary because of numerous factors. We recommend that you test how long an instance may take to initialize. To do this, create an instance and time the startup process. CoolDownPeriodSec int `pulumi:"coolDownPeriodSec"` // Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group. CpuUtilization AutoscalingPolicyCpuUtilizationResponse `pulumi:"cpuUtilization"` // Configuration parameters of autoscaling based on a custom metric. CustomMetricUtilizations []AutoscalingPolicyCustomMetricUtilizationResponse `pulumi:"customMetricUtilizations"` // Configuration parameters of autoscaling based on load balancer. LoadBalancingUtilization AutoscalingPolicyLoadBalancingUtilizationResponse `pulumi:"loadBalancingUtilization"` // The maximum number of instances that the autoscaler can scale out to. This is required when creating or updating an autoscaler. The maximum number of replicas must not be lower than minimal number of replicas. MaxNumReplicas int `pulumi:"maxNumReplicas"` // The minimum number of replicas that the autoscaler can scale in to. This cannot be less than 0. If not provided, autoscaler chooses a default value depending on maximum number of instances allowed. MinNumReplicas int `pulumi:"minNumReplicas"` // Defines operating mode for this policy. Mode string `pulumi:"mode"` ScaleInControl AutoscalingPolicyScaleInControlResponse `pulumi:"scaleInControl"` // Scaling schedules defined for an autoscaler. Multiple schedules can be set on an autoscaler, and they can overlap. During overlapping periods the greatest min_required_replicas of all scaling schedules is applied. Up to 128 scaling schedules are allowed. ScalingSchedules map[string]string `pulumi:"scalingSchedules"` } // Cloud Autoscaler policy. type AutoscalingPolicyResponseOutput struct{ *pulumi.OutputState } func (AutoscalingPolicyResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*AutoscalingPolicyResponse)(nil)).Elem() } func (o AutoscalingPolicyResponseOutput) ToAutoscalingPolicyResponseOutput() AutoscalingPolicyResponseOutput { return o } func (o AutoscalingPolicyResponseOutput) ToAutoscalingPolicyResponseOutputWithContext(ctx context.Context) AutoscalingPolicyResponseOutput { return o } // The number of seconds that the autoscaler waits before it starts collecting information from a new instance. This prevents the autoscaler from collecting information when the instance is initializing, during which the collected usage would not be reliable. The default time autoscaler waits is 60 seconds. Virtual machine initialization times might vary because of numerous factors. We recommend that you test how long an instance may take to initialize. To do this, create an instance and time the startup process. func (o AutoscalingPolicyResponseOutput) CoolDownPeriodSec() pulumi.IntOutput { return o.ApplyT(func(v AutoscalingPolicyResponse) int { return v.CoolDownPeriodSec }).(pulumi.IntOutput) } // Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group. func (o AutoscalingPolicyResponseOutput) CpuUtilization() AutoscalingPolicyCpuUtilizationResponseOutput { return o.ApplyT(func(v AutoscalingPolicyResponse) AutoscalingPolicyCpuUtilizationResponse { return v.CpuUtilization }).(AutoscalingPolicyCpuUtilizationResponseOutput) } // Configuration parameters of autoscaling based on a custom metric. func (o AutoscalingPolicyResponseOutput) CustomMetricUtilizations() AutoscalingPolicyCustomMetricUtilizationResponseArrayOutput { return o.ApplyT(func(v AutoscalingPolicyResponse) []AutoscalingPolicyCustomMetricUtilizationResponse { return v.CustomMetricUtilizations }).(AutoscalingPolicyCustomMetricUtilizationResponseArrayOutput) } // Configuration parameters of autoscaling based on load balancer. func (o AutoscalingPolicyResponseOutput) LoadBalancingUtilization() AutoscalingPolicyLoadBalancingUtilizationResponseOutput { return o.ApplyT(func(v AutoscalingPolicyResponse) AutoscalingPolicyLoadBalancingUtilizationResponse { return v.LoadBalancingUtilization }).(AutoscalingPolicyLoadBalancingUtilizationResponseOutput) } // The maximum number of instances that the autoscaler can scale out to. This is required when creating or updating an autoscaler. The maximum number of replicas must not be lower than minimal number of replicas. func (o AutoscalingPolicyResponseOutput) MaxNumReplicas() pulumi.IntOutput { return o.ApplyT(func(v AutoscalingPolicyResponse) int { return v.MaxNumReplicas }).(pulumi.IntOutput) } // The minimum number of replicas that the autoscaler can scale in to. This cannot be less than 0. If not provided, autoscaler chooses a default value depending on maximum number of instances allowed. func (o AutoscalingPolicyResponseOutput) MinNumReplicas() pulumi.IntOutput { return o.ApplyT(func(v AutoscalingPolicyResponse) int { return v.MinNumReplicas }).(pulumi.IntOutput) } // Defines operating mode for this policy. func (o AutoscalingPolicyResponseOutput) Mode() pulumi.StringOutput { return o.ApplyT(func(v AutoscalingPolicyResponse) string { return v.Mode }).(pulumi.StringOutput) } func (o AutoscalingPolicyResponseOutput) ScaleInControl() AutoscalingPolicyScaleInControlResponseOutput { return o.ApplyT(func(v AutoscalingPolicyResponse) AutoscalingPolicyScaleInControlResponse { return v.ScaleInControl }).(AutoscalingPolicyScaleInControlResponseOutput) } // Scaling schedules defined for an autoscaler. Multiple schedules can be set on an autoscaler, and they can overlap. During overlapping periods the greatest min_required_replicas of all scaling schedules is applied. Up to 128 scaling schedules are allowed. func (o AutoscalingPolicyResponseOutput) ScalingSchedules() pulumi.StringMapOutput { return o.ApplyT(func(v AutoscalingPolicyResponse) map[string]string { return v.ScalingSchedules }).(pulumi.StringMapOutput) } // Configuration that allows for slower scale in so that even if Autoscaler recommends an abrupt scale in of a MIG, it will be throttled as specified by the parameters below. type AutoscalingPolicyScaleInControl struct { // Maximum allowed number (or %) of VMs that can be deducted from the peak recommendation during the window autoscaler looks at when computing recommendations. Possibly all these VMs can be deleted at once so user service needs to be prepared to lose that many VMs in one step. MaxScaledInReplicas *FixedOrPercent `pulumi:"maxScaledInReplicas"` // How far back autoscaling looks when computing recommendations to include directives regarding slower scale in, as described above. TimeWindowSec *int `pulumi:"timeWindowSec"` } // AutoscalingPolicyScaleInControlInput is an input type that accepts AutoscalingPolicyScaleInControlArgs and AutoscalingPolicyScaleInControlOutput values. // You can construct a concrete instance of `AutoscalingPolicyScaleInControlInput` via: // // AutoscalingPolicyScaleInControlArgs{...} type AutoscalingPolicyScaleInControlInput interface { pulumi.Input ToAutoscalingPolicyScaleInControlOutput() AutoscalingPolicyScaleInControlOutput ToAutoscalingPolicyScaleInControlOutputWithContext(context.Context) AutoscalingPolicyScaleInControlOutput } // Configuration that allows for slower scale in so that even if Autoscaler recommends an abrupt scale in of a MIG, it will be throttled as specified by the parameters below. type AutoscalingPolicyScaleInControlArgs struct { // Maximum allowed number (or %) of VMs that can be deducted from the peak recommendation during the window autoscaler looks at when computing recommendations. Possibly all these VMs can be deleted at once so user service needs to be prepared to lose that many VMs in one step. MaxScaledInReplicas FixedOrPercentPtrInput `pulumi:"maxScaledInReplicas"` // How far back autoscaling looks when computing recommendations to include directives regarding slower scale in, as described above. TimeWindowSec pulumi.IntPtrInput `pulumi:"timeWindowSec"` } func (AutoscalingPolicyScaleInControlArgs) ElementType() reflect.Type { return reflect.TypeOf((*AutoscalingPolicyScaleInControl)(nil)).Elem() } func (i AutoscalingPolicyScaleInControlArgs) ToAutoscalingPolicyScaleInControlOutput() AutoscalingPolicyScaleInControlOutput { return i.ToAutoscalingPolicyScaleInControlOutputWithContext(context.Background()) } func (i AutoscalingPolicyScaleInControlArgs) ToAutoscalingPolicyScaleInControlOutputWithContext(ctx context.Context) AutoscalingPolicyScaleInControlOutput { return pulumi.ToOutputWithContext(ctx, i).(AutoscalingPolicyScaleInControlOutput) } func (i AutoscalingPolicyScaleInControlArgs) ToAutoscalingPolicyScaleInControlPtrOutput() AutoscalingPolicyScaleInControlPtrOutput { return i.ToAutoscalingPolicyScaleInControlPtrOutputWithContext(context.Background()) } func (i AutoscalingPolicyScaleInControlArgs) ToAutoscalingPolicyScaleInControlPtrOutputWithContext(ctx context.Context) AutoscalingPolicyScaleInControlPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(AutoscalingPolicyScaleInControlOutput).ToAutoscalingPolicyScaleInControlPtrOutputWithContext(ctx) } // AutoscalingPolicyScaleInControlPtrInput is an input type that accepts AutoscalingPolicyScaleInControlArgs, AutoscalingPolicyScaleInControlPtr and AutoscalingPolicyScaleInControlPtrOutput values. // You can construct a concrete instance of `AutoscalingPolicyScaleInControlPtrInput` via: // // AutoscalingPolicyScaleInControlArgs{...} // // or: // // nil type AutoscalingPolicyScaleInControlPtrInput interface { pulumi.Input ToAutoscalingPolicyScaleInControlPtrOutput() AutoscalingPolicyScaleInControlPtrOutput ToAutoscalingPolicyScaleInControlPtrOutputWithContext(context.Context) AutoscalingPolicyScaleInControlPtrOutput } type autoscalingPolicyScaleInControlPtrType AutoscalingPolicyScaleInControlArgs func AutoscalingPolicyScaleInControlPtr(v *AutoscalingPolicyScaleInControlArgs) AutoscalingPolicyScaleInControlPtrInput { return (*autoscalingPolicyScaleInControlPtrType)(v) } func (*autoscalingPolicyScaleInControlPtrType) ElementType() reflect.Type { return reflect.TypeOf((**AutoscalingPolicyScaleInControl)(nil)).Elem() } func (i *autoscalingPolicyScaleInControlPtrType) ToAutoscalingPolicyScaleInControlPtrOutput() AutoscalingPolicyScaleInControlPtrOutput { return i.ToAutoscalingPolicyScaleInControlPtrOutputWithContext(context.Background()) } func (i *autoscalingPolicyScaleInControlPtrType) ToAutoscalingPolicyScaleInControlPtrOutputWithContext(ctx context.Context) AutoscalingPolicyScaleInControlPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(AutoscalingPolicyScaleInControlPtrOutput) } // Configuration that allows for slower scale in so that even if Autoscaler recommends an abrupt scale in of a MIG, it will be throttled as specified by the parameters below. type AutoscalingPolicyScaleInControlOutput struct{ *pulumi.OutputState } func (AutoscalingPolicyScaleInControlOutput) ElementType() reflect.Type { return reflect.TypeOf((*AutoscalingPolicyScaleInControl)(nil)).Elem() } func (o AutoscalingPolicyScaleInControlOutput) ToAutoscalingPolicyScaleInControlOutput() AutoscalingPolicyScaleInControlOutput { return o } func (o AutoscalingPolicyScaleInControlOutput) ToAutoscalingPolicyScaleInControlOutputWithContext(ctx context.Context) AutoscalingPolicyScaleInControlOutput { return o } func (o AutoscalingPolicyScaleInControlOutput) ToAutoscalingPolicyScaleInControlPtrOutput() AutoscalingPolicyScaleInControlPtrOutput { return o.ToAutoscalingPolicyScaleInControlPtrOutputWithContext(context.Background()) } func (o AutoscalingPolicyScaleInControlOutput) ToAutoscalingPolicyScaleInControlPtrOutputWithContext(ctx context.Context) AutoscalingPolicyScaleInControlPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v AutoscalingPolicyScaleInControl) *AutoscalingPolicyScaleInControl { return &v }).(AutoscalingPolicyScaleInControlPtrOutput) } // Maximum allowed number (or %) of VMs that can be deducted from the peak recommendation during the window autoscaler looks at when computing recommendations. Possibly all these VMs can be deleted at once so user service needs to be prepared to lose that many VMs in one step. func (o AutoscalingPolicyScaleInControlOutput) MaxScaledInReplicas() FixedOrPercentPtrOutput { return o.ApplyT(func(v AutoscalingPolicyScaleInControl) *FixedOrPercent { return v.MaxScaledInReplicas }).(FixedOrPercentPtrOutput) } // How far back autoscaling looks when computing recommendations to include directives regarding slower scale in, as described above. func (o AutoscalingPolicyScaleInControlOutput) TimeWindowSec() pulumi.IntPtrOutput { return o.ApplyT(func(v AutoscalingPolicyScaleInControl) *int { return v.TimeWindowSec }).(pulumi.IntPtrOutput) } type AutoscalingPolicyScaleInControlPtrOutput struct{ *pulumi.OutputState } func (AutoscalingPolicyScaleInControlPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**AutoscalingPolicyScaleInControl)(nil)).Elem() } func (o AutoscalingPolicyScaleInControlPtrOutput) ToAutoscalingPolicyScaleInControlPtrOutput() AutoscalingPolicyScaleInControlPtrOutput { return o } func (o AutoscalingPolicyScaleInControlPtrOutput) ToAutoscalingPolicyScaleInControlPtrOutputWithContext(ctx context.Context) AutoscalingPolicyScaleInControlPtrOutput { return o } func (o AutoscalingPolicyScaleInControlPtrOutput) Elem() AutoscalingPolicyScaleInControlOutput { return o.ApplyT(func(v *AutoscalingPolicyScaleInControl) AutoscalingPolicyScaleInControl { if v != nil { return *v } var ret AutoscalingPolicyScaleInControl return ret }).(AutoscalingPolicyScaleInControlOutput) } // Maximum allowed number (or %) of VMs that can be deducted from the peak recommendation during the window autoscaler looks at when computing recommendations. Possibly all these VMs can be deleted at once so user service needs to be prepared to lose that many VMs in one step. func (o AutoscalingPolicyScaleInControlPtrOutput) MaxScaledInReplicas() FixedOrPercentPtrOutput { return o.ApplyT(func(v *AutoscalingPolicyScaleInControl) *FixedOrPercent { if v == nil { return nil } return v.MaxScaledInReplicas }).(FixedOrPercentPtrOutput) } // How far back autoscaling looks when computing recommendations to include directives regarding slower scale in, as described above. func (o AutoscalingPolicyScaleInControlPtrOutput) TimeWindowSec() pulumi.IntPtrOutput { return o.ApplyT(func(v *AutoscalingPolicyScaleInControl) *int { if v == nil { return nil } return v.TimeWindowSec }).(pulumi.IntPtrOutput) } // Configuration that allows for slower scale in so that even if Autoscaler recommends an abrupt scale in of a MIG, it will be throttled as specified by the parameters below. type AutoscalingPolicyScaleInControlResponse struct { // Maximum allowed number (or %) of VMs that can be deducted from the peak recommendation during the window autoscaler looks at when computing recommendations. Possibly all these VMs can be deleted at once so user service needs to be prepared to lose that many VMs in one step. MaxScaledInReplicas FixedOrPercentResponse `pulumi:"maxScaledInReplicas"` // How far back autoscaling looks when computing recommendations to include directives regarding slower scale in, as described above. TimeWindowSec int `pulumi:"timeWindowSec"` } // Configuration that allows for slower scale in so that even if Autoscaler recommends an abrupt scale in of a MIG, it will be throttled as specified by the parameters below. type AutoscalingPolicyScaleInControlResponseOutput struct{ *pulumi.OutputState } func (AutoscalingPolicyScaleInControlResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*AutoscalingPolicyScaleInControlResponse)(nil)).Elem() } func (o AutoscalingPolicyScaleInControlResponseOutput) ToAutoscalingPolicyScaleInControlResponseOutput() AutoscalingPolicyScaleInControlResponseOutput { return o } func (o AutoscalingPolicyScaleInControlResponseOutput) ToAutoscalingPolicyScaleInControlResponseOutputWithContext(ctx context.Context) AutoscalingPolicyScaleInControlResponseOutput { return o } // Maximum allowed number (or %) of VMs that can be deducted from the peak recommendation during the window autoscaler looks at when computing recommendations. Possibly all these VMs can be deleted at once so user service needs to be prepared to lose that many VMs in one step. func (o AutoscalingPolicyScaleInControlResponseOutput) MaxScaledInReplicas() FixedOrPercentResponseOutput { return o.ApplyT(func(v AutoscalingPolicyScaleInControlResponse) FixedOrPercentResponse { return v.MaxScaledInReplicas }).(FixedOrPercentResponseOutput) } // How far back autoscaling looks when computing recommendations to include directives regarding slower scale in, as described above. func (o AutoscalingPolicyScaleInControlResponseOutput) TimeWindowSec() pulumi.IntOutput { return o.ApplyT(func(v AutoscalingPolicyScaleInControlResponse) int { return v.TimeWindowSec }).(pulumi.IntOutput) } // Message containing information of one individual backend. type Backend struct { // Specifies how to determine whether the backend of a load balancer can handle additional traffic or is fully loaded. For usage guidelines, see Connection balancing mode. Backends must use compatible balancing modes. For more information, see Supported balancing modes and target capacity settings and Restrictions and guidance for instance groups. Note: Currently, if you use the API to configure incompatible balancing modes, the configuration might be accepted even though it has no impact and is ignored. Specifically, Backend.maxUtilization is ignored when Backend.balancingMode is RATE. In the future, this incompatible combination will be rejected. BalancingMode *BackendBalancingMode `pulumi:"balancingMode"` // A multiplier applied to the backend's target capacity of its balancing mode. The default value is 1, which means the group serves up to 100% of its configured capacity (depending on balancingMode). A setting of 0 means the group is completely drained, offering 0% of its available capacity. The valid ranges are 0.0 and [0.1,1.0]. You cannot configure a setting larger than 0 and smaller than 0.1. You cannot configure a setting of 0 when there is only one backend attached to the backend service. CapacityScaler *float64 `pulumi:"capacityScaler"` // An optional description of this resource. Provide this property when you create the resource. Description *string `pulumi:"description"` // This field designates whether this is a failover backend. More than one failover backend can be configured for a given BackendService. Failover *bool `pulumi:"failover"` // The fully-qualified URL of an instance group or network endpoint group (NEG) resource. To determine what types of backends a load balancer supports, see the [Backend services overview](https://cloud.google.com/load-balancing/docs/backend-service#backends). You must use the *fully-qualified* URL (starting with https://www.googleapis.com/) to specify the instance group or NEG. Partial URLs are not supported. Group *string `pulumi:"group"` // Defines a target maximum number of simultaneous connections. For usage guidelines, see Connection balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is RATE. MaxConnections *int `pulumi:"maxConnections"` // Defines a target maximum number of simultaneous connections. For usage guidelines, see Connection balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is RATE. MaxConnectionsPerEndpoint *int `pulumi:"maxConnectionsPerEndpoint"` // Defines a target maximum number of simultaneous connections. For usage guidelines, see Connection balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is RATE. MaxConnectionsPerInstance *int `pulumi:"maxConnectionsPerInstance"` // Defines a maximum number of HTTP requests per second (RPS). For usage guidelines, see Rate balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is CONNECTION. MaxRate *int `pulumi:"maxRate"` // Defines a maximum target for requests per second (RPS). For usage guidelines, see Rate balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is CONNECTION. MaxRatePerEndpoint *float64 `pulumi:"maxRatePerEndpoint"` // Defines a maximum target for requests per second (RPS). For usage guidelines, see Rate balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is CONNECTION. MaxRatePerInstance *float64 `pulumi:"maxRatePerInstance"` // Optional parameter to define a target capacity for the UTILIZATIONbalancing mode. The valid range is [0.0, 1.0]. For usage guidelines, see Utilization balancing mode. MaxUtilization *float64 `pulumi:"maxUtilization"` } // BackendInput is an input type that accepts BackendArgs and BackendOutput values. // You can construct a concrete instance of `BackendInput` via: // // BackendArgs{...} type BackendInput interface { pulumi.Input ToBackendOutput() BackendOutput ToBackendOutputWithContext(context.Context) BackendOutput } // Message containing information of one individual backend. type BackendArgs struct { // Specifies how to determine whether the backend of a load balancer can handle additional traffic or is fully loaded. For usage guidelines, see Connection balancing mode. Backends must use compatible balancing modes. For more information, see Supported balancing modes and target capacity settings and Restrictions and guidance for instance groups. Note: Currently, if you use the API to configure incompatible balancing modes, the configuration might be accepted even though it has no impact and is ignored. Specifically, Backend.maxUtilization is ignored when Backend.balancingMode is RATE. In the future, this incompatible combination will be rejected. BalancingMode BackendBalancingModePtrInput `pulumi:"balancingMode"` // A multiplier applied to the backend's target capacity of its balancing mode. The default value is 1, which means the group serves up to 100% of its configured capacity (depending on balancingMode). A setting of 0 means the group is completely drained, offering 0% of its available capacity. The valid ranges are 0.0 and [0.1,1.0]. You cannot configure a setting larger than 0 and smaller than 0.1. You cannot configure a setting of 0 when there is only one backend attached to the backend service. CapacityScaler pulumi.Float64PtrInput `pulumi:"capacityScaler"` // An optional description of this resource. Provide this property when you create the resource. Description pulumi.StringPtrInput `pulumi:"description"` // This field designates whether this is a failover backend. More than one failover backend can be configured for a given BackendService. Failover pulumi.BoolPtrInput `pulumi:"failover"` // The fully-qualified URL of an instance group or network endpoint group (NEG) resource. To determine what types of backends a load balancer supports, see the [Backend services overview](https://cloud.google.com/load-balancing/docs/backend-service#backends). You must use the *fully-qualified* URL (starting with https://www.googleapis.com/) to specify the instance group or NEG. Partial URLs are not supported. Group pulumi.StringPtrInput `pulumi:"group"` // Defines a target maximum number of simultaneous connections. For usage guidelines, see Connection balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is RATE. MaxConnections pulumi.IntPtrInput `pulumi:"maxConnections"` // Defines a target maximum number of simultaneous connections. For usage guidelines, see Connection balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is RATE. MaxConnectionsPerEndpoint pulumi.IntPtrInput `pulumi:"maxConnectionsPerEndpoint"` // Defines a target maximum number of simultaneous connections. For usage guidelines, see Connection balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is RATE. MaxConnectionsPerInstance pulumi.IntPtrInput `pulumi:"maxConnectionsPerInstance"` // Defines a maximum number of HTTP requests per second (RPS). For usage guidelines, see Rate balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is CONNECTION. MaxRate pulumi.IntPtrInput `pulumi:"maxRate"` // Defines a maximum target for requests per second (RPS). For usage guidelines, see Rate balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is CONNECTION. MaxRatePerEndpoint pulumi.Float64PtrInput `pulumi:"maxRatePerEndpoint"` // Defines a maximum target for requests per second (RPS). For usage guidelines, see Rate balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is CONNECTION. MaxRatePerInstance pulumi.Float64PtrInput `pulumi:"maxRatePerInstance"` // Optional parameter to define a target capacity for the UTILIZATIONbalancing mode. The valid range is [0.0, 1.0]. For usage guidelines, see Utilization balancing mode. MaxUtilization pulumi.Float64PtrInput `pulumi:"maxUtilization"` } func (BackendArgs) ElementType() reflect.Type { return reflect.TypeOf((*Backend)(nil)).Elem() } func (i BackendArgs) ToBackendOutput() BackendOutput { return i.ToBackendOutputWithContext(context.Background()) } func (i BackendArgs) ToBackendOutputWithContext(ctx context.Context) BackendOutput { return pulumi.ToOutputWithContext(ctx, i).(BackendOutput) } // BackendArrayInput is an input type that accepts BackendArray and BackendArrayOutput values. // You can construct a concrete instance of `BackendArrayInput` via: // // BackendArray{ BackendArgs{...} } type BackendArrayInput interface { pulumi.Input ToBackendArrayOutput() BackendArrayOutput ToBackendArrayOutputWithContext(context.Context) BackendArrayOutput } type BackendArray []BackendInput func (BackendArray) ElementType() reflect.Type { return reflect.TypeOf((*[]Backend)(nil)).Elem() } func (i BackendArray) ToBackendArrayOutput() BackendArrayOutput { return i.ToBackendArrayOutputWithContext(context.Background()) } func (i BackendArray) ToBackendArrayOutputWithContext(ctx context.Context) BackendArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(BackendArrayOutput) } // Message containing information of one individual backend. type BackendOutput struct{ *pulumi.OutputState } func (BackendOutput) ElementType() reflect.Type { return reflect.TypeOf((*Backend)(nil)).Elem() } func (o BackendOutput) ToBackendOutput() BackendOutput { return o } func (o BackendOutput) ToBackendOutputWithContext(ctx context.Context) BackendOutput { return o } // Specifies how to determine whether the backend of a load balancer can handle additional traffic or is fully loaded. For usage guidelines, see Connection balancing mode. Backends must use compatible balancing modes. For more information, see Supported balancing modes and target capacity settings and Restrictions and guidance for instance groups. Note: Currently, if you use the API to configure incompatible balancing modes, the configuration might be accepted even though it has no impact and is ignored. Specifically, Backend.maxUtilization is ignored when Backend.balancingMode is RATE. In the future, this incompatible combination will be rejected. func (o BackendOutput) BalancingMode() BackendBalancingModePtrOutput { return o.ApplyT(func(v Backend) *BackendBalancingMode { return v.BalancingMode }).(BackendBalancingModePtrOutput) } // A multiplier applied to the backend's target capacity of its balancing mode. The default value is 1, which means the group serves up to 100% of its configured capacity (depending on balancingMode). A setting of 0 means the group is completely drained, offering 0% of its available capacity. The valid ranges are 0.0 and [0.1,1.0]. You cannot configure a setting larger than 0 and smaller than 0.1. You cannot configure a setting of 0 when there is only one backend attached to the backend service. func (o BackendOutput) CapacityScaler() pulumi.Float64PtrOutput { return o.ApplyT(func(v Backend) *float64 { return v.CapacityScaler }).(pulumi.Float64PtrOutput) } // An optional description of this resource. Provide this property when you create the resource. func (o BackendOutput) Description() pulumi.StringPtrOutput { return o.ApplyT(func(v Backend) *string { return v.Description }).(pulumi.StringPtrOutput) } // This field designates whether this is a failover backend. More than one failover backend can be configured for a given BackendService. func (o BackendOutput) Failover() pulumi.BoolPtrOutput { return o.ApplyT(func(v Backend) *bool { return v.Failover }).(pulumi.BoolPtrOutput) } // The fully-qualified URL of an instance group or network endpoint group (NEG) resource. To determine what types of backends a load balancer supports, see the [Backend services overview](https://cloud.google.com/load-balancing/docs/backend-service#backends). You must use the *fully-qualified* URL (starting with https://www.googleapis.com/) to specify the instance group or NEG. Partial URLs are not supported. func (o BackendOutput) Group() pulumi.StringPtrOutput { return o.ApplyT(func(v Backend) *string { return v.Group }).(pulumi.StringPtrOutput) } // Defines a target maximum number of simultaneous connections. For usage guidelines, see Connection balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is RATE. func (o BackendOutput) MaxConnections() pulumi.IntPtrOutput { return o.ApplyT(func(v Backend) *int { return v.MaxConnections }).(pulumi.IntPtrOutput) } // Defines a target maximum number of simultaneous connections. For usage guidelines, see Connection balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is RATE. func (o BackendOutput) MaxConnectionsPerEndpoint() pulumi.IntPtrOutput { return o.ApplyT(func(v Backend) *int { return v.MaxConnectionsPerEndpoint }).(pulumi.IntPtrOutput) } // Defines a target maximum number of simultaneous connections. For usage guidelines, see Connection balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is RATE. func (o BackendOutput) MaxConnectionsPerInstance() pulumi.IntPtrOutput { return o.ApplyT(func(v Backend) *int { return v.MaxConnectionsPerInstance }).(pulumi.IntPtrOutput) } // Defines a maximum number of HTTP requests per second (RPS). For usage guidelines, see Rate balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is CONNECTION. func (o BackendOutput) MaxRate() pulumi.IntPtrOutput { return o.ApplyT(func(v Backend) *int { return v.MaxRate }).(pulumi.IntPtrOutput) } // Defines a maximum target for requests per second (RPS). For usage guidelines, see Rate balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is CONNECTION. func (o BackendOutput) MaxRatePerEndpoint() pulumi.Float64PtrOutput { return o.ApplyT(func(v Backend) *float64 { return v.MaxRatePerEndpoint }).(pulumi.Float64PtrOutput) } // Defines a maximum target for requests per second (RPS). For usage guidelines, see Rate balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is CONNECTION. func (o BackendOutput) MaxRatePerInstance() pulumi.Float64PtrOutput { return o.ApplyT(func(v Backend) *float64 { return v.MaxRatePerInstance }).(pulumi.Float64PtrOutput) } // Optional parameter to define a target capacity for the UTILIZATIONbalancing mode. The valid range is [0.0, 1.0]. For usage guidelines, see Utilization balancing mode. func (o BackendOutput) MaxUtilization() pulumi.Float64PtrOutput { return o.ApplyT(func(v Backend) *float64 { return v.MaxUtilization }).(pulumi.Float64PtrOutput) } type BackendArrayOutput struct{ *pulumi.OutputState } func (BackendArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]Backend)(nil)).Elem() } func (o BackendArrayOutput) ToBackendArrayOutput() BackendArrayOutput { return o } func (o BackendArrayOutput) ToBackendArrayOutputWithContext(ctx context.Context) BackendArrayOutput { return o } func (o BackendArrayOutput) Index(i pulumi.IntInput) BackendOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) Backend { return vs[0].([]Backend)[vs[1].(int)] }).(BackendOutput) } // Message containing Cloud CDN configuration for a backend bucket. type BackendBucketCdnPolicy struct { // Bypass the cache when the specified request headers are matched - e.g. Pragma or Authorization headers. Up to 5 headers can be specified. The cache is bypassed for all cdnPolicy.cacheMode settings. BypassCacheOnRequestHeaders []BackendBucketCdnPolicyBypassCacheOnRequestHeader `pulumi:"bypassCacheOnRequestHeaders"` // The CacheKeyPolicy for this CdnPolicy. CacheKeyPolicy *BackendBucketCdnPolicyCacheKeyPolicy `pulumi:"cacheKeyPolicy"` // Specifies the cache setting for all responses from this backend. The possible values are: USE_ORIGIN_HEADERS Requires the origin to set valid caching headers to cache content. Responses without these headers will not be cached at Google's edge, and will require a full trip to the origin on every request, potentially impacting performance and increasing load on the origin server. FORCE_CACHE_ALL Cache all content, ignoring any "private", "no-store" or "no-cache" directives in Cache-Control response headers. Warning: this may result in Cloud CDN caching private, per-user (user identifiable) content. CACHE_ALL_STATIC Automatically cache static content, including common image formats, media (video and audio), and web assets (JavaScript and CSS). Requests and responses that are marked as uncacheable, as well as dynamic content (including HTML), will not be cached. CacheMode *BackendBucketCdnPolicyCacheMode `pulumi:"cacheMode"` // Specifies a separate client (e.g. browser client) maximum TTL. This is used to clamp the max-age (or Expires) value sent to the client. With FORCE_CACHE_ALL, the lesser of client_ttl and default_ttl is used for the response max-age directive, along with a "public" directive. For cacheable content in CACHE_ALL_STATIC mode, client_ttl clamps the max-age from the origin (if specified), or else sets the response max-age directive to the lesser of the client_ttl and default_ttl, and also ensures a "public" cache-control directive is present. If a client TTL is not specified, a default value (1 hour) will be used. The maximum allowed value is 31,622,400s (1 year). ClientTtl *int `pulumi:"clientTtl"` // Specifies the default TTL for cached content served by this origin for responses that do not have an existing valid TTL (max-age or s-max-age). Setting a TTL of "0" means "always revalidate". The value of defaultTTL cannot be set to a value greater than that of maxTTL, but can be equal. When the cacheMode is set to FORCE_CACHE_ALL, the defaultTTL will overwrite the TTL set in all responses. The maximum allowed value is 31,622,400s (1 year), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. DefaultTtl *int `pulumi:"defaultTtl"` // Specifies the maximum allowed TTL for cached content served by this origin. Cache directives that attempt to set a max-age or s-maxage higher than this, or an Expires header more than maxTTL seconds in the future will be capped at the value of maxTTL, as if it were the value of an s-maxage Cache-Control directive. Headers sent to the client will not be modified. Setting a TTL of "0" means "always revalidate". The maximum allowed value is 31,622,400s (1 year), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. MaxTtl *int `pulumi:"maxTtl"` // Negative caching allows per-status code TTLs to be set, in order to apply fine-grained caching for common errors or redirects. This can reduce the load on your origin and improve end-user experience by reducing response latency. When the cache mode is set to CACHE_ALL_STATIC or USE_ORIGIN_HEADERS, negative caching applies to responses with the specified response code that lack any Cache-Control, Expires, or Pragma: no-cache directives. When the cache mode is set to FORCE_CACHE_ALL, negative caching applies to all responses with the specified response code, and override any caching headers. By default, Cloud CDN will apply the following default TTLs to these status codes: HTTP 300 (Multiple Choice), 301, 308 (Permanent Redirects): 10m HTTP 404 (Not Found), 410 (Gone), 451 (Unavailable For Legal Reasons): 120s HTTP 405 (Method Not Found), 421 (Misdirected Request), 501 (Not Implemented): 60s. These defaults can be overridden in negative_caching_policy. NegativeCaching *bool `pulumi:"negativeCaching"` // Sets a cache TTL for the specified HTTP status code. negative_caching must be enabled to configure negative_caching_policy. Omitting the policy and leaving negative_caching enabled will use Cloud CDN's default cache TTLs. Note that when specifying an explicit negative_caching_policy, you should take care to specify a cache TTL for all response codes that you wish to cache. Cloud CDN will not apply any default negative caching when a policy exists. NegativeCachingPolicy []BackendBucketCdnPolicyNegativeCachingPolicy `pulumi:"negativeCachingPolicy"` // If true then Cloud CDN will combine multiple concurrent cache fill requests into a small number of requests to the origin. RequestCoalescing *bool `pulumi:"requestCoalescing"` // Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache. This setting defines the default "max-stale" duration for any cached responses that do not specify a max-stale directive. Stale responses that exceed the TTL configured here will not be served. The default limit (max-stale) is 86400s (1 day), which will allow stale content to be served up to this limit beyond the max-age (or s-max-age) of a cached response. The maximum allowed value is 604800 (1 week). Set this to zero (0) to disable serve-while-stale. ServeWhileStale *int `pulumi:"serveWhileStale"` // Maximum number of seconds the response to a signed URL request will be considered fresh. After this time period, the response will be revalidated before being served. Defaults to 1hr (3600s). When serving responses to signed URL requests, Cloud CDN will internally behave as though all responses from this backend had a "Cache-Control: public, max-age=[TTL]" header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered. SignedUrlCacheMaxAgeSec *string `pulumi:"signedUrlCacheMaxAgeSec"` } // BackendBucketCdnPolicyInput is an input type that accepts BackendBucketCdnPolicyArgs and BackendBucketCdnPolicyOutput values. // You can construct a concrete instance of `BackendBucketCdnPolicyInput` via: // // BackendBucketCdnPolicyArgs{...} type BackendBucketCdnPolicyInput interface { pulumi.Input ToBackendBucketCdnPolicyOutput() BackendBucketCdnPolicyOutput ToBackendBucketCdnPolicyOutputWithContext(context.Context) BackendBucketCdnPolicyOutput } // Message containing Cloud CDN configuration for a backend bucket. type BackendBucketCdnPolicyArgs struct { // Bypass the cache when the specified request headers are matched - e.g. Pragma or Authorization headers. Up to 5 headers can be specified. The cache is bypassed for all cdnPolicy.cacheMode settings. BypassCacheOnRequestHeaders BackendBucketCdnPolicyBypassCacheOnRequestHeaderArrayInput `pulumi:"bypassCacheOnRequestHeaders"` // The CacheKeyPolicy for this CdnPolicy. CacheKeyPolicy BackendBucketCdnPolicyCacheKeyPolicyPtrInput `pulumi:"cacheKeyPolicy"` // Specifies the cache setting for all responses from this backend. The possible values are: USE_ORIGIN_HEADERS Requires the origin to set valid caching headers to cache content. Responses without these headers will not be cached at Google's edge, and will require a full trip to the origin on every request, potentially impacting performance and increasing load on the origin server. FORCE_CACHE_ALL Cache all content, ignoring any "private", "no-store" or "no-cache" directives in Cache-Control response headers. Warning: this may result in Cloud CDN caching private, per-user (user identifiable) content. CACHE_ALL_STATIC Automatically cache static content, including common image formats, media (video and audio), and web assets (JavaScript and CSS). Requests and responses that are marked as uncacheable, as well as dynamic content (including HTML), will not be cached. CacheMode BackendBucketCdnPolicyCacheModePtrInput `pulumi:"cacheMode"` // Specifies a separate client (e.g. browser client) maximum TTL. This is used to clamp the max-age (or Expires) value sent to the client. With FORCE_CACHE_ALL, the lesser of client_ttl and default_ttl is used for the response max-age directive, along with a "public" directive. For cacheable content in CACHE_ALL_STATIC mode, client_ttl clamps the max-age from the origin (if specified), or else sets the response max-age directive to the lesser of the client_ttl and default_ttl, and also ensures a "public" cache-control directive is present. If a client TTL is not specified, a default value (1 hour) will be used. The maximum allowed value is 31,622,400s (1 year). ClientTtl pulumi.IntPtrInput `pulumi:"clientTtl"` // Specifies the default TTL for cached content served by this origin for responses that do not have an existing valid TTL (max-age or s-max-age). Setting a TTL of "0" means "always revalidate". The value of defaultTTL cannot be set to a value greater than that of maxTTL, but can be equal. When the cacheMode is set to FORCE_CACHE_ALL, the defaultTTL will overwrite the TTL set in all responses. The maximum allowed value is 31,622,400s (1 year), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. DefaultTtl pulumi.IntPtrInput `pulumi:"defaultTtl"` // Specifies the maximum allowed TTL for cached content served by this origin. Cache directives that attempt to set a max-age or s-maxage higher than this, or an Expires header more than maxTTL seconds in the future will be capped at the value of maxTTL, as if it were the value of an s-maxage Cache-Control directive. Headers sent to the client will not be modified. Setting a TTL of "0" means "always revalidate". The maximum allowed value is 31,622,400s (1 year), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. MaxTtl pulumi.IntPtrInput `pulumi:"maxTtl"` // Negative caching allows per-status code TTLs to be set, in order to apply fine-grained caching for common errors or redirects. This can reduce the load on your origin and improve end-user experience by reducing response latency. When the cache mode is set to CACHE_ALL_STATIC or USE_ORIGIN_HEADERS, negative caching applies to responses with the specified response code that lack any Cache-Control, Expires, or Pragma: no-cache directives. When the cache mode is set to FORCE_CACHE_ALL, negative caching applies to all responses with the specified response code, and override any caching headers. By default, Cloud CDN will apply the following default TTLs to these status codes: HTTP 300 (Multiple Choice), 301, 308 (Permanent Redirects): 10m HTTP 404 (Not Found), 410 (Gone), 451 (Unavailable For Legal Reasons): 120s HTTP 405 (Method Not Found), 421 (Misdirected Request), 501 (Not Implemented): 60s. These defaults can be overridden in negative_caching_policy. NegativeCaching pulumi.BoolPtrInput `pulumi:"negativeCaching"` // Sets a cache TTL for the specified HTTP status code. negative_caching must be enabled to configure negative_caching_policy. Omitting the policy and leaving negative_caching enabled will use Cloud CDN's default cache TTLs. Note that when specifying an explicit negative_caching_policy, you should take care to specify a cache TTL for all response codes that you wish to cache. Cloud CDN will not apply any default negative caching when a policy exists. NegativeCachingPolicy BackendBucketCdnPolicyNegativeCachingPolicyArrayInput `pulumi:"negativeCachingPolicy"` // If true then Cloud CDN will combine multiple concurrent cache fill requests into a small number of requests to the origin. RequestCoalescing pulumi.BoolPtrInput `pulumi:"requestCoalescing"` // Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache. This setting defines the default "max-stale" duration for any cached responses that do not specify a max-stale directive. Stale responses that exceed the TTL configured here will not be served. The default limit (max-stale) is 86400s (1 day), which will allow stale content to be served up to this limit beyond the max-age (or s-max-age) of a cached response. The maximum allowed value is 604800 (1 week). Set this to zero (0) to disable serve-while-stale. ServeWhileStale pulumi.IntPtrInput `pulumi:"serveWhileStale"` // Maximum number of seconds the response to a signed URL request will be considered fresh. After this time period, the response will be revalidated before being served. Defaults to 1hr (3600s). When serving responses to signed URL requests, Cloud CDN will internally behave as though all responses from this backend had a "Cache-Control: public, max-age=[TTL]" header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered. SignedUrlCacheMaxAgeSec pulumi.StringPtrInput `pulumi:"signedUrlCacheMaxAgeSec"` } func (BackendBucketCdnPolicyArgs) ElementType() reflect.Type { return reflect.TypeOf((*BackendBucketCdnPolicy)(nil)).Elem() } func (i BackendBucketCdnPolicyArgs) ToBackendBucketCdnPolicyOutput() BackendBucketCdnPolicyOutput { return i.ToBackendBucketCdnPolicyOutputWithContext(context.Background()) } func (i BackendBucketCdnPolicyArgs) ToBackendBucketCdnPolicyOutputWithContext(ctx context.Context) BackendBucketCdnPolicyOutput { return pulumi.ToOutputWithContext(ctx, i).(BackendBucketCdnPolicyOutput) } func (i BackendBucketCdnPolicyArgs) ToBackendBucketCdnPolicyPtrOutput() BackendBucketCdnPolicyPtrOutput { return i.ToBackendBucketCdnPolicyPtrOutputWithContext(context.Background()) } func (i BackendBucketCdnPolicyArgs) ToBackendBucketCdnPolicyPtrOutputWithContext(ctx context.Context) BackendBucketCdnPolicyPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(BackendBucketCdnPolicyOutput).ToBackendBucketCdnPolicyPtrOutputWithContext(ctx) } // BackendBucketCdnPolicyPtrInput is an input type that accepts BackendBucketCdnPolicyArgs, BackendBucketCdnPolicyPtr and BackendBucketCdnPolicyPtrOutput values. // You can construct a concrete instance of `BackendBucketCdnPolicyPtrInput` via: // // BackendBucketCdnPolicyArgs{...} // // or: // // nil type BackendBucketCdnPolicyPtrInput interface { pulumi.Input ToBackendBucketCdnPolicyPtrOutput() BackendBucketCdnPolicyPtrOutput ToBackendBucketCdnPolicyPtrOutputWithContext(context.Context) BackendBucketCdnPolicyPtrOutput } type backendBucketCdnPolicyPtrType BackendBucketCdnPolicyArgs func BackendBucketCdnPolicyPtr(v *BackendBucketCdnPolicyArgs) BackendBucketCdnPolicyPtrInput { return (*backendBucketCdnPolicyPtrType)(v) } func (*backendBucketCdnPolicyPtrType) ElementType() reflect.Type { return reflect.TypeOf((**BackendBucketCdnPolicy)(nil)).Elem() } func (i *backendBucketCdnPolicyPtrType) ToBackendBucketCdnPolicyPtrOutput() BackendBucketCdnPolicyPtrOutput { return i.ToBackendBucketCdnPolicyPtrOutputWithContext(context.Background()) } func (i *backendBucketCdnPolicyPtrType) ToBackendBucketCdnPolicyPtrOutputWithContext(ctx context.Context) BackendBucketCdnPolicyPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(BackendBucketCdnPolicyPtrOutput) } // Message containing Cloud CDN configuration for a backend bucket. type BackendBucketCdnPolicyOutput struct{ *pulumi.OutputState } func (BackendBucketCdnPolicyOutput) ElementType() reflect.Type { return reflect.TypeOf((*BackendBucketCdnPolicy)(nil)).Elem() } func (o BackendBucketCdnPolicyOutput) ToBackendBucketCdnPolicyOutput() BackendBucketCdnPolicyOutput { return o } func (o BackendBucketCdnPolicyOutput) ToBackendBucketCdnPolicyOutputWithContext(ctx context.Context) BackendBucketCdnPolicyOutput { return o } func (o BackendBucketCdnPolicyOutput) ToBackendBucketCdnPolicyPtrOutput() BackendBucketCdnPolicyPtrOutput { return o.ToBackendBucketCdnPolicyPtrOutputWithContext(context.Background()) } func (o BackendBucketCdnPolicyOutput) ToBackendBucketCdnPolicyPtrOutputWithContext(ctx context.Context) BackendBucketCdnPolicyPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v BackendBucketCdnPolicy) *BackendBucketCdnPolicy { return &v }).(BackendBucketCdnPolicyPtrOutput) } // Bypass the cache when the specified request headers are matched - e.g. Pragma or Authorization headers. Up to 5 headers can be specified. The cache is bypassed for all cdnPolicy.cacheMode settings. func (o BackendBucketCdnPolicyOutput) BypassCacheOnRequestHeaders() BackendBucketCdnPolicyBypassCacheOnRequestHeaderArrayOutput { return o.ApplyT(func(v BackendBucketCdnPolicy) []BackendBucketCdnPolicyBypassCacheOnRequestHeader { return v.BypassCacheOnRequestHeaders }).(BackendBucketCdnPolicyBypassCacheOnRequestHeaderArrayOutput) } // The CacheKeyPolicy for this CdnPolicy. func (o BackendBucketCdnPolicyOutput) CacheKeyPolicy() BackendBucketCdnPolicyCacheKeyPolicyPtrOutput { return o.ApplyT(func(v BackendBucketCdnPolicy) *BackendBucketCdnPolicyCacheKeyPolicy { return v.CacheKeyPolicy }).(BackendBucketCdnPolicyCacheKeyPolicyPtrOutput) } // Specifies the cache setting for all responses from this backend. The possible values are: USE_ORIGIN_HEADERS Requires the origin to set valid caching headers to cache content. Responses without these headers will not be cached at Google's edge, and will require a full trip to the origin on every request, potentially impacting performance and increasing load on the origin server. FORCE_CACHE_ALL Cache all content, ignoring any "private", "no-store" or "no-cache" directives in Cache-Control response headers. Warning: this may result in Cloud CDN caching private, per-user (user identifiable) content. CACHE_ALL_STATIC Automatically cache static content, including common image formats, media (video and audio), and web assets (JavaScript and CSS). Requests and responses that are marked as uncacheable, as well as dynamic content (including HTML), will not be cached. func (o BackendBucketCdnPolicyOutput) CacheMode() BackendBucketCdnPolicyCacheModePtrOutput { return o.ApplyT(func(v BackendBucketCdnPolicy) *BackendBucketCdnPolicyCacheMode { return v.CacheMode }).(BackendBucketCdnPolicyCacheModePtrOutput) } // Specifies a separate client (e.g. browser client) maximum TTL. This is used to clamp the max-age (or Expires) value sent to the client. With FORCE_CACHE_ALL, the lesser of client_ttl and default_ttl is used for the response max-age directive, along with a "public" directive. For cacheable content in CACHE_ALL_STATIC mode, client_ttl clamps the max-age from the origin (if specified), or else sets the response max-age directive to the lesser of the client_ttl and default_ttl, and also ensures a "public" cache-control directive is present. If a client TTL is not specified, a default value (1 hour) will be used. The maximum allowed value is 31,622,400s (1 year). func (o BackendBucketCdnPolicyOutput) ClientTtl() pulumi.IntPtrOutput { return o.ApplyT(func(v BackendBucketCdnPolicy) *int { return v.ClientTtl }).(pulumi.IntPtrOutput) } // Specifies the default TTL for cached content served by this origin for responses that do not have an existing valid TTL (max-age or s-max-age). Setting a TTL of "0" means "always revalidate". The value of defaultTTL cannot be set to a value greater than that of maxTTL, but can be equal. When the cacheMode is set to FORCE_CACHE_ALL, the defaultTTL will overwrite the TTL set in all responses. The maximum allowed value is 31,622,400s (1 year), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. func (o BackendBucketCdnPolicyOutput) DefaultTtl() pulumi.IntPtrOutput { return o.ApplyT(func(v BackendBucketCdnPolicy) *int { return v.DefaultTtl }).(pulumi.IntPtrOutput) } // Specifies the maximum allowed TTL for cached content served by this origin. Cache directives that attempt to set a max-age or s-maxage higher than this, or an Expires header more than maxTTL seconds in the future will be capped at the value of maxTTL, as if it were the value of an s-maxage Cache-Control directive. Headers sent to the client will not be modified. Setting a TTL of "0" means "always revalidate". The maximum allowed value is 31,622,400s (1 year), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. func (o BackendBucketCdnPolicyOutput) MaxTtl() pulumi.IntPtrOutput { return o.ApplyT(func(v BackendBucketCdnPolicy) *int { return v.MaxTtl }).(pulumi.IntPtrOutput) } // Negative caching allows per-status code TTLs to be set, in order to apply fine-grained caching for common errors or redirects. This can reduce the load on your origin and improve end-user experience by reducing response latency. When the cache mode is set to CACHE_ALL_STATIC or USE_ORIGIN_HEADERS, negative caching applies to responses with the specified response code that lack any Cache-Control, Expires, or Pragma: no-cache directives. When the cache mode is set to FORCE_CACHE_ALL, negative caching applies to all responses with the specified response code, and override any caching headers. By default, Cloud CDN will apply the following default TTLs to these status codes: HTTP 300 (Multiple Choice), 301, 308 (Permanent Redirects): 10m HTTP 404 (Not Found), 410 (Gone), 451 (Unavailable For Legal Reasons): 120s HTTP 405 (Method Not Found), 421 (Misdirected Request), 501 (Not Implemented): 60s. These defaults can be overridden in negative_caching_policy. func (o BackendBucketCdnPolicyOutput) NegativeCaching() pulumi.BoolPtrOutput { return o.ApplyT(func(v BackendBucketCdnPolicy) *bool { return v.NegativeCaching }).(pulumi.BoolPtrOutput) } // Sets a cache TTL for the specified HTTP status code. negative_caching must be enabled to configure negative_caching_policy. Omitting the policy and leaving negative_caching enabled will use Cloud CDN's default cache TTLs. Note that when specifying an explicit negative_caching_policy, you should take care to specify a cache TTL for all response codes that you wish to cache. Cloud CDN will not apply any default negative caching when a policy exists. func (o BackendBucketCdnPolicyOutput) NegativeCachingPolicy() BackendBucketCdnPolicyNegativeCachingPolicyArrayOutput { return o.ApplyT(func(v BackendBucketCdnPolicy) []BackendBucketCdnPolicyNegativeCachingPolicy { return v.NegativeCachingPolicy }).(BackendBucketCdnPolicyNegativeCachingPolicyArrayOutput) } // If true then Cloud CDN will combine multiple concurrent cache fill requests into a small number of requests to the origin. func (o BackendBucketCdnPolicyOutput) RequestCoalescing() pulumi.BoolPtrOutput { return o.ApplyT(func(v BackendBucketCdnPolicy) *bool { return v.RequestCoalescing }).(pulumi.BoolPtrOutput) } // Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache. This setting defines the default "max-stale" duration for any cached responses that do not specify a max-stale directive. Stale responses that exceed the TTL configured here will not be served. The default limit (max-stale) is 86400s (1 day), which will allow stale content to be served up to this limit beyond the max-age (or s-max-age) of a cached response. The maximum allowed value is 604800 (1 week). Set this to zero (0) to disable serve-while-stale. func (o BackendBucketCdnPolicyOutput) ServeWhileStale() pulumi.IntPtrOutput { return o.ApplyT(func(v BackendBucketCdnPolicy) *int { return v.ServeWhileStale }).(pulumi.IntPtrOutput) } // Maximum number of seconds the response to a signed URL request will be considered fresh. After this time period, the response will be revalidated before being served. Defaults to 1hr (3600s). When serving responses to signed URL requests, Cloud CDN will internally behave as though all responses from this backend had a "Cache-Control: public, max-age=[TTL]" header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered. func (o BackendBucketCdnPolicyOutput) SignedUrlCacheMaxAgeSec() pulumi.StringPtrOutput { return o.ApplyT(func(v BackendBucketCdnPolicy) *string { return v.SignedUrlCacheMaxAgeSec }).(pulumi.StringPtrOutput) } type BackendBucketCdnPolicyPtrOutput struct{ *pulumi.OutputState } func (BackendBucketCdnPolicyPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**BackendBucketCdnPolicy)(nil)).Elem() } func (o BackendBucketCdnPolicyPtrOutput) ToBackendBucketCdnPolicyPtrOutput() BackendBucketCdnPolicyPtrOutput { return o } func (o BackendBucketCdnPolicyPtrOutput) ToBackendBucketCdnPolicyPtrOutputWithContext(ctx context.Context) BackendBucketCdnPolicyPtrOutput { return o } func (o BackendBucketCdnPolicyPtrOutput) Elem() BackendBucketCdnPolicyOutput { return o.ApplyT(func(v *BackendBucketCdnPolicy) BackendBucketCdnPolicy { if v != nil { return *v } var ret BackendBucketCdnPolicy return ret }).(BackendBucketCdnPolicyOutput) } // Bypass the cache when the specified request headers are matched - e.g. Pragma or Authorization headers. Up to 5 headers can be specified. The cache is bypassed for all cdnPolicy.cacheMode settings. func (o BackendBucketCdnPolicyPtrOutput) BypassCacheOnRequestHeaders() BackendBucketCdnPolicyBypassCacheOnRequestHeaderArrayOutput { return o.ApplyT(func(v *BackendBucketCdnPolicy) []BackendBucketCdnPolicyBypassCacheOnRequestHeader { if v == nil { return nil } return v.BypassCacheOnRequestHeaders }).(BackendBucketCdnPolicyBypassCacheOnRequestHeaderArrayOutput) } // The CacheKeyPolicy for this CdnPolicy. func (o BackendBucketCdnPolicyPtrOutput) CacheKeyPolicy() BackendBucketCdnPolicyCacheKeyPolicyPtrOutput { return o.ApplyT(func(v *BackendBucketCdnPolicy) *BackendBucketCdnPolicyCacheKeyPolicy { if v == nil { return nil } return v.CacheKeyPolicy }).(BackendBucketCdnPolicyCacheKeyPolicyPtrOutput) } // Specifies the cache setting for all responses from this backend. The possible values are: USE_ORIGIN_HEADERS Requires the origin to set valid caching headers to cache content. Responses without these headers will not be cached at Google's edge, and will require a full trip to the origin on every request, potentially impacting performance and increasing load on the origin server. FORCE_CACHE_ALL Cache all content, ignoring any "private", "no-store" or "no-cache" directives in Cache-Control response headers. Warning: this may result in Cloud CDN caching private, per-user (user identifiable) content. CACHE_ALL_STATIC Automatically cache static content, including common image formats, media (video and audio), and web assets (JavaScript and CSS). Requests and responses that are marked as uncacheable, as well as dynamic content (including HTML), will not be cached. func (o BackendBucketCdnPolicyPtrOutput) CacheMode() BackendBucketCdnPolicyCacheModePtrOutput { return o.ApplyT(func(v *BackendBucketCdnPolicy) *BackendBucketCdnPolicyCacheMode { if v == nil { return nil } return v.CacheMode }).(BackendBucketCdnPolicyCacheModePtrOutput) } // Specifies a separate client (e.g. browser client) maximum TTL. This is used to clamp the max-age (or Expires) value sent to the client. With FORCE_CACHE_ALL, the lesser of client_ttl and default_ttl is used for the response max-age directive, along with a "public" directive. For cacheable content in CACHE_ALL_STATIC mode, client_ttl clamps the max-age from the origin (if specified), or else sets the response max-age directive to the lesser of the client_ttl and default_ttl, and also ensures a "public" cache-control directive is present. If a client TTL is not specified, a default value (1 hour) will be used. The maximum allowed value is 31,622,400s (1 year). func (o BackendBucketCdnPolicyPtrOutput) ClientTtl() pulumi.IntPtrOutput { return o.ApplyT(func(v *BackendBucketCdnPolicy) *int { if v == nil { return nil } return v.ClientTtl }).(pulumi.IntPtrOutput) } // Specifies the default TTL for cached content served by this origin for responses that do not have an existing valid TTL (max-age or s-max-age). Setting a TTL of "0" means "always revalidate". The value of defaultTTL cannot be set to a value greater than that of maxTTL, but can be equal. When the cacheMode is set to FORCE_CACHE_ALL, the defaultTTL will overwrite the TTL set in all responses. The maximum allowed value is 31,622,400s (1 year), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. func (o BackendBucketCdnPolicyPtrOutput) DefaultTtl() pulumi.IntPtrOutput { return o.ApplyT(func(v *BackendBucketCdnPolicy) *int { if v == nil { return nil } return v.DefaultTtl }).(pulumi.IntPtrOutput) } // Specifies the maximum allowed TTL for cached content served by this origin. Cache directives that attempt to set a max-age or s-maxage higher than this, or an Expires header more than maxTTL seconds in the future will be capped at the value of maxTTL, as if it were the value of an s-maxage Cache-Control directive. Headers sent to the client will not be modified. Setting a TTL of "0" means "always revalidate". The maximum allowed value is 31,622,400s (1 year), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. func (o BackendBucketCdnPolicyPtrOutput) MaxTtl() pulumi.IntPtrOutput { return o.ApplyT(func(v *BackendBucketCdnPolicy) *int { if v == nil { return nil } return v.MaxTtl }).(pulumi.IntPtrOutput) } // Negative caching allows per-status code TTLs to be set, in order to apply fine-grained caching for common errors or redirects. This can reduce the load on your origin and improve end-user experience by reducing response latency. When the cache mode is set to CACHE_ALL_STATIC or USE_ORIGIN_HEADERS, negative caching applies to responses with the specified response code that lack any Cache-Control, Expires, or Pragma: no-cache directives. When the cache mode is set to FORCE_CACHE_ALL, negative caching applies to all responses with the specified response code, and override any caching headers. By default, Cloud CDN will apply the following default TTLs to these status codes: HTTP 300 (Multiple Choice), 301, 308 (Permanent Redirects): 10m HTTP 404 (Not Found), 410 (Gone), 451 (Unavailable For Legal Reasons): 120s HTTP 405 (Method Not Found), 421 (Misdirected Request), 501 (Not Implemented): 60s. These defaults can be overridden in negative_caching_policy. func (o BackendBucketCdnPolicyPtrOutput) NegativeCaching() pulumi.BoolPtrOutput { return o.ApplyT(func(v *BackendBucketCdnPolicy) *bool { if v == nil { return nil } return v.NegativeCaching }).(pulumi.BoolPtrOutput) } // Sets a cache TTL for the specified HTTP status code. negative_caching must be enabled to configure negative_caching_policy. Omitting the policy and leaving negative_caching enabled will use Cloud CDN's default cache TTLs. Note that when specifying an explicit negative_caching_policy, you should take care to specify a cache TTL for all response codes that you wish to cache. Cloud CDN will not apply any default negative caching when a policy exists. func (o BackendBucketCdnPolicyPtrOutput) NegativeCachingPolicy() BackendBucketCdnPolicyNegativeCachingPolicyArrayOutput { return o.ApplyT(func(v *BackendBucketCdnPolicy) []BackendBucketCdnPolicyNegativeCachingPolicy { if v == nil { return nil } return v.NegativeCachingPolicy }).(BackendBucketCdnPolicyNegativeCachingPolicyArrayOutput) } // If true then Cloud CDN will combine multiple concurrent cache fill requests into a small number of requests to the origin. func (o BackendBucketCdnPolicyPtrOutput) RequestCoalescing() pulumi.BoolPtrOutput { return o.ApplyT(func(v *BackendBucketCdnPolicy) *bool { if v == nil { return nil } return v.RequestCoalescing }).(pulumi.BoolPtrOutput) } // Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache. This setting defines the default "max-stale" duration for any cached responses that do not specify a max-stale directive. Stale responses that exceed the TTL configured here will not be served. The default limit (max-stale) is 86400s (1 day), which will allow stale content to be served up to this limit beyond the max-age (or s-max-age) of a cached response. The maximum allowed value is 604800 (1 week). Set this to zero (0) to disable serve-while-stale. func (o BackendBucketCdnPolicyPtrOutput) ServeWhileStale() pulumi.IntPtrOutput { return o.ApplyT(func(v *BackendBucketCdnPolicy) *int { if v == nil { return nil } return v.ServeWhileStale }).(pulumi.IntPtrOutput) } // Maximum number of seconds the response to a signed URL request will be considered fresh. After this time period, the response will be revalidated before being served. Defaults to 1hr (3600s). When serving responses to signed URL requests, Cloud CDN will internally behave as though all responses from this backend had a "Cache-Control: public, max-age=[TTL]" header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered. func (o BackendBucketCdnPolicyPtrOutput) SignedUrlCacheMaxAgeSec() pulumi.StringPtrOutput { return o.ApplyT(func(v *BackendBucketCdnPolicy) *string { if v == nil { return nil } return v.SignedUrlCacheMaxAgeSec }).(pulumi.StringPtrOutput) } // Bypass the cache when the specified request headers are present, e.g. Pragma or Authorization headers. Values are case insensitive. The presence of such a header overrides the cache_mode setting. type BackendBucketCdnPolicyBypassCacheOnRequestHeader struct { // The header field name to match on when bypassing cache. Values are case-insensitive. HeaderName *string `pulumi:"headerName"` } // BackendBucketCdnPolicyBypassCacheOnRequestHeaderInput is an input type that accepts BackendBucketCdnPolicyBypassCacheOnRequestHeaderArgs and BackendBucketCdnPolicyBypassCacheOnRequestHeaderOutput values. // You can construct a concrete instance of `BackendBucketCdnPolicyBypassCacheOnRequestHeaderInput` via: // // BackendBucketCdnPolicyBypassCacheOnRequestHeaderArgs{...} type BackendBucketCdnPolicyBypassCacheOnRequestHeaderInput interface { pulumi.Input ToBackendBucketCdnPolicyBypassCacheOnRequestHeaderOutput() BackendBucketCdnPolicyBypassCacheOnRequestHeaderOutput ToBackendBucketCdnPolicyBypassCacheOnRequestHeaderOutputWithContext(context.Context) BackendBucketCdnPolicyBypassCacheOnRequestHeaderOutput } // Bypass the cache when the specified request headers are present, e.g. Pragma or Authorization headers. Values are case insensitive. The presence of such a header overrides the cache_mode setting. type BackendBucketCdnPolicyBypassCacheOnRequestHeaderArgs struct { // The header field name to match on when bypassing cache. Values are case-insensitive. HeaderName pulumi.StringPtrInput `pulumi:"headerName"` } func (BackendBucketCdnPolicyBypassCacheOnRequestHeaderArgs) ElementType() reflect.Type { return reflect.TypeOf((*BackendBucketCdnPolicyBypassCacheOnRequestHeader)(nil)).Elem() } func (i BackendBucketCdnPolicyBypassCacheOnRequestHeaderArgs) ToBackendBucketCdnPolicyBypassCacheOnRequestHeaderOutput() BackendBucketCdnPolicyBypassCacheOnRequestHeaderOutput { return i.ToBackendBucketCdnPolicyBypassCacheOnRequestHeaderOutputWithContext(context.Background()) } func (i BackendBucketCdnPolicyBypassCacheOnRequestHeaderArgs) ToBackendBucketCdnPolicyBypassCacheOnRequestHeaderOutputWithContext(ctx context.Context) BackendBucketCdnPolicyBypassCacheOnRequestHeaderOutput { return pulumi.ToOutputWithContext(ctx, i).(BackendBucketCdnPolicyBypassCacheOnRequestHeaderOutput) } // BackendBucketCdnPolicyBypassCacheOnRequestHeaderArrayInput is an input type that accepts BackendBucketCdnPolicyBypassCacheOnRequestHeaderArray and BackendBucketCdnPolicyBypassCacheOnRequestHeaderArrayOutput values. // You can construct a concrete instance of `BackendBucketCdnPolicyBypassCacheOnRequestHeaderArrayInput` via: // // BackendBucketCdnPolicyBypassCacheOnRequestHeaderArray{ BackendBucketCdnPolicyBypassCacheOnRequestHeaderArgs{...} } type BackendBucketCdnPolicyBypassCacheOnRequestHeaderArrayInput interface { pulumi.Input ToBackendBucketCdnPolicyBypassCacheOnRequestHeaderArrayOutput() BackendBucketCdnPolicyBypassCacheOnRequestHeaderArrayOutput ToBackendBucketCdnPolicyBypassCacheOnRequestHeaderArrayOutputWithContext(context.Context) BackendBucketCdnPolicyBypassCacheOnRequestHeaderArrayOutput } type BackendBucketCdnPolicyBypassCacheOnRequestHeaderArray []BackendBucketCdnPolicyBypassCacheOnRequestHeaderInput func (BackendBucketCdnPolicyBypassCacheOnRequestHeaderArray) ElementType() reflect.Type { return reflect.TypeOf((*[]BackendBucketCdnPolicyBypassCacheOnRequestHeader)(nil)).Elem() } func (i BackendBucketCdnPolicyBypassCacheOnRequestHeaderArray) ToBackendBucketCdnPolicyBypassCacheOnRequestHeaderArrayOutput() BackendBucketCdnPolicyBypassCacheOnRequestHeaderArrayOutput { return i.ToBackendBucketCdnPolicyBypassCacheOnRequestHeaderArrayOutputWithContext(context.Background()) } func (i BackendBucketCdnPolicyBypassCacheOnRequestHeaderArray) ToBackendBucketCdnPolicyBypassCacheOnRequestHeaderArrayOutputWithContext(ctx context.Context) BackendBucketCdnPolicyBypassCacheOnRequestHeaderArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(BackendBucketCdnPolicyBypassCacheOnRequestHeaderArrayOutput) } // Bypass the cache when the specified request headers are present, e.g. Pragma or Authorization headers. Values are case insensitive. The presence of such a header overrides the cache_mode setting. type BackendBucketCdnPolicyBypassCacheOnRequestHeaderOutput struct{ *pulumi.OutputState } func (BackendBucketCdnPolicyBypassCacheOnRequestHeaderOutput) ElementType() reflect.Type { return reflect.TypeOf((*BackendBucketCdnPolicyBypassCacheOnRequestHeader)(nil)).Elem() } func (o BackendBucketCdnPolicyBypassCacheOnRequestHeaderOutput) ToBackendBucketCdnPolicyBypassCacheOnRequestHeaderOutput() BackendBucketCdnPolicyBypassCacheOnRequestHeaderOutput { return o } func (o BackendBucketCdnPolicyBypassCacheOnRequestHeaderOutput) ToBackendBucketCdnPolicyBypassCacheOnRequestHeaderOutputWithContext(ctx context.Context) BackendBucketCdnPolicyBypassCacheOnRequestHeaderOutput { return o } // The header field name to match on when bypassing cache. Values are case-insensitive. func (o BackendBucketCdnPolicyBypassCacheOnRequestHeaderOutput) HeaderName() pulumi.StringPtrOutput { return o.ApplyT(func(v BackendBucketCdnPolicyBypassCacheOnRequestHeader) *string { return v.HeaderName }).(pulumi.StringPtrOutput) } type BackendBucketCdnPolicyBypassCacheOnRequestHeaderArrayOutput struct{ *pulumi.OutputState } func (BackendBucketCdnPolicyBypassCacheOnRequestHeaderArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]BackendBucketCdnPolicyBypassCacheOnRequestHeader)(nil)).Elem() } func (o BackendBucketCdnPolicyBypassCacheOnRequestHeaderArrayOutput) ToBackendBucketCdnPolicyBypassCacheOnRequestHeaderArrayOutput() BackendBucketCdnPolicyBypassCacheOnRequestHeaderArrayOutput { return o } func (o BackendBucketCdnPolicyBypassCacheOnRequestHeaderArrayOutput) ToBackendBucketCdnPolicyBypassCacheOnRequestHeaderArrayOutputWithContext(ctx context.Context) BackendBucketCdnPolicyBypassCacheOnRequestHeaderArrayOutput { return o } func (o BackendBucketCdnPolicyBypassCacheOnRequestHeaderArrayOutput) Index(i pulumi.IntInput) BackendBucketCdnPolicyBypassCacheOnRequestHeaderOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) BackendBucketCdnPolicyBypassCacheOnRequestHeader { return vs[0].([]BackendBucketCdnPolicyBypassCacheOnRequestHeader)[vs[1].(int)] }).(BackendBucketCdnPolicyBypassCacheOnRequestHeaderOutput) } // Bypass the cache when the specified request headers are present, e.g. Pragma or Authorization headers. Values are case insensitive. The presence of such a header overrides the cache_mode setting. type BackendBucketCdnPolicyBypassCacheOnRequestHeaderResponse struct { // The header field name to match on when bypassing cache. Values are case-insensitive. HeaderName string `pulumi:"headerName"` } // Bypass the cache when the specified request headers are present, e.g. Pragma or Authorization headers. Values are case insensitive. The presence of such a header overrides the cache_mode setting. type BackendBucketCdnPolicyBypassCacheOnRequestHeaderResponseOutput struct{ *pulumi.OutputState } func (BackendBucketCdnPolicyBypassCacheOnRequestHeaderResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*BackendBucketCdnPolicyBypassCacheOnRequestHeaderResponse)(nil)).Elem() } func (o BackendBucketCdnPolicyBypassCacheOnRequestHeaderResponseOutput) ToBackendBucketCdnPolicyBypassCacheOnRequestHeaderResponseOutput() BackendBucketCdnPolicyBypassCacheOnRequestHeaderResponseOutput { return o } func (o BackendBucketCdnPolicyBypassCacheOnRequestHeaderResponseOutput) ToBackendBucketCdnPolicyBypassCacheOnRequestHeaderResponseOutputWithContext(ctx context.Context) BackendBucketCdnPolicyBypassCacheOnRequestHeaderResponseOutput { return o } // The header field name to match on when bypassing cache. Values are case-insensitive. func (o BackendBucketCdnPolicyBypassCacheOnRequestHeaderResponseOutput) HeaderName() pulumi.StringOutput { return o.ApplyT(func(v BackendBucketCdnPolicyBypassCacheOnRequestHeaderResponse) string { return v.HeaderName }).(pulumi.StringOutput) } type BackendBucketCdnPolicyBypassCacheOnRequestHeaderResponseArrayOutput struct{ *pulumi.OutputState } func (BackendBucketCdnPolicyBypassCacheOnRequestHeaderResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]BackendBucketCdnPolicyBypassCacheOnRequestHeaderResponse)(nil)).Elem() } func (o BackendBucketCdnPolicyBypassCacheOnRequestHeaderResponseArrayOutput) ToBackendBucketCdnPolicyBypassCacheOnRequestHeaderResponseArrayOutput() BackendBucketCdnPolicyBypassCacheOnRequestHeaderResponseArrayOutput { return o } func (o BackendBucketCdnPolicyBypassCacheOnRequestHeaderResponseArrayOutput) ToBackendBucketCdnPolicyBypassCacheOnRequestHeaderResponseArrayOutputWithContext(ctx context.Context) BackendBucketCdnPolicyBypassCacheOnRequestHeaderResponseArrayOutput { return o } func (o BackendBucketCdnPolicyBypassCacheOnRequestHeaderResponseArrayOutput) Index(i pulumi.IntInput) BackendBucketCdnPolicyBypassCacheOnRequestHeaderResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) BackendBucketCdnPolicyBypassCacheOnRequestHeaderResponse { return vs[0].([]BackendBucketCdnPolicyBypassCacheOnRequestHeaderResponse)[vs[1].(int)] }).(BackendBucketCdnPolicyBypassCacheOnRequestHeaderResponseOutput) } // Message containing what to include in the cache key for a request for Cloud CDN. type BackendBucketCdnPolicyCacheKeyPolicy struct { // Allows HTTP request headers (by name) to be used in the cache key. IncludeHttpHeaders []string `pulumi:"includeHttpHeaders"` // Names of query string parameters to include in cache keys. All other parameters will be excluded. '&' and '=' will be percent encoded and not treated as delimiters. QueryStringWhitelist []string `pulumi:"queryStringWhitelist"` } // BackendBucketCdnPolicyCacheKeyPolicyInput is an input type that accepts BackendBucketCdnPolicyCacheKeyPolicyArgs and BackendBucketCdnPolicyCacheKeyPolicyOutput values. // You can construct a concrete instance of `BackendBucketCdnPolicyCacheKeyPolicyInput` via: // // BackendBucketCdnPolicyCacheKeyPolicyArgs{...} type BackendBucketCdnPolicyCacheKeyPolicyInput interface { pulumi.Input ToBackendBucketCdnPolicyCacheKeyPolicyOutput() BackendBucketCdnPolicyCacheKeyPolicyOutput ToBackendBucketCdnPolicyCacheKeyPolicyOutputWithContext(context.Context) BackendBucketCdnPolicyCacheKeyPolicyOutput } // Message containing what to include in the cache key for a request for Cloud CDN. type BackendBucketCdnPolicyCacheKeyPolicyArgs struct { // Allows HTTP request headers (by name) to be used in the cache key. IncludeHttpHeaders pulumi.StringArrayInput `pulumi:"includeHttpHeaders"` // Names of query string parameters to include in cache keys. All other parameters will be excluded. '&' and '=' will be percent encoded and not treated as delimiters. QueryStringWhitelist pulumi.StringArrayInput `pulumi:"queryStringWhitelist"` } func (BackendBucketCdnPolicyCacheKeyPolicyArgs) ElementType() reflect.Type { return reflect.TypeOf((*BackendBucketCdnPolicyCacheKeyPolicy)(nil)).Elem() } func (i BackendBucketCdnPolicyCacheKeyPolicyArgs) ToBackendBucketCdnPolicyCacheKeyPolicyOutput() BackendBucketCdnPolicyCacheKeyPolicyOutput { return i.ToBackendBucketCdnPolicyCacheKeyPolicyOutputWithContext(context.Background()) } func (i BackendBucketCdnPolicyCacheKeyPolicyArgs) ToBackendBucketCdnPolicyCacheKeyPolicyOutputWithContext(ctx context.Context) BackendBucketCdnPolicyCacheKeyPolicyOutput { return pulumi.ToOutputWithContext(ctx, i).(BackendBucketCdnPolicyCacheKeyPolicyOutput) } func (i BackendBucketCdnPolicyCacheKeyPolicyArgs) ToBackendBucketCdnPolicyCacheKeyPolicyPtrOutput() BackendBucketCdnPolicyCacheKeyPolicyPtrOutput { return i.ToBackendBucketCdnPolicyCacheKeyPolicyPtrOutputWithContext(context.Background()) } func (i BackendBucketCdnPolicyCacheKeyPolicyArgs) ToBackendBucketCdnPolicyCacheKeyPolicyPtrOutputWithContext(ctx context.Context) BackendBucketCdnPolicyCacheKeyPolicyPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(BackendBucketCdnPolicyCacheKeyPolicyOutput).ToBackendBucketCdnPolicyCacheKeyPolicyPtrOutputWithContext(ctx) } // BackendBucketCdnPolicyCacheKeyPolicyPtrInput is an input type that accepts BackendBucketCdnPolicyCacheKeyPolicyArgs, BackendBucketCdnPolicyCacheKeyPolicyPtr and BackendBucketCdnPolicyCacheKeyPolicyPtrOutput values. // You can construct a concrete instance of `BackendBucketCdnPolicyCacheKeyPolicyPtrInput` via: // // BackendBucketCdnPolicyCacheKeyPolicyArgs{...} // // or: // // nil type BackendBucketCdnPolicyCacheKeyPolicyPtrInput interface { pulumi.Input ToBackendBucketCdnPolicyCacheKeyPolicyPtrOutput() BackendBucketCdnPolicyCacheKeyPolicyPtrOutput ToBackendBucketCdnPolicyCacheKeyPolicyPtrOutputWithContext(context.Context) BackendBucketCdnPolicyCacheKeyPolicyPtrOutput } type backendBucketCdnPolicyCacheKeyPolicyPtrType BackendBucketCdnPolicyCacheKeyPolicyArgs func BackendBucketCdnPolicyCacheKeyPolicyPtr(v *BackendBucketCdnPolicyCacheKeyPolicyArgs) BackendBucketCdnPolicyCacheKeyPolicyPtrInput { return (*backendBucketCdnPolicyCacheKeyPolicyPtrType)(v) } func (*backendBucketCdnPolicyCacheKeyPolicyPtrType) ElementType() reflect.Type { return reflect.TypeOf((**BackendBucketCdnPolicyCacheKeyPolicy)(nil)).Elem() } func (i *backendBucketCdnPolicyCacheKeyPolicyPtrType) ToBackendBucketCdnPolicyCacheKeyPolicyPtrOutput() BackendBucketCdnPolicyCacheKeyPolicyPtrOutput { return i.ToBackendBucketCdnPolicyCacheKeyPolicyPtrOutputWithContext(context.Background()) } func (i *backendBucketCdnPolicyCacheKeyPolicyPtrType) ToBackendBucketCdnPolicyCacheKeyPolicyPtrOutputWithContext(ctx context.Context) BackendBucketCdnPolicyCacheKeyPolicyPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(BackendBucketCdnPolicyCacheKeyPolicyPtrOutput) } // Message containing what to include in the cache key for a request for Cloud CDN. type BackendBucketCdnPolicyCacheKeyPolicyOutput struct{ *pulumi.OutputState } func (BackendBucketCdnPolicyCacheKeyPolicyOutput) ElementType() reflect.Type { return reflect.TypeOf((*BackendBucketCdnPolicyCacheKeyPolicy)(nil)).Elem() } func (o BackendBucketCdnPolicyCacheKeyPolicyOutput) ToBackendBucketCdnPolicyCacheKeyPolicyOutput() BackendBucketCdnPolicyCacheKeyPolicyOutput { return o } func (o BackendBucketCdnPolicyCacheKeyPolicyOutput) ToBackendBucketCdnPolicyCacheKeyPolicyOutputWithContext(ctx context.Context) BackendBucketCdnPolicyCacheKeyPolicyOutput { return o } func (o BackendBucketCdnPolicyCacheKeyPolicyOutput) ToBackendBucketCdnPolicyCacheKeyPolicyPtrOutput() BackendBucketCdnPolicyCacheKeyPolicyPtrOutput { return o.ToBackendBucketCdnPolicyCacheKeyPolicyPtrOutputWithContext(context.Background()) } func (o BackendBucketCdnPolicyCacheKeyPolicyOutput) ToBackendBucketCdnPolicyCacheKeyPolicyPtrOutputWithContext(ctx context.Context) BackendBucketCdnPolicyCacheKeyPolicyPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v BackendBucketCdnPolicyCacheKeyPolicy) *BackendBucketCdnPolicyCacheKeyPolicy { return &v }).(BackendBucketCdnPolicyCacheKeyPolicyPtrOutput) } // Allows HTTP request headers (by name) to be used in the cache key. func (o BackendBucketCdnPolicyCacheKeyPolicyOutput) IncludeHttpHeaders() pulumi.StringArrayOutput { return o.ApplyT(func(v BackendBucketCdnPolicyCacheKeyPolicy) []string { return v.IncludeHttpHeaders }).(pulumi.StringArrayOutput) } // Names of query string parameters to include in cache keys. All other parameters will be excluded. '&' and '=' will be percent encoded and not treated as delimiters. func (o BackendBucketCdnPolicyCacheKeyPolicyOutput) QueryStringWhitelist() pulumi.StringArrayOutput { return o.ApplyT(func(v BackendBucketCdnPolicyCacheKeyPolicy) []string { return v.QueryStringWhitelist }).(pulumi.StringArrayOutput) } type BackendBucketCdnPolicyCacheKeyPolicyPtrOutput struct{ *pulumi.OutputState } func (BackendBucketCdnPolicyCacheKeyPolicyPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**BackendBucketCdnPolicyCacheKeyPolicy)(nil)).Elem() } func (o BackendBucketCdnPolicyCacheKeyPolicyPtrOutput) ToBackendBucketCdnPolicyCacheKeyPolicyPtrOutput() BackendBucketCdnPolicyCacheKeyPolicyPtrOutput { return o } func (o BackendBucketCdnPolicyCacheKeyPolicyPtrOutput) ToBackendBucketCdnPolicyCacheKeyPolicyPtrOutputWithContext(ctx context.Context) BackendBucketCdnPolicyCacheKeyPolicyPtrOutput { return o } func (o BackendBucketCdnPolicyCacheKeyPolicyPtrOutput) Elem() BackendBucketCdnPolicyCacheKeyPolicyOutput { return o.ApplyT(func(v *BackendBucketCdnPolicyCacheKeyPolicy) BackendBucketCdnPolicyCacheKeyPolicy { if v != nil { return *v } var ret BackendBucketCdnPolicyCacheKeyPolicy return ret }).(BackendBucketCdnPolicyCacheKeyPolicyOutput) } // Allows HTTP request headers (by name) to be used in the cache key. func (o BackendBucketCdnPolicyCacheKeyPolicyPtrOutput) IncludeHttpHeaders() pulumi.StringArrayOutput { return o.ApplyT(func(v *BackendBucketCdnPolicyCacheKeyPolicy) []string { if v == nil { return nil } return v.IncludeHttpHeaders }).(pulumi.StringArrayOutput) } // Names of query string parameters to include in cache keys. All other parameters will be excluded. '&' and '=' will be percent encoded and not treated as delimiters. func (o BackendBucketCdnPolicyCacheKeyPolicyPtrOutput) QueryStringWhitelist() pulumi.StringArrayOutput { return o.ApplyT(func(v *BackendBucketCdnPolicyCacheKeyPolicy) []string { if v == nil { return nil } return v.QueryStringWhitelist }).(pulumi.StringArrayOutput) } // Message containing what to include in the cache key for a request for Cloud CDN. type BackendBucketCdnPolicyCacheKeyPolicyResponse struct { // Allows HTTP request headers (by name) to be used in the cache key. IncludeHttpHeaders []string `pulumi:"includeHttpHeaders"` // Names of query string parameters to include in cache keys. All other parameters will be excluded. '&' and '=' will be percent encoded and not treated as delimiters. QueryStringWhitelist []string `pulumi:"queryStringWhitelist"` } // Message containing what to include in the cache key for a request for Cloud CDN. type BackendBucketCdnPolicyCacheKeyPolicyResponseOutput struct{ *pulumi.OutputState } func (BackendBucketCdnPolicyCacheKeyPolicyResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*BackendBucketCdnPolicyCacheKeyPolicyResponse)(nil)).Elem() } func (o BackendBucketCdnPolicyCacheKeyPolicyResponseOutput) ToBackendBucketCdnPolicyCacheKeyPolicyResponseOutput() BackendBucketCdnPolicyCacheKeyPolicyResponseOutput { return o } func (o BackendBucketCdnPolicyCacheKeyPolicyResponseOutput) ToBackendBucketCdnPolicyCacheKeyPolicyResponseOutputWithContext(ctx context.Context) BackendBucketCdnPolicyCacheKeyPolicyResponseOutput { return o } // Allows HTTP request headers (by name) to be used in the cache key. func (o BackendBucketCdnPolicyCacheKeyPolicyResponseOutput) IncludeHttpHeaders() pulumi.StringArrayOutput { return o.ApplyT(func(v BackendBucketCdnPolicyCacheKeyPolicyResponse) []string { return v.IncludeHttpHeaders }).(pulumi.StringArrayOutput) } // Names of query string parameters to include in cache keys. All other parameters will be excluded. '&' and '=' will be percent encoded and not treated as delimiters. func (o BackendBucketCdnPolicyCacheKeyPolicyResponseOutput) QueryStringWhitelist() pulumi.StringArrayOutput { return o.ApplyT(func(v BackendBucketCdnPolicyCacheKeyPolicyResponse) []string { return v.QueryStringWhitelist }).(pulumi.StringArrayOutput) } // Specify CDN TTLs for response error codes. type BackendBucketCdnPolicyNegativeCachingPolicy struct { // The HTTP status code to define a TTL against. Only HTTP status codes 300, 301, 302, 307, 308, 404, 405, 410, 421, 451 and 501 are can be specified as values, and you cannot specify a status code more than once. Code *int `pulumi:"code"` // The TTL (in seconds) for which to cache responses with the corresponding status code. The maximum allowed value is 1800s (30 minutes), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. Ttl *int `pulumi:"ttl"` } // BackendBucketCdnPolicyNegativeCachingPolicyInput is an input type that accepts BackendBucketCdnPolicyNegativeCachingPolicyArgs and BackendBucketCdnPolicyNegativeCachingPolicyOutput values. // You can construct a concrete instance of `BackendBucketCdnPolicyNegativeCachingPolicyInput` via: // // BackendBucketCdnPolicyNegativeCachingPolicyArgs{...} type BackendBucketCdnPolicyNegativeCachingPolicyInput interface { pulumi.Input ToBackendBucketCdnPolicyNegativeCachingPolicyOutput() BackendBucketCdnPolicyNegativeCachingPolicyOutput ToBackendBucketCdnPolicyNegativeCachingPolicyOutputWithContext(context.Context) BackendBucketCdnPolicyNegativeCachingPolicyOutput } // Specify CDN TTLs for response error codes. type BackendBucketCdnPolicyNegativeCachingPolicyArgs struct { // The HTTP status code to define a TTL against. Only HTTP status codes 300, 301, 302, 307, 308, 404, 405, 410, 421, 451 and 501 are can be specified as values, and you cannot specify a status code more than once. Code pulumi.IntPtrInput `pulumi:"code"` // The TTL (in seconds) for which to cache responses with the corresponding status code. The maximum allowed value is 1800s (30 minutes), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. Ttl pulumi.IntPtrInput `pulumi:"ttl"` } func (BackendBucketCdnPolicyNegativeCachingPolicyArgs) ElementType() reflect.Type { return reflect.TypeOf((*BackendBucketCdnPolicyNegativeCachingPolicy)(nil)).Elem() } func (i BackendBucketCdnPolicyNegativeCachingPolicyArgs) ToBackendBucketCdnPolicyNegativeCachingPolicyOutput() BackendBucketCdnPolicyNegativeCachingPolicyOutput { return i.ToBackendBucketCdnPolicyNegativeCachingPolicyOutputWithContext(context.Background()) } func (i BackendBucketCdnPolicyNegativeCachingPolicyArgs) ToBackendBucketCdnPolicyNegativeCachingPolicyOutputWithContext(ctx context.Context) BackendBucketCdnPolicyNegativeCachingPolicyOutput { return pulumi.ToOutputWithContext(ctx, i).(BackendBucketCdnPolicyNegativeCachingPolicyOutput) } // BackendBucketCdnPolicyNegativeCachingPolicyArrayInput is an input type that accepts BackendBucketCdnPolicyNegativeCachingPolicyArray and BackendBucketCdnPolicyNegativeCachingPolicyArrayOutput values. // You can construct a concrete instance of `BackendBucketCdnPolicyNegativeCachingPolicyArrayInput` via: // // BackendBucketCdnPolicyNegativeCachingPolicyArray{ BackendBucketCdnPolicyNegativeCachingPolicyArgs{...} } type BackendBucketCdnPolicyNegativeCachingPolicyArrayInput interface { pulumi.Input ToBackendBucketCdnPolicyNegativeCachingPolicyArrayOutput() BackendBucketCdnPolicyNegativeCachingPolicyArrayOutput ToBackendBucketCdnPolicyNegativeCachingPolicyArrayOutputWithContext(context.Context) BackendBucketCdnPolicyNegativeCachingPolicyArrayOutput } type BackendBucketCdnPolicyNegativeCachingPolicyArray []BackendBucketCdnPolicyNegativeCachingPolicyInput func (BackendBucketCdnPolicyNegativeCachingPolicyArray) ElementType() reflect.Type { return reflect.TypeOf((*[]BackendBucketCdnPolicyNegativeCachingPolicy)(nil)).Elem() } func (i BackendBucketCdnPolicyNegativeCachingPolicyArray) ToBackendBucketCdnPolicyNegativeCachingPolicyArrayOutput() BackendBucketCdnPolicyNegativeCachingPolicyArrayOutput { return i.ToBackendBucketCdnPolicyNegativeCachingPolicyArrayOutputWithContext(context.Background()) } func (i BackendBucketCdnPolicyNegativeCachingPolicyArray) ToBackendBucketCdnPolicyNegativeCachingPolicyArrayOutputWithContext(ctx context.Context) BackendBucketCdnPolicyNegativeCachingPolicyArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(BackendBucketCdnPolicyNegativeCachingPolicyArrayOutput) } // Specify CDN TTLs for response error codes. type BackendBucketCdnPolicyNegativeCachingPolicyOutput struct{ *pulumi.OutputState } func (BackendBucketCdnPolicyNegativeCachingPolicyOutput) ElementType() reflect.Type { return reflect.TypeOf((*BackendBucketCdnPolicyNegativeCachingPolicy)(nil)).Elem() } func (o BackendBucketCdnPolicyNegativeCachingPolicyOutput) ToBackendBucketCdnPolicyNegativeCachingPolicyOutput() BackendBucketCdnPolicyNegativeCachingPolicyOutput { return o } func (o BackendBucketCdnPolicyNegativeCachingPolicyOutput) ToBackendBucketCdnPolicyNegativeCachingPolicyOutputWithContext(ctx context.Context) BackendBucketCdnPolicyNegativeCachingPolicyOutput { return o } // The HTTP status code to define a TTL against. Only HTTP status codes 300, 301, 302, 307, 308, 404, 405, 410, 421, 451 and 501 are can be specified as values, and you cannot specify a status code more than once. func (o BackendBucketCdnPolicyNegativeCachingPolicyOutput) Code() pulumi.IntPtrOutput { return o.ApplyT(func(v BackendBucketCdnPolicyNegativeCachingPolicy) *int { return v.Code }).(pulumi.IntPtrOutput) } // The TTL (in seconds) for which to cache responses with the corresponding status code. The maximum allowed value is 1800s (30 minutes), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. func (o BackendBucketCdnPolicyNegativeCachingPolicyOutput) Ttl() pulumi.IntPtrOutput { return o.ApplyT(func(v BackendBucketCdnPolicyNegativeCachingPolicy) *int { return v.Ttl }).(pulumi.IntPtrOutput) } type BackendBucketCdnPolicyNegativeCachingPolicyArrayOutput struct{ *pulumi.OutputState } func (BackendBucketCdnPolicyNegativeCachingPolicyArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]BackendBucketCdnPolicyNegativeCachingPolicy)(nil)).Elem() } func (o BackendBucketCdnPolicyNegativeCachingPolicyArrayOutput) ToBackendBucketCdnPolicyNegativeCachingPolicyArrayOutput() BackendBucketCdnPolicyNegativeCachingPolicyArrayOutput { return o } func (o BackendBucketCdnPolicyNegativeCachingPolicyArrayOutput) ToBackendBucketCdnPolicyNegativeCachingPolicyArrayOutputWithContext(ctx context.Context) BackendBucketCdnPolicyNegativeCachingPolicyArrayOutput { return o } func (o BackendBucketCdnPolicyNegativeCachingPolicyArrayOutput) Index(i pulumi.IntInput) BackendBucketCdnPolicyNegativeCachingPolicyOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) BackendBucketCdnPolicyNegativeCachingPolicy { return vs[0].([]BackendBucketCdnPolicyNegativeCachingPolicy)[vs[1].(int)] }).(BackendBucketCdnPolicyNegativeCachingPolicyOutput) } // Specify CDN TTLs for response error codes. type BackendBucketCdnPolicyNegativeCachingPolicyResponse struct { // The HTTP status code to define a TTL against. Only HTTP status codes 300, 301, 302, 307, 308, 404, 405, 410, 421, 451 and 501 are can be specified as values, and you cannot specify a status code more than once. Code int `pulumi:"code"` // The TTL (in seconds) for which to cache responses with the corresponding status code. The maximum allowed value is 1800s (30 minutes), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. Ttl int `pulumi:"ttl"` } // Specify CDN TTLs for response error codes. type BackendBucketCdnPolicyNegativeCachingPolicyResponseOutput struct{ *pulumi.OutputState } func (BackendBucketCdnPolicyNegativeCachingPolicyResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*BackendBucketCdnPolicyNegativeCachingPolicyResponse)(nil)).Elem() } func (o BackendBucketCdnPolicyNegativeCachingPolicyResponseOutput) ToBackendBucketCdnPolicyNegativeCachingPolicyResponseOutput() BackendBucketCdnPolicyNegativeCachingPolicyResponseOutput { return o } func (o BackendBucketCdnPolicyNegativeCachingPolicyResponseOutput) ToBackendBucketCdnPolicyNegativeCachingPolicyResponseOutputWithContext(ctx context.Context) BackendBucketCdnPolicyNegativeCachingPolicyResponseOutput { return o } // The HTTP status code to define a TTL against. Only HTTP status codes 300, 301, 302, 307, 308, 404, 405, 410, 421, 451 and 501 are can be specified as values, and you cannot specify a status code more than once. func (o BackendBucketCdnPolicyNegativeCachingPolicyResponseOutput) Code() pulumi.IntOutput { return o.ApplyT(func(v BackendBucketCdnPolicyNegativeCachingPolicyResponse) int { return v.Code }).(pulumi.IntOutput) } // The TTL (in seconds) for which to cache responses with the corresponding status code. The maximum allowed value is 1800s (30 minutes), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. func (o BackendBucketCdnPolicyNegativeCachingPolicyResponseOutput) Ttl() pulumi.IntOutput { return o.ApplyT(func(v BackendBucketCdnPolicyNegativeCachingPolicyResponse) int { return v.Ttl }).(pulumi.IntOutput) } type BackendBucketCdnPolicyNegativeCachingPolicyResponseArrayOutput struct{ *pulumi.OutputState } func (BackendBucketCdnPolicyNegativeCachingPolicyResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]BackendBucketCdnPolicyNegativeCachingPolicyResponse)(nil)).Elem() } func (o BackendBucketCdnPolicyNegativeCachingPolicyResponseArrayOutput) ToBackendBucketCdnPolicyNegativeCachingPolicyResponseArrayOutput() BackendBucketCdnPolicyNegativeCachingPolicyResponseArrayOutput { return o } func (o BackendBucketCdnPolicyNegativeCachingPolicyResponseArrayOutput) ToBackendBucketCdnPolicyNegativeCachingPolicyResponseArrayOutputWithContext(ctx context.Context) BackendBucketCdnPolicyNegativeCachingPolicyResponseArrayOutput { return o } func (o BackendBucketCdnPolicyNegativeCachingPolicyResponseArrayOutput) Index(i pulumi.IntInput) BackendBucketCdnPolicyNegativeCachingPolicyResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) BackendBucketCdnPolicyNegativeCachingPolicyResponse { return vs[0].([]BackendBucketCdnPolicyNegativeCachingPolicyResponse)[vs[1].(int)] }).(BackendBucketCdnPolicyNegativeCachingPolicyResponseOutput) } // Message containing Cloud CDN configuration for a backend bucket. type BackendBucketCdnPolicyResponse struct { // Bypass the cache when the specified request headers are matched - e.g. Pragma or Authorization headers. Up to 5 headers can be specified. The cache is bypassed for all cdnPolicy.cacheMode settings. BypassCacheOnRequestHeaders []BackendBucketCdnPolicyBypassCacheOnRequestHeaderResponse `pulumi:"bypassCacheOnRequestHeaders"` // The CacheKeyPolicy for this CdnPolicy. CacheKeyPolicy BackendBucketCdnPolicyCacheKeyPolicyResponse `pulumi:"cacheKeyPolicy"` // Specifies the cache setting for all responses from this backend. The possible values are: USE_ORIGIN_HEADERS Requires the origin to set valid caching headers to cache content. Responses without these headers will not be cached at Google's edge, and will require a full trip to the origin on every request, potentially impacting performance and increasing load on the origin server. FORCE_CACHE_ALL Cache all content, ignoring any "private", "no-store" or "no-cache" directives in Cache-Control response headers. Warning: this may result in Cloud CDN caching private, per-user (user identifiable) content. CACHE_ALL_STATIC Automatically cache static content, including common image formats, media (video and audio), and web assets (JavaScript and CSS). Requests and responses that are marked as uncacheable, as well as dynamic content (including HTML), will not be cached. CacheMode string `pulumi:"cacheMode"` // Specifies a separate client (e.g. browser client) maximum TTL. This is used to clamp the max-age (or Expires) value sent to the client. With FORCE_CACHE_ALL, the lesser of client_ttl and default_ttl is used for the response max-age directive, along with a "public" directive. For cacheable content in CACHE_ALL_STATIC mode, client_ttl clamps the max-age from the origin (if specified), or else sets the response max-age directive to the lesser of the client_ttl and default_ttl, and also ensures a "public" cache-control directive is present. If a client TTL is not specified, a default value (1 hour) will be used. The maximum allowed value is 31,622,400s (1 year). ClientTtl int `pulumi:"clientTtl"` // Specifies the default TTL for cached content served by this origin for responses that do not have an existing valid TTL (max-age or s-max-age). Setting a TTL of "0" means "always revalidate". The value of defaultTTL cannot be set to a value greater than that of maxTTL, but can be equal. When the cacheMode is set to FORCE_CACHE_ALL, the defaultTTL will overwrite the TTL set in all responses. The maximum allowed value is 31,622,400s (1 year), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. DefaultTtl int `pulumi:"defaultTtl"` // Specifies the maximum allowed TTL for cached content served by this origin. Cache directives that attempt to set a max-age or s-maxage higher than this, or an Expires header more than maxTTL seconds in the future will be capped at the value of maxTTL, as if it were the value of an s-maxage Cache-Control directive. Headers sent to the client will not be modified. Setting a TTL of "0" means "always revalidate". The maximum allowed value is 31,622,400s (1 year), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. MaxTtl int `pulumi:"maxTtl"` // Negative caching allows per-status code TTLs to be set, in order to apply fine-grained caching for common errors or redirects. This can reduce the load on your origin and improve end-user experience by reducing response latency. When the cache mode is set to CACHE_ALL_STATIC or USE_ORIGIN_HEADERS, negative caching applies to responses with the specified response code that lack any Cache-Control, Expires, or Pragma: no-cache directives. When the cache mode is set to FORCE_CACHE_ALL, negative caching applies to all responses with the specified response code, and override any caching headers. By default, Cloud CDN will apply the following default TTLs to these status codes: HTTP 300 (Multiple Choice), 301, 308 (Permanent Redirects): 10m HTTP 404 (Not Found), 410 (Gone), 451 (Unavailable For Legal Reasons): 120s HTTP 405 (Method Not Found), 421 (Misdirected Request), 501 (Not Implemented): 60s. These defaults can be overridden in negative_caching_policy. NegativeCaching bool `pulumi:"negativeCaching"` // Sets a cache TTL for the specified HTTP status code. negative_caching must be enabled to configure negative_caching_policy. Omitting the policy and leaving negative_caching enabled will use Cloud CDN's default cache TTLs. Note that when specifying an explicit negative_caching_policy, you should take care to specify a cache TTL for all response codes that you wish to cache. Cloud CDN will not apply any default negative caching when a policy exists. NegativeCachingPolicy []BackendBucketCdnPolicyNegativeCachingPolicyResponse `pulumi:"negativeCachingPolicy"` // If true then Cloud CDN will combine multiple concurrent cache fill requests into a small number of requests to the origin. RequestCoalescing bool `pulumi:"requestCoalescing"` // Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache. This setting defines the default "max-stale" duration for any cached responses that do not specify a max-stale directive. Stale responses that exceed the TTL configured here will not be served. The default limit (max-stale) is 86400s (1 day), which will allow stale content to be served up to this limit beyond the max-age (or s-max-age) of a cached response. The maximum allowed value is 604800 (1 week). Set this to zero (0) to disable serve-while-stale. ServeWhileStale int `pulumi:"serveWhileStale"` // Maximum number of seconds the response to a signed URL request will be considered fresh. After this time period, the response will be revalidated before being served. Defaults to 1hr (3600s). When serving responses to signed URL requests, Cloud CDN will internally behave as though all responses from this backend had a "Cache-Control: public, max-age=[TTL]" header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered. SignedUrlCacheMaxAgeSec string `pulumi:"signedUrlCacheMaxAgeSec"` // Names of the keys for signing request URLs. SignedUrlKeyNames []string `pulumi:"signedUrlKeyNames"` } // Message containing Cloud CDN configuration for a backend bucket. type BackendBucketCdnPolicyResponseOutput struct{ *pulumi.OutputState } func (BackendBucketCdnPolicyResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*BackendBucketCdnPolicyResponse)(nil)).Elem() } func (o BackendBucketCdnPolicyResponseOutput) ToBackendBucketCdnPolicyResponseOutput() BackendBucketCdnPolicyResponseOutput { return o } func (o BackendBucketCdnPolicyResponseOutput) ToBackendBucketCdnPolicyResponseOutputWithContext(ctx context.Context) BackendBucketCdnPolicyResponseOutput { return o } // Bypass the cache when the specified request headers are matched - e.g. Pragma or Authorization headers. Up to 5 headers can be specified. The cache is bypassed for all cdnPolicy.cacheMode settings. func (o BackendBucketCdnPolicyResponseOutput) BypassCacheOnRequestHeaders() BackendBucketCdnPolicyBypassCacheOnRequestHeaderResponseArrayOutput { return o.ApplyT(func(v BackendBucketCdnPolicyResponse) []BackendBucketCdnPolicyBypassCacheOnRequestHeaderResponse { return v.BypassCacheOnRequestHeaders }).(BackendBucketCdnPolicyBypassCacheOnRequestHeaderResponseArrayOutput) } // The CacheKeyPolicy for this CdnPolicy. func (o BackendBucketCdnPolicyResponseOutput) CacheKeyPolicy() BackendBucketCdnPolicyCacheKeyPolicyResponseOutput { return o.ApplyT(func(v BackendBucketCdnPolicyResponse) BackendBucketCdnPolicyCacheKeyPolicyResponse { return v.CacheKeyPolicy }).(BackendBucketCdnPolicyCacheKeyPolicyResponseOutput) } // Specifies the cache setting for all responses from this backend. The possible values are: USE_ORIGIN_HEADERS Requires the origin to set valid caching headers to cache content. Responses without these headers will not be cached at Google's edge, and will require a full trip to the origin on every request, potentially impacting performance and increasing load on the origin server. FORCE_CACHE_ALL Cache all content, ignoring any "private", "no-store" or "no-cache" directives in Cache-Control response headers. Warning: this may result in Cloud CDN caching private, per-user (user identifiable) content. CACHE_ALL_STATIC Automatically cache static content, including common image formats, media (video and audio), and web assets (JavaScript and CSS). Requests and responses that are marked as uncacheable, as well as dynamic content (including HTML), will not be cached. func (o BackendBucketCdnPolicyResponseOutput) CacheMode() pulumi.StringOutput { return o.ApplyT(func(v BackendBucketCdnPolicyResponse) string { return v.CacheMode }).(pulumi.StringOutput) } // Specifies a separate client (e.g. browser client) maximum TTL. This is used to clamp the max-age (or Expires) value sent to the client. With FORCE_CACHE_ALL, the lesser of client_ttl and default_ttl is used for the response max-age directive, along with a "public" directive. For cacheable content in CACHE_ALL_STATIC mode, client_ttl clamps the max-age from the origin (if specified), or else sets the response max-age directive to the lesser of the client_ttl and default_ttl, and also ensures a "public" cache-control directive is present. If a client TTL is not specified, a default value (1 hour) will be used. The maximum allowed value is 31,622,400s (1 year). func (o BackendBucketCdnPolicyResponseOutput) ClientTtl() pulumi.IntOutput { return o.ApplyT(func(v BackendBucketCdnPolicyResponse) int { return v.ClientTtl }).(pulumi.IntOutput) } // Specifies the default TTL for cached content served by this origin for responses that do not have an existing valid TTL (max-age or s-max-age). Setting a TTL of "0" means "always revalidate". The value of defaultTTL cannot be set to a value greater than that of maxTTL, but can be equal. When the cacheMode is set to FORCE_CACHE_ALL, the defaultTTL will overwrite the TTL set in all responses. The maximum allowed value is 31,622,400s (1 year), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. func (o BackendBucketCdnPolicyResponseOutput) DefaultTtl() pulumi.IntOutput { return o.ApplyT(func(v BackendBucketCdnPolicyResponse) int { return v.DefaultTtl }).(pulumi.IntOutput) } // Specifies the maximum allowed TTL for cached content served by this origin. Cache directives that attempt to set a max-age or s-maxage higher than this, or an Expires header more than maxTTL seconds in the future will be capped at the value of maxTTL, as if it were the value of an s-maxage Cache-Control directive. Headers sent to the client will not be modified. Setting a TTL of "0" means "always revalidate". The maximum allowed value is 31,622,400s (1 year), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. func (o BackendBucketCdnPolicyResponseOutput) MaxTtl() pulumi.IntOutput { return o.ApplyT(func(v BackendBucketCdnPolicyResponse) int { return v.MaxTtl }).(pulumi.IntOutput) } // Negative caching allows per-status code TTLs to be set, in order to apply fine-grained caching for common errors or redirects. This can reduce the load on your origin and improve end-user experience by reducing response latency. When the cache mode is set to CACHE_ALL_STATIC or USE_ORIGIN_HEADERS, negative caching applies to responses with the specified response code that lack any Cache-Control, Expires, or Pragma: no-cache directives. When the cache mode is set to FORCE_CACHE_ALL, negative caching applies to all responses with the specified response code, and override any caching headers. By default, Cloud CDN will apply the following default TTLs to these status codes: HTTP 300 (Multiple Choice), 301, 308 (Permanent Redirects): 10m HTTP 404 (Not Found), 410 (Gone), 451 (Unavailable For Legal Reasons): 120s HTTP 405 (Method Not Found), 421 (Misdirected Request), 501 (Not Implemented): 60s. These defaults can be overridden in negative_caching_policy. func (o BackendBucketCdnPolicyResponseOutput) NegativeCaching() pulumi.BoolOutput { return o.ApplyT(func(v BackendBucketCdnPolicyResponse) bool { return v.NegativeCaching }).(pulumi.BoolOutput) } // Sets a cache TTL for the specified HTTP status code. negative_caching must be enabled to configure negative_caching_policy. Omitting the policy and leaving negative_caching enabled will use Cloud CDN's default cache TTLs. Note that when specifying an explicit negative_caching_policy, you should take care to specify a cache TTL for all response codes that you wish to cache. Cloud CDN will not apply any default negative caching when a policy exists. func (o BackendBucketCdnPolicyResponseOutput) NegativeCachingPolicy() BackendBucketCdnPolicyNegativeCachingPolicyResponseArrayOutput { return o.ApplyT(func(v BackendBucketCdnPolicyResponse) []BackendBucketCdnPolicyNegativeCachingPolicyResponse { return v.NegativeCachingPolicy }).(BackendBucketCdnPolicyNegativeCachingPolicyResponseArrayOutput) } // If true then Cloud CDN will combine multiple concurrent cache fill requests into a small number of requests to the origin. func (o BackendBucketCdnPolicyResponseOutput) RequestCoalescing() pulumi.BoolOutput { return o.ApplyT(func(v BackendBucketCdnPolicyResponse) bool { return v.RequestCoalescing }).(pulumi.BoolOutput) } // Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache. This setting defines the default "max-stale" duration for any cached responses that do not specify a max-stale directive. Stale responses that exceed the TTL configured here will not be served. The default limit (max-stale) is 86400s (1 day), which will allow stale content to be served up to this limit beyond the max-age (or s-max-age) of a cached response. The maximum allowed value is 604800 (1 week). Set this to zero (0) to disable serve-while-stale. func (o BackendBucketCdnPolicyResponseOutput) ServeWhileStale() pulumi.IntOutput { return o.ApplyT(func(v BackendBucketCdnPolicyResponse) int { return v.ServeWhileStale }).(pulumi.IntOutput) } // Maximum number of seconds the response to a signed URL request will be considered fresh. After this time period, the response will be revalidated before being served. Defaults to 1hr (3600s). When serving responses to signed URL requests, Cloud CDN will internally behave as though all responses from this backend had a "Cache-Control: public, max-age=[TTL]" header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered. func (o BackendBucketCdnPolicyResponseOutput) SignedUrlCacheMaxAgeSec() pulumi.StringOutput { return o.ApplyT(func(v BackendBucketCdnPolicyResponse) string { return v.SignedUrlCacheMaxAgeSec }).(pulumi.StringOutput) } // Names of the keys for signing request URLs. func (o BackendBucketCdnPolicyResponseOutput) SignedUrlKeyNames() pulumi.StringArrayOutput { return o.ApplyT(func(v BackendBucketCdnPolicyResponse) []string { return v.SignedUrlKeyNames }).(pulumi.StringArrayOutput) } // Message containing information of one individual backend. type BackendResponse struct { // Specifies how to determine whether the backend of a load balancer can handle additional traffic or is fully loaded. For usage guidelines, see Connection balancing mode. Backends must use compatible balancing modes. For more information, see Supported balancing modes and target capacity settings and Restrictions and guidance for instance groups. Note: Currently, if you use the API to configure incompatible balancing modes, the configuration might be accepted even though it has no impact and is ignored. Specifically, Backend.maxUtilization is ignored when Backend.balancingMode is RATE. In the future, this incompatible combination will be rejected. BalancingMode string `pulumi:"balancingMode"` // A multiplier applied to the backend's target capacity of its balancing mode. The default value is 1, which means the group serves up to 100% of its configured capacity (depending on balancingMode). A setting of 0 means the group is completely drained, offering 0% of its available capacity. The valid ranges are 0.0 and [0.1,1.0]. You cannot configure a setting larger than 0 and smaller than 0.1. You cannot configure a setting of 0 when there is only one backend attached to the backend service. CapacityScaler float64 `pulumi:"capacityScaler"` // An optional description of this resource. Provide this property when you create the resource. Description string `pulumi:"description"` // This field designates whether this is a failover backend. More than one failover backend can be configured for a given BackendService. Failover bool `pulumi:"failover"` // The fully-qualified URL of an instance group or network endpoint group (NEG) resource. To determine what types of backends a load balancer supports, see the [Backend services overview](https://cloud.google.com/load-balancing/docs/backend-service#backends). You must use the *fully-qualified* URL (starting with https://www.googleapis.com/) to specify the instance group or NEG. Partial URLs are not supported. Group string `pulumi:"group"` // Defines a target maximum number of simultaneous connections. For usage guidelines, see Connection balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is RATE. MaxConnections int `pulumi:"maxConnections"` // Defines a target maximum number of simultaneous connections. For usage guidelines, see Connection balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is RATE. MaxConnectionsPerEndpoint int `pulumi:"maxConnectionsPerEndpoint"` // Defines a target maximum number of simultaneous connections. For usage guidelines, see Connection balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is RATE. MaxConnectionsPerInstance int `pulumi:"maxConnectionsPerInstance"` // Defines a maximum number of HTTP requests per second (RPS). For usage guidelines, see Rate balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is CONNECTION. MaxRate int `pulumi:"maxRate"` // Defines a maximum target for requests per second (RPS). For usage guidelines, see Rate balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is CONNECTION. MaxRatePerEndpoint float64 `pulumi:"maxRatePerEndpoint"` // Defines a maximum target for requests per second (RPS). For usage guidelines, see Rate balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is CONNECTION. MaxRatePerInstance float64 `pulumi:"maxRatePerInstance"` // Optional parameter to define a target capacity for the UTILIZATIONbalancing mode. The valid range is [0.0, 1.0]. For usage guidelines, see Utilization balancing mode. MaxUtilization float64 `pulumi:"maxUtilization"` } // Message containing information of one individual backend. type BackendResponseOutput struct{ *pulumi.OutputState } func (BackendResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*BackendResponse)(nil)).Elem() } func (o BackendResponseOutput) ToBackendResponseOutput() BackendResponseOutput { return o } func (o BackendResponseOutput) ToBackendResponseOutputWithContext(ctx context.Context) BackendResponseOutput { return o } // Specifies how to determine whether the backend of a load balancer can handle additional traffic or is fully loaded. For usage guidelines, see Connection balancing mode. Backends must use compatible balancing modes. For more information, see Supported balancing modes and target capacity settings and Restrictions and guidance for instance groups. Note: Currently, if you use the API to configure incompatible balancing modes, the configuration might be accepted even though it has no impact and is ignored. Specifically, Backend.maxUtilization is ignored when Backend.balancingMode is RATE. In the future, this incompatible combination will be rejected. func (o BackendResponseOutput) BalancingMode() pulumi.StringOutput { return o.ApplyT(func(v BackendResponse) string { return v.BalancingMode }).(pulumi.StringOutput) } // A multiplier applied to the backend's target capacity of its balancing mode. The default value is 1, which means the group serves up to 100% of its configured capacity (depending on balancingMode). A setting of 0 means the group is completely drained, offering 0% of its available capacity. The valid ranges are 0.0 and [0.1,1.0]. You cannot configure a setting larger than 0 and smaller than 0.1. You cannot configure a setting of 0 when there is only one backend attached to the backend service. func (o BackendResponseOutput) CapacityScaler() pulumi.Float64Output { return o.ApplyT(func(v BackendResponse) float64 { return v.CapacityScaler }).(pulumi.Float64Output) } // An optional description of this resource. Provide this property when you create the resource. func (o BackendResponseOutput) Description() pulumi.StringOutput { return o.ApplyT(func(v BackendResponse) string { return v.Description }).(pulumi.StringOutput) } // This field designates whether this is a failover backend. More than one failover backend can be configured for a given BackendService. func (o BackendResponseOutput) Failover() pulumi.BoolOutput { return o.ApplyT(func(v BackendResponse) bool { return v.Failover }).(pulumi.BoolOutput) } // The fully-qualified URL of an instance group or network endpoint group (NEG) resource. To determine what types of backends a load balancer supports, see the [Backend services overview](https://cloud.google.com/load-balancing/docs/backend-service#backends). You must use the *fully-qualified* URL (starting with https://www.googleapis.com/) to specify the instance group or NEG. Partial URLs are not supported. func (o BackendResponseOutput) Group() pulumi.StringOutput { return o.ApplyT(func(v BackendResponse) string { return v.Group }).(pulumi.StringOutput) } // Defines a target maximum number of simultaneous connections. For usage guidelines, see Connection balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is RATE. func (o BackendResponseOutput) MaxConnections() pulumi.IntOutput { return o.ApplyT(func(v BackendResponse) int { return v.MaxConnections }).(pulumi.IntOutput) } // Defines a target maximum number of simultaneous connections. For usage guidelines, see Connection balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is RATE. func (o BackendResponseOutput) MaxConnectionsPerEndpoint() pulumi.IntOutput { return o.ApplyT(func(v BackendResponse) int { return v.MaxConnectionsPerEndpoint }).(pulumi.IntOutput) } // Defines a target maximum number of simultaneous connections. For usage guidelines, see Connection balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is RATE. func (o BackendResponseOutput) MaxConnectionsPerInstance() pulumi.IntOutput { return o.ApplyT(func(v BackendResponse) int { return v.MaxConnectionsPerInstance }).(pulumi.IntOutput) } // Defines a maximum number of HTTP requests per second (RPS). For usage guidelines, see Rate balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is CONNECTION. func (o BackendResponseOutput) MaxRate() pulumi.IntOutput { return o.ApplyT(func(v BackendResponse) int { return v.MaxRate }).(pulumi.IntOutput) } // Defines a maximum target for requests per second (RPS). For usage guidelines, see Rate balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is CONNECTION. func (o BackendResponseOutput) MaxRatePerEndpoint() pulumi.Float64Output { return o.ApplyT(func(v BackendResponse) float64 { return v.MaxRatePerEndpoint }).(pulumi.Float64Output) } // Defines a maximum target for requests per second (RPS). For usage guidelines, see Rate balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is CONNECTION. func (o BackendResponseOutput) MaxRatePerInstance() pulumi.Float64Output { return o.ApplyT(func(v BackendResponse) float64 { return v.MaxRatePerInstance }).(pulumi.Float64Output) } // Optional parameter to define a target capacity for the UTILIZATIONbalancing mode. The valid range is [0.0, 1.0]. For usage guidelines, see Utilization balancing mode. func (o BackendResponseOutput) MaxUtilization() pulumi.Float64Output { return o.ApplyT(func(v BackendResponse) float64 { return v.MaxUtilization }).(pulumi.Float64Output) } type BackendResponseArrayOutput struct{ *pulumi.OutputState } func (BackendResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]BackendResponse)(nil)).Elem() } func (o BackendResponseArrayOutput) ToBackendResponseArrayOutput() BackendResponseArrayOutput { return o } func (o BackendResponseArrayOutput) ToBackendResponseArrayOutputWithContext(ctx context.Context) BackendResponseArrayOutput { return o } func (o BackendResponseArrayOutput) Index(i pulumi.IntInput) BackendResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) BackendResponse { return vs[0].([]BackendResponse)[vs[1].(int)] }).(BackendResponseOutput) } // Message containing Cloud CDN configuration for a backend service. type BackendServiceCdnPolicy struct { // Bypass the cache when the specified request headers are matched - e.g. Pragma or Authorization headers. Up to 5 headers can be specified. The cache is bypassed for all cdnPolicy.cacheMode settings. BypassCacheOnRequestHeaders []BackendServiceCdnPolicyBypassCacheOnRequestHeader `pulumi:"bypassCacheOnRequestHeaders"` // The CacheKeyPolicy for this CdnPolicy. CacheKeyPolicy *CacheKeyPolicy `pulumi:"cacheKeyPolicy"` // Specifies the cache setting for all responses from this backend. The possible values are: USE_ORIGIN_HEADERS Requires the origin to set valid caching headers to cache content. Responses without these headers will not be cached at Google's edge, and will require a full trip to the origin on every request, potentially impacting performance and increasing load on the origin server. FORCE_CACHE_ALL Cache all content, ignoring any "private", "no-store" or "no-cache" directives in Cache-Control response headers. Warning: this may result in Cloud CDN caching private, per-user (user identifiable) content. CACHE_ALL_STATIC Automatically cache static content, including common image formats, media (video and audio), and web assets (JavaScript and CSS). Requests and responses that are marked as uncacheable, as well as dynamic content (including HTML), will not be cached. CacheMode *BackendServiceCdnPolicyCacheMode `pulumi:"cacheMode"` // Specifies a separate client (e.g. browser client) maximum TTL. This is used to clamp the max-age (or Expires) value sent to the client. With FORCE_CACHE_ALL, the lesser of client_ttl and default_ttl is used for the response max-age directive, along with a "public" directive. For cacheable content in CACHE_ALL_STATIC mode, client_ttl clamps the max-age from the origin (if specified), or else sets the response max-age directive to the lesser of the client_ttl and default_ttl, and also ensures a "public" cache-control directive is present. If a client TTL is not specified, a default value (1 hour) will be used. The maximum allowed value is 31,622,400s (1 year). ClientTtl *int `pulumi:"clientTtl"` // Specifies the default TTL for cached content served by this origin for responses that do not have an existing valid TTL (max-age or s-max-age). Setting a TTL of "0" means "always revalidate". The value of defaultTTL cannot be set to a value greater than that of maxTTL, but can be equal. When the cacheMode is set to FORCE_CACHE_ALL, the defaultTTL will overwrite the TTL set in all responses. The maximum allowed value is 31,622,400s (1 year), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. DefaultTtl *int `pulumi:"defaultTtl"` // Specifies the maximum allowed TTL for cached content served by this origin. Cache directives that attempt to set a max-age or s-maxage higher than this, or an Expires header more than maxTTL seconds in the future will be capped at the value of maxTTL, as if it were the value of an s-maxage Cache-Control directive. Headers sent to the client will not be modified. Setting a TTL of "0" means "always revalidate". The maximum allowed value is 31,622,400s (1 year), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. MaxTtl *int `pulumi:"maxTtl"` // Negative caching allows per-status code TTLs to be set, in order to apply fine-grained caching for common errors or redirects. This can reduce the load on your origin and improve end-user experience by reducing response latency. When the cache mode is set to CACHE_ALL_STATIC or USE_ORIGIN_HEADERS, negative caching applies to responses with the specified response code that lack any Cache-Control, Expires, or Pragma: no-cache directives. When the cache mode is set to FORCE_CACHE_ALL, negative caching applies to all responses with the specified response code, and override any caching headers. By default, Cloud CDN will apply the following default TTLs to these status codes: HTTP 300 (Multiple Choice), 301, 308 (Permanent Redirects): 10m HTTP 404 (Not Found), 410 (Gone), 451 (Unavailable For Legal Reasons): 120s HTTP 405 (Method Not Found), 421 (Misdirected Request), 501 (Not Implemented): 60s. These defaults can be overridden in negative_caching_policy. NegativeCaching *bool `pulumi:"negativeCaching"` // Sets a cache TTL for the specified HTTP status code. negative_caching must be enabled to configure negative_caching_policy. Omitting the policy and leaving negative_caching enabled will use Cloud CDN's default cache TTLs. Note that when specifying an explicit negative_caching_policy, you should take care to specify a cache TTL for all response codes that you wish to cache. Cloud CDN will not apply any default negative caching when a policy exists. NegativeCachingPolicy []BackendServiceCdnPolicyNegativeCachingPolicy `pulumi:"negativeCachingPolicy"` // If true then Cloud CDN will combine multiple concurrent cache fill requests into a small number of requests to the origin. RequestCoalescing *bool `pulumi:"requestCoalescing"` // Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache. This setting defines the default "max-stale" duration for any cached responses that do not specify a max-stale directive. Stale responses that exceed the TTL configured here will not be served. The default limit (max-stale) is 86400s (1 day), which will allow stale content to be served up to this limit beyond the max-age (or s-max-age) of a cached response. The maximum allowed value is 604800 (1 week). Set this to zero (0) to disable serve-while-stale. ServeWhileStale *int `pulumi:"serveWhileStale"` // Maximum number of seconds the response to a signed URL request will be considered fresh. After this time period, the response will be revalidated before being served. Defaults to 1hr (3600s). When serving responses to signed URL requests, Cloud CDN will internally behave as though all responses from this backend had a "Cache-Control: public, max-age=[TTL]" header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered. SignedUrlCacheMaxAgeSec *string `pulumi:"signedUrlCacheMaxAgeSec"` } // BackendServiceCdnPolicyInput is an input type that accepts BackendServiceCdnPolicyArgs and BackendServiceCdnPolicyOutput values. // You can construct a concrete instance of `BackendServiceCdnPolicyInput` via: // // BackendServiceCdnPolicyArgs{...} type BackendServiceCdnPolicyInput interface { pulumi.Input ToBackendServiceCdnPolicyOutput() BackendServiceCdnPolicyOutput ToBackendServiceCdnPolicyOutputWithContext(context.Context) BackendServiceCdnPolicyOutput } // Message containing Cloud CDN configuration for a backend service. type BackendServiceCdnPolicyArgs struct { // Bypass the cache when the specified request headers are matched - e.g. Pragma or Authorization headers. Up to 5 headers can be specified. The cache is bypassed for all cdnPolicy.cacheMode settings. BypassCacheOnRequestHeaders BackendServiceCdnPolicyBypassCacheOnRequestHeaderArrayInput `pulumi:"bypassCacheOnRequestHeaders"` // The CacheKeyPolicy for this CdnPolicy. CacheKeyPolicy CacheKeyPolicyPtrInput `pulumi:"cacheKeyPolicy"` // Specifies the cache setting for all responses from this backend. The possible values are: USE_ORIGIN_HEADERS Requires the origin to set valid caching headers to cache content. Responses without these headers will not be cached at Google's edge, and will require a full trip to the origin on every request, potentially impacting performance and increasing load on the origin server. FORCE_CACHE_ALL Cache all content, ignoring any "private", "no-store" or "no-cache" directives in Cache-Control response headers. Warning: this may result in Cloud CDN caching private, per-user (user identifiable) content. CACHE_ALL_STATIC Automatically cache static content, including common image formats, media (video and audio), and web assets (JavaScript and CSS). Requests and responses that are marked as uncacheable, as well as dynamic content (including HTML), will not be cached. CacheMode BackendServiceCdnPolicyCacheModePtrInput `pulumi:"cacheMode"` // Specifies a separate client (e.g. browser client) maximum TTL. This is used to clamp the max-age (or Expires) value sent to the client. With FORCE_CACHE_ALL, the lesser of client_ttl and default_ttl is used for the response max-age directive, along with a "public" directive. For cacheable content in CACHE_ALL_STATIC mode, client_ttl clamps the max-age from the origin (if specified), or else sets the response max-age directive to the lesser of the client_ttl and default_ttl, and also ensures a "public" cache-control directive is present. If a client TTL is not specified, a default value (1 hour) will be used. The maximum allowed value is 31,622,400s (1 year). ClientTtl pulumi.IntPtrInput `pulumi:"clientTtl"` // Specifies the default TTL for cached content served by this origin for responses that do not have an existing valid TTL (max-age or s-max-age). Setting a TTL of "0" means "always revalidate". The value of defaultTTL cannot be set to a value greater than that of maxTTL, but can be equal. When the cacheMode is set to FORCE_CACHE_ALL, the defaultTTL will overwrite the TTL set in all responses. The maximum allowed value is 31,622,400s (1 year), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. DefaultTtl pulumi.IntPtrInput `pulumi:"defaultTtl"` // Specifies the maximum allowed TTL for cached content served by this origin. Cache directives that attempt to set a max-age or s-maxage higher than this, or an Expires header more than maxTTL seconds in the future will be capped at the value of maxTTL, as if it were the value of an s-maxage Cache-Control directive. Headers sent to the client will not be modified. Setting a TTL of "0" means "always revalidate". The maximum allowed value is 31,622,400s (1 year), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. MaxTtl pulumi.IntPtrInput `pulumi:"maxTtl"` // Negative caching allows per-status code TTLs to be set, in order to apply fine-grained caching for common errors or redirects. This can reduce the load on your origin and improve end-user experience by reducing response latency. When the cache mode is set to CACHE_ALL_STATIC or USE_ORIGIN_HEADERS, negative caching applies to responses with the specified response code that lack any Cache-Control, Expires, or Pragma: no-cache directives. When the cache mode is set to FORCE_CACHE_ALL, negative caching applies to all responses with the specified response code, and override any caching headers. By default, Cloud CDN will apply the following default TTLs to these status codes: HTTP 300 (Multiple Choice), 301, 308 (Permanent Redirects): 10m HTTP 404 (Not Found), 410 (Gone), 451 (Unavailable For Legal Reasons): 120s HTTP 405 (Method Not Found), 421 (Misdirected Request), 501 (Not Implemented): 60s. These defaults can be overridden in negative_caching_policy. NegativeCaching pulumi.BoolPtrInput `pulumi:"negativeCaching"` // Sets a cache TTL for the specified HTTP status code. negative_caching must be enabled to configure negative_caching_policy. Omitting the policy and leaving negative_caching enabled will use Cloud CDN's default cache TTLs. Note that when specifying an explicit negative_caching_policy, you should take care to specify a cache TTL for all response codes that you wish to cache. Cloud CDN will not apply any default negative caching when a policy exists. NegativeCachingPolicy BackendServiceCdnPolicyNegativeCachingPolicyArrayInput `pulumi:"negativeCachingPolicy"` // If true then Cloud CDN will combine multiple concurrent cache fill requests into a small number of requests to the origin. RequestCoalescing pulumi.BoolPtrInput `pulumi:"requestCoalescing"` // Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache. This setting defines the default "max-stale" duration for any cached responses that do not specify a max-stale directive. Stale responses that exceed the TTL configured here will not be served. The default limit (max-stale) is 86400s (1 day), which will allow stale content to be served up to this limit beyond the max-age (or s-max-age) of a cached response. The maximum allowed value is 604800 (1 week). Set this to zero (0) to disable serve-while-stale. ServeWhileStale pulumi.IntPtrInput `pulumi:"serveWhileStale"` // Maximum number of seconds the response to a signed URL request will be considered fresh. After this time period, the response will be revalidated before being served. Defaults to 1hr (3600s). When serving responses to signed URL requests, Cloud CDN will internally behave as though all responses from this backend had a "Cache-Control: public, max-age=[TTL]" header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered. SignedUrlCacheMaxAgeSec pulumi.StringPtrInput `pulumi:"signedUrlCacheMaxAgeSec"` } func (BackendServiceCdnPolicyArgs) ElementType() reflect.Type { return reflect.TypeOf((*BackendServiceCdnPolicy)(nil)).Elem() } func (i BackendServiceCdnPolicyArgs) ToBackendServiceCdnPolicyOutput() BackendServiceCdnPolicyOutput { return i.ToBackendServiceCdnPolicyOutputWithContext(context.Background()) } func (i BackendServiceCdnPolicyArgs) ToBackendServiceCdnPolicyOutputWithContext(ctx context.Context) BackendServiceCdnPolicyOutput { return pulumi.ToOutputWithContext(ctx, i).(BackendServiceCdnPolicyOutput) } func (i BackendServiceCdnPolicyArgs) ToBackendServiceCdnPolicyPtrOutput() BackendServiceCdnPolicyPtrOutput { return i.ToBackendServiceCdnPolicyPtrOutputWithContext(context.Background()) } func (i BackendServiceCdnPolicyArgs) ToBackendServiceCdnPolicyPtrOutputWithContext(ctx context.Context) BackendServiceCdnPolicyPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(BackendServiceCdnPolicyOutput).ToBackendServiceCdnPolicyPtrOutputWithContext(ctx) } // BackendServiceCdnPolicyPtrInput is an input type that accepts BackendServiceCdnPolicyArgs, BackendServiceCdnPolicyPtr and BackendServiceCdnPolicyPtrOutput values. // You can construct a concrete instance of `BackendServiceCdnPolicyPtrInput` via: // // BackendServiceCdnPolicyArgs{...} // // or: // // nil type BackendServiceCdnPolicyPtrInput interface { pulumi.Input ToBackendServiceCdnPolicyPtrOutput() BackendServiceCdnPolicyPtrOutput ToBackendServiceCdnPolicyPtrOutputWithContext(context.Context) BackendServiceCdnPolicyPtrOutput } type backendServiceCdnPolicyPtrType BackendServiceCdnPolicyArgs func BackendServiceCdnPolicyPtr(v *BackendServiceCdnPolicyArgs) BackendServiceCdnPolicyPtrInput { return (*backendServiceCdnPolicyPtrType)(v) } func (*backendServiceCdnPolicyPtrType) ElementType() reflect.Type { return reflect.TypeOf((**BackendServiceCdnPolicy)(nil)).Elem() } func (i *backendServiceCdnPolicyPtrType) ToBackendServiceCdnPolicyPtrOutput() BackendServiceCdnPolicyPtrOutput { return i.ToBackendServiceCdnPolicyPtrOutputWithContext(context.Background()) } func (i *backendServiceCdnPolicyPtrType) ToBackendServiceCdnPolicyPtrOutputWithContext(ctx context.Context) BackendServiceCdnPolicyPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(BackendServiceCdnPolicyPtrOutput) } // Message containing Cloud CDN configuration for a backend service. type BackendServiceCdnPolicyOutput struct{ *pulumi.OutputState } func (BackendServiceCdnPolicyOutput) ElementType() reflect.Type { return reflect.TypeOf((*BackendServiceCdnPolicy)(nil)).Elem() } func (o BackendServiceCdnPolicyOutput) ToBackendServiceCdnPolicyOutput() BackendServiceCdnPolicyOutput { return o } func (o BackendServiceCdnPolicyOutput) ToBackendServiceCdnPolicyOutputWithContext(ctx context.Context) BackendServiceCdnPolicyOutput { return o } func (o BackendServiceCdnPolicyOutput) ToBackendServiceCdnPolicyPtrOutput() BackendServiceCdnPolicyPtrOutput { return o.ToBackendServiceCdnPolicyPtrOutputWithContext(context.Background()) } func (o BackendServiceCdnPolicyOutput) ToBackendServiceCdnPolicyPtrOutputWithContext(ctx context.Context) BackendServiceCdnPolicyPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v BackendServiceCdnPolicy) *BackendServiceCdnPolicy { return &v }).(BackendServiceCdnPolicyPtrOutput) } // Bypass the cache when the specified request headers are matched - e.g. Pragma or Authorization headers. Up to 5 headers can be specified. The cache is bypassed for all cdnPolicy.cacheMode settings. func (o BackendServiceCdnPolicyOutput) BypassCacheOnRequestHeaders() BackendServiceCdnPolicyBypassCacheOnRequestHeaderArrayOutput { return o.ApplyT(func(v BackendServiceCdnPolicy) []BackendServiceCdnPolicyBypassCacheOnRequestHeader { return v.BypassCacheOnRequestHeaders }).(BackendServiceCdnPolicyBypassCacheOnRequestHeaderArrayOutput) } // The CacheKeyPolicy for this CdnPolicy. func (o BackendServiceCdnPolicyOutput) CacheKeyPolicy() CacheKeyPolicyPtrOutput { return o.ApplyT(func(v BackendServiceCdnPolicy) *CacheKeyPolicy { return v.CacheKeyPolicy }).(CacheKeyPolicyPtrOutput) } // Specifies the cache setting for all responses from this backend. The possible values are: USE_ORIGIN_HEADERS Requires the origin to set valid caching headers to cache content. Responses without these headers will not be cached at Google's edge, and will require a full trip to the origin on every request, potentially impacting performance and increasing load on the origin server. FORCE_CACHE_ALL Cache all content, ignoring any "private", "no-store" or "no-cache" directives in Cache-Control response headers. Warning: this may result in Cloud CDN caching private, per-user (user identifiable) content. CACHE_ALL_STATIC Automatically cache static content, including common image formats, media (video and audio), and web assets (JavaScript and CSS). Requests and responses that are marked as uncacheable, as well as dynamic content (including HTML), will not be cached. func (o BackendServiceCdnPolicyOutput) CacheMode() BackendServiceCdnPolicyCacheModePtrOutput { return o.ApplyT(func(v BackendServiceCdnPolicy) *BackendServiceCdnPolicyCacheMode { return v.CacheMode }).(BackendServiceCdnPolicyCacheModePtrOutput) } // Specifies a separate client (e.g. browser client) maximum TTL. This is used to clamp the max-age (or Expires) value sent to the client. With FORCE_CACHE_ALL, the lesser of client_ttl and default_ttl is used for the response max-age directive, along with a "public" directive. For cacheable content in CACHE_ALL_STATIC mode, client_ttl clamps the max-age from the origin (if specified), or else sets the response max-age directive to the lesser of the client_ttl and default_ttl, and also ensures a "public" cache-control directive is present. If a client TTL is not specified, a default value (1 hour) will be used. The maximum allowed value is 31,622,400s (1 year). func (o BackendServiceCdnPolicyOutput) ClientTtl() pulumi.IntPtrOutput { return o.ApplyT(func(v BackendServiceCdnPolicy) *int { return v.ClientTtl }).(pulumi.IntPtrOutput) } // Specifies the default TTL for cached content served by this origin for responses that do not have an existing valid TTL (max-age or s-max-age). Setting a TTL of "0" means "always revalidate". The value of defaultTTL cannot be set to a value greater than that of maxTTL, but can be equal. When the cacheMode is set to FORCE_CACHE_ALL, the defaultTTL will overwrite the TTL set in all responses. The maximum allowed value is 31,622,400s (1 year), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. func (o BackendServiceCdnPolicyOutput) DefaultTtl() pulumi.IntPtrOutput { return o.ApplyT(func(v BackendServiceCdnPolicy) *int { return v.DefaultTtl }).(pulumi.IntPtrOutput) } // Specifies the maximum allowed TTL for cached content served by this origin. Cache directives that attempt to set a max-age or s-maxage higher than this, or an Expires header more than maxTTL seconds in the future will be capped at the value of maxTTL, as if it were the value of an s-maxage Cache-Control directive. Headers sent to the client will not be modified. Setting a TTL of "0" means "always revalidate". The maximum allowed value is 31,622,400s (1 year), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. func (o BackendServiceCdnPolicyOutput) MaxTtl() pulumi.IntPtrOutput { return o.ApplyT(func(v BackendServiceCdnPolicy) *int { return v.MaxTtl }).(pulumi.IntPtrOutput) } // Negative caching allows per-status code TTLs to be set, in order to apply fine-grained caching for common errors or redirects. This can reduce the load on your origin and improve end-user experience by reducing response latency. When the cache mode is set to CACHE_ALL_STATIC or USE_ORIGIN_HEADERS, negative caching applies to responses with the specified response code that lack any Cache-Control, Expires, or Pragma: no-cache directives. When the cache mode is set to FORCE_CACHE_ALL, negative caching applies to all responses with the specified response code, and override any caching headers. By default, Cloud CDN will apply the following default TTLs to these status codes: HTTP 300 (Multiple Choice), 301, 308 (Permanent Redirects): 10m HTTP 404 (Not Found), 410 (Gone), 451 (Unavailable For Legal Reasons): 120s HTTP 405 (Method Not Found), 421 (Misdirected Request), 501 (Not Implemented): 60s. These defaults can be overridden in negative_caching_policy. func (o BackendServiceCdnPolicyOutput) NegativeCaching() pulumi.BoolPtrOutput { return o.ApplyT(func(v BackendServiceCdnPolicy) *bool { return v.NegativeCaching }).(pulumi.BoolPtrOutput) } // Sets a cache TTL for the specified HTTP status code. negative_caching must be enabled to configure negative_caching_policy. Omitting the policy and leaving negative_caching enabled will use Cloud CDN's default cache TTLs. Note that when specifying an explicit negative_caching_policy, you should take care to specify a cache TTL for all response codes that you wish to cache. Cloud CDN will not apply any default negative caching when a policy exists. func (o BackendServiceCdnPolicyOutput) NegativeCachingPolicy() BackendServiceCdnPolicyNegativeCachingPolicyArrayOutput { return o.ApplyT(func(v BackendServiceCdnPolicy) []BackendServiceCdnPolicyNegativeCachingPolicy { return v.NegativeCachingPolicy }).(BackendServiceCdnPolicyNegativeCachingPolicyArrayOutput) } // If true then Cloud CDN will combine multiple concurrent cache fill requests into a small number of requests to the origin. func (o BackendServiceCdnPolicyOutput) RequestCoalescing() pulumi.BoolPtrOutput { return o.ApplyT(func(v BackendServiceCdnPolicy) *bool { return v.RequestCoalescing }).(pulumi.BoolPtrOutput) } // Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache. This setting defines the default "max-stale" duration for any cached responses that do not specify a max-stale directive. Stale responses that exceed the TTL configured here will not be served. The default limit (max-stale) is 86400s (1 day), which will allow stale content to be served up to this limit beyond the max-age (or s-max-age) of a cached response. The maximum allowed value is 604800 (1 week). Set this to zero (0) to disable serve-while-stale. func (o BackendServiceCdnPolicyOutput) ServeWhileStale() pulumi.IntPtrOutput { return o.ApplyT(func(v BackendServiceCdnPolicy) *int { return v.ServeWhileStale }).(pulumi.IntPtrOutput) } // Maximum number of seconds the response to a signed URL request will be considered fresh. After this time period, the response will be revalidated before being served. Defaults to 1hr (3600s). When serving responses to signed URL requests, Cloud CDN will internally behave as though all responses from this backend had a "Cache-Control: public, max-age=[TTL]" header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered. func (o BackendServiceCdnPolicyOutput) SignedUrlCacheMaxAgeSec() pulumi.StringPtrOutput { return o.ApplyT(func(v BackendServiceCdnPolicy) *string { return v.SignedUrlCacheMaxAgeSec }).(pulumi.StringPtrOutput) } type BackendServiceCdnPolicyPtrOutput struct{ *pulumi.OutputState } func (BackendServiceCdnPolicyPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**BackendServiceCdnPolicy)(nil)).Elem() } func (o BackendServiceCdnPolicyPtrOutput) ToBackendServiceCdnPolicyPtrOutput() BackendServiceCdnPolicyPtrOutput { return o } func (o BackendServiceCdnPolicyPtrOutput) ToBackendServiceCdnPolicyPtrOutputWithContext(ctx context.Context) BackendServiceCdnPolicyPtrOutput { return o } func (o BackendServiceCdnPolicyPtrOutput) Elem() BackendServiceCdnPolicyOutput { return o.ApplyT(func(v *BackendServiceCdnPolicy) BackendServiceCdnPolicy { if v != nil { return *v } var ret BackendServiceCdnPolicy return ret }).(BackendServiceCdnPolicyOutput) } // Bypass the cache when the specified request headers are matched - e.g. Pragma or Authorization headers. Up to 5 headers can be specified. The cache is bypassed for all cdnPolicy.cacheMode settings. func (o BackendServiceCdnPolicyPtrOutput) BypassCacheOnRequestHeaders() BackendServiceCdnPolicyBypassCacheOnRequestHeaderArrayOutput { return o.ApplyT(func(v *BackendServiceCdnPolicy) []BackendServiceCdnPolicyBypassCacheOnRequestHeader { if v == nil { return nil } return v.BypassCacheOnRequestHeaders }).(BackendServiceCdnPolicyBypassCacheOnRequestHeaderArrayOutput) } // The CacheKeyPolicy for this CdnPolicy. func (o BackendServiceCdnPolicyPtrOutput) CacheKeyPolicy() CacheKeyPolicyPtrOutput { return o.ApplyT(func(v *BackendServiceCdnPolicy) *CacheKeyPolicy { if v == nil { return nil } return v.CacheKeyPolicy }).(CacheKeyPolicyPtrOutput) } // Specifies the cache setting for all responses from this backend. The possible values are: USE_ORIGIN_HEADERS Requires the origin to set valid caching headers to cache content. Responses without these headers will not be cached at Google's edge, and will require a full trip to the origin on every request, potentially impacting performance and increasing load on the origin server. FORCE_CACHE_ALL Cache all content, ignoring any "private", "no-store" or "no-cache" directives in Cache-Control response headers. Warning: this may result in Cloud CDN caching private, per-user (user identifiable) content. CACHE_ALL_STATIC Automatically cache static content, including common image formats, media (video and audio), and web assets (JavaScript and CSS). Requests and responses that are marked as uncacheable, as well as dynamic content (including HTML), will not be cached. func (o BackendServiceCdnPolicyPtrOutput) CacheMode() BackendServiceCdnPolicyCacheModePtrOutput { return o.ApplyT(func(v *BackendServiceCdnPolicy) *BackendServiceCdnPolicyCacheMode { if v == nil { return nil } return v.CacheMode }).(BackendServiceCdnPolicyCacheModePtrOutput) } // Specifies a separate client (e.g. browser client) maximum TTL. This is used to clamp the max-age (or Expires) value sent to the client. With FORCE_CACHE_ALL, the lesser of client_ttl and default_ttl is used for the response max-age directive, along with a "public" directive. For cacheable content in CACHE_ALL_STATIC mode, client_ttl clamps the max-age from the origin (if specified), or else sets the response max-age directive to the lesser of the client_ttl and default_ttl, and also ensures a "public" cache-control directive is present. If a client TTL is not specified, a default value (1 hour) will be used. The maximum allowed value is 31,622,400s (1 year). func (o BackendServiceCdnPolicyPtrOutput) ClientTtl() pulumi.IntPtrOutput { return o.ApplyT(func(v *BackendServiceCdnPolicy) *int { if v == nil { return nil } return v.ClientTtl }).(pulumi.IntPtrOutput) } // Specifies the default TTL for cached content served by this origin for responses that do not have an existing valid TTL (max-age or s-max-age). Setting a TTL of "0" means "always revalidate". The value of defaultTTL cannot be set to a value greater than that of maxTTL, but can be equal. When the cacheMode is set to FORCE_CACHE_ALL, the defaultTTL will overwrite the TTL set in all responses. The maximum allowed value is 31,622,400s (1 year), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. func (o BackendServiceCdnPolicyPtrOutput) DefaultTtl() pulumi.IntPtrOutput { return o.ApplyT(func(v *BackendServiceCdnPolicy) *int { if v == nil { return nil } return v.DefaultTtl }).(pulumi.IntPtrOutput) } // Specifies the maximum allowed TTL for cached content served by this origin. Cache directives that attempt to set a max-age or s-maxage higher than this, or an Expires header more than maxTTL seconds in the future will be capped at the value of maxTTL, as if it were the value of an s-maxage Cache-Control directive. Headers sent to the client will not be modified. Setting a TTL of "0" means "always revalidate". The maximum allowed value is 31,622,400s (1 year), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. func (o BackendServiceCdnPolicyPtrOutput) MaxTtl() pulumi.IntPtrOutput { return o.ApplyT(func(v *BackendServiceCdnPolicy) *int { if v == nil { return nil } return v.MaxTtl }).(pulumi.IntPtrOutput) } // Negative caching allows per-status code TTLs to be set, in order to apply fine-grained caching for common errors or redirects. This can reduce the load on your origin and improve end-user experience by reducing response latency. When the cache mode is set to CACHE_ALL_STATIC or USE_ORIGIN_HEADERS, negative caching applies to responses with the specified response code that lack any Cache-Control, Expires, or Pragma: no-cache directives. When the cache mode is set to FORCE_CACHE_ALL, negative caching applies to all responses with the specified response code, and override any caching headers. By default, Cloud CDN will apply the following default TTLs to these status codes: HTTP 300 (Multiple Choice), 301, 308 (Permanent Redirects): 10m HTTP 404 (Not Found), 410 (Gone), 451 (Unavailable For Legal Reasons): 120s HTTP 405 (Method Not Found), 421 (Misdirected Request), 501 (Not Implemented): 60s. These defaults can be overridden in negative_caching_policy. func (o BackendServiceCdnPolicyPtrOutput) NegativeCaching() pulumi.BoolPtrOutput { return o.ApplyT(func(v *BackendServiceCdnPolicy) *bool { if v == nil { return nil } return v.NegativeCaching }).(pulumi.BoolPtrOutput) } // Sets a cache TTL for the specified HTTP status code. negative_caching must be enabled to configure negative_caching_policy. Omitting the policy and leaving negative_caching enabled will use Cloud CDN's default cache TTLs. Note that when specifying an explicit negative_caching_policy, you should take care to specify a cache TTL for all response codes that you wish to cache. Cloud CDN will not apply any default negative caching when a policy exists. func (o BackendServiceCdnPolicyPtrOutput) NegativeCachingPolicy() BackendServiceCdnPolicyNegativeCachingPolicyArrayOutput { return o.ApplyT(func(v *BackendServiceCdnPolicy) []BackendServiceCdnPolicyNegativeCachingPolicy { if v == nil { return nil } return v.NegativeCachingPolicy }).(BackendServiceCdnPolicyNegativeCachingPolicyArrayOutput) } // If true then Cloud CDN will combine multiple concurrent cache fill requests into a small number of requests to the origin. func (o BackendServiceCdnPolicyPtrOutput) RequestCoalescing() pulumi.BoolPtrOutput { return o.ApplyT(func(v *BackendServiceCdnPolicy) *bool { if v == nil { return nil } return v.RequestCoalescing }).(pulumi.BoolPtrOutput) } // Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache. This setting defines the default "max-stale" duration for any cached responses that do not specify a max-stale directive. Stale responses that exceed the TTL configured here will not be served. The default limit (max-stale) is 86400s (1 day), which will allow stale content to be served up to this limit beyond the max-age (or s-max-age) of a cached response. The maximum allowed value is 604800 (1 week). Set this to zero (0) to disable serve-while-stale. func (o BackendServiceCdnPolicyPtrOutput) ServeWhileStale() pulumi.IntPtrOutput { return o.ApplyT(func(v *BackendServiceCdnPolicy) *int { if v == nil { return nil } return v.ServeWhileStale }).(pulumi.IntPtrOutput) } // Maximum number of seconds the response to a signed URL request will be considered fresh. After this time period, the response will be revalidated before being served. Defaults to 1hr (3600s). When serving responses to signed URL requests, Cloud CDN will internally behave as though all responses from this backend had a "Cache-Control: public, max-age=[TTL]" header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered. func (o BackendServiceCdnPolicyPtrOutput) SignedUrlCacheMaxAgeSec() pulumi.StringPtrOutput { return o.ApplyT(func(v *BackendServiceCdnPolicy) *string { if v == nil { return nil } return v.SignedUrlCacheMaxAgeSec }).(pulumi.StringPtrOutput) } // Bypass the cache when the specified request headers are present, e.g. Pragma or Authorization headers. Values are case insensitive. The presence of such a header overrides the cache_mode setting. type BackendServiceCdnPolicyBypassCacheOnRequestHeader struct { // The header field name to match on when bypassing cache. Values are case-insensitive. HeaderName *string `pulumi:"headerName"` } // BackendServiceCdnPolicyBypassCacheOnRequestHeaderInput is an input type that accepts BackendServiceCdnPolicyBypassCacheOnRequestHeaderArgs and BackendServiceCdnPolicyBypassCacheOnRequestHeaderOutput values. // You can construct a concrete instance of `BackendServiceCdnPolicyBypassCacheOnRequestHeaderInput` via: // // BackendServiceCdnPolicyBypassCacheOnRequestHeaderArgs{...} type BackendServiceCdnPolicyBypassCacheOnRequestHeaderInput interface { pulumi.Input ToBackendServiceCdnPolicyBypassCacheOnRequestHeaderOutput() BackendServiceCdnPolicyBypassCacheOnRequestHeaderOutput ToBackendServiceCdnPolicyBypassCacheOnRequestHeaderOutputWithContext(context.Context) BackendServiceCdnPolicyBypassCacheOnRequestHeaderOutput } // Bypass the cache when the specified request headers are present, e.g. Pragma or Authorization headers. Values are case insensitive. The presence of such a header overrides the cache_mode setting. type BackendServiceCdnPolicyBypassCacheOnRequestHeaderArgs struct { // The header field name to match on when bypassing cache. Values are case-insensitive. HeaderName pulumi.StringPtrInput `pulumi:"headerName"` } func (BackendServiceCdnPolicyBypassCacheOnRequestHeaderArgs) ElementType() reflect.Type { return reflect.TypeOf((*BackendServiceCdnPolicyBypassCacheOnRequestHeader)(nil)).Elem() } func (i BackendServiceCdnPolicyBypassCacheOnRequestHeaderArgs) ToBackendServiceCdnPolicyBypassCacheOnRequestHeaderOutput() BackendServiceCdnPolicyBypassCacheOnRequestHeaderOutput { return i.ToBackendServiceCdnPolicyBypassCacheOnRequestHeaderOutputWithContext(context.Background()) } func (i BackendServiceCdnPolicyBypassCacheOnRequestHeaderArgs) ToBackendServiceCdnPolicyBypassCacheOnRequestHeaderOutputWithContext(ctx context.Context) BackendServiceCdnPolicyBypassCacheOnRequestHeaderOutput { return pulumi.ToOutputWithContext(ctx, i).(BackendServiceCdnPolicyBypassCacheOnRequestHeaderOutput) } // BackendServiceCdnPolicyBypassCacheOnRequestHeaderArrayInput is an input type that accepts BackendServiceCdnPolicyBypassCacheOnRequestHeaderArray and BackendServiceCdnPolicyBypassCacheOnRequestHeaderArrayOutput values. // You can construct a concrete instance of `BackendServiceCdnPolicyBypassCacheOnRequestHeaderArrayInput` via: // // BackendServiceCdnPolicyBypassCacheOnRequestHeaderArray{ BackendServiceCdnPolicyBypassCacheOnRequestHeaderArgs{...} } type BackendServiceCdnPolicyBypassCacheOnRequestHeaderArrayInput interface { pulumi.Input ToBackendServiceCdnPolicyBypassCacheOnRequestHeaderArrayOutput() BackendServiceCdnPolicyBypassCacheOnRequestHeaderArrayOutput ToBackendServiceCdnPolicyBypassCacheOnRequestHeaderArrayOutputWithContext(context.Context) BackendServiceCdnPolicyBypassCacheOnRequestHeaderArrayOutput } type BackendServiceCdnPolicyBypassCacheOnRequestHeaderArray []BackendServiceCdnPolicyBypassCacheOnRequestHeaderInput func (BackendServiceCdnPolicyBypassCacheOnRequestHeaderArray) ElementType() reflect.Type { return reflect.TypeOf((*[]BackendServiceCdnPolicyBypassCacheOnRequestHeader)(nil)).Elem() } func (i BackendServiceCdnPolicyBypassCacheOnRequestHeaderArray) ToBackendServiceCdnPolicyBypassCacheOnRequestHeaderArrayOutput() BackendServiceCdnPolicyBypassCacheOnRequestHeaderArrayOutput { return i.ToBackendServiceCdnPolicyBypassCacheOnRequestHeaderArrayOutputWithContext(context.Background()) } func (i BackendServiceCdnPolicyBypassCacheOnRequestHeaderArray) ToBackendServiceCdnPolicyBypassCacheOnRequestHeaderArrayOutputWithContext(ctx context.Context) BackendServiceCdnPolicyBypassCacheOnRequestHeaderArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(BackendServiceCdnPolicyBypassCacheOnRequestHeaderArrayOutput) } // Bypass the cache when the specified request headers are present, e.g. Pragma or Authorization headers. Values are case insensitive. The presence of such a header overrides the cache_mode setting. type BackendServiceCdnPolicyBypassCacheOnRequestHeaderOutput struct{ *pulumi.OutputState } func (BackendServiceCdnPolicyBypassCacheOnRequestHeaderOutput) ElementType() reflect.Type { return reflect.TypeOf((*BackendServiceCdnPolicyBypassCacheOnRequestHeader)(nil)).Elem() } func (o BackendServiceCdnPolicyBypassCacheOnRequestHeaderOutput) ToBackendServiceCdnPolicyBypassCacheOnRequestHeaderOutput() BackendServiceCdnPolicyBypassCacheOnRequestHeaderOutput { return o } func (o BackendServiceCdnPolicyBypassCacheOnRequestHeaderOutput) ToBackendServiceCdnPolicyBypassCacheOnRequestHeaderOutputWithContext(ctx context.Context) BackendServiceCdnPolicyBypassCacheOnRequestHeaderOutput { return o } // The header field name to match on when bypassing cache. Values are case-insensitive. func (o BackendServiceCdnPolicyBypassCacheOnRequestHeaderOutput) HeaderName() pulumi.StringPtrOutput { return o.ApplyT(func(v BackendServiceCdnPolicyBypassCacheOnRequestHeader) *string { return v.HeaderName }).(pulumi.StringPtrOutput) } type BackendServiceCdnPolicyBypassCacheOnRequestHeaderArrayOutput struct{ *pulumi.OutputState } func (BackendServiceCdnPolicyBypassCacheOnRequestHeaderArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]BackendServiceCdnPolicyBypassCacheOnRequestHeader)(nil)).Elem() } func (o BackendServiceCdnPolicyBypassCacheOnRequestHeaderArrayOutput) ToBackendServiceCdnPolicyBypassCacheOnRequestHeaderArrayOutput() BackendServiceCdnPolicyBypassCacheOnRequestHeaderArrayOutput { return o } func (o BackendServiceCdnPolicyBypassCacheOnRequestHeaderArrayOutput) ToBackendServiceCdnPolicyBypassCacheOnRequestHeaderArrayOutputWithContext(ctx context.Context) BackendServiceCdnPolicyBypassCacheOnRequestHeaderArrayOutput { return o } func (o BackendServiceCdnPolicyBypassCacheOnRequestHeaderArrayOutput) Index(i pulumi.IntInput) BackendServiceCdnPolicyBypassCacheOnRequestHeaderOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) BackendServiceCdnPolicyBypassCacheOnRequestHeader { return vs[0].([]BackendServiceCdnPolicyBypassCacheOnRequestHeader)[vs[1].(int)] }).(BackendServiceCdnPolicyBypassCacheOnRequestHeaderOutput) } // Bypass the cache when the specified request headers are present, e.g. Pragma or Authorization headers. Values are case insensitive. The presence of such a header overrides the cache_mode setting. type BackendServiceCdnPolicyBypassCacheOnRequestHeaderResponse struct { // The header field name to match on when bypassing cache. Values are case-insensitive. HeaderName string `pulumi:"headerName"` } // Bypass the cache when the specified request headers are present, e.g. Pragma or Authorization headers. Values are case insensitive. The presence of such a header overrides the cache_mode setting. type BackendServiceCdnPolicyBypassCacheOnRequestHeaderResponseOutput struct{ *pulumi.OutputState } func (BackendServiceCdnPolicyBypassCacheOnRequestHeaderResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*BackendServiceCdnPolicyBypassCacheOnRequestHeaderResponse)(nil)).Elem() } func (o BackendServiceCdnPolicyBypassCacheOnRequestHeaderResponseOutput) ToBackendServiceCdnPolicyBypassCacheOnRequestHeaderResponseOutput() BackendServiceCdnPolicyBypassCacheOnRequestHeaderResponseOutput { return o } func (o BackendServiceCdnPolicyBypassCacheOnRequestHeaderResponseOutput) ToBackendServiceCdnPolicyBypassCacheOnRequestHeaderResponseOutputWithContext(ctx context.Context) BackendServiceCdnPolicyBypassCacheOnRequestHeaderResponseOutput { return o } // The header field name to match on when bypassing cache. Values are case-insensitive. func (o BackendServiceCdnPolicyBypassCacheOnRequestHeaderResponseOutput) HeaderName() pulumi.StringOutput { return o.ApplyT(func(v BackendServiceCdnPolicyBypassCacheOnRequestHeaderResponse) string { return v.HeaderName }).(pulumi.StringOutput) } type BackendServiceCdnPolicyBypassCacheOnRequestHeaderResponseArrayOutput struct{ *pulumi.OutputState } func (BackendServiceCdnPolicyBypassCacheOnRequestHeaderResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]BackendServiceCdnPolicyBypassCacheOnRequestHeaderResponse)(nil)).Elem() } func (o BackendServiceCdnPolicyBypassCacheOnRequestHeaderResponseArrayOutput) ToBackendServiceCdnPolicyBypassCacheOnRequestHeaderResponseArrayOutput() BackendServiceCdnPolicyBypassCacheOnRequestHeaderResponseArrayOutput { return o } func (o BackendServiceCdnPolicyBypassCacheOnRequestHeaderResponseArrayOutput) ToBackendServiceCdnPolicyBypassCacheOnRequestHeaderResponseArrayOutputWithContext(ctx context.Context) BackendServiceCdnPolicyBypassCacheOnRequestHeaderResponseArrayOutput { return o } func (o BackendServiceCdnPolicyBypassCacheOnRequestHeaderResponseArrayOutput) Index(i pulumi.IntInput) BackendServiceCdnPolicyBypassCacheOnRequestHeaderResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) BackendServiceCdnPolicyBypassCacheOnRequestHeaderResponse { return vs[0].([]BackendServiceCdnPolicyBypassCacheOnRequestHeaderResponse)[vs[1].(int)] }).(BackendServiceCdnPolicyBypassCacheOnRequestHeaderResponseOutput) } // Specify CDN TTLs for response error codes. type BackendServiceCdnPolicyNegativeCachingPolicy struct { // The HTTP status code to define a TTL against. Only HTTP status codes 300, 301, 302, 307, 308, 404, 405, 410, 421, 451 and 501 are can be specified as values, and you cannot specify a status code more than once. Code *int `pulumi:"code"` // The TTL (in seconds) for which to cache responses with the corresponding status code. The maximum allowed value is 1800s (30 minutes), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. Ttl *int `pulumi:"ttl"` } // BackendServiceCdnPolicyNegativeCachingPolicyInput is an input type that accepts BackendServiceCdnPolicyNegativeCachingPolicyArgs and BackendServiceCdnPolicyNegativeCachingPolicyOutput values. // You can construct a concrete instance of `BackendServiceCdnPolicyNegativeCachingPolicyInput` via: // // BackendServiceCdnPolicyNegativeCachingPolicyArgs{...} type BackendServiceCdnPolicyNegativeCachingPolicyInput interface { pulumi.Input ToBackendServiceCdnPolicyNegativeCachingPolicyOutput() BackendServiceCdnPolicyNegativeCachingPolicyOutput ToBackendServiceCdnPolicyNegativeCachingPolicyOutputWithContext(context.Context) BackendServiceCdnPolicyNegativeCachingPolicyOutput } // Specify CDN TTLs for response error codes. type BackendServiceCdnPolicyNegativeCachingPolicyArgs struct { // The HTTP status code to define a TTL against. Only HTTP status codes 300, 301, 302, 307, 308, 404, 405, 410, 421, 451 and 501 are can be specified as values, and you cannot specify a status code more than once. Code pulumi.IntPtrInput `pulumi:"code"` // The TTL (in seconds) for which to cache responses with the corresponding status code. The maximum allowed value is 1800s (30 minutes), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. Ttl pulumi.IntPtrInput `pulumi:"ttl"` } func (BackendServiceCdnPolicyNegativeCachingPolicyArgs) ElementType() reflect.Type { return reflect.TypeOf((*BackendServiceCdnPolicyNegativeCachingPolicy)(nil)).Elem() } func (i BackendServiceCdnPolicyNegativeCachingPolicyArgs) ToBackendServiceCdnPolicyNegativeCachingPolicyOutput() BackendServiceCdnPolicyNegativeCachingPolicyOutput { return i.ToBackendServiceCdnPolicyNegativeCachingPolicyOutputWithContext(context.Background()) } func (i BackendServiceCdnPolicyNegativeCachingPolicyArgs) ToBackendServiceCdnPolicyNegativeCachingPolicyOutputWithContext(ctx context.Context) BackendServiceCdnPolicyNegativeCachingPolicyOutput { return pulumi.ToOutputWithContext(ctx, i).(BackendServiceCdnPolicyNegativeCachingPolicyOutput) } // BackendServiceCdnPolicyNegativeCachingPolicyArrayInput is an input type that accepts BackendServiceCdnPolicyNegativeCachingPolicyArray and BackendServiceCdnPolicyNegativeCachingPolicyArrayOutput values. // You can construct a concrete instance of `BackendServiceCdnPolicyNegativeCachingPolicyArrayInput` via: // // BackendServiceCdnPolicyNegativeCachingPolicyArray{ BackendServiceCdnPolicyNegativeCachingPolicyArgs{...} } type BackendServiceCdnPolicyNegativeCachingPolicyArrayInput interface { pulumi.Input ToBackendServiceCdnPolicyNegativeCachingPolicyArrayOutput() BackendServiceCdnPolicyNegativeCachingPolicyArrayOutput ToBackendServiceCdnPolicyNegativeCachingPolicyArrayOutputWithContext(context.Context) BackendServiceCdnPolicyNegativeCachingPolicyArrayOutput } type BackendServiceCdnPolicyNegativeCachingPolicyArray []BackendServiceCdnPolicyNegativeCachingPolicyInput func (BackendServiceCdnPolicyNegativeCachingPolicyArray) ElementType() reflect.Type { return reflect.TypeOf((*[]BackendServiceCdnPolicyNegativeCachingPolicy)(nil)).Elem() } func (i BackendServiceCdnPolicyNegativeCachingPolicyArray) ToBackendServiceCdnPolicyNegativeCachingPolicyArrayOutput() BackendServiceCdnPolicyNegativeCachingPolicyArrayOutput { return i.ToBackendServiceCdnPolicyNegativeCachingPolicyArrayOutputWithContext(context.Background()) } func (i BackendServiceCdnPolicyNegativeCachingPolicyArray) ToBackendServiceCdnPolicyNegativeCachingPolicyArrayOutputWithContext(ctx context.Context) BackendServiceCdnPolicyNegativeCachingPolicyArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(BackendServiceCdnPolicyNegativeCachingPolicyArrayOutput) } // Specify CDN TTLs for response error codes. type BackendServiceCdnPolicyNegativeCachingPolicyOutput struct{ *pulumi.OutputState } func (BackendServiceCdnPolicyNegativeCachingPolicyOutput) ElementType() reflect.Type { return reflect.TypeOf((*BackendServiceCdnPolicyNegativeCachingPolicy)(nil)).Elem() } func (o BackendServiceCdnPolicyNegativeCachingPolicyOutput) ToBackendServiceCdnPolicyNegativeCachingPolicyOutput() BackendServiceCdnPolicyNegativeCachingPolicyOutput { return o } func (o BackendServiceCdnPolicyNegativeCachingPolicyOutput) ToBackendServiceCdnPolicyNegativeCachingPolicyOutputWithContext(ctx context.Context) BackendServiceCdnPolicyNegativeCachingPolicyOutput { return o } // The HTTP status code to define a TTL against. Only HTTP status codes 300, 301, 302, 307, 308, 404, 405, 410, 421, 451 and 501 are can be specified as values, and you cannot specify a status code more than once. func (o BackendServiceCdnPolicyNegativeCachingPolicyOutput) Code() pulumi.IntPtrOutput { return o.ApplyT(func(v BackendServiceCdnPolicyNegativeCachingPolicy) *int { return v.Code }).(pulumi.IntPtrOutput) } // The TTL (in seconds) for which to cache responses with the corresponding status code. The maximum allowed value is 1800s (30 minutes), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. func (o BackendServiceCdnPolicyNegativeCachingPolicyOutput) Ttl() pulumi.IntPtrOutput { return o.ApplyT(func(v BackendServiceCdnPolicyNegativeCachingPolicy) *int { return v.Ttl }).(pulumi.IntPtrOutput) } type BackendServiceCdnPolicyNegativeCachingPolicyArrayOutput struct{ *pulumi.OutputState } func (BackendServiceCdnPolicyNegativeCachingPolicyArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]BackendServiceCdnPolicyNegativeCachingPolicy)(nil)).Elem() } func (o BackendServiceCdnPolicyNegativeCachingPolicyArrayOutput) ToBackendServiceCdnPolicyNegativeCachingPolicyArrayOutput() BackendServiceCdnPolicyNegativeCachingPolicyArrayOutput { return o } func (o BackendServiceCdnPolicyNegativeCachingPolicyArrayOutput) ToBackendServiceCdnPolicyNegativeCachingPolicyArrayOutputWithContext(ctx context.Context) BackendServiceCdnPolicyNegativeCachingPolicyArrayOutput { return o } func (o BackendServiceCdnPolicyNegativeCachingPolicyArrayOutput) Index(i pulumi.IntInput) BackendServiceCdnPolicyNegativeCachingPolicyOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) BackendServiceCdnPolicyNegativeCachingPolicy { return vs[0].([]BackendServiceCdnPolicyNegativeCachingPolicy)[vs[1].(int)] }).(BackendServiceCdnPolicyNegativeCachingPolicyOutput) } // Specify CDN TTLs for response error codes. type BackendServiceCdnPolicyNegativeCachingPolicyResponse struct { // The HTTP status code to define a TTL against. Only HTTP status codes 300, 301, 302, 307, 308, 404, 405, 410, 421, 451 and 501 are can be specified as values, and you cannot specify a status code more than once. Code int `pulumi:"code"` // The TTL (in seconds) for which to cache responses with the corresponding status code. The maximum allowed value is 1800s (30 minutes), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. Ttl int `pulumi:"ttl"` } // Specify CDN TTLs for response error codes. type BackendServiceCdnPolicyNegativeCachingPolicyResponseOutput struct{ *pulumi.OutputState } func (BackendServiceCdnPolicyNegativeCachingPolicyResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*BackendServiceCdnPolicyNegativeCachingPolicyResponse)(nil)).Elem() } func (o BackendServiceCdnPolicyNegativeCachingPolicyResponseOutput) ToBackendServiceCdnPolicyNegativeCachingPolicyResponseOutput() BackendServiceCdnPolicyNegativeCachingPolicyResponseOutput { return o } func (o BackendServiceCdnPolicyNegativeCachingPolicyResponseOutput) ToBackendServiceCdnPolicyNegativeCachingPolicyResponseOutputWithContext(ctx context.Context) BackendServiceCdnPolicyNegativeCachingPolicyResponseOutput { return o } // The HTTP status code to define a TTL against. Only HTTP status codes 300, 301, 302, 307, 308, 404, 405, 410, 421, 451 and 501 are can be specified as values, and you cannot specify a status code more than once. func (o BackendServiceCdnPolicyNegativeCachingPolicyResponseOutput) Code() pulumi.IntOutput { return o.ApplyT(func(v BackendServiceCdnPolicyNegativeCachingPolicyResponse) int { return v.Code }).(pulumi.IntOutput) } // The TTL (in seconds) for which to cache responses with the corresponding status code. The maximum allowed value is 1800s (30 minutes), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. func (o BackendServiceCdnPolicyNegativeCachingPolicyResponseOutput) Ttl() pulumi.IntOutput { return o.ApplyT(func(v BackendServiceCdnPolicyNegativeCachingPolicyResponse) int { return v.Ttl }).(pulumi.IntOutput) } type BackendServiceCdnPolicyNegativeCachingPolicyResponseArrayOutput struct{ *pulumi.OutputState } func (BackendServiceCdnPolicyNegativeCachingPolicyResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]BackendServiceCdnPolicyNegativeCachingPolicyResponse)(nil)).Elem() } func (o BackendServiceCdnPolicyNegativeCachingPolicyResponseArrayOutput) ToBackendServiceCdnPolicyNegativeCachingPolicyResponseArrayOutput() BackendServiceCdnPolicyNegativeCachingPolicyResponseArrayOutput { return o } func (o BackendServiceCdnPolicyNegativeCachingPolicyResponseArrayOutput) ToBackendServiceCdnPolicyNegativeCachingPolicyResponseArrayOutputWithContext(ctx context.Context) BackendServiceCdnPolicyNegativeCachingPolicyResponseArrayOutput { return o } func (o BackendServiceCdnPolicyNegativeCachingPolicyResponseArrayOutput) Index(i pulumi.IntInput) BackendServiceCdnPolicyNegativeCachingPolicyResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) BackendServiceCdnPolicyNegativeCachingPolicyResponse { return vs[0].([]BackendServiceCdnPolicyNegativeCachingPolicyResponse)[vs[1].(int)] }).(BackendServiceCdnPolicyNegativeCachingPolicyResponseOutput) } // Message containing Cloud CDN configuration for a backend service. type BackendServiceCdnPolicyResponse struct { // Bypass the cache when the specified request headers are matched - e.g. Pragma or Authorization headers. Up to 5 headers can be specified. The cache is bypassed for all cdnPolicy.cacheMode settings. BypassCacheOnRequestHeaders []BackendServiceCdnPolicyBypassCacheOnRequestHeaderResponse `pulumi:"bypassCacheOnRequestHeaders"` // The CacheKeyPolicy for this CdnPolicy. CacheKeyPolicy CacheKeyPolicyResponse `pulumi:"cacheKeyPolicy"` // Specifies the cache setting for all responses from this backend. The possible values are: USE_ORIGIN_HEADERS Requires the origin to set valid caching headers to cache content. Responses without these headers will not be cached at Google's edge, and will require a full trip to the origin on every request, potentially impacting performance and increasing load on the origin server. FORCE_CACHE_ALL Cache all content, ignoring any "private", "no-store" or "no-cache" directives in Cache-Control response headers. Warning: this may result in Cloud CDN caching private, per-user (user identifiable) content. CACHE_ALL_STATIC Automatically cache static content, including common image formats, media (video and audio), and web assets (JavaScript and CSS). Requests and responses that are marked as uncacheable, as well as dynamic content (including HTML), will not be cached. CacheMode string `pulumi:"cacheMode"` // Specifies a separate client (e.g. browser client) maximum TTL. This is used to clamp the max-age (or Expires) value sent to the client. With FORCE_CACHE_ALL, the lesser of client_ttl and default_ttl is used for the response max-age directive, along with a "public" directive. For cacheable content in CACHE_ALL_STATIC mode, client_ttl clamps the max-age from the origin (if specified), or else sets the response max-age directive to the lesser of the client_ttl and default_ttl, and also ensures a "public" cache-control directive is present. If a client TTL is not specified, a default value (1 hour) will be used. The maximum allowed value is 31,622,400s (1 year). ClientTtl int `pulumi:"clientTtl"` // Specifies the default TTL for cached content served by this origin for responses that do not have an existing valid TTL (max-age or s-max-age). Setting a TTL of "0" means "always revalidate". The value of defaultTTL cannot be set to a value greater than that of maxTTL, but can be equal. When the cacheMode is set to FORCE_CACHE_ALL, the defaultTTL will overwrite the TTL set in all responses. The maximum allowed value is 31,622,400s (1 year), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. DefaultTtl int `pulumi:"defaultTtl"` // Specifies the maximum allowed TTL for cached content served by this origin. Cache directives that attempt to set a max-age or s-maxage higher than this, or an Expires header more than maxTTL seconds in the future will be capped at the value of maxTTL, as if it were the value of an s-maxage Cache-Control directive. Headers sent to the client will not be modified. Setting a TTL of "0" means "always revalidate". The maximum allowed value is 31,622,400s (1 year), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. MaxTtl int `pulumi:"maxTtl"` // Negative caching allows per-status code TTLs to be set, in order to apply fine-grained caching for common errors or redirects. This can reduce the load on your origin and improve end-user experience by reducing response latency. When the cache mode is set to CACHE_ALL_STATIC or USE_ORIGIN_HEADERS, negative caching applies to responses with the specified response code that lack any Cache-Control, Expires, or Pragma: no-cache directives. When the cache mode is set to FORCE_CACHE_ALL, negative caching applies to all responses with the specified response code, and override any caching headers. By default, Cloud CDN will apply the following default TTLs to these status codes: HTTP 300 (Multiple Choice), 301, 308 (Permanent Redirects): 10m HTTP 404 (Not Found), 410 (Gone), 451 (Unavailable For Legal Reasons): 120s HTTP 405 (Method Not Found), 421 (Misdirected Request), 501 (Not Implemented): 60s. These defaults can be overridden in negative_caching_policy. NegativeCaching bool `pulumi:"negativeCaching"` // Sets a cache TTL for the specified HTTP status code. negative_caching must be enabled to configure negative_caching_policy. Omitting the policy and leaving negative_caching enabled will use Cloud CDN's default cache TTLs. Note that when specifying an explicit negative_caching_policy, you should take care to specify a cache TTL for all response codes that you wish to cache. Cloud CDN will not apply any default negative caching when a policy exists. NegativeCachingPolicy []BackendServiceCdnPolicyNegativeCachingPolicyResponse `pulumi:"negativeCachingPolicy"` // If true then Cloud CDN will combine multiple concurrent cache fill requests into a small number of requests to the origin. RequestCoalescing bool `pulumi:"requestCoalescing"` // Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache. This setting defines the default "max-stale" duration for any cached responses that do not specify a max-stale directive. Stale responses that exceed the TTL configured here will not be served. The default limit (max-stale) is 86400s (1 day), which will allow stale content to be served up to this limit beyond the max-age (or s-max-age) of a cached response. The maximum allowed value is 604800 (1 week). Set this to zero (0) to disable serve-while-stale. ServeWhileStale int `pulumi:"serveWhileStale"` // Maximum number of seconds the response to a signed URL request will be considered fresh. After this time period, the response will be revalidated before being served. Defaults to 1hr (3600s). When serving responses to signed URL requests, Cloud CDN will internally behave as though all responses from this backend had a "Cache-Control: public, max-age=[TTL]" header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered. SignedUrlCacheMaxAgeSec string `pulumi:"signedUrlCacheMaxAgeSec"` // Names of the keys for signing request URLs. SignedUrlKeyNames []string `pulumi:"signedUrlKeyNames"` } // Message containing Cloud CDN configuration for a backend service. type BackendServiceCdnPolicyResponseOutput struct{ *pulumi.OutputState } func (BackendServiceCdnPolicyResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*BackendServiceCdnPolicyResponse)(nil)).Elem() } func (o BackendServiceCdnPolicyResponseOutput) ToBackendServiceCdnPolicyResponseOutput() BackendServiceCdnPolicyResponseOutput { return o } func (o BackendServiceCdnPolicyResponseOutput) ToBackendServiceCdnPolicyResponseOutputWithContext(ctx context.Context) BackendServiceCdnPolicyResponseOutput { return o } // Bypass the cache when the specified request headers are matched - e.g. Pragma or Authorization headers. Up to 5 headers can be specified. The cache is bypassed for all cdnPolicy.cacheMode settings. func (o BackendServiceCdnPolicyResponseOutput) BypassCacheOnRequestHeaders() BackendServiceCdnPolicyBypassCacheOnRequestHeaderResponseArrayOutput { return o.ApplyT(func(v BackendServiceCdnPolicyResponse) []BackendServiceCdnPolicyBypassCacheOnRequestHeaderResponse { return v.BypassCacheOnRequestHeaders }).(BackendServiceCdnPolicyBypassCacheOnRequestHeaderResponseArrayOutput) } // The CacheKeyPolicy for this CdnPolicy. func (o BackendServiceCdnPolicyResponseOutput) CacheKeyPolicy() CacheKeyPolicyResponseOutput { return o.ApplyT(func(v BackendServiceCdnPolicyResponse) CacheKeyPolicyResponse { return v.CacheKeyPolicy }).(CacheKeyPolicyResponseOutput) } // Specifies the cache setting for all responses from this backend. The possible values are: USE_ORIGIN_HEADERS Requires the origin to set valid caching headers to cache content. Responses without these headers will not be cached at Google's edge, and will require a full trip to the origin on every request, potentially impacting performance and increasing load on the origin server. FORCE_CACHE_ALL Cache all content, ignoring any "private", "no-store" or "no-cache" directives in Cache-Control response headers. Warning: this may result in Cloud CDN caching private, per-user (user identifiable) content. CACHE_ALL_STATIC Automatically cache static content, including common image formats, media (video and audio), and web assets (JavaScript and CSS). Requests and responses that are marked as uncacheable, as well as dynamic content (including HTML), will not be cached. func (o BackendServiceCdnPolicyResponseOutput) CacheMode() pulumi.StringOutput { return o.ApplyT(func(v BackendServiceCdnPolicyResponse) string { return v.CacheMode }).(pulumi.StringOutput) } // Specifies a separate client (e.g. browser client) maximum TTL. This is used to clamp the max-age (or Expires) value sent to the client. With FORCE_CACHE_ALL, the lesser of client_ttl and default_ttl is used for the response max-age directive, along with a "public" directive. For cacheable content in CACHE_ALL_STATIC mode, client_ttl clamps the max-age from the origin (if specified), or else sets the response max-age directive to the lesser of the client_ttl and default_ttl, and also ensures a "public" cache-control directive is present. If a client TTL is not specified, a default value (1 hour) will be used. The maximum allowed value is 31,622,400s (1 year). func (o BackendServiceCdnPolicyResponseOutput) ClientTtl() pulumi.IntOutput { return o.ApplyT(func(v BackendServiceCdnPolicyResponse) int { return v.ClientTtl }).(pulumi.IntOutput) } // Specifies the default TTL for cached content served by this origin for responses that do not have an existing valid TTL (max-age or s-max-age). Setting a TTL of "0" means "always revalidate". The value of defaultTTL cannot be set to a value greater than that of maxTTL, but can be equal. When the cacheMode is set to FORCE_CACHE_ALL, the defaultTTL will overwrite the TTL set in all responses. The maximum allowed value is 31,622,400s (1 year), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. func (o BackendServiceCdnPolicyResponseOutput) DefaultTtl() pulumi.IntOutput { return o.ApplyT(func(v BackendServiceCdnPolicyResponse) int { return v.DefaultTtl }).(pulumi.IntOutput) } // Specifies the maximum allowed TTL for cached content served by this origin. Cache directives that attempt to set a max-age or s-maxage higher than this, or an Expires header more than maxTTL seconds in the future will be capped at the value of maxTTL, as if it were the value of an s-maxage Cache-Control directive. Headers sent to the client will not be modified. Setting a TTL of "0" means "always revalidate". The maximum allowed value is 31,622,400s (1 year), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. func (o BackendServiceCdnPolicyResponseOutput) MaxTtl() pulumi.IntOutput { return o.ApplyT(func(v BackendServiceCdnPolicyResponse) int { return v.MaxTtl }).(pulumi.IntOutput) } // Negative caching allows per-status code TTLs to be set, in order to apply fine-grained caching for common errors or redirects. This can reduce the load on your origin and improve end-user experience by reducing response latency. When the cache mode is set to CACHE_ALL_STATIC or USE_ORIGIN_HEADERS, negative caching applies to responses with the specified response code that lack any Cache-Control, Expires, or Pragma: no-cache directives. When the cache mode is set to FORCE_CACHE_ALL, negative caching applies to all responses with the specified response code, and override any caching headers. By default, Cloud CDN will apply the following default TTLs to these status codes: HTTP 300 (Multiple Choice), 301, 308 (Permanent Redirects): 10m HTTP 404 (Not Found), 410 (Gone), 451 (Unavailable For Legal Reasons): 120s HTTP 405 (Method Not Found), 421 (Misdirected Request), 501 (Not Implemented): 60s. These defaults can be overridden in negative_caching_policy. func (o BackendServiceCdnPolicyResponseOutput) NegativeCaching() pulumi.BoolOutput { return o.ApplyT(func(v BackendServiceCdnPolicyResponse) bool { return v.NegativeCaching }).(pulumi.BoolOutput) } // Sets a cache TTL for the specified HTTP status code. negative_caching must be enabled to configure negative_caching_policy. Omitting the policy and leaving negative_caching enabled will use Cloud CDN's default cache TTLs. Note that when specifying an explicit negative_caching_policy, you should take care to specify a cache TTL for all response codes that you wish to cache. Cloud CDN will not apply any default negative caching when a policy exists. func (o BackendServiceCdnPolicyResponseOutput) NegativeCachingPolicy() BackendServiceCdnPolicyNegativeCachingPolicyResponseArrayOutput { return o.ApplyT(func(v BackendServiceCdnPolicyResponse) []BackendServiceCdnPolicyNegativeCachingPolicyResponse { return v.NegativeCachingPolicy }).(BackendServiceCdnPolicyNegativeCachingPolicyResponseArrayOutput) } // If true then Cloud CDN will combine multiple concurrent cache fill requests into a small number of requests to the origin. func (o BackendServiceCdnPolicyResponseOutput) RequestCoalescing() pulumi.BoolOutput { return o.ApplyT(func(v BackendServiceCdnPolicyResponse) bool { return v.RequestCoalescing }).(pulumi.BoolOutput) } // Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache. This setting defines the default "max-stale" duration for any cached responses that do not specify a max-stale directive. Stale responses that exceed the TTL configured here will not be served. The default limit (max-stale) is 86400s (1 day), which will allow stale content to be served up to this limit beyond the max-age (or s-max-age) of a cached response. The maximum allowed value is 604800 (1 week). Set this to zero (0) to disable serve-while-stale. func (o BackendServiceCdnPolicyResponseOutput) ServeWhileStale() pulumi.IntOutput { return o.ApplyT(func(v BackendServiceCdnPolicyResponse) int { return v.ServeWhileStale }).(pulumi.IntOutput) } // Maximum number of seconds the response to a signed URL request will be considered fresh. After this time period, the response will be revalidated before being served. Defaults to 1hr (3600s). When serving responses to signed URL requests, Cloud CDN will internally behave as though all responses from this backend had a "Cache-Control: public, max-age=[TTL]" header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered. func (o BackendServiceCdnPolicyResponseOutput) SignedUrlCacheMaxAgeSec() pulumi.StringOutput { return o.ApplyT(func(v BackendServiceCdnPolicyResponse) string { return v.SignedUrlCacheMaxAgeSec }).(pulumi.StringOutput) } // Names of the keys for signing request URLs. func (o BackendServiceCdnPolicyResponseOutput) SignedUrlKeyNames() pulumi.StringArrayOutput { return o.ApplyT(func(v BackendServiceCdnPolicyResponse) []string { return v.SignedUrlKeyNames }).(pulumi.StringArrayOutput) } // Connection Tracking configuration for this BackendService. type BackendServiceConnectionTrackingPolicy struct { // Specifies connection persistence when backends are unhealthy. The default value is DEFAULT_FOR_PROTOCOL. If set to DEFAULT_FOR_PROTOCOL, the existing connections persist on unhealthy backends only for connection-oriented protocols (TCP and SCTP) and only if the Tracking Mode is PER_CONNECTION (default tracking mode) or the Session Affinity is configured for 5-tuple. They do not persist for UDP. If set to NEVER_PERSIST, after a backend becomes unhealthy, the existing connections on the unhealthy backend are never persisted on the unhealthy backend. They are always diverted to newly selected healthy backends (unless all backends are unhealthy). If set to ALWAYS_PERSIST, existing connections always persist on unhealthy backends regardless of protocol and session affinity. It is generally not recommended to use this mode overriding the default. For more details, see [Connection Persistence for Network Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-backend-service#connection-persistence) and [Connection Persistence for Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal#connection-persistence). ConnectionPersistenceOnUnhealthyBackends *BackendServiceConnectionTrackingPolicyConnectionPersistenceOnUnhealthyBackends `pulumi:"connectionPersistenceOnUnhealthyBackends"` // Specifies how long to keep a Connection Tracking entry while there is no matching traffic (in seconds). For Internal TCP/UDP Load Balancing: - The minimum (default) is 10 minutes and the maximum is 16 hours. - It can be set only if Connection Tracking is less than 5-tuple (i.e. Session Affinity is CLIENT_IP_NO_DESTINATION, CLIENT_IP or CLIENT_IP_PROTO, and Tracking Mode is PER_SESSION). For Network Load Balancer the default is 60 seconds. This option is not available publicly. IdleTimeoutSec *int `pulumi:"idleTimeoutSec"` // Specifies the key used for connection tracking. There are two options: - PER_CONNECTION: This is the default mode. The Connection Tracking is performed as per the Connection Key (default Hash Method) for the specific protocol. - PER_SESSION: The Connection Tracking is performed as per the configured Session Affinity. It matches the configured Session Affinity. For more details, see [Tracking Mode for Network Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-backend-service#tracking-mode) and [Tracking Mode for Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal#tracking-mode). TrackingMode *BackendServiceConnectionTrackingPolicyTrackingMode `pulumi:"trackingMode"` } // BackendServiceConnectionTrackingPolicyInput is an input type that accepts BackendServiceConnectionTrackingPolicyArgs and BackendServiceConnectionTrackingPolicyOutput values. // You can construct a concrete instance of `BackendServiceConnectionTrackingPolicyInput` via: // // BackendServiceConnectionTrackingPolicyArgs{...} type BackendServiceConnectionTrackingPolicyInput interface { pulumi.Input ToBackendServiceConnectionTrackingPolicyOutput() BackendServiceConnectionTrackingPolicyOutput ToBackendServiceConnectionTrackingPolicyOutputWithContext(context.Context) BackendServiceConnectionTrackingPolicyOutput } // Connection Tracking configuration for this BackendService. type BackendServiceConnectionTrackingPolicyArgs struct { // Specifies connection persistence when backends are unhealthy. The default value is DEFAULT_FOR_PROTOCOL. If set to DEFAULT_FOR_PROTOCOL, the existing connections persist on unhealthy backends only for connection-oriented protocols (TCP and SCTP) and only if the Tracking Mode is PER_CONNECTION (default tracking mode) or the Session Affinity is configured for 5-tuple. They do not persist for UDP. If set to NEVER_PERSIST, after a backend becomes unhealthy, the existing connections on the unhealthy backend are never persisted on the unhealthy backend. They are always diverted to newly selected healthy backends (unless all backends are unhealthy). If set to ALWAYS_PERSIST, existing connections always persist on unhealthy backends regardless of protocol and session affinity. It is generally not recommended to use this mode overriding the default. For more details, see [Connection Persistence for Network Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-backend-service#connection-persistence) and [Connection Persistence for Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal#connection-persistence). ConnectionPersistenceOnUnhealthyBackends BackendServiceConnectionTrackingPolicyConnectionPersistenceOnUnhealthyBackendsPtrInput `pulumi:"connectionPersistenceOnUnhealthyBackends"` // Specifies how long to keep a Connection Tracking entry while there is no matching traffic (in seconds). For Internal TCP/UDP Load Balancing: - The minimum (default) is 10 minutes and the maximum is 16 hours. - It can be set only if Connection Tracking is less than 5-tuple (i.e. Session Affinity is CLIENT_IP_NO_DESTINATION, CLIENT_IP or CLIENT_IP_PROTO, and Tracking Mode is PER_SESSION). For Network Load Balancer the default is 60 seconds. This option is not available publicly. IdleTimeoutSec pulumi.IntPtrInput `pulumi:"idleTimeoutSec"` // Specifies the key used for connection tracking. There are two options: - PER_CONNECTION: This is the default mode. The Connection Tracking is performed as per the Connection Key (default Hash Method) for the specific protocol. - PER_SESSION: The Connection Tracking is performed as per the configured Session Affinity. It matches the configured Session Affinity. For more details, see [Tracking Mode for Network Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-backend-service#tracking-mode) and [Tracking Mode for Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal#tracking-mode). TrackingMode BackendServiceConnectionTrackingPolicyTrackingModePtrInput `pulumi:"trackingMode"` } func (BackendServiceConnectionTrackingPolicyArgs) ElementType() reflect.Type { return reflect.TypeOf((*BackendServiceConnectionTrackingPolicy)(nil)).Elem() } func (i BackendServiceConnectionTrackingPolicyArgs) ToBackendServiceConnectionTrackingPolicyOutput() BackendServiceConnectionTrackingPolicyOutput { return i.ToBackendServiceConnectionTrackingPolicyOutputWithContext(context.Background()) } func (i BackendServiceConnectionTrackingPolicyArgs) ToBackendServiceConnectionTrackingPolicyOutputWithContext(ctx context.Context) BackendServiceConnectionTrackingPolicyOutput { return pulumi.ToOutputWithContext(ctx, i).(BackendServiceConnectionTrackingPolicyOutput) } func (i BackendServiceConnectionTrackingPolicyArgs) ToBackendServiceConnectionTrackingPolicyPtrOutput() BackendServiceConnectionTrackingPolicyPtrOutput { return i.ToBackendServiceConnectionTrackingPolicyPtrOutputWithContext(context.Background()) } func (i BackendServiceConnectionTrackingPolicyArgs) ToBackendServiceConnectionTrackingPolicyPtrOutputWithContext(ctx context.Context) BackendServiceConnectionTrackingPolicyPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(BackendServiceConnectionTrackingPolicyOutput).ToBackendServiceConnectionTrackingPolicyPtrOutputWithContext(ctx) } // BackendServiceConnectionTrackingPolicyPtrInput is an input type that accepts BackendServiceConnectionTrackingPolicyArgs, BackendServiceConnectionTrackingPolicyPtr and BackendServiceConnectionTrackingPolicyPtrOutput values. // You can construct a concrete instance of `BackendServiceConnectionTrackingPolicyPtrInput` via: // // BackendServiceConnectionTrackingPolicyArgs{...} // // or: // // nil type BackendServiceConnectionTrackingPolicyPtrInput interface { pulumi.Input ToBackendServiceConnectionTrackingPolicyPtrOutput() BackendServiceConnectionTrackingPolicyPtrOutput ToBackendServiceConnectionTrackingPolicyPtrOutputWithContext(context.Context) BackendServiceConnectionTrackingPolicyPtrOutput } type backendServiceConnectionTrackingPolicyPtrType BackendServiceConnectionTrackingPolicyArgs func BackendServiceConnectionTrackingPolicyPtr(v *BackendServiceConnectionTrackingPolicyArgs) BackendServiceConnectionTrackingPolicyPtrInput { return (*backendServiceConnectionTrackingPolicyPtrType)(v) } func (*backendServiceConnectionTrackingPolicyPtrType) ElementType() reflect.Type { return reflect.TypeOf((**BackendServiceConnectionTrackingPolicy)(nil)).Elem() } func (i *backendServiceConnectionTrackingPolicyPtrType) ToBackendServiceConnectionTrackingPolicyPtrOutput() BackendServiceConnectionTrackingPolicyPtrOutput { return i.ToBackendServiceConnectionTrackingPolicyPtrOutputWithContext(context.Background()) } func (i *backendServiceConnectionTrackingPolicyPtrType) ToBackendServiceConnectionTrackingPolicyPtrOutputWithContext(ctx context.Context) BackendServiceConnectionTrackingPolicyPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(BackendServiceConnectionTrackingPolicyPtrOutput) } // Connection Tracking configuration for this BackendService. type BackendServiceConnectionTrackingPolicyOutput struct{ *pulumi.OutputState } func (BackendServiceConnectionTrackingPolicyOutput) ElementType() reflect.Type { return reflect.TypeOf((*BackendServiceConnectionTrackingPolicy)(nil)).Elem() } func (o BackendServiceConnectionTrackingPolicyOutput) ToBackendServiceConnectionTrackingPolicyOutput() BackendServiceConnectionTrackingPolicyOutput { return o } func (o BackendServiceConnectionTrackingPolicyOutput) ToBackendServiceConnectionTrackingPolicyOutputWithContext(ctx context.Context) BackendServiceConnectionTrackingPolicyOutput { return o } func (o BackendServiceConnectionTrackingPolicyOutput) ToBackendServiceConnectionTrackingPolicyPtrOutput() BackendServiceConnectionTrackingPolicyPtrOutput { return o.ToBackendServiceConnectionTrackingPolicyPtrOutputWithContext(context.Background()) } func (o BackendServiceConnectionTrackingPolicyOutput) ToBackendServiceConnectionTrackingPolicyPtrOutputWithContext(ctx context.Context) BackendServiceConnectionTrackingPolicyPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v BackendServiceConnectionTrackingPolicy) *BackendServiceConnectionTrackingPolicy { return &v }).(BackendServiceConnectionTrackingPolicyPtrOutput) } // Specifies connection persistence when backends are unhealthy. The default value is DEFAULT_FOR_PROTOCOL. If set to DEFAULT_FOR_PROTOCOL, the existing connections persist on unhealthy backends only for connection-oriented protocols (TCP and SCTP) and only if the Tracking Mode is PER_CONNECTION (default tracking mode) or the Session Affinity is configured for 5-tuple. They do not persist for UDP. If set to NEVER_PERSIST, after a backend becomes unhealthy, the existing connections on the unhealthy backend are never persisted on the unhealthy backend. They are always diverted to newly selected healthy backends (unless all backends are unhealthy). If set to ALWAYS_PERSIST, existing connections always persist on unhealthy backends regardless of protocol and session affinity. It is generally not recommended to use this mode overriding the default. For more details, see [Connection Persistence for Network Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-backend-service#connection-persistence) and [Connection Persistence for Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal#connection-persistence). func (o BackendServiceConnectionTrackingPolicyOutput) ConnectionPersistenceOnUnhealthyBackends() BackendServiceConnectionTrackingPolicyConnectionPersistenceOnUnhealthyBackendsPtrOutput { return o.ApplyT(func(v BackendServiceConnectionTrackingPolicy) *BackendServiceConnectionTrackingPolicyConnectionPersistenceOnUnhealthyBackends { return v.ConnectionPersistenceOnUnhealthyBackends }).(BackendServiceConnectionTrackingPolicyConnectionPersistenceOnUnhealthyBackendsPtrOutput) } // Specifies how long to keep a Connection Tracking entry while there is no matching traffic (in seconds). For Internal TCP/UDP Load Balancing: - The minimum (default) is 10 minutes and the maximum is 16 hours. - It can be set only if Connection Tracking is less than 5-tuple (i.e. Session Affinity is CLIENT_IP_NO_DESTINATION, CLIENT_IP or CLIENT_IP_PROTO, and Tracking Mode is PER_SESSION). For Network Load Balancer the default is 60 seconds. This option is not available publicly. func (o BackendServiceConnectionTrackingPolicyOutput) IdleTimeoutSec() pulumi.IntPtrOutput { return o.ApplyT(func(v BackendServiceConnectionTrackingPolicy) *int { return v.IdleTimeoutSec }).(pulumi.IntPtrOutput) } // Specifies the key used for connection tracking. There are two options: - PER_CONNECTION: This is the default mode. The Connection Tracking is performed as per the Connection Key (default Hash Method) for the specific protocol. - PER_SESSION: The Connection Tracking is performed as per the configured Session Affinity. It matches the configured Session Affinity. For more details, see [Tracking Mode for Network Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-backend-service#tracking-mode) and [Tracking Mode for Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal#tracking-mode). func (o BackendServiceConnectionTrackingPolicyOutput) TrackingMode() BackendServiceConnectionTrackingPolicyTrackingModePtrOutput { return o.ApplyT(func(v BackendServiceConnectionTrackingPolicy) *BackendServiceConnectionTrackingPolicyTrackingMode { return v.TrackingMode }).(BackendServiceConnectionTrackingPolicyTrackingModePtrOutput) } type BackendServiceConnectionTrackingPolicyPtrOutput struct{ *pulumi.OutputState } func (BackendServiceConnectionTrackingPolicyPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**BackendServiceConnectionTrackingPolicy)(nil)).Elem() } func (o BackendServiceConnectionTrackingPolicyPtrOutput) ToBackendServiceConnectionTrackingPolicyPtrOutput() BackendServiceConnectionTrackingPolicyPtrOutput { return o } func (o BackendServiceConnectionTrackingPolicyPtrOutput) ToBackendServiceConnectionTrackingPolicyPtrOutputWithContext(ctx context.Context) BackendServiceConnectionTrackingPolicyPtrOutput { return o } func (o BackendServiceConnectionTrackingPolicyPtrOutput) Elem() BackendServiceConnectionTrackingPolicyOutput { return o.ApplyT(func(v *BackendServiceConnectionTrackingPolicy) BackendServiceConnectionTrackingPolicy { if v != nil { return *v } var ret BackendServiceConnectionTrackingPolicy return ret }).(BackendServiceConnectionTrackingPolicyOutput) } // Specifies connection persistence when backends are unhealthy. The default value is DEFAULT_FOR_PROTOCOL. If set to DEFAULT_FOR_PROTOCOL, the existing connections persist on unhealthy backends only for connection-oriented protocols (TCP and SCTP) and only if the Tracking Mode is PER_CONNECTION (default tracking mode) or the Session Affinity is configured for 5-tuple. They do not persist for UDP. If set to NEVER_PERSIST, after a backend becomes unhealthy, the existing connections on the unhealthy backend are never persisted on the unhealthy backend. They are always diverted to newly selected healthy backends (unless all backends are unhealthy). If set to ALWAYS_PERSIST, existing connections always persist on unhealthy backends regardless of protocol and session affinity. It is generally not recommended to use this mode overriding the default. For more details, see [Connection Persistence for Network Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-backend-service#connection-persistence) and [Connection Persistence for Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal#connection-persistence). func (o BackendServiceConnectionTrackingPolicyPtrOutput) ConnectionPersistenceOnUnhealthyBackends() BackendServiceConnectionTrackingPolicyConnectionPersistenceOnUnhealthyBackendsPtrOutput { return o.ApplyT(func(v *BackendServiceConnectionTrackingPolicy) *BackendServiceConnectionTrackingPolicyConnectionPersistenceOnUnhealthyBackends { if v == nil { return nil } return v.ConnectionPersistenceOnUnhealthyBackends }).(BackendServiceConnectionTrackingPolicyConnectionPersistenceOnUnhealthyBackendsPtrOutput) } // Specifies how long to keep a Connection Tracking entry while there is no matching traffic (in seconds). For Internal TCP/UDP Load Balancing: - The minimum (default) is 10 minutes and the maximum is 16 hours. - It can be set only if Connection Tracking is less than 5-tuple (i.e. Session Affinity is CLIENT_IP_NO_DESTINATION, CLIENT_IP or CLIENT_IP_PROTO, and Tracking Mode is PER_SESSION). For Network Load Balancer the default is 60 seconds. This option is not available publicly. func (o BackendServiceConnectionTrackingPolicyPtrOutput) IdleTimeoutSec() pulumi.IntPtrOutput { return o.ApplyT(func(v *BackendServiceConnectionTrackingPolicy) *int { if v == nil { return nil } return v.IdleTimeoutSec }).(pulumi.IntPtrOutput) } // Specifies the key used for connection tracking. There are two options: - PER_CONNECTION: This is the default mode. The Connection Tracking is performed as per the Connection Key (default Hash Method) for the specific protocol. - PER_SESSION: The Connection Tracking is performed as per the configured Session Affinity. It matches the configured Session Affinity. For more details, see [Tracking Mode for Network Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-backend-service#tracking-mode) and [Tracking Mode for Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal#tracking-mode). func (o BackendServiceConnectionTrackingPolicyPtrOutput) TrackingMode() BackendServiceConnectionTrackingPolicyTrackingModePtrOutput { return o.ApplyT(func(v *BackendServiceConnectionTrackingPolicy) *BackendServiceConnectionTrackingPolicyTrackingMode { if v == nil { return nil } return v.TrackingMode }).(BackendServiceConnectionTrackingPolicyTrackingModePtrOutput) } // Connection Tracking configuration for this BackendService. type BackendServiceConnectionTrackingPolicyResponse struct { // Specifies connection persistence when backends are unhealthy. The default value is DEFAULT_FOR_PROTOCOL. If set to DEFAULT_FOR_PROTOCOL, the existing connections persist on unhealthy backends only for connection-oriented protocols (TCP and SCTP) and only if the Tracking Mode is PER_CONNECTION (default tracking mode) or the Session Affinity is configured for 5-tuple. They do not persist for UDP. If set to NEVER_PERSIST, after a backend becomes unhealthy, the existing connections on the unhealthy backend are never persisted on the unhealthy backend. They are always diverted to newly selected healthy backends (unless all backends are unhealthy). If set to ALWAYS_PERSIST, existing connections always persist on unhealthy backends regardless of protocol and session affinity. It is generally not recommended to use this mode overriding the default. For more details, see [Connection Persistence for Network Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-backend-service#connection-persistence) and [Connection Persistence for Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal#connection-persistence). ConnectionPersistenceOnUnhealthyBackends string `pulumi:"connectionPersistenceOnUnhealthyBackends"` // Specifies how long to keep a Connection Tracking entry while there is no matching traffic (in seconds). For Internal TCP/UDP Load Balancing: - The minimum (default) is 10 minutes and the maximum is 16 hours. - It can be set only if Connection Tracking is less than 5-tuple (i.e. Session Affinity is CLIENT_IP_NO_DESTINATION, CLIENT_IP or CLIENT_IP_PROTO, and Tracking Mode is PER_SESSION). For Network Load Balancer the default is 60 seconds. This option is not available publicly. IdleTimeoutSec int `pulumi:"idleTimeoutSec"` // Specifies the key used for connection tracking. There are two options: - PER_CONNECTION: This is the default mode. The Connection Tracking is performed as per the Connection Key (default Hash Method) for the specific protocol. - PER_SESSION: The Connection Tracking is performed as per the configured Session Affinity. It matches the configured Session Affinity. For more details, see [Tracking Mode for Network Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-backend-service#tracking-mode) and [Tracking Mode for Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal#tracking-mode). TrackingMode string `pulumi:"trackingMode"` } // Connection Tracking configuration for this BackendService. type BackendServiceConnectionTrackingPolicyResponseOutput struct{ *pulumi.OutputState } func (BackendServiceConnectionTrackingPolicyResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*BackendServiceConnectionTrackingPolicyResponse)(nil)).Elem() } func (o BackendServiceConnectionTrackingPolicyResponseOutput) ToBackendServiceConnectionTrackingPolicyResponseOutput() BackendServiceConnectionTrackingPolicyResponseOutput { return o } func (o BackendServiceConnectionTrackingPolicyResponseOutput) ToBackendServiceConnectionTrackingPolicyResponseOutputWithContext(ctx context.Context) BackendServiceConnectionTrackingPolicyResponseOutput { return o } // Specifies connection persistence when backends are unhealthy. The default value is DEFAULT_FOR_PROTOCOL. If set to DEFAULT_FOR_PROTOCOL, the existing connections persist on unhealthy backends only for connection-oriented protocols (TCP and SCTP) and only if the Tracking Mode is PER_CONNECTION (default tracking mode) or the Session Affinity is configured for 5-tuple. They do not persist for UDP. If set to NEVER_PERSIST, after a backend becomes unhealthy, the existing connections on the unhealthy backend are never persisted on the unhealthy backend. They are always diverted to newly selected healthy backends (unless all backends are unhealthy). If set to ALWAYS_PERSIST, existing connections always persist on unhealthy backends regardless of protocol and session affinity. It is generally not recommended to use this mode overriding the default. For more details, see [Connection Persistence for Network Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-backend-service#connection-persistence) and [Connection Persistence for Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal#connection-persistence). func (o BackendServiceConnectionTrackingPolicyResponseOutput) ConnectionPersistenceOnUnhealthyBackends() pulumi.StringOutput { return o.ApplyT(func(v BackendServiceConnectionTrackingPolicyResponse) string { return v.ConnectionPersistenceOnUnhealthyBackends }).(pulumi.StringOutput) } // Specifies how long to keep a Connection Tracking entry while there is no matching traffic (in seconds). For Internal TCP/UDP Load Balancing: - The minimum (default) is 10 minutes and the maximum is 16 hours. - It can be set only if Connection Tracking is less than 5-tuple (i.e. Session Affinity is CLIENT_IP_NO_DESTINATION, CLIENT_IP or CLIENT_IP_PROTO, and Tracking Mode is PER_SESSION). For Network Load Balancer the default is 60 seconds. This option is not available publicly. func (o BackendServiceConnectionTrackingPolicyResponseOutput) IdleTimeoutSec() pulumi.IntOutput { return o.ApplyT(func(v BackendServiceConnectionTrackingPolicyResponse) int { return v.IdleTimeoutSec }).(pulumi.IntOutput) } // Specifies the key used for connection tracking. There are two options: - PER_CONNECTION: This is the default mode. The Connection Tracking is performed as per the Connection Key (default Hash Method) for the specific protocol. - PER_SESSION: The Connection Tracking is performed as per the configured Session Affinity. It matches the configured Session Affinity. For more details, see [Tracking Mode for Network Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-backend-service#tracking-mode) and [Tracking Mode for Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal#tracking-mode). func (o BackendServiceConnectionTrackingPolicyResponseOutput) TrackingMode() pulumi.StringOutput { return o.ApplyT(func(v BackendServiceConnectionTrackingPolicyResponse) string { return v.TrackingMode }).(pulumi.StringOutput) } // For load balancers that have configurable failover: [Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [external TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview). On failover or failback, this field indicates whether connection draining will be honored. Google Cloud has a fixed connection draining timeout of 10 minutes. A setting of true terminates existing TCP connections to the active pool during failover and failback, immediately draining traffic. A setting of false allows existing TCP connections to persist, even on VMs no longer in the active pool, for up to the duration of the connection draining timeout (10 minutes). type BackendServiceFailoverPolicy struct { // This can be set to true only if the protocol is TCP. The default is false. DisableConnectionDrainOnFailover *bool `pulumi:"disableConnectionDrainOnFailover"` // If set to true, connections to the load balancer are dropped when all primary and all backup backend VMs are unhealthy.If set to false, connections are distributed among all primary VMs when all primary and all backup backend VMs are unhealthy. For load balancers that have configurable failover: [Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [external TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview). The default is false. DropTrafficIfUnhealthy *bool `pulumi:"dropTrafficIfUnhealthy"` // The value of the field must be in the range [0, 1]. If the value is 0, the load balancer performs a failover when the number of healthy primary VMs equals zero. For all other values, the load balancer performs a failover when the total number of healthy primary VMs is less than this ratio. For load balancers that have configurable failover: [Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [external TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview). FailoverRatio *float64 `pulumi:"failoverRatio"` } // BackendServiceFailoverPolicyInput is an input type that accepts BackendServiceFailoverPolicyArgs and BackendServiceFailoverPolicyOutput values. // You can construct a concrete instance of `BackendServiceFailoverPolicyInput` via: // // BackendServiceFailoverPolicyArgs{...} type BackendServiceFailoverPolicyInput interface { pulumi.Input ToBackendServiceFailoverPolicyOutput() BackendServiceFailoverPolicyOutput ToBackendServiceFailoverPolicyOutputWithContext(context.Context) BackendServiceFailoverPolicyOutput } // For load balancers that have configurable failover: [Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [external TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview). On failover or failback, this field indicates whether connection draining will be honored. Google Cloud has a fixed connection draining timeout of 10 minutes. A setting of true terminates existing TCP connections to the active pool during failover and failback, immediately draining traffic. A setting of false allows existing TCP connections to persist, even on VMs no longer in the active pool, for up to the duration of the connection draining timeout (10 minutes). type BackendServiceFailoverPolicyArgs struct { // This can be set to true only if the protocol is TCP. The default is false. DisableConnectionDrainOnFailover pulumi.BoolPtrInput `pulumi:"disableConnectionDrainOnFailover"` // If set to true, connections to the load balancer are dropped when all primary and all backup backend VMs are unhealthy.If set to false, connections are distributed among all primary VMs when all primary and all backup backend VMs are unhealthy. For load balancers that have configurable failover: [Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [external TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview). The default is false. DropTrafficIfUnhealthy pulumi.BoolPtrInput `pulumi:"dropTrafficIfUnhealthy"` // The value of the field must be in the range [0, 1]. If the value is 0, the load balancer performs a failover when the number of healthy primary VMs equals zero. For all other values, the load balancer performs a failover when the total number of healthy primary VMs is less than this ratio. For load balancers that have configurable failover: [Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [external TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview). FailoverRatio pulumi.Float64PtrInput `pulumi:"failoverRatio"` } func (BackendServiceFailoverPolicyArgs) ElementType() reflect.Type { return reflect.TypeOf((*BackendServiceFailoverPolicy)(nil)).Elem() } func (i BackendServiceFailoverPolicyArgs) ToBackendServiceFailoverPolicyOutput() BackendServiceFailoverPolicyOutput { return i.ToBackendServiceFailoverPolicyOutputWithContext(context.Background()) } func (i BackendServiceFailoverPolicyArgs) ToBackendServiceFailoverPolicyOutputWithContext(ctx context.Context) BackendServiceFailoverPolicyOutput { return pulumi.ToOutputWithContext(ctx, i).(BackendServiceFailoverPolicyOutput) } func (i BackendServiceFailoverPolicyArgs) ToBackendServiceFailoverPolicyPtrOutput() BackendServiceFailoverPolicyPtrOutput { return i.ToBackendServiceFailoverPolicyPtrOutputWithContext(context.Background()) } func (i BackendServiceFailoverPolicyArgs) ToBackendServiceFailoverPolicyPtrOutputWithContext(ctx context.Context) BackendServiceFailoverPolicyPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(BackendServiceFailoverPolicyOutput).ToBackendServiceFailoverPolicyPtrOutputWithContext(ctx) } // BackendServiceFailoverPolicyPtrInput is an input type that accepts BackendServiceFailoverPolicyArgs, BackendServiceFailoverPolicyPtr and BackendServiceFailoverPolicyPtrOutput values. // You can construct a concrete instance of `BackendServiceFailoverPolicyPtrInput` via: // // BackendServiceFailoverPolicyArgs{...} // // or: // // nil type BackendServiceFailoverPolicyPtrInput interface { pulumi.Input ToBackendServiceFailoverPolicyPtrOutput() BackendServiceFailoverPolicyPtrOutput ToBackendServiceFailoverPolicyPtrOutputWithContext(context.Context) BackendServiceFailoverPolicyPtrOutput } type backendServiceFailoverPolicyPtrType BackendServiceFailoverPolicyArgs func BackendServiceFailoverPolicyPtr(v *BackendServiceFailoverPolicyArgs) BackendServiceFailoverPolicyPtrInput { return (*backendServiceFailoverPolicyPtrType)(v) } func (*backendServiceFailoverPolicyPtrType) ElementType() reflect.Type { return reflect.TypeOf((**BackendServiceFailoverPolicy)(nil)).Elem() } func (i *backendServiceFailoverPolicyPtrType) ToBackendServiceFailoverPolicyPtrOutput() BackendServiceFailoverPolicyPtrOutput { return i.ToBackendServiceFailoverPolicyPtrOutputWithContext(context.Background()) } func (i *backendServiceFailoverPolicyPtrType) ToBackendServiceFailoverPolicyPtrOutputWithContext(ctx context.Context) BackendServiceFailoverPolicyPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(BackendServiceFailoverPolicyPtrOutput) } // For load balancers that have configurable failover: [Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [external TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview). On failover or failback, this field indicates whether connection draining will be honored. Google Cloud has a fixed connection draining timeout of 10 minutes. A setting of true terminates existing TCP connections to the active pool during failover and failback, immediately draining traffic. A setting of false allows existing TCP connections to persist, even on VMs no longer in the active pool, for up to the duration of the connection draining timeout (10 minutes). type BackendServiceFailoverPolicyOutput struct{ *pulumi.OutputState } func (BackendServiceFailoverPolicyOutput) ElementType() reflect.Type { return reflect.TypeOf((*BackendServiceFailoverPolicy)(nil)).Elem() } func (o BackendServiceFailoverPolicyOutput) ToBackendServiceFailoverPolicyOutput() BackendServiceFailoverPolicyOutput { return o } func (o BackendServiceFailoverPolicyOutput) ToBackendServiceFailoverPolicyOutputWithContext(ctx context.Context) BackendServiceFailoverPolicyOutput { return o } func (o BackendServiceFailoverPolicyOutput) ToBackendServiceFailoverPolicyPtrOutput() BackendServiceFailoverPolicyPtrOutput { return o.ToBackendServiceFailoverPolicyPtrOutputWithContext(context.Background()) } func (o BackendServiceFailoverPolicyOutput) ToBackendServiceFailoverPolicyPtrOutputWithContext(ctx context.Context) BackendServiceFailoverPolicyPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v BackendServiceFailoverPolicy) *BackendServiceFailoverPolicy { return &v }).(BackendServiceFailoverPolicyPtrOutput) } // This can be set to true only if the protocol is TCP. The default is false. func (o BackendServiceFailoverPolicyOutput) DisableConnectionDrainOnFailover() pulumi.BoolPtrOutput { return o.ApplyT(func(v BackendServiceFailoverPolicy) *bool { return v.DisableConnectionDrainOnFailover }).(pulumi.BoolPtrOutput) } // If set to true, connections to the load balancer are dropped when all primary and all backup backend VMs are unhealthy.If set to false, connections are distributed among all primary VMs when all primary and all backup backend VMs are unhealthy. For load balancers that have configurable failover: [Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [external TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview). The default is false. func (o BackendServiceFailoverPolicyOutput) DropTrafficIfUnhealthy() pulumi.BoolPtrOutput { return o.ApplyT(func(v BackendServiceFailoverPolicy) *bool { return v.DropTrafficIfUnhealthy }).(pulumi.BoolPtrOutput) } // The value of the field must be in the range [0, 1]. If the value is 0, the load balancer performs a failover when the number of healthy primary VMs equals zero. For all other values, the load balancer performs a failover when the total number of healthy primary VMs is less than this ratio. For load balancers that have configurable failover: [Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [external TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview). func (o BackendServiceFailoverPolicyOutput) FailoverRatio() pulumi.Float64PtrOutput { return o.ApplyT(func(v BackendServiceFailoverPolicy) *float64 { return v.FailoverRatio }).(pulumi.Float64PtrOutput) } type BackendServiceFailoverPolicyPtrOutput struct{ *pulumi.OutputState } func (BackendServiceFailoverPolicyPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**BackendServiceFailoverPolicy)(nil)).Elem() } func (o BackendServiceFailoverPolicyPtrOutput) ToBackendServiceFailoverPolicyPtrOutput() BackendServiceFailoverPolicyPtrOutput { return o } func (o BackendServiceFailoverPolicyPtrOutput) ToBackendServiceFailoverPolicyPtrOutputWithContext(ctx context.Context) BackendServiceFailoverPolicyPtrOutput { return o } func (o BackendServiceFailoverPolicyPtrOutput) Elem() BackendServiceFailoverPolicyOutput { return o.ApplyT(func(v *BackendServiceFailoverPolicy) BackendServiceFailoverPolicy { if v != nil { return *v } var ret BackendServiceFailoverPolicy return ret }).(BackendServiceFailoverPolicyOutput) } // This can be set to true only if the protocol is TCP. The default is false. func (o BackendServiceFailoverPolicyPtrOutput) DisableConnectionDrainOnFailover() pulumi.BoolPtrOutput { return o.ApplyT(func(v *BackendServiceFailoverPolicy) *bool { if v == nil { return nil } return v.DisableConnectionDrainOnFailover }).(pulumi.BoolPtrOutput) } // If set to true, connections to the load balancer are dropped when all primary and all backup backend VMs are unhealthy.If set to false, connections are distributed among all primary VMs when all primary and all backup backend VMs are unhealthy. For load balancers that have configurable failover: [Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [external TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview). The default is false. func (o BackendServiceFailoverPolicyPtrOutput) DropTrafficIfUnhealthy() pulumi.BoolPtrOutput { return o.ApplyT(func(v *BackendServiceFailoverPolicy) *bool { if v == nil { return nil } return v.DropTrafficIfUnhealthy }).(pulumi.BoolPtrOutput) } // The value of the field must be in the range [0, 1]. If the value is 0, the load balancer performs a failover when the number of healthy primary VMs equals zero. For all other values, the load balancer performs a failover when the total number of healthy primary VMs is less than this ratio. For load balancers that have configurable failover: [Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [external TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview). func (o BackendServiceFailoverPolicyPtrOutput) FailoverRatio() pulumi.Float64PtrOutput { return o.ApplyT(func(v *BackendServiceFailoverPolicy) *float64 { if v == nil { return nil } return v.FailoverRatio }).(pulumi.Float64PtrOutput) } // For load balancers that have configurable failover: [Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [external TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview). On failover or failback, this field indicates whether connection draining will be honored. Google Cloud has a fixed connection draining timeout of 10 minutes. A setting of true terminates existing TCP connections to the active pool during failover and failback, immediately draining traffic. A setting of false allows existing TCP connections to persist, even on VMs no longer in the active pool, for up to the duration of the connection draining timeout (10 minutes). type BackendServiceFailoverPolicyResponse struct { // This can be set to true only if the protocol is TCP. The default is false. DisableConnectionDrainOnFailover bool `pulumi:"disableConnectionDrainOnFailover"` // If set to true, connections to the load balancer are dropped when all primary and all backup backend VMs are unhealthy.If set to false, connections are distributed among all primary VMs when all primary and all backup backend VMs are unhealthy. For load balancers that have configurable failover: [Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [external TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview). The default is false. DropTrafficIfUnhealthy bool `pulumi:"dropTrafficIfUnhealthy"` // The value of the field must be in the range [0, 1]. If the value is 0, the load balancer performs a failover when the number of healthy primary VMs equals zero. For all other values, the load balancer performs a failover when the total number of healthy primary VMs is less than this ratio. For load balancers that have configurable failover: [Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [external TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview). FailoverRatio float64 `pulumi:"failoverRatio"` } // For load balancers that have configurable failover: [Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [external TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview). On failover or failback, this field indicates whether connection draining will be honored. Google Cloud has a fixed connection draining timeout of 10 minutes. A setting of true terminates existing TCP connections to the active pool during failover and failback, immediately draining traffic. A setting of false allows existing TCP connections to persist, even on VMs no longer in the active pool, for up to the duration of the connection draining timeout (10 minutes). type BackendServiceFailoverPolicyResponseOutput struct{ *pulumi.OutputState } func (BackendServiceFailoverPolicyResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*BackendServiceFailoverPolicyResponse)(nil)).Elem() } func (o BackendServiceFailoverPolicyResponseOutput) ToBackendServiceFailoverPolicyResponseOutput() BackendServiceFailoverPolicyResponseOutput { return o } func (o BackendServiceFailoverPolicyResponseOutput) ToBackendServiceFailoverPolicyResponseOutputWithContext(ctx context.Context) BackendServiceFailoverPolicyResponseOutput { return o } // This can be set to true only if the protocol is TCP. The default is false. func (o BackendServiceFailoverPolicyResponseOutput) DisableConnectionDrainOnFailover() pulumi.BoolOutput { return o.ApplyT(func(v BackendServiceFailoverPolicyResponse) bool { return v.DisableConnectionDrainOnFailover }).(pulumi.BoolOutput) } // If set to true, connections to the load balancer are dropped when all primary and all backup backend VMs are unhealthy.If set to false, connections are distributed among all primary VMs when all primary and all backup backend VMs are unhealthy. For load balancers that have configurable failover: [Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [external TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview). The default is false. func (o BackendServiceFailoverPolicyResponseOutput) DropTrafficIfUnhealthy() pulumi.BoolOutput { return o.ApplyT(func(v BackendServiceFailoverPolicyResponse) bool { return v.DropTrafficIfUnhealthy }).(pulumi.BoolOutput) } // The value of the field must be in the range [0, 1]. If the value is 0, the load balancer performs a failover when the number of healthy primary VMs equals zero. For all other values, the load balancer performs a failover when the total number of healthy primary VMs is less than this ratio. For load balancers that have configurable failover: [Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [external TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview). func (o BackendServiceFailoverPolicyResponseOutput) FailoverRatio() pulumi.Float64Output { return o.ApplyT(func(v BackendServiceFailoverPolicyResponse) float64 { return v.FailoverRatio }).(pulumi.Float64Output) } // Identity-Aware Proxy type BackendServiceIAP struct { // Whether the serving infrastructure will authenticate and authorize all incoming requests. If true, the oauth2ClientId and oauth2ClientSecret fields must be non-empty. Enabled *bool `pulumi:"enabled"` // OAuth2 client ID to use for the authentication flow. Oauth2ClientId *string `pulumi:"oauth2ClientId"` // OAuth2 client secret to use for the authentication flow. For security reasons, this value cannot be retrieved via the API. Instead, the SHA-256 hash of the value is returned in the oauth2ClientSecretSha256 field. @InputOnly Oauth2ClientSecret *string `pulumi:"oauth2ClientSecret"` } // BackendServiceIAPInput is an input type that accepts BackendServiceIAPArgs and BackendServiceIAPOutput values. // You can construct a concrete instance of `BackendServiceIAPInput` via: // // BackendServiceIAPArgs{...} type BackendServiceIAPInput interface { pulumi.Input ToBackendServiceIAPOutput() BackendServiceIAPOutput ToBackendServiceIAPOutputWithContext(context.Context) BackendServiceIAPOutput } // Identity-Aware Proxy type BackendServiceIAPArgs struct { // Whether the serving infrastructure will authenticate and authorize all incoming requests. If true, the oauth2ClientId and oauth2ClientSecret fields must be non-empty. Enabled pulumi.BoolPtrInput `pulumi:"enabled"` // OAuth2 client ID to use for the authentication flow. Oauth2ClientId pulumi.StringPtrInput `pulumi:"oauth2ClientId"` // OAuth2 client secret to use for the authentication flow. For security reasons, this value cannot be retrieved via the API. Instead, the SHA-256 hash of the value is returned in the oauth2ClientSecretSha256 field. @InputOnly Oauth2ClientSecret pulumi.StringPtrInput `pulumi:"oauth2ClientSecret"` } func (BackendServiceIAPArgs) ElementType() reflect.Type { return reflect.TypeOf((*BackendServiceIAP)(nil)).Elem() } func (i BackendServiceIAPArgs) ToBackendServiceIAPOutput() BackendServiceIAPOutput { return i.ToBackendServiceIAPOutputWithContext(context.Background()) } func (i BackendServiceIAPArgs) ToBackendServiceIAPOutputWithContext(ctx context.Context) BackendServiceIAPOutput { return pulumi.ToOutputWithContext(ctx, i).(BackendServiceIAPOutput) } func (i BackendServiceIAPArgs) ToBackendServiceIAPPtrOutput() BackendServiceIAPPtrOutput { return i.ToBackendServiceIAPPtrOutputWithContext(context.Background()) } func (i BackendServiceIAPArgs) ToBackendServiceIAPPtrOutputWithContext(ctx context.Context) BackendServiceIAPPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(BackendServiceIAPOutput).ToBackendServiceIAPPtrOutputWithContext(ctx) } // BackendServiceIAPPtrInput is an input type that accepts BackendServiceIAPArgs, BackendServiceIAPPtr and BackendServiceIAPPtrOutput values. // You can construct a concrete instance of `BackendServiceIAPPtrInput` via: // // BackendServiceIAPArgs{...} // // or: // // nil type BackendServiceIAPPtrInput interface { pulumi.Input ToBackendServiceIAPPtrOutput() BackendServiceIAPPtrOutput ToBackendServiceIAPPtrOutputWithContext(context.Context) BackendServiceIAPPtrOutput } type backendServiceIAPPtrType BackendServiceIAPArgs func BackendServiceIAPPtr(v *BackendServiceIAPArgs) BackendServiceIAPPtrInput { return (*backendServiceIAPPtrType)(v) } func (*backendServiceIAPPtrType) ElementType() reflect.Type { return reflect.TypeOf((**BackendServiceIAP)(nil)).Elem() } func (i *backendServiceIAPPtrType) ToBackendServiceIAPPtrOutput() BackendServiceIAPPtrOutput { return i.ToBackendServiceIAPPtrOutputWithContext(context.Background()) } func (i *backendServiceIAPPtrType) ToBackendServiceIAPPtrOutputWithContext(ctx context.Context) BackendServiceIAPPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(BackendServiceIAPPtrOutput) } // Identity-Aware Proxy type BackendServiceIAPOutput struct{ *pulumi.OutputState } func (BackendServiceIAPOutput) ElementType() reflect.Type { return reflect.TypeOf((*BackendServiceIAP)(nil)).Elem() } func (o BackendServiceIAPOutput) ToBackendServiceIAPOutput() BackendServiceIAPOutput { return o } func (o BackendServiceIAPOutput) ToBackendServiceIAPOutputWithContext(ctx context.Context) BackendServiceIAPOutput { return o } func (o BackendServiceIAPOutput) ToBackendServiceIAPPtrOutput() BackendServiceIAPPtrOutput { return o.ToBackendServiceIAPPtrOutputWithContext(context.Background()) } func (o BackendServiceIAPOutput) ToBackendServiceIAPPtrOutputWithContext(ctx context.Context) BackendServiceIAPPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v BackendServiceIAP) *BackendServiceIAP { return &v }).(BackendServiceIAPPtrOutput) } // Whether the serving infrastructure will authenticate and authorize all incoming requests. If true, the oauth2ClientId and oauth2ClientSecret fields must be non-empty. func (o BackendServiceIAPOutput) Enabled() pulumi.BoolPtrOutput { return o.ApplyT(func(v BackendServiceIAP) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) } // OAuth2 client ID to use for the authentication flow. func (o BackendServiceIAPOutput) Oauth2ClientId() pulumi.StringPtrOutput { return o.ApplyT(func(v BackendServiceIAP) *string { return v.Oauth2ClientId }).(pulumi.StringPtrOutput) } // OAuth2 client secret to use for the authentication flow. For security reasons, this value cannot be retrieved via the API. Instead, the SHA-256 hash of the value is returned in the oauth2ClientSecretSha256 field. @InputOnly func (o BackendServiceIAPOutput) Oauth2ClientSecret() pulumi.StringPtrOutput { return o.ApplyT(func(v BackendServiceIAP) *string { return v.Oauth2ClientSecret }).(pulumi.StringPtrOutput) } type BackendServiceIAPPtrOutput struct{ *pulumi.OutputState } func (BackendServiceIAPPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**BackendServiceIAP)(nil)).Elem() } func (o BackendServiceIAPPtrOutput) ToBackendServiceIAPPtrOutput() BackendServiceIAPPtrOutput { return o } func (o BackendServiceIAPPtrOutput) ToBackendServiceIAPPtrOutputWithContext(ctx context.Context) BackendServiceIAPPtrOutput { return o } func (o BackendServiceIAPPtrOutput) Elem() BackendServiceIAPOutput { return o.ApplyT(func(v *BackendServiceIAP) BackendServiceIAP { if v != nil { return *v } var ret BackendServiceIAP return ret }).(BackendServiceIAPOutput) } // Whether the serving infrastructure will authenticate and authorize all incoming requests. If true, the oauth2ClientId and oauth2ClientSecret fields must be non-empty. func (o BackendServiceIAPPtrOutput) Enabled() pulumi.BoolPtrOutput { return o.ApplyT(func(v *BackendServiceIAP) *bool { if v == nil { return nil } return v.Enabled }).(pulumi.BoolPtrOutput) } // OAuth2 client ID to use for the authentication flow. func (o BackendServiceIAPPtrOutput) Oauth2ClientId() pulumi.StringPtrOutput { return o.ApplyT(func(v *BackendServiceIAP) *string { if v == nil { return nil } return v.Oauth2ClientId }).(pulumi.StringPtrOutput) } // OAuth2 client secret to use for the authentication flow. For security reasons, this value cannot be retrieved via the API. Instead, the SHA-256 hash of the value is returned in the oauth2ClientSecretSha256 field. @InputOnly func (o BackendServiceIAPPtrOutput) Oauth2ClientSecret() pulumi.StringPtrOutput { return o.ApplyT(func(v *BackendServiceIAP) *string { if v == nil { return nil } return v.Oauth2ClientSecret }).(pulumi.StringPtrOutput) } // Identity-Aware Proxy type BackendServiceIAPResponse struct { // Whether the serving infrastructure will authenticate and authorize all incoming requests. If true, the oauth2ClientId and oauth2ClientSecret fields must be non-empty. Enabled bool `pulumi:"enabled"` // OAuth2 client ID to use for the authentication flow. Oauth2ClientId string `pulumi:"oauth2ClientId"` // OAuth2 client secret to use for the authentication flow. For security reasons, this value cannot be retrieved via the API. Instead, the SHA-256 hash of the value is returned in the oauth2ClientSecretSha256 field. @InputOnly Oauth2ClientSecret string `pulumi:"oauth2ClientSecret"` // SHA256 hash value for the field oauth2_client_secret above. Oauth2ClientSecretSha256 string `pulumi:"oauth2ClientSecretSha256"` } // Identity-Aware Proxy type BackendServiceIAPResponseOutput struct{ *pulumi.OutputState } func (BackendServiceIAPResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*BackendServiceIAPResponse)(nil)).Elem() } func (o BackendServiceIAPResponseOutput) ToBackendServiceIAPResponseOutput() BackendServiceIAPResponseOutput { return o } func (o BackendServiceIAPResponseOutput) ToBackendServiceIAPResponseOutputWithContext(ctx context.Context) BackendServiceIAPResponseOutput { return o } // Whether the serving infrastructure will authenticate and authorize all incoming requests. If true, the oauth2ClientId and oauth2ClientSecret fields must be non-empty. func (o BackendServiceIAPResponseOutput) Enabled() pulumi.BoolOutput { return o.ApplyT(func(v BackendServiceIAPResponse) bool { return v.Enabled }).(pulumi.BoolOutput) } // OAuth2 client ID to use for the authentication flow. func (o BackendServiceIAPResponseOutput) Oauth2ClientId() pulumi.StringOutput { return o.ApplyT(func(v BackendServiceIAPResponse) string { return v.Oauth2ClientId }).(pulumi.StringOutput) } // OAuth2 client secret to use for the authentication flow. For security reasons, this value cannot be retrieved via the API. Instead, the SHA-256 hash of the value is returned in the oauth2ClientSecretSha256 field. @InputOnly func (o BackendServiceIAPResponseOutput) Oauth2ClientSecret() pulumi.StringOutput { return o.ApplyT(func(v BackendServiceIAPResponse) string { return v.Oauth2ClientSecret }).(pulumi.StringOutput) } // SHA256 hash value for the field oauth2_client_secret above. func (o BackendServiceIAPResponseOutput) Oauth2ClientSecretSha256() pulumi.StringOutput { return o.ApplyT(func(v BackendServiceIAPResponse) string { return v.Oauth2ClientSecretSha256 }).(pulumi.StringOutput) } // The available logging options for the load balancer traffic served by this backend service. type BackendServiceLogConfig struct { // This field denotes whether to enable logging for the load balancer traffic served by this backend service. Enable *bool `pulumi:"enable"` // This field can only be specified if logging is enabled for this backend service. The value of the field must be in [0, 1]. This configures the sampling rate of requests to the load balancer where 1.0 means all logged requests are reported and 0.0 means no logged requests are reported. The default value is 1.0. SampleRate *float64 `pulumi:"sampleRate"` } // BackendServiceLogConfigInput is an input type that accepts BackendServiceLogConfigArgs and BackendServiceLogConfigOutput values. // You can construct a concrete instance of `BackendServiceLogConfigInput` via: // // BackendServiceLogConfigArgs{...} type BackendServiceLogConfigInput interface { pulumi.Input ToBackendServiceLogConfigOutput() BackendServiceLogConfigOutput ToBackendServiceLogConfigOutputWithContext(context.Context) BackendServiceLogConfigOutput } // The available logging options for the load balancer traffic served by this backend service. type BackendServiceLogConfigArgs struct { // This field denotes whether to enable logging for the load balancer traffic served by this backend service. Enable pulumi.BoolPtrInput `pulumi:"enable"` // This field can only be specified if logging is enabled for this backend service. The value of the field must be in [0, 1]. This configures the sampling rate of requests to the load balancer where 1.0 means all logged requests are reported and 0.0 means no logged requests are reported. The default value is 1.0. SampleRate pulumi.Float64PtrInput `pulumi:"sampleRate"` } func (BackendServiceLogConfigArgs) ElementType() reflect.Type { return reflect.TypeOf((*BackendServiceLogConfig)(nil)).Elem() } func (i BackendServiceLogConfigArgs) ToBackendServiceLogConfigOutput() BackendServiceLogConfigOutput { return i.ToBackendServiceLogConfigOutputWithContext(context.Background()) } func (i BackendServiceLogConfigArgs) ToBackendServiceLogConfigOutputWithContext(ctx context.Context) BackendServiceLogConfigOutput { return pulumi.ToOutputWithContext(ctx, i).(BackendServiceLogConfigOutput) } func (i BackendServiceLogConfigArgs) ToBackendServiceLogConfigPtrOutput() BackendServiceLogConfigPtrOutput { return i.ToBackendServiceLogConfigPtrOutputWithContext(context.Background()) } func (i BackendServiceLogConfigArgs) ToBackendServiceLogConfigPtrOutputWithContext(ctx context.Context) BackendServiceLogConfigPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(BackendServiceLogConfigOutput).ToBackendServiceLogConfigPtrOutputWithContext(ctx) } // BackendServiceLogConfigPtrInput is an input type that accepts BackendServiceLogConfigArgs, BackendServiceLogConfigPtr and BackendServiceLogConfigPtrOutput values. // You can construct a concrete instance of `BackendServiceLogConfigPtrInput` via: // // BackendServiceLogConfigArgs{...} // // or: // // nil type BackendServiceLogConfigPtrInput interface { pulumi.Input ToBackendServiceLogConfigPtrOutput() BackendServiceLogConfigPtrOutput ToBackendServiceLogConfigPtrOutputWithContext(context.Context) BackendServiceLogConfigPtrOutput } type backendServiceLogConfigPtrType BackendServiceLogConfigArgs func BackendServiceLogConfigPtr(v *BackendServiceLogConfigArgs) BackendServiceLogConfigPtrInput { return (*backendServiceLogConfigPtrType)(v) } func (*backendServiceLogConfigPtrType) ElementType() reflect.Type { return reflect.TypeOf((**BackendServiceLogConfig)(nil)).Elem() } func (i *backendServiceLogConfigPtrType) ToBackendServiceLogConfigPtrOutput() BackendServiceLogConfigPtrOutput { return i.ToBackendServiceLogConfigPtrOutputWithContext(context.Background()) } func (i *backendServiceLogConfigPtrType) ToBackendServiceLogConfigPtrOutputWithContext(ctx context.Context) BackendServiceLogConfigPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(BackendServiceLogConfigPtrOutput) } // The available logging options for the load balancer traffic served by this backend service. type BackendServiceLogConfigOutput struct{ *pulumi.OutputState } func (BackendServiceLogConfigOutput) ElementType() reflect.Type { return reflect.TypeOf((*BackendServiceLogConfig)(nil)).Elem() } func (o BackendServiceLogConfigOutput) ToBackendServiceLogConfigOutput() BackendServiceLogConfigOutput { return o } func (o BackendServiceLogConfigOutput) ToBackendServiceLogConfigOutputWithContext(ctx context.Context) BackendServiceLogConfigOutput { return o } func (o BackendServiceLogConfigOutput) ToBackendServiceLogConfigPtrOutput() BackendServiceLogConfigPtrOutput { return o.ToBackendServiceLogConfigPtrOutputWithContext(context.Background()) } func (o BackendServiceLogConfigOutput) ToBackendServiceLogConfigPtrOutputWithContext(ctx context.Context) BackendServiceLogConfigPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v BackendServiceLogConfig) *BackendServiceLogConfig { return &v }).(BackendServiceLogConfigPtrOutput) } // This field denotes whether to enable logging for the load balancer traffic served by this backend service. func (o BackendServiceLogConfigOutput) Enable() pulumi.BoolPtrOutput { return o.ApplyT(func(v BackendServiceLogConfig) *bool { return v.Enable }).(pulumi.BoolPtrOutput) } // This field can only be specified if logging is enabled for this backend service. The value of the field must be in [0, 1]. This configures the sampling rate of requests to the load balancer where 1.0 means all logged requests are reported and 0.0 means no logged requests are reported. The default value is 1.0. func (o BackendServiceLogConfigOutput) SampleRate() pulumi.Float64PtrOutput { return o.ApplyT(func(v BackendServiceLogConfig) *float64 { return v.SampleRate }).(pulumi.Float64PtrOutput) } type BackendServiceLogConfigPtrOutput struct{ *pulumi.OutputState } func (BackendServiceLogConfigPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**BackendServiceLogConfig)(nil)).Elem() } func (o BackendServiceLogConfigPtrOutput) ToBackendServiceLogConfigPtrOutput() BackendServiceLogConfigPtrOutput { return o } func (o BackendServiceLogConfigPtrOutput) ToBackendServiceLogConfigPtrOutputWithContext(ctx context.Context) BackendServiceLogConfigPtrOutput { return o } func (o BackendServiceLogConfigPtrOutput) Elem() BackendServiceLogConfigOutput { return o.ApplyT(func(v *BackendServiceLogConfig) BackendServiceLogConfig { if v != nil { return *v } var ret BackendServiceLogConfig return ret }).(BackendServiceLogConfigOutput) } // This field denotes whether to enable logging for the load balancer traffic served by this backend service. func (o BackendServiceLogConfigPtrOutput) Enable() pulumi.BoolPtrOutput { return o.ApplyT(func(v *BackendServiceLogConfig) *bool { if v == nil { return nil } return v.Enable }).(pulumi.BoolPtrOutput) } // This field can only be specified if logging is enabled for this backend service. The value of the field must be in [0, 1]. This configures the sampling rate of requests to the load balancer where 1.0 means all logged requests are reported and 0.0 means no logged requests are reported. The default value is 1.0. func (o BackendServiceLogConfigPtrOutput) SampleRate() pulumi.Float64PtrOutput { return o.ApplyT(func(v *BackendServiceLogConfig) *float64 { if v == nil { return nil } return v.SampleRate }).(pulumi.Float64PtrOutput) } // The available logging options for the load balancer traffic served by this backend service. type BackendServiceLogConfigResponse struct { // This field denotes whether to enable logging for the load balancer traffic served by this backend service. Enable bool `pulumi:"enable"` // This field can only be specified if logging is enabled for this backend service. The value of the field must be in [0, 1]. This configures the sampling rate of requests to the load balancer where 1.0 means all logged requests are reported and 0.0 means no logged requests are reported. The default value is 1.0. SampleRate float64 `pulumi:"sampleRate"` } // The available logging options for the load balancer traffic served by this backend service. type BackendServiceLogConfigResponseOutput struct{ *pulumi.OutputState } func (BackendServiceLogConfigResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*BackendServiceLogConfigResponse)(nil)).Elem() } func (o BackendServiceLogConfigResponseOutput) ToBackendServiceLogConfigResponseOutput() BackendServiceLogConfigResponseOutput { return o } func (o BackendServiceLogConfigResponseOutput) ToBackendServiceLogConfigResponseOutputWithContext(ctx context.Context) BackendServiceLogConfigResponseOutput { return o } // This field denotes whether to enable logging for the load balancer traffic served by this backend service. func (o BackendServiceLogConfigResponseOutput) Enable() pulumi.BoolOutput { return o.ApplyT(func(v BackendServiceLogConfigResponse) bool { return v.Enable }).(pulumi.BoolOutput) } // This field can only be specified if logging is enabled for this backend service. The value of the field must be in [0, 1]. This configures the sampling rate of requests to the load balancer where 1.0 means all logged requests are reported and 0.0 means no logged requests are reported. The default value is 1.0. func (o BackendServiceLogConfigResponseOutput) SampleRate() pulumi.Float64Output { return o.ApplyT(func(v BackendServiceLogConfigResponse) float64 { return v.SampleRate }).(pulumi.Float64Output) } // Associates `members`, or principals, with a `role`. type Binding struct { // This is deprecated and has no effect. Do not use. BindingId *string `pulumi:"bindingId"` // The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). Condition *Expr `pulumi:"condition"` // Specifies the principals requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. Members []string `pulumi:"members"` // Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. Role *string `pulumi:"role"` } // BindingInput is an input type that accepts BindingArgs and BindingOutput values. // You can construct a concrete instance of `BindingInput` via: // // BindingArgs{...} type BindingInput interface { pulumi.Input ToBindingOutput() BindingOutput ToBindingOutputWithContext(context.Context) BindingOutput } // Associates `members`, or principals, with a `role`. type BindingArgs struct { // This is deprecated and has no effect. Do not use. BindingId pulumi.StringPtrInput `pulumi:"bindingId"` // The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). Condition ExprPtrInput `pulumi:"condition"` // Specifies the principals requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. Members pulumi.StringArrayInput `pulumi:"members"` // Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. Role pulumi.StringPtrInput `pulumi:"role"` } func (BindingArgs) ElementType() reflect.Type { return reflect.TypeOf((*Binding)(nil)).Elem() } func (i BindingArgs) ToBindingOutput() BindingOutput { return i.ToBindingOutputWithContext(context.Background()) } func (i BindingArgs) ToBindingOutputWithContext(ctx context.Context) BindingOutput { return pulumi.ToOutputWithContext(ctx, i).(BindingOutput) } // BindingArrayInput is an input type that accepts BindingArray and BindingArrayOutput values. // You can construct a concrete instance of `BindingArrayInput` via: // // BindingArray{ BindingArgs{...} } type BindingArrayInput interface { pulumi.Input ToBindingArrayOutput() BindingArrayOutput ToBindingArrayOutputWithContext(context.Context) BindingArrayOutput } type BindingArray []BindingInput func (BindingArray) ElementType() reflect.Type { return reflect.TypeOf((*[]Binding)(nil)).Elem() } func (i BindingArray) ToBindingArrayOutput() BindingArrayOutput { return i.ToBindingArrayOutputWithContext(context.Background()) } func (i BindingArray) ToBindingArrayOutputWithContext(ctx context.Context) BindingArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(BindingArrayOutput) } // Associates `members`, or principals, with a `role`. type BindingOutput struct{ *pulumi.OutputState } func (BindingOutput) ElementType() reflect.Type { return reflect.TypeOf((*Binding)(nil)).Elem() } func (o BindingOutput) ToBindingOutput() BindingOutput { return o } func (o BindingOutput) ToBindingOutputWithContext(ctx context.Context) BindingOutput { return o } // This is deprecated and has no effect. Do not use. func (o BindingOutput) BindingId() pulumi.StringPtrOutput { return o.ApplyT(func(v Binding) *string { return v.BindingId }).(pulumi.StringPtrOutput) } // The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). func (o BindingOutput) Condition() ExprPtrOutput { return o.ApplyT(func(v Binding) *Expr { return v.Condition }).(ExprPtrOutput) } // Specifies the principals requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. func (o BindingOutput) Members() pulumi.StringArrayOutput { return o.ApplyT(func(v Binding) []string { return v.Members }).(pulumi.StringArrayOutput) } // Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. func (o BindingOutput) Role() pulumi.StringPtrOutput { return o.ApplyT(func(v Binding) *string { return v.Role }).(pulumi.StringPtrOutput) } type BindingArrayOutput struct{ *pulumi.OutputState } func (BindingArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]Binding)(nil)).Elem() } func (o BindingArrayOutput) ToBindingArrayOutput() BindingArrayOutput { return o } func (o BindingArrayOutput) ToBindingArrayOutputWithContext(ctx context.Context) BindingArrayOutput { return o } func (o BindingArrayOutput) Index(i pulumi.IntInput) BindingOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) Binding { return vs[0].([]Binding)[vs[1].(int)] }).(BindingOutput) } // Associates `members`, or principals, with a `role`. type BindingResponse struct { // This is deprecated and has no effect. Do not use. BindingId string `pulumi:"bindingId"` // The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). Condition ExprResponse `pulumi:"condition"` // Specifies the principals requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. Members []string `pulumi:"members"` // Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. Role string `pulumi:"role"` } // Associates `members`, or principals, with a `role`. type BindingResponseOutput struct{ *pulumi.OutputState } func (BindingResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*BindingResponse)(nil)).Elem() } func (o BindingResponseOutput) ToBindingResponseOutput() BindingResponseOutput { return o } func (o BindingResponseOutput) ToBindingResponseOutputWithContext(ctx context.Context) BindingResponseOutput { return o } // This is deprecated and has no effect. Do not use. func (o BindingResponseOutput) BindingId() pulumi.StringOutput { return o.ApplyT(func(v BindingResponse) string { return v.BindingId }).(pulumi.StringOutput) } // The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). func (o BindingResponseOutput) Condition() ExprResponseOutput { return o.ApplyT(func(v BindingResponse) ExprResponse { return v.Condition }).(ExprResponseOutput) } // Specifies the principals requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. func (o BindingResponseOutput) Members() pulumi.StringArrayOutput { return o.ApplyT(func(v BindingResponse) []string { return v.Members }).(pulumi.StringArrayOutput) } // Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. func (o BindingResponseOutput) Role() pulumi.StringOutput { return o.ApplyT(func(v BindingResponse) string { return v.Role }).(pulumi.StringOutput) } type BindingResponseArrayOutput struct{ *pulumi.OutputState } func (BindingResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]BindingResponse)(nil)).Elem() } func (o BindingResponseArrayOutput) ToBindingResponseArrayOutput() BindingResponseArrayOutput { return o } func (o BindingResponseArrayOutput) ToBindingResponseArrayOutputWithContext(ctx context.Context) BindingResponseArrayOutput { return o } func (o BindingResponseArrayOutput) Index(i pulumi.IntInput) BindingResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) BindingResponse { return vs[0].([]BindingResponse)[vs[1].(int)] }).(BindingResponseOutput) } // Message containing what to include in the cache key for a request for Cloud CDN. type CacheKeyPolicy struct { // If true, requests to different hosts will be cached separately. IncludeHost *bool `pulumi:"includeHost"` // Allows HTTP request headers (by name) to be used in the cache key. IncludeHttpHeaders []string `pulumi:"includeHttpHeaders"` // Allows HTTP cookies (by name) to be used in the cache key. The name=value pair will be used in the cache key Cloud CDN generates. IncludeNamedCookies []string `pulumi:"includeNamedCookies"` // If true, http and https requests will be cached separately. IncludeProtocol *bool `pulumi:"includeProtocol"` // If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely. IncludeQueryString *bool `pulumi:"includeQueryString"` // Names of query string parameters to exclude in cache keys. All other parameters will be included. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters. QueryStringBlacklist []string `pulumi:"queryStringBlacklist"` // Names of query string parameters to include in cache keys. All other parameters will be excluded. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters. QueryStringWhitelist []string `pulumi:"queryStringWhitelist"` } // CacheKeyPolicyInput is an input type that accepts CacheKeyPolicyArgs and CacheKeyPolicyOutput values. // You can construct a concrete instance of `CacheKeyPolicyInput` via: // // CacheKeyPolicyArgs{...} type CacheKeyPolicyInput interface { pulumi.Input ToCacheKeyPolicyOutput() CacheKeyPolicyOutput ToCacheKeyPolicyOutputWithContext(context.Context) CacheKeyPolicyOutput } // Message containing what to include in the cache key for a request for Cloud CDN. type CacheKeyPolicyArgs struct { // If true, requests to different hosts will be cached separately. IncludeHost pulumi.BoolPtrInput `pulumi:"includeHost"` // Allows HTTP request headers (by name) to be used in the cache key. IncludeHttpHeaders pulumi.StringArrayInput `pulumi:"includeHttpHeaders"` // Allows HTTP cookies (by name) to be used in the cache key. The name=value pair will be used in the cache key Cloud CDN generates. IncludeNamedCookies pulumi.StringArrayInput `pulumi:"includeNamedCookies"` // If true, http and https requests will be cached separately. IncludeProtocol pulumi.BoolPtrInput `pulumi:"includeProtocol"` // If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely. IncludeQueryString pulumi.BoolPtrInput `pulumi:"includeQueryString"` // Names of query string parameters to exclude in cache keys. All other parameters will be included. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters. QueryStringBlacklist pulumi.StringArrayInput `pulumi:"queryStringBlacklist"` // Names of query string parameters to include in cache keys. All other parameters will be excluded. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters. QueryStringWhitelist pulumi.StringArrayInput `pulumi:"queryStringWhitelist"` } func (CacheKeyPolicyArgs) ElementType() reflect.Type { return reflect.TypeOf((*CacheKeyPolicy)(nil)).Elem() } func (i CacheKeyPolicyArgs) ToCacheKeyPolicyOutput() CacheKeyPolicyOutput { return i.ToCacheKeyPolicyOutputWithContext(context.Background()) } func (i CacheKeyPolicyArgs) ToCacheKeyPolicyOutputWithContext(ctx context.Context) CacheKeyPolicyOutput { return pulumi.ToOutputWithContext(ctx, i).(CacheKeyPolicyOutput) } func (i CacheKeyPolicyArgs) ToCacheKeyPolicyPtrOutput() CacheKeyPolicyPtrOutput { return i.ToCacheKeyPolicyPtrOutputWithContext(context.Background()) } func (i CacheKeyPolicyArgs) ToCacheKeyPolicyPtrOutputWithContext(ctx context.Context) CacheKeyPolicyPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(CacheKeyPolicyOutput).ToCacheKeyPolicyPtrOutputWithContext(ctx) } // CacheKeyPolicyPtrInput is an input type that accepts CacheKeyPolicyArgs, CacheKeyPolicyPtr and CacheKeyPolicyPtrOutput values. // You can construct a concrete instance of `CacheKeyPolicyPtrInput` via: // // CacheKeyPolicyArgs{...} // // or: // // nil type CacheKeyPolicyPtrInput interface { pulumi.Input ToCacheKeyPolicyPtrOutput() CacheKeyPolicyPtrOutput ToCacheKeyPolicyPtrOutputWithContext(context.Context) CacheKeyPolicyPtrOutput } type cacheKeyPolicyPtrType CacheKeyPolicyArgs func CacheKeyPolicyPtr(v *CacheKeyPolicyArgs) CacheKeyPolicyPtrInput { return (*cacheKeyPolicyPtrType)(v) } func (*cacheKeyPolicyPtrType) ElementType() reflect.Type { return reflect.TypeOf((**CacheKeyPolicy)(nil)).Elem() } func (i *cacheKeyPolicyPtrType) ToCacheKeyPolicyPtrOutput() CacheKeyPolicyPtrOutput { return i.ToCacheKeyPolicyPtrOutputWithContext(context.Background()) } func (i *cacheKeyPolicyPtrType) ToCacheKeyPolicyPtrOutputWithContext(ctx context.Context) CacheKeyPolicyPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(CacheKeyPolicyPtrOutput) } // Message containing what to include in the cache key for a request for Cloud CDN. type CacheKeyPolicyOutput struct{ *pulumi.OutputState } func (CacheKeyPolicyOutput) ElementType() reflect.Type { return reflect.TypeOf((*CacheKeyPolicy)(nil)).Elem() } func (o CacheKeyPolicyOutput) ToCacheKeyPolicyOutput() CacheKeyPolicyOutput { return o } func (o CacheKeyPolicyOutput) ToCacheKeyPolicyOutputWithContext(ctx context.Context) CacheKeyPolicyOutput { return o } func (o CacheKeyPolicyOutput) ToCacheKeyPolicyPtrOutput() CacheKeyPolicyPtrOutput { return o.ToCacheKeyPolicyPtrOutputWithContext(context.Background()) } func (o CacheKeyPolicyOutput) ToCacheKeyPolicyPtrOutputWithContext(ctx context.Context) CacheKeyPolicyPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v CacheKeyPolicy) *CacheKeyPolicy { return &v }).(CacheKeyPolicyPtrOutput) } // If true, requests to different hosts will be cached separately. func (o CacheKeyPolicyOutput) IncludeHost() pulumi.BoolPtrOutput { return o.ApplyT(func(v CacheKeyPolicy) *bool { return v.IncludeHost }).(pulumi.BoolPtrOutput) } // Allows HTTP request headers (by name) to be used in the cache key. func (o CacheKeyPolicyOutput) IncludeHttpHeaders() pulumi.StringArrayOutput { return o.ApplyT(func(v CacheKeyPolicy) []string { return v.IncludeHttpHeaders }).(pulumi.StringArrayOutput) } // Allows HTTP cookies (by name) to be used in the cache key. The name=value pair will be used in the cache key Cloud CDN generates. func (o CacheKeyPolicyOutput) IncludeNamedCookies() pulumi.StringArrayOutput { return o.ApplyT(func(v CacheKeyPolicy) []string { return v.IncludeNamedCookies }).(pulumi.StringArrayOutput) } // If true, http and https requests will be cached separately. func (o CacheKeyPolicyOutput) IncludeProtocol() pulumi.BoolPtrOutput { return o.ApplyT(func(v CacheKeyPolicy) *bool { return v.IncludeProtocol }).(pulumi.BoolPtrOutput) } // If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely. func (o CacheKeyPolicyOutput) IncludeQueryString() pulumi.BoolPtrOutput { return o.ApplyT(func(v CacheKeyPolicy) *bool { return v.IncludeQueryString }).(pulumi.BoolPtrOutput) } // Names of query string parameters to exclude in cache keys. All other parameters will be included. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters. func (o CacheKeyPolicyOutput) QueryStringBlacklist() pulumi.StringArrayOutput { return o.ApplyT(func(v CacheKeyPolicy) []string { return v.QueryStringBlacklist }).(pulumi.StringArrayOutput) } // Names of query string parameters to include in cache keys. All other parameters will be excluded. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters. func (o CacheKeyPolicyOutput) QueryStringWhitelist() pulumi.StringArrayOutput { return o.ApplyT(func(v CacheKeyPolicy) []string { return v.QueryStringWhitelist }).(pulumi.StringArrayOutput) } type CacheKeyPolicyPtrOutput struct{ *pulumi.OutputState } func (CacheKeyPolicyPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**CacheKeyPolicy)(nil)).Elem() } func (o CacheKeyPolicyPtrOutput) ToCacheKeyPolicyPtrOutput() CacheKeyPolicyPtrOutput { return o } func (o CacheKeyPolicyPtrOutput) ToCacheKeyPolicyPtrOutputWithContext(ctx context.Context) CacheKeyPolicyPtrOutput { return o } func (o CacheKeyPolicyPtrOutput) Elem() CacheKeyPolicyOutput { return o.ApplyT(func(v *CacheKeyPolicy) CacheKeyPolicy { if v != nil { return *v } var ret CacheKeyPolicy return ret }).(CacheKeyPolicyOutput) } // If true, requests to different hosts will be cached separately. func (o CacheKeyPolicyPtrOutput) IncludeHost() pulumi.BoolPtrOutput { return o.ApplyT(func(v *CacheKeyPolicy) *bool { if v == nil { return nil } return v.IncludeHost }).(pulumi.BoolPtrOutput) } // Allows HTTP request headers (by name) to be used in the cache key. func (o CacheKeyPolicyPtrOutput) IncludeHttpHeaders() pulumi.StringArrayOutput { return o.ApplyT(func(v *CacheKeyPolicy) []string { if v == nil { return nil } return v.IncludeHttpHeaders }).(pulumi.StringArrayOutput) } // Allows HTTP cookies (by name) to be used in the cache key. The name=value pair will be used in the cache key Cloud CDN generates. func (o CacheKeyPolicyPtrOutput) IncludeNamedCookies() pulumi.StringArrayOutput { return o.ApplyT(func(v *CacheKeyPolicy) []string { if v == nil { return nil } return v.IncludeNamedCookies }).(pulumi.StringArrayOutput) } // If true, http and https requests will be cached separately. func (o CacheKeyPolicyPtrOutput) IncludeProtocol() pulumi.BoolPtrOutput { return o.ApplyT(func(v *CacheKeyPolicy) *bool { if v == nil { return nil } return v.IncludeProtocol }).(pulumi.BoolPtrOutput) } // If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely. func (o CacheKeyPolicyPtrOutput) IncludeQueryString() pulumi.BoolPtrOutput { return o.ApplyT(func(v *CacheKeyPolicy) *bool { if v == nil { return nil } return v.IncludeQueryString }).(pulumi.BoolPtrOutput) } // Names of query string parameters to exclude in cache keys. All other parameters will be included. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters. func (o CacheKeyPolicyPtrOutput) QueryStringBlacklist() pulumi.StringArrayOutput { return o.ApplyT(func(v *CacheKeyPolicy) []string { if v == nil { return nil } return v.QueryStringBlacklist }).(pulumi.StringArrayOutput) } // Names of query string parameters to include in cache keys. All other parameters will be excluded. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters. func (o CacheKeyPolicyPtrOutput) QueryStringWhitelist() pulumi.StringArrayOutput { return o.ApplyT(func(v *CacheKeyPolicy) []string { if v == nil { return nil } return v.QueryStringWhitelist }).(pulumi.StringArrayOutput) } // Message containing what to include in the cache key for a request for Cloud CDN. type CacheKeyPolicyResponse struct { // If true, requests to different hosts will be cached separately. IncludeHost bool `pulumi:"includeHost"` // Allows HTTP request headers (by name) to be used in the cache key. IncludeHttpHeaders []string `pulumi:"includeHttpHeaders"` // Allows HTTP cookies (by name) to be used in the cache key. The name=value pair will be used in the cache key Cloud CDN generates. IncludeNamedCookies []string `pulumi:"includeNamedCookies"` // If true, http and https requests will be cached separately. IncludeProtocol bool `pulumi:"includeProtocol"` // If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely. IncludeQueryString bool `pulumi:"includeQueryString"` // Names of query string parameters to exclude in cache keys. All other parameters will be included. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters. QueryStringBlacklist []string `pulumi:"queryStringBlacklist"` // Names of query string parameters to include in cache keys. All other parameters will be excluded. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters. QueryStringWhitelist []string `pulumi:"queryStringWhitelist"` } // Message containing what to include in the cache key for a request for Cloud CDN. type CacheKeyPolicyResponseOutput struct{ *pulumi.OutputState } func (CacheKeyPolicyResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*CacheKeyPolicyResponse)(nil)).Elem() } func (o CacheKeyPolicyResponseOutput) ToCacheKeyPolicyResponseOutput() CacheKeyPolicyResponseOutput { return o } func (o CacheKeyPolicyResponseOutput) ToCacheKeyPolicyResponseOutputWithContext(ctx context.Context) CacheKeyPolicyResponseOutput { return o } // If true, requests to different hosts will be cached separately. func (o CacheKeyPolicyResponseOutput) IncludeHost() pulumi.BoolOutput { return o.ApplyT(func(v CacheKeyPolicyResponse) bool { return v.IncludeHost }).(pulumi.BoolOutput) } // Allows HTTP request headers (by name) to be used in the cache key. func (o CacheKeyPolicyResponseOutput) IncludeHttpHeaders() pulumi.StringArrayOutput { return o.ApplyT(func(v CacheKeyPolicyResponse) []string { return v.IncludeHttpHeaders }).(pulumi.StringArrayOutput) } // Allows HTTP cookies (by name) to be used in the cache key. The name=value pair will be used in the cache key Cloud CDN generates. func (o CacheKeyPolicyResponseOutput) IncludeNamedCookies() pulumi.StringArrayOutput { return o.ApplyT(func(v CacheKeyPolicyResponse) []string { return v.IncludeNamedCookies }).(pulumi.StringArrayOutput) } // If true, http and https requests will be cached separately. func (o CacheKeyPolicyResponseOutput) IncludeProtocol() pulumi.BoolOutput { return o.ApplyT(func(v CacheKeyPolicyResponse) bool { return v.IncludeProtocol }).(pulumi.BoolOutput) } // If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely. func (o CacheKeyPolicyResponseOutput) IncludeQueryString() pulumi.BoolOutput { return o.ApplyT(func(v CacheKeyPolicyResponse) bool { return v.IncludeQueryString }).(pulumi.BoolOutput) } // Names of query string parameters to exclude in cache keys. All other parameters will be included. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters. func (o CacheKeyPolicyResponseOutput) QueryStringBlacklist() pulumi.StringArrayOutput { return o.ApplyT(func(v CacheKeyPolicyResponse) []string { return v.QueryStringBlacklist }).(pulumi.StringArrayOutput) } // Names of query string parameters to include in cache keys. All other parameters will be excluded. Either specify query_string_whitelist or query_string_blacklist, not both. '&' and '=' will be percent encoded and not treated as delimiters. func (o CacheKeyPolicyResponseOutput) QueryStringWhitelist() pulumi.StringArrayOutput { return o.ApplyT(func(v CacheKeyPolicyResponse) []string { return v.QueryStringWhitelist }).(pulumi.StringArrayOutput) } // Settings controlling the volume of requests, connections and retries to this backend service. type CircuitBreakers struct { // Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. MaxConnections *int `pulumi:"maxConnections"` // Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. MaxPendingRequests *int `pulumi:"maxPendingRequests"` // The maximum number of parallel requests that allowed to the backend service. If not specified, there is no limit. MaxRequests *int `pulumi:"maxRequests"` // Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. MaxRequestsPerConnection *int `pulumi:"maxRequestsPerConnection"` // Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. MaxRetries *int `pulumi:"maxRetries"` } // CircuitBreakersInput is an input type that accepts CircuitBreakersArgs and CircuitBreakersOutput values. // You can construct a concrete instance of `CircuitBreakersInput` via: // // CircuitBreakersArgs{...} type CircuitBreakersInput interface { pulumi.Input ToCircuitBreakersOutput() CircuitBreakersOutput ToCircuitBreakersOutputWithContext(context.Context) CircuitBreakersOutput } // Settings controlling the volume of requests, connections and retries to this backend service. type CircuitBreakersArgs struct { // Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. MaxConnections pulumi.IntPtrInput `pulumi:"maxConnections"` // Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. MaxPendingRequests pulumi.IntPtrInput `pulumi:"maxPendingRequests"` // The maximum number of parallel requests that allowed to the backend service. If not specified, there is no limit. MaxRequests pulumi.IntPtrInput `pulumi:"maxRequests"` // Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. MaxRequestsPerConnection pulumi.IntPtrInput `pulumi:"maxRequestsPerConnection"` // Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. MaxRetries pulumi.IntPtrInput `pulumi:"maxRetries"` } func (CircuitBreakersArgs) ElementType() reflect.Type { return reflect.TypeOf((*CircuitBreakers)(nil)).Elem() } func (i CircuitBreakersArgs) ToCircuitBreakersOutput() CircuitBreakersOutput { return i.ToCircuitBreakersOutputWithContext(context.Background()) } func (i CircuitBreakersArgs) ToCircuitBreakersOutputWithContext(ctx context.Context) CircuitBreakersOutput { return pulumi.ToOutputWithContext(ctx, i).(CircuitBreakersOutput) } func (i CircuitBreakersArgs) ToCircuitBreakersPtrOutput() CircuitBreakersPtrOutput { return i.ToCircuitBreakersPtrOutputWithContext(context.Background()) } func (i CircuitBreakersArgs) ToCircuitBreakersPtrOutputWithContext(ctx context.Context) CircuitBreakersPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(CircuitBreakersOutput).ToCircuitBreakersPtrOutputWithContext(ctx) } // CircuitBreakersPtrInput is an input type that accepts CircuitBreakersArgs, CircuitBreakersPtr and CircuitBreakersPtrOutput values. // You can construct a concrete instance of `CircuitBreakersPtrInput` via: // // CircuitBreakersArgs{...} // // or: // // nil type CircuitBreakersPtrInput interface { pulumi.Input ToCircuitBreakersPtrOutput() CircuitBreakersPtrOutput ToCircuitBreakersPtrOutputWithContext(context.Context) CircuitBreakersPtrOutput } type circuitBreakersPtrType CircuitBreakersArgs func CircuitBreakersPtr(v *CircuitBreakersArgs) CircuitBreakersPtrInput { return (*circuitBreakersPtrType)(v) } func (*circuitBreakersPtrType) ElementType() reflect.Type { return reflect.TypeOf((**CircuitBreakers)(nil)).Elem() } func (i *circuitBreakersPtrType) ToCircuitBreakersPtrOutput() CircuitBreakersPtrOutput { return i.ToCircuitBreakersPtrOutputWithContext(context.Background()) } func (i *circuitBreakersPtrType) ToCircuitBreakersPtrOutputWithContext(ctx context.Context) CircuitBreakersPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(CircuitBreakersPtrOutput) } // Settings controlling the volume of requests, connections and retries to this backend service. type CircuitBreakersOutput struct{ *pulumi.OutputState } func (CircuitBreakersOutput) ElementType() reflect.Type { return reflect.TypeOf((*CircuitBreakers)(nil)).Elem() } func (o CircuitBreakersOutput) ToCircuitBreakersOutput() CircuitBreakersOutput { return o } func (o CircuitBreakersOutput) ToCircuitBreakersOutputWithContext(ctx context.Context) CircuitBreakersOutput { return o } func (o CircuitBreakersOutput) ToCircuitBreakersPtrOutput() CircuitBreakersPtrOutput { return o.ToCircuitBreakersPtrOutputWithContext(context.Background()) } func (o CircuitBreakersOutput) ToCircuitBreakersPtrOutputWithContext(ctx context.Context) CircuitBreakersPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v CircuitBreakers) *CircuitBreakers { return &v }).(CircuitBreakersPtrOutput) } // Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. func (o CircuitBreakersOutput) MaxConnections() pulumi.IntPtrOutput { return o.ApplyT(func(v CircuitBreakers) *int { return v.MaxConnections }).(pulumi.IntPtrOutput) } // Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. func (o CircuitBreakersOutput) MaxPendingRequests() pulumi.IntPtrOutput { return o.ApplyT(func(v CircuitBreakers) *int { return v.MaxPendingRequests }).(pulumi.IntPtrOutput) } // The maximum number of parallel requests that allowed to the backend service. If not specified, there is no limit. func (o CircuitBreakersOutput) MaxRequests() pulumi.IntPtrOutput { return o.ApplyT(func(v CircuitBreakers) *int { return v.MaxRequests }).(pulumi.IntPtrOutput) } // Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. func (o CircuitBreakersOutput) MaxRequestsPerConnection() pulumi.IntPtrOutput { return o.ApplyT(func(v CircuitBreakers) *int { return v.MaxRequestsPerConnection }).(pulumi.IntPtrOutput) } // Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. func (o CircuitBreakersOutput) MaxRetries() pulumi.IntPtrOutput { return o.ApplyT(func(v CircuitBreakers) *int { return v.MaxRetries }).(pulumi.IntPtrOutput) } type CircuitBreakersPtrOutput struct{ *pulumi.OutputState } func (CircuitBreakersPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**CircuitBreakers)(nil)).Elem() } func (o CircuitBreakersPtrOutput) ToCircuitBreakersPtrOutput() CircuitBreakersPtrOutput { return o } func (o CircuitBreakersPtrOutput) ToCircuitBreakersPtrOutputWithContext(ctx context.Context) CircuitBreakersPtrOutput { return o } func (o CircuitBreakersPtrOutput) Elem() CircuitBreakersOutput { return o.ApplyT(func(v *CircuitBreakers) CircuitBreakers { if v != nil { return *v } var ret CircuitBreakers return ret }).(CircuitBreakersOutput) } // Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. func (o CircuitBreakersPtrOutput) MaxConnections() pulumi.IntPtrOutput { return o.ApplyT(func(v *CircuitBreakers) *int { if v == nil { return nil } return v.MaxConnections }).(pulumi.IntPtrOutput) } // Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. func (o CircuitBreakersPtrOutput) MaxPendingRequests() pulumi.IntPtrOutput { return o.ApplyT(func(v *CircuitBreakers) *int { if v == nil { return nil } return v.MaxPendingRequests }).(pulumi.IntPtrOutput) } // The maximum number of parallel requests that allowed to the backend service. If not specified, there is no limit. func (o CircuitBreakersPtrOutput) MaxRequests() pulumi.IntPtrOutput { return o.ApplyT(func(v *CircuitBreakers) *int { if v == nil { return nil } return v.MaxRequests }).(pulumi.IntPtrOutput) } // Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. func (o CircuitBreakersPtrOutput) MaxRequestsPerConnection() pulumi.IntPtrOutput { return o.ApplyT(func(v *CircuitBreakers) *int { if v == nil { return nil } return v.MaxRequestsPerConnection }).(pulumi.IntPtrOutput) } // Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. func (o CircuitBreakersPtrOutput) MaxRetries() pulumi.IntPtrOutput { return o.ApplyT(func(v *CircuitBreakers) *int { if v == nil { return nil } return v.MaxRetries }).(pulumi.IntPtrOutput) } // Settings controlling the volume of requests, connections and retries to this backend service. type CircuitBreakersResponse struct { // Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. MaxConnections int `pulumi:"maxConnections"` // Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. MaxPendingRequests int `pulumi:"maxPendingRequests"` // The maximum number of parallel requests that allowed to the backend service. If not specified, there is no limit. MaxRequests int `pulumi:"maxRequests"` // Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. MaxRequestsPerConnection int `pulumi:"maxRequestsPerConnection"` // Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. MaxRetries int `pulumi:"maxRetries"` } // Settings controlling the volume of requests, connections and retries to this backend service. type CircuitBreakersResponseOutput struct{ *pulumi.OutputState } func (CircuitBreakersResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*CircuitBreakersResponse)(nil)).Elem() } func (o CircuitBreakersResponseOutput) ToCircuitBreakersResponseOutput() CircuitBreakersResponseOutput { return o } func (o CircuitBreakersResponseOutput) ToCircuitBreakersResponseOutputWithContext(ctx context.Context) CircuitBreakersResponseOutput { return o } // Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. func (o CircuitBreakersResponseOutput) MaxConnections() pulumi.IntOutput { return o.ApplyT(func(v CircuitBreakersResponse) int { return v.MaxConnections }).(pulumi.IntOutput) } // Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. func (o CircuitBreakersResponseOutput) MaxPendingRequests() pulumi.IntOutput { return o.ApplyT(func(v CircuitBreakersResponse) int { return v.MaxPendingRequests }).(pulumi.IntOutput) } // The maximum number of parallel requests that allowed to the backend service. If not specified, there is no limit. func (o CircuitBreakersResponseOutput) MaxRequests() pulumi.IntOutput { return o.ApplyT(func(v CircuitBreakersResponse) int { return v.MaxRequests }).(pulumi.IntOutput) } // Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. func (o CircuitBreakersResponseOutput) MaxRequestsPerConnection() pulumi.IntOutput { return o.ApplyT(func(v CircuitBreakersResponse) int { return v.MaxRequestsPerConnection }).(pulumi.IntOutput) } // Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. func (o CircuitBreakersResponseOutput) MaxRetries() pulumi.IntOutput { return o.ApplyT(func(v CircuitBreakersResponse) int { return v.MaxRetries }).(pulumi.IntOutput) } // This is deprecated and has no effect. Do not use. type Condition struct { // This is deprecated and has no effect. Do not use. Iam *ConditionIam `pulumi:"iam"` // This is deprecated and has no effect. Do not use. Op *ConditionOp `pulumi:"op"` // This is deprecated and has no effect. Do not use. Svc *string `pulumi:"svc"` // This is deprecated and has no effect. Do not use. Sys *ConditionSys `pulumi:"sys"` // This is deprecated and has no effect. Do not use. Values []string `pulumi:"values"` } // ConditionInput is an input type that accepts ConditionArgs and ConditionOutput values. // You can construct a concrete instance of `ConditionInput` via: // // ConditionArgs{...} type ConditionInput interface { pulumi.Input ToConditionOutput() ConditionOutput ToConditionOutputWithContext(context.Context) ConditionOutput } // This is deprecated and has no effect. Do not use. type ConditionArgs struct { // This is deprecated and has no effect. Do not use. Iam ConditionIamPtrInput `pulumi:"iam"` // This is deprecated and has no effect. Do not use. Op ConditionOpPtrInput `pulumi:"op"` // This is deprecated and has no effect. Do not use. Svc pulumi.StringPtrInput `pulumi:"svc"` // This is deprecated and has no effect. Do not use. Sys ConditionSysPtrInput `pulumi:"sys"` // This is deprecated and has no effect. Do not use. Values pulumi.StringArrayInput `pulumi:"values"` } func (ConditionArgs) ElementType() reflect.Type { return reflect.TypeOf((*Condition)(nil)).Elem() } func (i ConditionArgs) ToConditionOutput() ConditionOutput { return i.ToConditionOutputWithContext(context.Background()) } func (i ConditionArgs) ToConditionOutputWithContext(ctx context.Context) ConditionOutput { return pulumi.ToOutputWithContext(ctx, i).(ConditionOutput) } // ConditionArrayInput is an input type that accepts ConditionArray and ConditionArrayOutput values. // You can construct a concrete instance of `ConditionArrayInput` via: // // ConditionArray{ ConditionArgs{...} } type ConditionArrayInput interface { pulumi.Input ToConditionArrayOutput() ConditionArrayOutput ToConditionArrayOutputWithContext(context.Context) ConditionArrayOutput } type ConditionArray []ConditionInput func (ConditionArray) ElementType() reflect.Type { return reflect.TypeOf((*[]Condition)(nil)).Elem() } func (i ConditionArray) ToConditionArrayOutput() ConditionArrayOutput { return i.ToConditionArrayOutputWithContext(context.Background()) } func (i ConditionArray) ToConditionArrayOutputWithContext(ctx context.Context) ConditionArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(ConditionArrayOutput) } // This is deprecated and has no effect. Do not use. type ConditionOutput struct{ *pulumi.OutputState } func (ConditionOutput) ElementType() reflect.Type { return reflect.TypeOf((*Condition)(nil)).Elem() } func (o ConditionOutput) ToConditionOutput() ConditionOutput { return o } func (o ConditionOutput) ToConditionOutputWithContext(ctx context.Context) ConditionOutput { return o } // This is deprecated and has no effect. Do not use. func (o ConditionOutput) Iam() ConditionIamPtrOutput { return o.ApplyT(func(v Condition) *ConditionIam { return v.Iam }).(ConditionIamPtrOutput) } // This is deprecated and has no effect. Do not use. func (o ConditionOutput) Op() ConditionOpPtrOutput { return o.ApplyT(func(v Condition) *ConditionOp { return v.Op }).(ConditionOpPtrOutput) } // This is deprecated and has no effect. Do not use. func (o ConditionOutput) Svc() pulumi.StringPtrOutput { return o.ApplyT(func(v Condition) *string { return v.Svc }).(pulumi.StringPtrOutput) } // This is deprecated and has no effect. Do not use. func (o ConditionOutput) Sys() ConditionSysPtrOutput { return o.ApplyT(func(v Condition) *ConditionSys { return v.Sys }).(ConditionSysPtrOutput) } // This is deprecated and has no effect. Do not use. func (o ConditionOutput) Values() pulumi.StringArrayOutput { return o.ApplyT(func(v Condition) []string { return v.Values }).(pulumi.StringArrayOutput) } type ConditionArrayOutput struct{ *pulumi.OutputState } func (ConditionArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]Condition)(nil)).Elem() } func (o ConditionArrayOutput) ToConditionArrayOutput() ConditionArrayOutput { return o } func (o ConditionArrayOutput) ToConditionArrayOutputWithContext(ctx context.Context) ConditionArrayOutput { return o } func (o ConditionArrayOutput) Index(i pulumi.IntInput) ConditionOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) Condition { return vs[0].([]Condition)[vs[1].(int)] }).(ConditionOutput) } // This is deprecated and has no effect. Do not use. type ConditionResponse struct { // This is deprecated and has no effect. Do not use. Iam string `pulumi:"iam"` // This is deprecated and has no effect. Do not use. Op string `pulumi:"op"` // This is deprecated and has no effect. Do not use. Svc string `pulumi:"svc"` // This is deprecated and has no effect. Do not use. Sys string `pulumi:"sys"` // This is deprecated and has no effect. Do not use. Values []string `pulumi:"values"` } // This is deprecated and has no effect. Do not use. type ConditionResponseOutput struct{ *pulumi.OutputState } func (ConditionResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*ConditionResponse)(nil)).Elem() } func (o ConditionResponseOutput) ToConditionResponseOutput() ConditionResponseOutput { return o } func (o ConditionResponseOutput) ToConditionResponseOutputWithContext(ctx context.Context) ConditionResponseOutput { return o } // This is deprecated and has no effect. Do not use. func (o ConditionResponseOutput) Iam() pulumi.StringOutput { return o.ApplyT(func(v ConditionResponse) string { return v.Iam }).(pulumi.StringOutput) } // This is deprecated and has no effect. Do not use. func (o ConditionResponseOutput) Op() pulumi.StringOutput { return o.ApplyT(func(v ConditionResponse) string { return v.Op }).(pulumi.StringOutput) } // This is deprecated and has no effect. Do not use. func (o ConditionResponseOutput) Svc() pulumi.StringOutput { return o.ApplyT(func(v ConditionResponse) string { return v.Svc }).(pulumi.StringOutput) } // This is deprecated and has no effect. Do not use. func (o ConditionResponseOutput) Sys() pulumi.StringOutput { return o.ApplyT(func(v ConditionResponse) string { return v.Sys }).(pulumi.StringOutput) } // This is deprecated and has no effect. Do not use. func (o ConditionResponseOutput) Values() pulumi.StringArrayOutput { return o.ApplyT(func(v ConditionResponse) []string { return v.Values }).(pulumi.StringArrayOutput) } type ConditionResponseArrayOutput struct{ *pulumi.OutputState } func (ConditionResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]ConditionResponse)(nil)).Elem() } func (o ConditionResponseArrayOutput) ToConditionResponseArrayOutput() ConditionResponseArrayOutput { return o } func (o ConditionResponseArrayOutput) ToConditionResponseArrayOutputWithContext(ctx context.Context) ConditionResponseArrayOutput { return o } func (o ConditionResponseArrayOutput) Index(i pulumi.IntInput) ConditionResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) ConditionResponse { return vs[0].([]ConditionResponse)[vs[1].(int)] }).(ConditionResponseOutput) } // A set of Confidential Instance options. type ConfidentialInstanceConfig struct { // Defines whether the instance should have confidential compute enabled. EnableConfidentialCompute *bool `pulumi:"enableConfidentialCompute"` } // ConfidentialInstanceConfigInput is an input type that accepts ConfidentialInstanceConfigArgs and ConfidentialInstanceConfigOutput values. // You can construct a concrete instance of `ConfidentialInstanceConfigInput` via: // // ConfidentialInstanceConfigArgs{...} type ConfidentialInstanceConfigInput interface { pulumi.Input ToConfidentialInstanceConfigOutput() ConfidentialInstanceConfigOutput ToConfidentialInstanceConfigOutputWithContext(context.Context) ConfidentialInstanceConfigOutput } // A set of Confidential Instance options. type ConfidentialInstanceConfigArgs struct { // Defines whether the instance should have confidential compute enabled. EnableConfidentialCompute pulumi.BoolPtrInput `pulumi:"enableConfidentialCompute"` } func (ConfidentialInstanceConfigArgs) ElementType() reflect.Type { return reflect.TypeOf((*ConfidentialInstanceConfig)(nil)).Elem() } func (i ConfidentialInstanceConfigArgs) ToConfidentialInstanceConfigOutput() ConfidentialInstanceConfigOutput { return i.ToConfidentialInstanceConfigOutputWithContext(context.Background()) } func (i ConfidentialInstanceConfigArgs) ToConfidentialInstanceConfigOutputWithContext(ctx context.Context) ConfidentialInstanceConfigOutput { return pulumi.ToOutputWithContext(ctx, i).(ConfidentialInstanceConfigOutput) } func (i ConfidentialInstanceConfigArgs) ToConfidentialInstanceConfigPtrOutput() ConfidentialInstanceConfigPtrOutput { return i.ToConfidentialInstanceConfigPtrOutputWithContext(context.Background()) } func (i ConfidentialInstanceConfigArgs) ToConfidentialInstanceConfigPtrOutputWithContext(ctx context.Context) ConfidentialInstanceConfigPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(ConfidentialInstanceConfigOutput).ToConfidentialInstanceConfigPtrOutputWithContext(ctx) } // ConfidentialInstanceConfigPtrInput is an input type that accepts ConfidentialInstanceConfigArgs, ConfidentialInstanceConfigPtr and ConfidentialInstanceConfigPtrOutput values. // You can construct a concrete instance of `ConfidentialInstanceConfigPtrInput` via: // // ConfidentialInstanceConfigArgs{...} // // or: // // nil type ConfidentialInstanceConfigPtrInput interface { pulumi.Input ToConfidentialInstanceConfigPtrOutput() ConfidentialInstanceConfigPtrOutput ToConfidentialInstanceConfigPtrOutputWithContext(context.Context) ConfidentialInstanceConfigPtrOutput } type confidentialInstanceConfigPtrType ConfidentialInstanceConfigArgs func ConfidentialInstanceConfigPtr(v *ConfidentialInstanceConfigArgs) ConfidentialInstanceConfigPtrInput { return (*confidentialInstanceConfigPtrType)(v) } func (*confidentialInstanceConfigPtrType) ElementType() reflect.Type { return reflect.TypeOf((**ConfidentialInstanceConfig)(nil)).Elem() } func (i *confidentialInstanceConfigPtrType) ToConfidentialInstanceConfigPtrOutput() ConfidentialInstanceConfigPtrOutput { return i.ToConfidentialInstanceConfigPtrOutputWithContext(context.Background()) } func (i *confidentialInstanceConfigPtrType) ToConfidentialInstanceConfigPtrOutputWithContext(ctx context.Context) ConfidentialInstanceConfigPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(ConfidentialInstanceConfigPtrOutput) } // A set of Confidential Instance options. type ConfidentialInstanceConfigOutput struct{ *pulumi.OutputState } func (ConfidentialInstanceConfigOutput) ElementType() reflect.Type { return reflect.TypeOf((*ConfidentialInstanceConfig)(nil)).Elem() } func (o ConfidentialInstanceConfigOutput) ToConfidentialInstanceConfigOutput() ConfidentialInstanceConfigOutput { return o } func (o ConfidentialInstanceConfigOutput) ToConfidentialInstanceConfigOutputWithContext(ctx context.Context) ConfidentialInstanceConfigOutput { return o } func (o ConfidentialInstanceConfigOutput) ToConfidentialInstanceConfigPtrOutput() ConfidentialInstanceConfigPtrOutput { return o.ToConfidentialInstanceConfigPtrOutputWithContext(context.Background()) } func (o ConfidentialInstanceConfigOutput) ToConfidentialInstanceConfigPtrOutputWithContext(ctx context.Context) ConfidentialInstanceConfigPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v ConfidentialInstanceConfig) *ConfidentialInstanceConfig { return &v }).(ConfidentialInstanceConfigPtrOutput) } // Defines whether the instance should have confidential compute enabled. func (o ConfidentialInstanceConfigOutput) EnableConfidentialCompute() pulumi.BoolPtrOutput { return o.ApplyT(func(v ConfidentialInstanceConfig) *bool { return v.EnableConfidentialCompute }).(pulumi.BoolPtrOutput) } type ConfidentialInstanceConfigPtrOutput struct{ *pulumi.OutputState } func (ConfidentialInstanceConfigPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**ConfidentialInstanceConfig)(nil)).Elem() } func (o ConfidentialInstanceConfigPtrOutput) ToConfidentialInstanceConfigPtrOutput() ConfidentialInstanceConfigPtrOutput { return o } func (o ConfidentialInstanceConfigPtrOutput) ToConfidentialInstanceConfigPtrOutputWithContext(ctx context.Context) ConfidentialInstanceConfigPtrOutput { return o } func (o ConfidentialInstanceConfigPtrOutput) Elem() ConfidentialInstanceConfigOutput { return o.ApplyT(func(v *ConfidentialInstanceConfig) ConfidentialInstanceConfig { if v != nil { return *v } var ret ConfidentialInstanceConfig return ret }).(ConfidentialInstanceConfigOutput) } // Defines whether the instance should have confidential compute enabled. func (o ConfidentialInstanceConfigPtrOutput) EnableConfidentialCompute() pulumi.BoolPtrOutput { return o.ApplyT(func(v *ConfidentialInstanceConfig) *bool { if v == nil { return nil } return v.EnableConfidentialCompute }).(pulumi.BoolPtrOutput) } // A set of Confidential Instance options. type ConfidentialInstanceConfigResponse struct { // Defines whether the instance should have confidential compute enabled. EnableConfidentialCompute bool `pulumi:"enableConfidentialCompute"` } // A set of Confidential Instance options. type ConfidentialInstanceConfigResponseOutput struct{ *pulumi.OutputState } func (ConfidentialInstanceConfigResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*ConfidentialInstanceConfigResponse)(nil)).Elem() } func (o ConfidentialInstanceConfigResponseOutput) ToConfidentialInstanceConfigResponseOutput() ConfidentialInstanceConfigResponseOutput { return o } func (o ConfidentialInstanceConfigResponseOutput) ToConfidentialInstanceConfigResponseOutputWithContext(ctx context.Context) ConfidentialInstanceConfigResponseOutput { return o } // Defines whether the instance should have confidential compute enabled. func (o ConfidentialInstanceConfigResponseOutput) EnableConfidentialCompute() pulumi.BoolOutput { return o.ApplyT(func(v ConfidentialInstanceConfigResponse) bool { return v.EnableConfidentialCompute }).(pulumi.BoolOutput) } // Message containing connection draining configuration. type ConnectionDraining struct { // Configures a duration timeout for existing requests on a removed backend instance. For supported load balancers and protocols, as described in Enabling connection draining. DrainingTimeoutSec *int `pulumi:"drainingTimeoutSec"` } // ConnectionDrainingInput is an input type that accepts ConnectionDrainingArgs and ConnectionDrainingOutput values. // You can construct a concrete instance of `ConnectionDrainingInput` via: // // ConnectionDrainingArgs{...} type ConnectionDrainingInput interface { pulumi.Input ToConnectionDrainingOutput() ConnectionDrainingOutput ToConnectionDrainingOutputWithContext(context.Context) ConnectionDrainingOutput } // Message containing connection draining configuration. type ConnectionDrainingArgs struct { // Configures a duration timeout for existing requests on a removed backend instance. For supported load balancers and protocols, as described in Enabling connection draining. DrainingTimeoutSec pulumi.IntPtrInput `pulumi:"drainingTimeoutSec"` } func (ConnectionDrainingArgs) ElementType() reflect.Type { return reflect.TypeOf((*ConnectionDraining)(nil)).Elem() } func (i ConnectionDrainingArgs) ToConnectionDrainingOutput() ConnectionDrainingOutput { return i.ToConnectionDrainingOutputWithContext(context.Background()) } func (i ConnectionDrainingArgs) ToConnectionDrainingOutputWithContext(ctx context.Context) ConnectionDrainingOutput { return pulumi.ToOutputWithContext(ctx, i).(ConnectionDrainingOutput) } func (i ConnectionDrainingArgs) ToConnectionDrainingPtrOutput() ConnectionDrainingPtrOutput { return i.ToConnectionDrainingPtrOutputWithContext(context.Background()) } func (i ConnectionDrainingArgs) ToConnectionDrainingPtrOutputWithContext(ctx context.Context) ConnectionDrainingPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(ConnectionDrainingOutput).ToConnectionDrainingPtrOutputWithContext(ctx) } // ConnectionDrainingPtrInput is an input type that accepts ConnectionDrainingArgs, ConnectionDrainingPtr and ConnectionDrainingPtrOutput values. // You can construct a concrete instance of `ConnectionDrainingPtrInput` via: // // ConnectionDrainingArgs{...} // // or: // // nil type ConnectionDrainingPtrInput interface { pulumi.Input ToConnectionDrainingPtrOutput() ConnectionDrainingPtrOutput ToConnectionDrainingPtrOutputWithContext(context.Context) ConnectionDrainingPtrOutput } type connectionDrainingPtrType ConnectionDrainingArgs func ConnectionDrainingPtr(v *ConnectionDrainingArgs) ConnectionDrainingPtrInput { return (*connectionDrainingPtrType)(v) } func (*connectionDrainingPtrType) ElementType() reflect.Type { return reflect.TypeOf((**ConnectionDraining)(nil)).Elem() } func (i *connectionDrainingPtrType) ToConnectionDrainingPtrOutput() ConnectionDrainingPtrOutput { return i.ToConnectionDrainingPtrOutputWithContext(context.Background()) } func (i *connectionDrainingPtrType) ToConnectionDrainingPtrOutputWithContext(ctx context.Context) ConnectionDrainingPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(ConnectionDrainingPtrOutput) } // Message containing connection draining configuration. type ConnectionDrainingOutput struct{ *pulumi.OutputState } func (ConnectionDrainingOutput) ElementType() reflect.Type { return reflect.TypeOf((*ConnectionDraining)(nil)).Elem() } func (o ConnectionDrainingOutput) ToConnectionDrainingOutput() ConnectionDrainingOutput { return o } func (o ConnectionDrainingOutput) ToConnectionDrainingOutputWithContext(ctx context.Context) ConnectionDrainingOutput { return o } func (o ConnectionDrainingOutput) ToConnectionDrainingPtrOutput() ConnectionDrainingPtrOutput { return o.ToConnectionDrainingPtrOutputWithContext(context.Background()) } func (o ConnectionDrainingOutput) ToConnectionDrainingPtrOutputWithContext(ctx context.Context) ConnectionDrainingPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v ConnectionDraining) *ConnectionDraining { return &v }).(ConnectionDrainingPtrOutput) } // Configures a duration timeout for existing requests on a removed backend instance. For supported load balancers and protocols, as described in Enabling connection draining. func (o ConnectionDrainingOutput) DrainingTimeoutSec() pulumi.IntPtrOutput { return o.ApplyT(func(v ConnectionDraining) *int { return v.DrainingTimeoutSec }).(pulumi.IntPtrOutput) } type ConnectionDrainingPtrOutput struct{ *pulumi.OutputState } func (ConnectionDrainingPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**ConnectionDraining)(nil)).Elem() } func (o ConnectionDrainingPtrOutput) ToConnectionDrainingPtrOutput() ConnectionDrainingPtrOutput { return o } func (o ConnectionDrainingPtrOutput) ToConnectionDrainingPtrOutputWithContext(ctx context.Context) ConnectionDrainingPtrOutput { return o } func (o ConnectionDrainingPtrOutput) Elem() ConnectionDrainingOutput { return o.ApplyT(func(v *ConnectionDraining) ConnectionDraining { if v != nil { return *v } var ret ConnectionDraining return ret }).(ConnectionDrainingOutput) } // Configures a duration timeout for existing requests on a removed backend instance. For supported load balancers and protocols, as described in Enabling connection draining. func (o ConnectionDrainingPtrOutput) DrainingTimeoutSec() pulumi.IntPtrOutput { return o.ApplyT(func(v *ConnectionDraining) *int { if v == nil { return nil } return v.DrainingTimeoutSec }).(pulumi.IntPtrOutput) } // Message containing connection draining configuration. type ConnectionDrainingResponse struct { // Configures a duration timeout for existing requests on a removed backend instance. For supported load balancers and protocols, as described in Enabling connection draining. DrainingTimeoutSec int `pulumi:"drainingTimeoutSec"` } // Message containing connection draining configuration. type ConnectionDrainingResponseOutput struct{ *pulumi.OutputState } func (ConnectionDrainingResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*ConnectionDrainingResponse)(nil)).Elem() } func (o ConnectionDrainingResponseOutput) ToConnectionDrainingResponseOutput() ConnectionDrainingResponseOutput { return o } func (o ConnectionDrainingResponseOutput) ToConnectionDrainingResponseOutputWithContext(ctx context.Context) ConnectionDrainingResponseOutput { return o } // Configures a duration timeout for existing requests on a removed backend instance. For supported load balancers and protocols, as described in Enabling connection draining. func (o ConnectionDrainingResponseOutput) DrainingTimeoutSec() pulumi.IntOutput { return o.ApplyT(func(v ConnectionDrainingResponse) int { return v.DrainingTimeoutSec }).(pulumi.IntOutput) } // This message defines settings for a consistent hash style load balancer. type ConsistentHashLoadBalancerSettings struct { // Hash is based on HTTP Cookie. This field describes a HTTP cookie that will be used as the hash key for the consistent hash load balancer. If the cookie is not present, it will be generated. This field is applicable if the sessionAffinity is set to HTTP_COOKIE. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. HttpCookie *ConsistentHashLoadBalancerSettingsHttpCookie `pulumi:"httpCookie"` // The hash based on the value of the specified header field. This field is applicable if the sessionAffinity is set to HEADER_FIELD. HttpHeaderName *string `pulumi:"httpHeaderName"` // The minimum number of virtual nodes to use for the hash ring. Defaults to 1024. Larger ring sizes result in more granular load distributions. If the number of hosts in the load balancing pool is larger than the ring size, each host will be assigned a single virtual node. MinimumRingSize *string `pulumi:"minimumRingSize"` } // ConsistentHashLoadBalancerSettingsInput is an input type that accepts ConsistentHashLoadBalancerSettingsArgs and ConsistentHashLoadBalancerSettingsOutput values. // You can construct a concrete instance of `ConsistentHashLoadBalancerSettingsInput` via: // // ConsistentHashLoadBalancerSettingsArgs{...} type ConsistentHashLoadBalancerSettingsInput interface { pulumi.Input ToConsistentHashLoadBalancerSettingsOutput() ConsistentHashLoadBalancerSettingsOutput ToConsistentHashLoadBalancerSettingsOutputWithContext(context.Context) ConsistentHashLoadBalancerSettingsOutput } // This message defines settings for a consistent hash style load balancer. type ConsistentHashLoadBalancerSettingsArgs struct { // Hash is based on HTTP Cookie. This field describes a HTTP cookie that will be used as the hash key for the consistent hash load balancer. If the cookie is not present, it will be generated. This field is applicable if the sessionAffinity is set to HTTP_COOKIE. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. HttpCookie ConsistentHashLoadBalancerSettingsHttpCookiePtrInput `pulumi:"httpCookie"` // The hash based on the value of the specified header field. This field is applicable if the sessionAffinity is set to HEADER_FIELD. HttpHeaderName pulumi.StringPtrInput `pulumi:"httpHeaderName"` // The minimum number of virtual nodes to use for the hash ring. Defaults to 1024. Larger ring sizes result in more granular load distributions. If the number of hosts in the load balancing pool is larger than the ring size, each host will be assigned a single virtual node. MinimumRingSize pulumi.StringPtrInput `pulumi:"minimumRingSize"` } func (ConsistentHashLoadBalancerSettingsArgs) ElementType() reflect.Type { return reflect.TypeOf((*ConsistentHashLoadBalancerSettings)(nil)).Elem() } func (i ConsistentHashLoadBalancerSettingsArgs) ToConsistentHashLoadBalancerSettingsOutput() ConsistentHashLoadBalancerSettingsOutput { return i.ToConsistentHashLoadBalancerSettingsOutputWithContext(context.Background()) } func (i ConsistentHashLoadBalancerSettingsArgs) ToConsistentHashLoadBalancerSettingsOutputWithContext(ctx context.Context) ConsistentHashLoadBalancerSettingsOutput { return pulumi.ToOutputWithContext(ctx, i).(ConsistentHashLoadBalancerSettingsOutput) } func (i ConsistentHashLoadBalancerSettingsArgs) ToConsistentHashLoadBalancerSettingsPtrOutput() ConsistentHashLoadBalancerSettingsPtrOutput { return i.ToConsistentHashLoadBalancerSettingsPtrOutputWithContext(context.Background()) } func (i ConsistentHashLoadBalancerSettingsArgs) ToConsistentHashLoadBalancerSettingsPtrOutputWithContext(ctx context.Context) ConsistentHashLoadBalancerSettingsPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(ConsistentHashLoadBalancerSettingsOutput).ToConsistentHashLoadBalancerSettingsPtrOutputWithContext(ctx) } // ConsistentHashLoadBalancerSettingsPtrInput is an input type that accepts ConsistentHashLoadBalancerSettingsArgs, ConsistentHashLoadBalancerSettingsPtr and ConsistentHashLoadBalancerSettingsPtrOutput values. // You can construct a concrete instance of `ConsistentHashLoadBalancerSettingsPtrInput` via: // // ConsistentHashLoadBalancerSettingsArgs{...} // // or: // // nil type ConsistentHashLoadBalancerSettingsPtrInput interface { pulumi.Input ToConsistentHashLoadBalancerSettingsPtrOutput() ConsistentHashLoadBalancerSettingsPtrOutput ToConsistentHashLoadBalancerSettingsPtrOutputWithContext(context.Context) ConsistentHashLoadBalancerSettingsPtrOutput } type consistentHashLoadBalancerSettingsPtrType ConsistentHashLoadBalancerSettingsArgs func ConsistentHashLoadBalancerSettingsPtr(v *ConsistentHashLoadBalancerSettingsArgs) ConsistentHashLoadBalancerSettingsPtrInput { return (*consistentHashLoadBalancerSettingsPtrType)(v) } func (*consistentHashLoadBalancerSettingsPtrType) ElementType() reflect.Type { return reflect.TypeOf((**ConsistentHashLoadBalancerSettings)(nil)).Elem() } func (i *consistentHashLoadBalancerSettingsPtrType) ToConsistentHashLoadBalancerSettingsPtrOutput() ConsistentHashLoadBalancerSettingsPtrOutput { return i.ToConsistentHashLoadBalancerSettingsPtrOutputWithContext(context.Background()) } func (i *consistentHashLoadBalancerSettingsPtrType) ToConsistentHashLoadBalancerSettingsPtrOutputWithContext(ctx context.Context) ConsistentHashLoadBalancerSettingsPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(ConsistentHashLoadBalancerSettingsPtrOutput) } // This message defines settings for a consistent hash style load balancer. type ConsistentHashLoadBalancerSettingsOutput struct{ *pulumi.OutputState } func (ConsistentHashLoadBalancerSettingsOutput) ElementType() reflect.Type { return reflect.TypeOf((*ConsistentHashLoadBalancerSettings)(nil)).Elem() } func (o ConsistentHashLoadBalancerSettingsOutput) ToConsistentHashLoadBalancerSettingsOutput() ConsistentHashLoadBalancerSettingsOutput { return o } func (o ConsistentHashLoadBalancerSettingsOutput) ToConsistentHashLoadBalancerSettingsOutputWithContext(ctx context.Context) ConsistentHashLoadBalancerSettingsOutput { return o } func (o ConsistentHashLoadBalancerSettingsOutput) ToConsistentHashLoadBalancerSettingsPtrOutput() ConsistentHashLoadBalancerSettingsPtrOutput { return o.ToConsistentHashLoadBalancerSettingsPtrOutputWithContext(context.Background()) } func (o ConsistentHashLoadBalancerSettingsOutput) ToConsistentHashLoadBalancerSettingsPtrOutputWithContext(ctx context.Context) ConsistentHashLoadBalancerSettingsPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v ConsistentHashLoadBalancerSettings) *ConsistentHashLoadBalancerSettings { return &v }).(ConsistentHashLoadBalancerSettingsPtrOutput) } // Hash is based on HTTP Cookie. This field describes a HTTP cookie that will be used as the hash key for the consistent hash load balancer. If the cookie is not present, it will be generated. This field is applicable if the sessionAffinity is set to HTTP_COOKIE. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. func (o ConsistentHashLoadBalancerSettingsOutput) HttpCookie() ConsistentHashLoadBalancerSettingsHttpCookiePtrOutput { return o.ApplyT(func(v ConsistentHashLoadBalancerSettings) *ConsistentHashLoadBalancerSettingsHttpCookie { return v.HttpCookie }).(ConsistentHashLoadBalancerSettingsHttpCookiePtrOutput) } // The hash based on the value of the specified header field. This field is applicable if the sessionAffinity is set to HEADER_FIELD. func (o ConsistentHashLoadBalancerSettingsOutput) HttpHeaderName() pulumi.StringPtrOutput { return o.ApplyT(func(v ConsistentHashLoadBalancerSettings) *string { return v.HttpHeaderName }).(pulumi.StringPtrOutput) } // The minimum number of virtual nodes to use for the hash ring. Defaults to 1024. Larger ring sizes result in more granular load distributions. If the number of hosts in the load balancing pool is larger than the ring size, each host will be assigned a single virtual node. func (o ConsistentHashLoadBalancerSettingsOutput) MinimumRingSize() pulumi.StringPtrOutput { return o.ApplyT(func(v ConsistentHashLoadBalancerSettings) *string { return v.MinimumRingSize }).(pulumi.StringPtrOutput) } type ConsistentHashLoadBalancerSettingsPtrOutput struct{ *pulumi.OutputState } func (ConsistentHashLoadBalancerSettingsPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**ConsistentHashLoadBalancerSettings)(nil)).Elem() } func (o ConsistentHashLoadBalancerSettingsPtrOutput) ToConsistentHashLoadBalancerSettingsPtrOutput() ConsistentHashLoadBalancerSettingsPtrOutput { return o } func (o ConsistentHashLoadBalancerSettingsPtrOutput) ToConsistentHashLoadBalancerSettingsPtrOutputWithContext(ctx context.Context) ConsistentHashLoadBalancerSettingsPtrOutput { return o } func (o ConsistentHashLoadBalancerSettingsPtrOutput) Elem() ConsistentHashLoadBalancerSettingsOutput { return o.ApplyT(func(v *ConsistentHashLoadBalancerSettings) ConsistentHashLoadBalancerSettings { if v != nil { return *v } var ret ConsistentHashLoadBalancerSettings return ret }).(ConsistentHashLoadBalancerSettingsOutput) } // Hash is based on HTTP Cookie. This field describes a HTTP cookie that will be used as the hash key for the consistent hash load balancer. If the cookie is not present, it will be generated. This field is applicable if the sessionAffinity is set to HTTP_COOKIE. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. func (o ConsistentHashLoadBalancerSettingsPtrOutput) HttpCookie() ConsistentHashLoadBalancerSettingsHttpCookiePtrOutput { return o.ApplyT(func(v *ConsistentHashLoadBalancerSettings) *ConsistentHashLoadBalancerSettingsHttpCookie { if v == nil { return nil } return v.HttpCookie }).(ConsistentHashLoadBalancerSettingsHttpCookiePtrOutput) } // The hash based on the value of the specified header field. This field is applicable if the sessionAffinity is set to HEADER_FIELD. func (o ConsistentHashLoadBalancerSettingsPtrOutput) HttpHeaderName() pulumi.StringPtrOutput { return o.ApplyT(func(v *ConsistentHashLoadBalancerSettings) *string { if v == nil { return nil } return v.HttpHeaderName }).(pulumi.StringPtrOutput) } // The minimum number of virtual nodes to use for the hash ring. Defaults to 1024. Larger ring sizes result in more granular load distributions. If the number of hosts in the load balancing pool is larger than the ring size, each host will be assigned a single virtual node. func (o ConsistentHashLoadBalancerSettingsPtrOutput) MinimumRingSize() pulumi.StringPtrOutput { return o.ApplyT(func(v *ConsistentHashLoadBalancerSettings) *string { if v == nil { return nil } return v.MinimumRingSize }).(pulumi.StringPtrOutput) } // The information about the HTTP Cookie on which the hash function is based for load balancing policies that use a consistent hash. type ConsistentHashLoadBalancerSettingsHttpCookie struct { // Name of the cookie. Name *string `pulumi:"name"` // Path to set for the cookie. Path *string `pulumi:"path"` // Lifetime of the cookie. Ttl *Duration `pulumi:"ttl"` } // ConsistentHashLoadBalancerSettingsHttpCookieInput is an input type that accepts ConsistentHashLoadBalancerSettingsHttpCookieArgs and ConsistentHashLoadBalancerSettingsHttpCookieOutput values. // You can construct a concrete instance of `ConsistentHashLoadBalancerSettingsHttpCookieInput` via: // // ConsistentHashLoadBalancerSettingsHttpCookieArgs{...} type ConsistentHashLoadBalancerSettingsHttpCookieInput interface { pulumi.Input ToConsistentHashLoadBalancerSettingsHttpCookieOutput() ConsistentHashLoadBalancerSettingsHttpCookieOutput ToConsistentHashLoadBalancerSettingsHttpCookieOutputWithContext(context.Context) ConsistentHashLoadBalancerSettingsHttpCookieOutput } // The information about the HTTP Cookie on which the hash function is based for load balancing policies that use a consistent hash. type ConsistentHashLoadBalancerSettingsHttpCookieArgs struct { // Name of the cookie. Name pulumi.StringPtrInput `pulumi:"name"` // Path to set for the cookie. Path pulumi.StringPtrInput `pulumi:"path"` // Lifetime of the cookie. Ttl DurationPtrInput `pulumi:"ttl"` } func (ConsistentHashLoadBalancerSettingsHttpCookieArgs) ElementType() reflect.Type { return reflect.TypeOf((*ConsistentHashLoadBalancerSettingsHttpCookie)(nil)).Elem() } func (i ConsistentHashLoadBalancerSettingsHttpCookieArgs) ToConsistentHashLoadBalancerSettingsHttpCookieOutput() ConsistentHashLoadBalancerSettingsHttpCookieOutput { return i.ToConsistentHashLoadBalancerSettingsHttpCookieOutputWithContext(context.Background()) } func (i ConsistentHashLoadBalancerSettingsHttpCookieArgs) ToConsistentHashLoadBalancerSettingsHttpCookieOutputWithContext(ctx context.Context) ConsistentHashLoadBalancerSettingsHttpCookieOutput { return pulumi.ToOutputWithContext(ctx, i).(ConsistentHashLoadBalancerSettingsHttpCookieOutput) } func (i ConsistentHashLoadBalancerSettingsHttpCookieArgs) ToConsistentHashLoadBalancerSettingsHttpCookiePtrOutput() ConsistentHashLoadBalancerSettingsHttpCookiePtrOutput { return i.ToConsistentHashLoadBalancerSettingsHttpCookiePtrOutputWithContext(context.Background()) } func (i ConsistentHashLoadBalancerSettingsHttpCookieArgs) ToConsistentHashLoadBalancerSettingsHttpCookiePtrOutputWithContext(ctx context.Context) ConsistentHashLoadBalancerSettingsHttpCookiePtrOutput { return pulumi.ToOutputWithContext(ctx, i).(ConsistentHashLoadBalancerSettingsHttpCookieOutput).ToConsistentHashLoadBalancerSettingsHttpCookiePtrOutputWithContext(ctx) } // ConsistentHashLoadBalancerSettingsHttpCookiePtrInput is an input type that accepts ConsistentHashLoadBalancerSettingsHttpCookieArgs, ConsistentHashLoadBalancerSettingsHttpCookiePtr and ConsistentHashLoadBalancerSettingsHttpCookiePtrOutput values. // You can construct a concrete instance of `ConsistentHashLoadBalancerSettingsHttpCookiePtrInput` via: // // ConsistentHashLoadBalancerSettingsHttpCookieArgs{...} // // or: // // nil type ConsistentHashLoadBalancerSettingsHttpCookiePtrInput interface { pulumi.Input ToConsistentHashLoadBalancerSettingsHttpCookiePtrOutput() ConsistentHashLoadBalancerSettingsHttpCookiePtrOutput ToConsistentHashLoadBalancerSettingsHttpCookiePtrOutputWithContext(context.Context) ConsistentHashLoadBalancerSettingsHttpCookiePtrOutput } type consistentHashLoadBalancerSettingsHttpCookiePtrType ConsistentHashLoadBalancerSettingsHttpCookieArgs func ConsistentHashLoadBalancerSettingsHttpCookiePtr(v *ConsistentHashLoadBalancerSettingsHttpCookieArgs) ConsistentHashLoadBalancerSettingsHttpCookiePtrInput { return (*consistentHashLoadBalancerSettingsHttpCookiePtrType)(v) } func (*consistentHashLoadBalancerSettingsHttpCookiePtrType) ElementType() reflect.Type { return reflect.TypeOf((**ConsistentHashLoadBalancerSettingsHttpCookie)(nil)).Elem() } func (i *consistentHashLoadBalancerSettingsHttpCookiePtrType) ToConsistentHashLoadBalancerSettingsHttpCookiePtrOutput() ConsistentHashLoadBalancerSettingsHttpCookiePtrOutput { return i.ToConsistentHashLoadBalancerSettingsHttpCookiePtrOutputWithContext(context.Background()) } func (i *consistentHashLoadBalancerSettingsHttpCookiePtrType) ToConsistentHashLoadBalancerSettingsHttpCookiePtrOutputWithContext(ctx context.Context) ConsistentHashLoadBalancerSettingsHttpCookiePtrOutput { return pulumi.ToOutputWithContext(ctx, i).(ConsistentHashLoadBalancerSettingsHttpCookiePtrOutput) } // The information about the HTTP Cookie on which the hash function is based for load balancing policies that use a consistent hash. type ConsistentHashLoadBalancerSettingsHttpCookieOutput struct{ *pulumi.OutputState } func (ConsistentHashLoadBalancerSettingsHttpCookieOutput) ElementType() reflect.Type { return reflect.TypeOf((*ConsistentHashLoadBalancerSettingsHttpCookie)(nil)).Elem() } func (o ConsistentHashLoadBalancerSettingsHttpCookieOutput) ToConsistentHashLoadBalancerSettingsHttpCookieOutput() ConsistentHashLoadBalancerSettingsHttpCookieOutput { return o } func (o ConsistentHashLoadBalancerSettingsHttpCookieOutput) ToConsistentHashLoadBalancerSettingsHttpCookieOutputWithContext(ctx context.Context) ConsistentHashLoadBalancerSettingsHttpCookieOutput { return o } func (o ConsistentHashLoadBalancerSettingsHttpCookieOutput) ToConsistentHashLoadBalancerSettingsHttpCookiePtrOutput() ConsistentHashLoadBalancerSettingsHttpCookiePtrOutput { return o.ToConsistentHashLoadBalancerSettingsHttpCookiePtrOutputWithContext(context.Background()) } func (o ConsistentHashLoadBalancerSettingsHttpCookieOutput) ToConsistentHashLoadBalancerSettingsHttpCookiePtrOutputWithContext(ctx context.Context) ConsistentHashLoadBalancerSettingsHttpCookiePtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v ConsistentHashLoadBalancerSettingsHttpCookie) *ConsistentHashLoadBalancerSettingsHttpCookie { return &v }).(ConsistentHashLoadBalancerSettingsHttpCookiePtrOutput) } // Name of the cookie. func (o ConsistentHashLoadBalancerSettingsHttpCookieOutput) Name() pulumi.StringPtrOutput { return o.ApplyT(func(v ConsistentHashLoadBalancerSettingsHttpCookie) *string { return v.Name }).(pulumi.StringPtrOutput) } // Path to set for the cookie. func (o ConsistentHashLoadBalancerSettingsHttpCookieOutput) Path() pulumi.StringPtrOutput { return o.ApplyT(func(v ConsistentHashLoadBalancerSettingsHttpCookie) *string { return v.Path }).(pulumi.StringPtrOutput) } // Lifetime of the cookie. func (o ConsistentHashLoadBalancerSettingsHttpCookieOutput) Ttl() DurationPtrOutput { return o.ApplyT(func(v ConsistentHashLoadBalancerSettingsHttpCookie) *Duration { return v.Ttl }).(DurationPtrOutput) } type ConsistentHashLoadBalancerSettingsHttpCookiePtrOutput struct{ *pulumi.OutputState } func (ConsistentHashLoadBalancerSettingsHttpCookiePtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**ConsistentHashLoadBalancerSettingsHttpCookie)(nil)).Elem() } func (o ConsistentHashLoadBalancerSettingsHttpCookiePtrOutput) ToConsistentHashLoadBalancerSettingsHttpCookiePtrOutput() ConsistentHashLoadBalancerSettingsHttpCookiePtrOutput { return o } func (o ConsistentHashLoadBalancerSettingsHttpCookiePtrOutput) ToConsistentHashLoadBalancerSettingsHttpCookiePtrOutputWithContext(ctx context.Context) ConsistentHashLoadBalancerSettingsHttpCookiePtrOutput { return o } func (o ConsistentHashLoadBalancerSettingsHttpCookiePtrOutput) Elem() ConsistentHashLoadBalancerSettingsHttpCookieOutput { return o.ApplyT(func(v *ConsistentHashLoadBalancerSettingsHttpCookie) ConsistentHashLoadBalancerSettingsHttpCookie { if v != nil { return *v } var ret ConsistentHashLoadBalancerSettingsHttpCookie return ret }).(ConsistentHashLoadBalancerSettingsHttpCookieOutput) } // Name of the cookie. func (o ConsistentHashLoadBalancerSettingsHttpCookiePtrOutput) Name() pulumi.StringPtrOutput { return o.ApplyT(func(v *ConsistentHashLoadBalancerSettingsHttpCookie) *string { if v == nil { return nil } return v.Name }).(pulumi.StringPtrOutput) } // Path to set for the cookie. func (o ConsistentHashLoadBalancerSettingsHttpCookiePtrOutput) Path() pulumi.StringPtrOutput { return o.ApplyT(func(v *ConsistentHashLoadBalancerSettingsHttpCookie) *string { if v == nil { return nil } return v.Path }).(pulumi.StringPtrOutput) } // Lifetime of the cookie. func (o ConsistentHashLoadBalancerSettingsHttpCookiePtrOutput) Ttl() DurationPtrOutput { return o.ApplyT(func(v *ConsistentHashLoadBalancerSettingsHttpCookie) *Duration { if v == nil { return nil } return v.Ttl }).(DurationPtrOutput) } // The information about the HTTP Cookie on which the hash function is based for load balancing policies that use a consistent hash. type ConsistentHashLoadBalancerSettingsHttpCookieResponse struct { // Name of the cookie. Name string `pulumi:"name"` // Path to set for the cookie. Path string `pulumi:"path"` // Lifetime of the cookie. Ttl DurationResponse `pulumi:"ttl"` } // The information about the HTTP Cookie on which the hash function is based for load balancing policies that use a consistent hash. type ConsistentHashLoadBalancerSettingsHttpCookieResponseOutput struct{ *pulumi.OutputState } func (ConsistentHashLoadBalancerSettingsHttpCookieResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*ConsistentHashLoadBalancerSettingsHttpCookieResponse)(nil)).Elem() } func (o ConsistentHashLoadBalancerSettingsHttpCookieResponseOutput) ToConsistentHashLoadBalancerSettingsHttpCookieResponseOutput() ConsistentHashLoadBalancerSettingsHttpCookieResponseOutput { return o } func (o ConsistentHashLoadBalancerSettingsHttpCookieResponseOutput) ToConsistentHashLoadBalancerSettingsHttpCookieResponseOutputWithContext(ctx context.Context) ConsistentHashLoadBalancerSettingsHttpCookieResponseOutput { return o } // Name of the cookie. func (o ConsistentHashLoadBalancerSettingsHttpCookieResponseOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v ConsistentHashLoadBalancerSettingsHttpCookieResponse) string { return v.Name }).(pulumi.StringOutput) } // Path to set for the cookie. func (o ConsistentHashLoadBalancerSettingsHttpCookieResponseOutput) Path() pulumi.StringOutput { return o.ApplyT(func(v ConsistentHashLoadBalancerSettingsHttpCookieResponse) string { return v.Path }).(pulumi.StringOutput) } // Lifetime of the cookie. func (o ConsistentHashLoadBalancerSettingsHttpCookieResponseOutput) Ttl() DurationResponseOutput { return o.ApplyT(func(v ConsistentHashLoadBalancerSettingsHttpCookieResponse) DurationResponse { return v.Ttl }).(DurationResponseOutput) } // This message defines settings for a consistent hash style load balancer. type ConsistentHashLoadBalancerSettingsResponse struct { // Hash is based on HTTP Cookie. This field describes a HTTP cookie that will be used as the hash key for the consistent hash load balancer. If the cookie is not present, it will be generated. This field is applicable if the sessionAffinity is set to HTTP_COOKIE. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. HttpCookie ConsistentHashLoadBalancerSettingsHttpCookieResponse `pulumi:"httpCookie"` // The hash based on the value of the specified header field. This field is applicable if the sessionAffinity is set to HEADER_FIELD. HttpHeaderName string `pulumi:"httpHeaderName"` // The minimum number of virtual nodes to use for the hash ring. Defaults to 1024. Larger ring sizes result in more granular load distributions. If the number of hosts in the load balancing pool is larger than the ring size, each host will be assigned a single virtual node. MinimumRingSize string `pulumi:"minimumRingSize"` } // This message defines settings for a consistent hash style load balancer. type ConsistentHashLoadBalancerSettingsResponseOutput struct{ *pulumi.OutputState } func (ConsistentHashLoadBalancerSettingsResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*ConsistentHashLoadBalancerSettingsResponse)(nil)).Elem() } func (o ConsistentHashLoadBalancerSettingsResponseOutput) ToConsistentHashLoadBalancerSettingsResponseOutput() ConsistentHashLoadBalancerSettingsResponseOutput { return o } func (o ConsistentHashLoadBalancerSettingsResponseOutput) ToConsistentHashLoadBalancerSettingsResponseOutputWithContext(ctx context.Context) ConsistentHashLoadBalancerSettingsResponseOutput { return o } // Hash is based on HTTP Cookie. This field describes a HTTP cookie that will be used as the hash key for the consistent hash load balancer. If the cookie is not present, it will be generated. This field is applicable if the sessionAffinity is set to HTTP_COOKIE. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. func (o ConsistentHashLoadBalancerSettingsResponseOutput) HttpCookie() ConsistentHashLoadBalancerSettingsHttpCookieResponseOutput { return o.ApplyT(func(v ConsistentHashLoadBalancerSettingsResponse) ConsistentHashLoadBalancerSettingsHttpCookieResponse { return v.HttpCookie }).(ConsistentHashLoadBalancerSettingsHttpCookieResponseOutput) } // The hash based on the value of the specified header field. This field is applicable if the sessionAffinity is set to HEADER_FIELD. func (o ConsistentHashLoadBalancerSettingsResponseOutput) HttpHeaderName() pulumi.StringOutput { return o.ApplyT(func(v ConsistentHashLoadBalancerSettingsResponse) string { return v.HttpHeaderName }).(pulumi.StringOutput) } // The minimum number of virtual nodes to use for the hash ring. Defaults to 1024. Larger ring sizes result in more granular load distributions. If the number of hosts in the load balancing pool is larger than the ring size, each host will be assigned a single virtual node. func (o ConsistentHashLoadBalancerSettingsResponseOutput) MinimumRingSize() pulumi.StringOutput { return o.ApplyT(func(v ConsistentHashLoadBalancerSettingsResponse) string { return v.MinimumRingSize }).(pulumi.StringOutput) } // The specification for allowing client-side cross-origin requests. For more information about the W3C recommendation for cross-origin resource sharing (CORS), see Fetch API Living Standard. type CorsPolicy struct { // In response to a preflight request, setting this to true indicates that the actual request can include user credentials. This field translates to the Access-Control-Allow-Credentials header. Default is false. AllowCredentials *bool `pulumi:"allowCredentials"` // Specifies the content for the Access-Control-Allow-Headers header. AllowHeaders []string `pulumi:"allowHeaders"` // Specifies the content for the Access-Control-Allow-Methods header. AllowMethods []string `pulumi:"allowMethods"` // Specifies a regular expression that matches allowed origins. For more information about the regular expression syntax, see Syntax. An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. AllowOriginRegexes []string `pulumi:"allowOriginRegexes"` // Specifies the list of origins that is allowed to do CORS requests. An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. AllowOrigins []string `pulumi:"allowOrigins"` // If true, the setting specifies the CORS policy is disabled. The default value of false, which indicates that the CORS policy is in effect. Disabled *bool `pulumi:"disabled"` // Specifies the content for the Access-Control-Expose-Headers header. ExposeHeaders []string `pulumi:"exposeHeaders"` // Specifies how long results of a preflight request can be cached in seconds. This field translates to the Access-Control-Max-Age header. MaxAge *int `pulumi:"maxAge"` } // CorsPolicyInput is an input type that accepts CorsPolicyArgs and CorsPolicyOutput values. // You can construct a concrete instance of `CorsPolicyInput` via: // // CorsPolicyArgs{...} type CorsPolicyInput interface { pulumi.Input ToCorsPolicyOutput() CorsPolicyOutput ToCorsPolicyOutputWithContext(context.Context) CorsPolicyOutput } // The specification for allowing client-side cross-origin requests. For more information about the W3C recommendation for cross-origin resource sharing (CORS), see Fetch API Living Standard. type CorsPolicyArgs struct { // In response to a preflight request, setting this to true indicates that the actual request can include user credentials. This field translates to the Access-Control-Allow-Credentials header. Default is false. AllowCredentials pulumi.BoolPtrInput `pulumi:"allowCredentials"` // Specifies the content for the Access-Control-Allow-Headers header. AllowHeaders pulumi.StringArrayInput `pulumi:"allowHeaders"` // Specifies the content for the Access-Control-Allow-Methods header. AllowMethods pulumi.StringArrayInput `pulumi:"allowMethods"` // Specifies a regular expression that matches allowed origins. For more information about the regular expression syntax, see Syntax. An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. AllowOriginRegexes pulumi.StringArrayInput `pulumi:"allowOriginRegexes"` // Specifies the list of origins that is allowed to do CORS requests. An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. AllowOrigins pulumi.StringArrayInput `pulumi:"allowOrigins"` // If true, the setting specifies the CORS policy is disabled. The default value of false, which indicates that the CORS policy is in effect. Disabled pulumi.BoolPtrInput `pulumi:"disabled"` // Specifies the content for the Access-Control-Expose-Headers header. ExposeHeaders pulumi.StringArrayInput `pulumi:"exposeHeaders"` // Specifies how long results of a preflight request can be cached in seconds. This field translates to the Access-Control-Max-Age header. MaxAge pulumi.IntPtrInput `pulumi:"maxAge"` } func (CorsPolicyArgs) ElementType() reflect.Type { return reflect.TypeOf((*CorsPolicy)(nil)).Elem() } func (i CorsPolicyArgs) ToCorsPolicyOutput() CorsPolicyOutput { return i.ToCorsPolicyOutputWithContext(context.Background()) } func (i CorsPolicyArgs) ToCorsPolicyOutputWithContext(ctx context.Context) CorsPolicyOutput { return pulumi.ToOutputWithContext(ctx, i).(CorsPolicyOutput) } func (i CorsPolicyArgs) ToCorsPolicyPtrOutput() CorsPolicyPtrOutput { return i.ToCorsPolicyPtrOutputWithContext(context.Background()) } func (i CorsPolicyArgs) ToCorsPolicyPtrOutputWithContext(ctx context.Context) CorsPolicyPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(CorsPolicyOutput).ToCorsPolicyPtrOutputWithContext(ctx) } // CorsPolicyPtrInput is an input type that accepts CorsPolicyArgs, CorsPolicyPtr and CorsPolicyPtrOutput values. // You can construct a concrete instance of `CorsPolicyPtrInput` via: // // CorsPolicyArgs{...} // // or: // // nil type CorsPolicyPtrInput interface { pulumi.Input ToCorsPolicyPtrOutput() CorsPolicyPtrOutput ToCorsPolicyPtrOutputWithContext(context.Context) CorsPolicyPtrOutput } type corsPolicyPtrType CorsPolicyArgs func CorsPolicyPtr(v *CorsPolicyArgs) CorsPolicyPtrInput { return (*corsPolicyPtrType)(v) } func (*corsPolicyPtrType) ElementType() reflect.Type { return reflect.TypeOf((**CorsPolicy)(nil)).Elem() } func (i *corsPolicyPtrType) ToCorsPolicyPtrOutput() CorsPolicyPtrOutput { return i.ToCorsPolicyPtrOutputWithContext(context.Background()) } func (i *corsPolicyPtrType) ToCorsPolicyPtrOutputWithContext(ctx context.Context) CorsPolicyPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(CorsPolicyPtrOutput) } // The specification for allowing client-side cross-origin requests. For more information about the W3C recommendation for cross-origin resource sharing (CORS), see Fetch API Living Standard. type CorsPolicyOutput struct{ *pulumi.OutputState } func (CorsPolicyOutput) ElementType() reflect.Type { return reflect.TypeOf((*CorsPolicy)(nil)).Elem() } func (o CorsPolicyOutput) ToCorsPolicyOutput() CorsPolicyOutput { return o } func (o CorsPolicyOutput) ToCorsPolicyOutputWithContext(ctx context.Context) CorsPolicyOutput { return o } func (o CorsPolicyOutput) ToCorsPolicyPtrOutput() CorsPolicyPtrOutput { return o.ToCorsPolicyPtrOutputWithContext(context.Background()) } func (o CorsPolicyOutput) ToCorsPolicyPtrOutputWithContext(ctx context.Context) CorsPolicyPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v CorsPolicy) *CorsPolicy { return &v }).(CorsPolicyPtrOutput) } // In response to a preflight request, setting this to true indicates that the actual request can include user credentials. This field translates to the Access-Control-Allow-Credentials header. Default is false. func (o CorsPolicyOutput) AllowCredentials() pulumi.BoolPtrOutput { return o.ApplyT(func(v CorsPolicy) *bool { return v.AllowCredentials }).(pulumi.BoolPtrOutput) } // Specifies the content for the Access-Control-Allow-Headers header. func (o CorsPolicyOutput) AllowHeaders() pulumi.StringArrayOutput { return o.ApplyT(func(v CorsPolicy) []string { return v.AllowHeaders }).(pulumi.StringArrayOutput) } // Specifies the content for the Access-Control-Allow-Methods header. func (o CorsPolicyOutput) AllowMethods() pulumi.StringArrayOutput { return o.ApplyT(func(v CorsPolicy) []string { return v.AllowMethods }).(pulumi.StringArrayOutput) } // Specifies a regular expression that matches allowed origins. For more information about the regular expression syntax, see Syntax. An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. func (o CorsPolicyOutput) AllowOriginRegexes() pulumi.StringArrayOutput { return o.ApplyT(func(v CorsPolicy) []string { return v.AllowOriginRegexes }).(pulumi.StringArrayOutput) } // Specifies the list of origins that is allowed to do CORS requests. An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. func (o CorsPolicyOutput) AllowOrigins() pulumi.StringArrayOutput { return o.ApplyT(func(v CorsPolicy) []string { return v.AllowOrigins }).(pulumi.StringArrayOutput) } // If true, the setting specifies the CORS policy is disabled. The default value of false, which indicates that the CORS policy is in effect. func (o CorsPolicyOutput) Disabled() pulumi.BoolPtrOutput { return o.ApplyT(func(v CorsPolicy) *bool { return v.Disabled }).(pulumi.BoolPtrOutput) } // Specifies the content for the Access-Control-Expose-Headers header. func (o CorsPolicyOutput) ExposeHeaders() pulumi.StringArrayOutput { return o.ApplyT(func(v CorsPolicy) []string { return v.ExposeHeaders }).(pulumi.StringArrayOutput) } // Specifies how long results of a preflight request can be cached in seconds. This field translates to the Access-Control-Max-Age header. func (o CorsPolicyOutput) MaxAge() pulumi.IntPtrOutput { return o.ApplyT(func(v CorsPolicy) *int { return v.MaxAge }).(pulumi.IntPtrOutput) } type CorsPolicyPtrOutput struct{ *pulumi.OutputState } func (CorsPolicyPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**CorsPolicy)(nil)).Elem() } func (o CorsPolicyPtrOutput) ToCorsPolicyPtrOutput() CorsPolicyPtrOutput { return o } func (o CorsPolicyPtrOutput) ToCorsPolicyPtrOutputWithContext(ctx context.Context) CorsPolicyPtrOutput { return o } func (o CorsPolicyPtrOutput) Elem() CorsPolicyOutput { return o.ApplyT(func(v *CorsPolicy) CorsPolicy { if v != nil { return *v } var ret CorsPolicy return ret }).(CorsPolicyOutput) } // In response to a preflight request, setting this to true indicates that the actual request can include user credentials. This field translates to the Access-Control-Allow-Credentials header. Default is false. func (o CorsPolicyPtrOutput) AllowCredentials() pulumi.BoolPtrOutput { return o.ApplyT(func(v *CorsPolicy) *bool { if v == nil { return nil } return v.AllowCredentials }).(pulumi.BoolPtrOutput) } // Specifies the content for the Access-Control-Allow-Headers header. func (o CorsPolicyPtrOutput) AllowHeaders() pulumi.StringArrayOutput { return o.ApplyT(func(v *CorsPolicy) []string { if v == nil { return nil } return v.AllowHeaders }).(pulumi.StringArrayOutput) } // Specifies the content for the Access-Control-Allow-Methods header. func (o CorsPolicyPtrOutput) AllowMethods() pulumi.StringArrayOutput { return o.ApplyT(func(v *CorsPolicy) []string { if v == nil { return nil } return v.AllowMethods }).(pulumi.StringArrayOutput) } // Specifies a regular expression that matches allowed origins. For more information about the regular expression syntax, see Syntax. An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. func (o CorsPolicyPtrOutput) AllowOriginRegexes() pulumi.StringArrayOutput { return o.ApplyT(func(v *CorsPolicy) []string { if v == nil { return nil } return v.AllowOriginRegexes }).(pulumi.StringArrayOutput) } // Specifies the list of origins that is allowed to do CORS requests. An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. func (o CorsPolicyPtrOutput) AllowOrigins() pulumi.StringArrayOutput { return o.ApplyT(func(v *CorsPolicy) []string { if v == nil { return nil } return v.AllowOrigins }).(pulumi.StringArrayOutput) } // If true, the setting specifies the CORS policy is disabled. The default value of false, which indicates that the CORS policy is in effect. func (o CorsPolicyPtrOutput) Disabled() pulumi.BoolPtrOutput { return o.ApplyT(func(v *CorsPolicy) *bool { if v == nil { return nil } return v.Disabled }).(pulumi.BoolPtrOutput) } // Specifies the content for the Access-Control-Expose-Headers header. func (o CorsPolicyPtrOutput) ExposeHeaders() pulumi.StringArrayOutput { return o.ApplyT(func(v *CorsPolicy) []string { if v == nil { return nil } return v.ExposeHeaders }).(pulumi.StringArrayOutput) } // Specifies how long results of a preflight request can be cached in seconds. This field translates to the Access-Control-Max-Age header. func (o CorsPolicyPtrOutput) MaxAge() pulumi.IntPtrOutput { return o.ApplyT(func(v *CorsPolicy) *int { if v == nil { return nil } return v.MaxAge }).(pulumi.IntPtrOutput) } // The specification for allowing client-side cross-origin requests. For more information about the W3C recommendation for cross-origin resource sharing (CORS), see Fetch API Living Standard. type CorsPolicyResponse struct { // In response to a preflight request, setting this to true indicates that the actual request can include user credentials. This field translates to the Access-Control-Allow-Credentials header. Default is false. AllowCredentials bool `pulumi:"allowCredentials"` // Specifies the content for the Access-Control-Allow-Headers header. AllowHeaders []string `pulumi:"allowHeaders"` // Specifies the content for the Access-Control-Allow-Methods header. AllowMethods []string `pulumi:"allowMethods"` // Specifies a regular expression that matches allowed origins. For more information about the regular expression syntax, see Syntax. An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. AllowOriginRegexes []string `pulumi:"allowOriginRegexes"` // Specifies the list of origins that is allowed to do CORS requests. An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. AllowOrigins []string `pulumi:"allowOrigins"` // If true, the setting specifies the CORS policy is disabled. The default value of false, which indicates that the CORS policy is in effect. Disabled bool `pulumi:"disabled"` // Specifies the content for the Access-Control-Expose-Headers header. ExposeHeaders []string `pulumi:"exposeHeaders"` // Specifies how long results of a preflight request can be cached in seconds. This field translates to the Access-Control-Max-Age header. MaxAge int `pulumi:"maxAge"` } // The specification for allowing client-side cross-origin requests. For more information about the W3C recommendation for cross-origin resource sharing (CORS), see Fetch API Living Standard. type CorsPolicyResponseOutput struct{ *pulumi.OutputState } func (CorsPolicyResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*CorsPolicyResponse)(nil)).Elem() } func (o CorsPolicyResponseOutput) ToCorsPolicyResponseOutput() CorsPolicyResponseOutput { return o } func (o CorsPolicyResponseOutput) ToCorsPolicyResponseOutputWithContext(ctx context.Context) CorsPolicyResponseOutput { return o } // In response to a preflight request, setting this to true indicates that the actual request can include user credentials. This field translates to the Access-Control-Allow-Credentials header. Default is false. func (o CorsPolicyResponseOutput) AllowCredentials() pulumi.BoolOutput { return o.ApplyT(func(v CorsPolicyResponse) bool { return v.AllowCredentials }).(pulumi.BoolOutput) } // Specifies the content for the Access-Control-Allow-Headers header. func (o CorsPolicyResponseOutput) AllowHeaders() pulumi.StringArrayOutput { return o.ApplyT(func(v CorsPolicyResponse) []string { return v.AllowHeaders }).(pulumi.StringArrayOutput) } // Specifies the content for the Access-Control-Allow-Methods header. func (o CorsPolicyResponseOutput) AllowMethods() pulumi.StringArrayOutput { return o.ApplyT(func(v CorsPolicyResponse) []string { return v.AllowMethods }).(pulumi.StringArrayOutput) } // Specifies a regular expression that matches allowed origins. For more information about the regular expression syntax, see Syntax. An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. func (o CorsPolicyResponseOutput) AllowOriginRegexes() pulumi.StringArrayOutput { return o.ApplyT(func(v CorsPolicyResponse) []string { return v.AllowOriginRegexes }).(pulumi.StringArrayOutput) } // Specifies the list of origins that is allowed to do CORS requests. An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. func (o CorsPolicyResponseOutput) AllowOrigins() pulumi.StringArrayOutput { return o.ApplyT(func(v CorsPolicyResponse) []string { return v.AllowOrigins }).(pulumi.StringArrayOutput) } // If true, the setting specifies the CORS policy is disabled. The default value of false, which indicates that the CORS policy is in effect. func (o CorsPolicyResponseOutput) Disabled() pulumi.BoolOutput { return o.ApplyT(func(v CorsPolicyResponse) bool { return v.Disabled }).(pulumi.BoolOutput) } // Specifies the content for the Access-Control-Expose-Headers header. func (o CorsPolicyResponseOutput) ExposeHeaders() pulumi.StringArrayOutput { return o.ApplyT(func(v CorsPolicyResponse) []string { return v.ExposeHeaders }).(pulumi.StringArrayOutput) } // Specifies how long results of a preflight request can be cached in seconds. This field translates to the Access-Control-Max-Age header. func (o CorsPolicyResponseOutput) MaxAge() pulumi.IntOutput { return o.ApplyT(func(v CorsPolicyResponse) int { return v.MaxAge }).(pulumi.IntOutput) } type CustomerEncryptionKey struct { // The name of the encryption key that is stored in Google Cloud KMS. For example: "kmsKeyName": "projects/kms_project_id/locations/region/keyRings/ key_region/cryptoKeys/key KmsKeyName *string `pulumi:"kmsKeyName"` // The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used. For example: "kmsKeyServiceAccount": "name@project_id.iam.gserviceaccount.com/ KmsKeyServiceAccount *string `pulumi:"kmsKeyServiceAccount"` // Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource. You can provide either the rawKey or the rsaEncryptedKey. For example: "rawKey": "SGVsbG8gZnJvbSBHb29nbGUgQ2xvdWQgUGxhdGZvcm0=" RawKey *string `pulumi:"rawKey"` // Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource. You can provide either the rawKey or the rsaEncryptedKey. For example: "rsaEncryptedKey": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFH z0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoD D6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oe==" The key must meet the following requirements before you can provide it to Compute Engine: 1. The key is wrapped using a RSA public key certificate provided by Google. 2. After being wrapped, the key must be encoded in RFC 4648 base64 encoding. Gets the RSA public key certificate provided by Google at: https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem RsaEncryptedKey *string `pulumi:"rsaEncryptedKey"` } // CustomerEncryptionKeyInput is an input type that accepts CustomerEncryptionKeyArgs and CustomerEncryptionKeyOutput values. // You can construct a concrete instance of `CustomerEncryptionKeyInput` via: // // CustomerEncryptionKeyArgs{...} type CustomerEncryptionKeyInput interface { pulumi.Input ToCustomerEncryptionKeyOutput() CustomerEncryptionKeyOutput ToCustomerEncryptionKeyOutputWithContext(context.Context) CustomerEncryptionKeyOutput } type CustomerEncryptionKeyArgs struct { // The name of the encryption key that is stored in Google Cloud KMS. For example: "kmsKeyName": "projects/kms_project_id/locations/region/keyRings/ key_region/cryptoKeys/key KmsKeyName pulumi.StringPtrInput `pulumi:"kmsKeyName"` // The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used. For example: "kmsKeyServiceAccount": "name@project_id.iam.gserviceaccount.com/ KmsKeyServiceAccount pulumi.StringPtrInput `pulumi:"kmsKeyServiceAccount"` // Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource. You can provide either the rawKey or the rsaEncryptedKey. For example: "rawKey": "SGVsbG8gZnJvbSBHb29nbGUgQ2xvdWQgUGxhdGZvcm0=" RawKey pulumi.StringPtrInput `pulumi:"rawKey"` // Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource. You can provide either the rawKey or the rsaEncryptedKey. For example: "rsaEncryptedKey": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFH z0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoD D6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oe==" The key must meet the following requirements before you can provide it to Compute Engine: 1. The key is wrapped using a RSA public key certificate provided by Google. 2. After being wrapped, the key must be encoded in RFC 4648 base64 encoding. Gets the RSA public key certificate provided by Google at: https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem RsaEncryptedKey pulumi.StringPtrInput `pulumi:"rsaEncryptedKey"` } func (CustomerEncryptionKeyArgs) ElementType() reflect.Type { return reflect.TypeOf((*CustomerEncryptionKey)(nil)).Elem() } func (i CustomerEncryptionKeyArgs) ToCustomerEncryptionKeyOutput() CustomerEncryptionKeyOutput { return i.ToCustomerEncryptionKeyOutputWithContext(context.Background()) } func (i CustomerEncryptionKeyArgs) ToCustomerEncryptionKeyOutputWithContext(ctx context.Context) CustomerEncryptionKeyOutput { return pulumi.ToOutputWithContext(ctx, i).(CustomerEncryptionKeyOutput) } func (i CustomerEncryptionKeyArgs) ToCustomerEncryptionKeyPtrOutput() CustomerEncryptionKeyPtrOutput { return i.ToCustomerEncryptionKeyPtrOutputWithContext(context.Background()) } func (i CustomerEncryptionKeyArgs) ToCustomerEncryptionKeyPtrOutputWithContext(ctx context.Context) CustomerEncryptionKeyPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(CustomerEncryptionKeyOutput).ToCustomerEncryptionKeyPtrOutputWithContext(ctx) } // CustomerEncryptionKeyPtrInput is an input type that accepts CustomerEncryptionKeyArgs, CustomerEncryptionKeyPtr and CustomerEncryptionKeyPtrOutput values. // You can construct a concrete instance of `CustomerEncryptionKeyPtrInput` via: // // CustomerEncryptionKeyArgs{...} // // or: // // nil type CustomerEncryptionKeyPtrInput interface { pulumi.Input ToCustomerEncryptionKeyPtrOutput() CustomerEncryptionKeyPtrOutput ToCustomerEncryptionKeyPtrOutputWithContext(context.Context) CustomerEncryptionKeyPtrOutput } type customerEncryptionKeyPtrType CustomerEncryptionKeyArgs func CustomerEncryptionKeyPtr(v *CustomerEncryptionKeyArgs) CustomerEncryptionKeyPtrInput { return (*customerEncryptionKeyPtrType)(v) } func (*customerEncryptionKeyPtrType) ElementType() reflect.Type { return reflect.TypeOf((**CustomerEncryptionKey)(nil)).Elem() } func (i *customerEncryptionKeyPtrType) ToCustomerEncryptionKeyPtrOutput() CustomerEncryptionKeyPtrOutput { return i.ToCustomerEncryptionKeyPtrOutputWithContext(context.Background()) } func (i *customerEncryptionKeyPtrType) ToCustomerEncryptionKeyPtrOutputWithContext(ctx context.Context) CustomerEncryptionKeyPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(CustomerEncryptionKeyPtrOutput) } type CustomerEncryptionKeyOutput struct{ *pulumi.OutputState } func (CustomerEncryptionKeyOutput) ElementType() reflect.Type { return reflect.TypeOf((*CustomerEncryptionKey)(nil)).Elem() } func (o CustomerEncryptionKeyOutput) ToCustomerEncryptionKeyOutput() CustomerEncryptionKeyOutput { return o } func (o CustomerEncryptionKeyOutput) ToCustomerEncryptionKeyOutputWithContext(ctx context.Context) CustomerEncryptionKeyOutput { return o } func (o CustomerEncryptionKeyOutput) ToCustomerEncryptionKeyPtrOutput() CustomerEncryptionKeyPtrOutput { return o.ToCustomerEncryptionKeyPtrOutputWithContext(context.Background()) } func (o CustomerEncryptionKeyOutput) ToCustomerEncryptionKeyPtrOutputWithContext(ctx context.Context) CustomerEncryptionKeyPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v CustomerEncryptionKey) *CustomerEncryptionKey { return &v }).(CustomerEncryptionKeyPtrOutput) } // The name of the encryption key that is stored in Google Cloud KMS. For example: "kmsKeyName": "projects/kms_project_id/locations/region/keyRings/ key_region/cryptoKeys/key func (o CustomerEncryptionKeyOutput) KmsKeyName() pulumi.StringPtrOutput { return o.ApplyT(func(v CustomerEncryptionKey) *string { return v.KmsKeyName }).(pulumi.StringPtrOutput) } // The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used. For example: "kmsKeyServiceAccount": "name@project_id.iam.gserviceaccount.com/ func (o CustomerEncryptionKeyOutput) KmsKeyServiceAccount() pulumi.StringPtrOutput { return o.ApplyT(func(v CustomerEncryptionKey) *string { return v.KmsKeyServiceAccount }).(pulumi.StringPtrOutput) } // Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource. You can provide either the rawKey or the rsaEncryptedKey. For example: "rawKey": "SGVsbG8gZnJvbSBHb29nbGUgQ2xvdWQgUGxhdGZvcm0=" func (o CustomerEncryptionKeyOutput) RawKey() pulumi.StringPtrOutput { return o.ApplyT(func(v CustomerEncryptionKey) *string { return v.RawKey }).(pulumi.StringPtrOutput) } // Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource. You can provide either the rawKey or the rsaEncryptedKey. For example: "rsaEncryptedKey": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFH z0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoD D6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oe==" The key must meet the following requirements before you can provide it to Compute Engine: 1. The key is wrapped using a RSA public key certificate provided by Google. 2. After being wrapped, the key must be encoded in RFC 4648 base64 encoding. Gets the RSA public key certificate provided by Google at: https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem func (o CustomerEncryptionKeyOutput) RsaEncryptedKey() pulumi.StringPtrOutput { return o.ApplyT(func(v CustomerEncryptionKey) *string { return v.RsaEncryptedKey }).(pulumi.StringPtrOutput) } type CustomerEncryptionKeyPtrOutput struct{ *pulumi.OutputState } func (CustomerEncryptionKeyPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**CustomerEncryptionKey)(nil)).Elem() } func (o CustomerEncryptionKeyPtrOutput) ToCustomerEncryptionKeyPtrOutput() CustomerEncryptionKeyPtrOutput { return o } func (o CustomerEncryptionKeyPtrOutput) ToCustomerEncryptionKeyPtrOutputWithContext(ctx context.Context) CustomerEncryptionKeyPtrOutput { return o } func (o CustomerEncryptionKeyPtrOutput) Elem() CustomerEncryptionKeyOutput { return o.ApplyT(func(v *CustomerEncryptionKey) CustomerEncryptionKey { if v != nil { return *v } var ret CustomerEncryptionKey return ret }).(CustomerEncryptionKeyOutput) } // The name of the encryption key that is stored in Google Cloud KMS. For example: "kmsKeyName": "projects/kms_project_id/locations/region/keyRings/ key_region/cryptoKeys/key func (o CustomerEncryptionKeyPtrOutput) KmsKeyName() pulumi.StringPtrOutput { return o.ApplyT(func(v *CustomerEncryptionKey) *string { if v == nil { return nil } return v.KmsKeyName }).(pulumi.StringPtrOutput) } // The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used. For example: "kmsKeyServiceAccount": "name@project_id.iam.gserviceaccount.com/ func (o CustomerEncryptionKeyPtrOutput) KmsKeyServiceAccount() pulumi.StringPtrOutput { return o.ApplyT(func(v *CustomerEncryptionKey) *string { if v == nil { return nil } return v.KmsKeyServiceAccount }).(pulumi.StringPtrOutput) } // Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource. You can provide either the rawKey or the rsaEncryptedKey. For example: "rawKey": "SGVsbG8gZnJvbSBHb29nbGUgQ2xvdWQgUGxhdGZvcm0=" func (o CustomerEncryptionKeyPtrOutput) RawKey() pulumi.StringPtrOutput { return o.ApplyT(func(v *CustomerEncryptionKey) *string { if v == nil { return nil } return v.RawKey }).(pulumi.StringPtrOutput) } // Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource. You can provide either the rawKey or the rsaEncryptedKey. For example: "rsaEncryptedKey": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFH z0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoD D6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oe==" The key must meet the following requirements before you can provide it to Compute Engine: 1. The key is wrapped using a RSA public key certificate provided by Google. 2. After being wrapped, the key must be encoded in RFC 4648 base64 encoding. Gets the RSA public key certificate provided by Google at: https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem func (o CustomerEncryptionKeyPtrOutput) RsaEncryptedKey() pulumi.StringPtrOutput { return o.ApplyT(func(v *CustomerEncryptionKey) *string { if v == nil { return nil } return v.RsaEncryptedKey }).(pulumi.StringPtrOutput) } type CustomerEncryptionKeyResponse struct { // The name of the encryption key that is stored in Google Cloud KMS. For example: "kmsKeyName": "projects/kms_project_id/locations/region/keyRings/ key_region/cryptoKeys/key KmsKeyName string `pulumi:"kmsKeyName"` // The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used. For example: "kmsKeyServiceAccount": "name@project_id.iam.gserviceaccount.com/ KmsKeyServiceAccount string `pulumi:"kmsKeyServiceAccount"` // Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource. You can provide either the rawKey or the rsaEncryptedKey. For example: "rawKey": "SGVsbG8gZnJvbSBHb29nbGUgQ2xvdWQgUGxhdGZvcm0=" RawKey string `pulumi:"rawKey"` // Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource. You can provide either the rawKey or the rsaEncryptedKey. For example: "rsaEncryptedKey": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFH z0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoD D6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oe==" The key must meet the following requirements before you can provide it to Compute Engine: 1. The key is wrapped using a RSA public key certificate provided by Google. 2. After being wrapped, the key must be encoded in RFC 4648 base64 encoding. Gets the RSA public key certificate provided by Google at: https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem RsaEncryptedKey string `pulumi:"rsaEncryptedKey"` // [Output only] The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key that protects this resource. Sha256 string `pulumi:"sha256"` } type CustomerEncryptionKeyResponseOutput struct{ *pulumi.OutputState } func (CustomerEncryptionKeyResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*CustomerEncryptionKeyResponse)(nil)).Elem() } func (o CustomerEncryptionKeyResponseOutput) ToCustomerEncryptionKeyResponseOutput() CustomerEncryptionKeyResponseOutput { return o } func (o CustomerEncryptionKeyResponseOutput) ToCustomerEncryptionKeyResponseOutputWithContext(ctx context.Context) CustomerEncryptionKeyResponseOutput { return o } // The name of the encryption key that is stored in Google Cloud KMS. For example: "kmsKeyName": "projects/kms_project_id/locations/region/keyRings/ key_region/cryptoKeys/key func (o CustomerEncryptionKeyResponseOutput) KmsKeyName() pulumi.StringOutput { return o.ApplyT(func(v CustomerEncryptionKeyResponse) string { return v.KmsKeyName }).(pulumi.StringOutput) } // The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used. For example: "kmsKeyServiceAccount": "name@project_id.iam.gserviceaccount.com/ func (o CustomerEncryptionKeyResponseOutput) KmsKeyServiceAccount() pulumi.StringOutput { return o.ApplyT(func(v CustomerEncryptionKeyResponse) string { return v.KmsKeyServiceAccount }).(pulumi.StringOutput) } // Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource. You can provide either the rawKey or the rsaEncryptedKey. For example: "rawKey": "SGVsbG8gZnJvbSBHb29nbGUgQ2xvdWQgUGxhdGZvcm0=" func (o CustomerEncryptionKeyResponseOutput) RawKey() pulumi.StringOutput { return o.ApplyT(func(v CustomerEncryptionKeyResponse) string { return v.RawKey }).(pulumi.StringOutput) } // Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource. You can provide either the rawKey or the rsaEncryptedKey. For example: "rsaEncryptedKey": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFH z0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoD D6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oe==" The key must meet the following requirements before you can provide it to Compute Engine: 1. The key is wrapped using a RSA public key certificate provided by Google. 2. After being wrapped, the key must be encoded in RFC 4648 base64 encoding. Gets the RSA public key certificate provided by Google at: https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem func (o CustomerEncryptionKeyResponseOutput) RsaEncryptedKey() pulumi.StringOutput { return o.ApplyT(func(v CustomerEncryptionKeyResponse) string { return v.RsaEncryptedKey }).(pulumi.StringOutput) } // [Output only] The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key that protects this resource. func (o CustomerEncryptionKeyResponseOutput) Sha256() pulumi.StringOutput { return o.ApplyT(func(v CustomerEncryptionKeyResponse) string { return v.Sha256 }).(pulumi.StringOutput) } // Deprecation status for a public resource. type DeprecationStatus struct { // An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DELETED. This is only informational and the status will not change unless the client explicitly changes it. Deleted *string `pulumi:"deleted"` // An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DEPRECATED. This is only informational and the status will not change unless the client explicitly changes it. Deprecated *string `pulumi:"deprecated"` // An optional RFC3339 timestamp on or after which the state of this resource is intended to change to OBSOLETE. This is only informational and the status will not change unless the client explicitly changes it. Obsolete *string `pulumi:"obsolete"` // The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource. Replacement *string `pulumi:"replacement"` // The deprecation state of this resource. This can be ACTIVE, DEPRECATED, OBSOLETE, or DELETED. Operations which communicate the end of life date for an image, can use ACTIVE. Operations which create a new resource using a DEPRECATED resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. Operations which use OBSOLETE or DELETED resources will be rejected and result in an error. State *DeprecationStatusState `pulumi:"state"` } // DeprecationStatusInput is an input type that accepts DeprecationStatusArgs and DeprecationStatusOutput values. // You can construct a concrete instance of `DeprecationStatusInput` via: // // DeprecationStatusArgs{...} type DeprecationStatusInput interface { pulumi.Input ToDeprecationStatusOutput() DeprecationStatusOutput ToDeprecationStatusOutputWithContext(context.Context) DeprecationStatusOutput } // Deprecation status for a public resource. type DeprecationStatusArgs struct { // An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DELETED. This is only informational and the status will not change unless the client explicitly changes it. Deleted pulumi.StringPtrInput `pulumi:"deleted"` // An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DEPRECATED. This is only informational and the status will not change unless the client explicitly changes it. Deprecated pulumi.StringPtrInput `pulumi:"deprecated"` // An optional RFC3339 timestamp on or after which the state of this resource is intended to change to OBSOLETE. This is only informational and the status will not change unless the client explicitly changes it. Obsolete pulumi.StringPtrInput `pulumi:"obsolete"` // The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource. Replacement pulumi.StringPtrInput `pulumi:"replacement"` // The deprecation state of this resource. This can be ACTIVE, DEPRECATED, OBSOLETE, or DELETED. Operations which communicate the end of life date for an image, can use ACTIVE. Operations which create a new resource using a DEPRECATED resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. Operations which use OBSOLETE or DELETED resources will be rejected and result in an error. State DeprecationStatusStatePtrInput `pulumi:"state"` } func (DeprecationStatusArgs) ElementType() reflect.Type { return reflect.TypeOf((*DeprecationStatus)(nil)).Elem() } func (i DeprecationStatusArgs) ToDeprecationStatusOutput() DeprecationStatusOutput { return i.ToDeprecationStatusOutputWithContext(context.Background()) } func (i DeprecationStatusArgs) ToDeprecationStatusOutputWithContext(ctx context.Context) DeprecationStatusOutput { return pulumi.ToOutputWithContext(ctx, i).(DeprecationStatusOutput) } func (i DeprecationStatusArgs) ToDeprecationStatusPtrOutput() DeprecationStatusPtrOutput { return i.ToDeprecationStatusPtrOutputWithContext(context.Background()) } func (i DeprecationStatusArgs) ToDeprecationStatusPtrOutputWithContext(ctx context.Context) DeprecationStatusPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(DeprecationStatusOutput).ToDeprecationStatusPtrOutputWithContext(ctx) } // DeprecationStatusPtrInput is an input type that accepts DeprecationStatusArgs, DeprecationStatusPtr and DeprecationStatusPtrOutput values. // You can construct a concrete instance of `DeprecationStatusPtrInput` via: // // DeprecationStatusArgs{...} // // or: // // nil type DeprecationStatusPtrInput interface { pulumi.Input ToDeprecationStatusPtrOutput() DeprecationStatusPtrOutput ToDeprecationStatusPtrOutputWithContext(context.Context) DeprecationStatusPtrOutput } type deprecationStatusPtrType DeprecationStatusArgs func DeprecationStatusPtr(v *DeprecationStatusArgs) DeprecationStatusPtrInput { return (*deprecationStatusPtrType)(v) } func (*deprecationStatusPtrType) ElementType() reflect.Type { return reflect.TypeOf((**DeprecationStatus)(nil)).Elem() } func (i *deprecationStatusPtrType) ToDeprecationStatusPtrOutput() DeprecationStatusPtrOutput { return i.ToDeprecationStatusPtrOutputWithContext(context.Background()) } func (i *deprecationStatusPtrType) ToDeprecationStatusPtrOutputWithContext(ctx context.Context) DeprecationStatusPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(DeprecationStatusPtrOutput) } // Deprecation status for a public resource. type DeprecationStatusOutput struct{ *pulumi.OutputState } func (DeprecationStatusOutput) ElementType() reflect.Type { return reflect.TypeOf((*DeprecationStatus)(nil)).Elem() } func (o DeprecationStatusOutput) ToDeprecationStatusOutput() DeprecationStatusOutput { return o } func (o DeprecationStatusOutput) ToDeprecationStatusOutputWithContext(ctx context.Context) DeprecationStatusOutput { return o } func (o DeprecationStatusOutput) ToDeprecationStatusPtrOutput() DeprecationStatusPtrOutput { return o.ToDeprecationStatusPtrOutputWithContext(context.Background()) } func (o DeprecationStatusOutput) ToDeprecationStatusPtrOutputWithContext(ctx context.Context) DeprecationStatusPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v DeprecationStatus) *DeprecationStatus { return &v }).(DeprecationStatusPtrOutput) } // An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DELETED. This is only informational and the status will not change unless the client explicitly changes it. func (o DeprecationStatusOutput) Deleted() pulumi.StringPtrOutput { return o.ApplyT(func(v DeprecationStatus) *string { return v.Deleted }).(pulumi.StringPtrOutput) } // An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DEPRECATED. This is only informational and the status will not change unless the client explicitly changes it. func (o DeprecationStatusOutput) Deprecated() pulumi.StringPtrOutput { return o.ApplyT(func(v DeprecationStatus) *string { return v.Deprecated }).(pulumi.StringPtrOutput) } // An optional RFC3339 timestamp on or after which the state of this resource is intended to change to OBSOLETE. This is only informational and the status will not change unless the client explicitly changes it. func (o DeprecationStatusOutput) Obsolete() pulumi.StringPtrOutput { return o.ApplyT(func(v DeprecationStatus) *string { return v.Obsolete }).(pulumi.StringPtrOutput) } // The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource. func (o DeprecationStatusOutput) Replacement() pulumi.StringPtrOutput { return o.ApplyT(func(v DeprecationStatus) *string { return v.Replacement }).(pulumi.StringPtrOutput) } // The deprecation state of this resource. This can be ACTIVE, DEPRECATED, OBSOLETE, or DELETED. Operations which communicate the end of life date for an image, can use ACTIVE. Operations which create a new resource using a DEPRECATED resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. Operations which use OBSOLETE or DELETED resources will be rejected and result in an error. func (o DeprecationStatusOutput) State() DeprecationStatusStatePtrOutput { return o.ApplyT(func(v DeprecationStatus) *DeprecationStatusState { return v.State }).(DeprecationStatusStatePtrOutput) } type DeprecationStatusPtrOutput struct{ *pulumi.OutputState } func (DeprecationStatusPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**DeprecationStatus)(nil)).Elem() } func (o DeprecationStatusPtrOutput) ToDeprecationStatusPtrOutput() DeprecationStatusPtrOutput { return o } func (o DeprecationStatusPtrOutput) ToDeprecationStatusPtrOutputWithContext(ctx context.Context) DeprecationStatusPtrOutput { return o } func (o DeprecationStatusPtrOutput) Elem() DeprecationStatusOutput { return o.ApplyT(func(v *DeprecationStatus) DeprecationStatus { if v != nil { return *v } var ret DeprecationStatus return ret }).(DeprecationStatusOutput) } // An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DELETED. This is only informational and the status will not change unless the client explicitly changes it. func (o DeprecationStatusPtrOutput) Deleted() pulumi.StringPtrOutput { return o.ApplyT(func(v *DeprecationStatus) *string { if v == nil { return nil } return v.Deleted }).(pulumi.StringPtrOutput) } // An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DEPRECATED. This is only informational and the status will not change unless the client explicitly changes it. func (o DeprecationStatusPtrOutput) Deprecated() pulumi.StringPtrOutput { return o.ApplyT(func(v *DeprecationStatus) *string { if v == nil { return nil } return v.Deprecated }).(pulumi.StringPtrOutput) } // An optional RFC3339 timestamp on or after which the state of this resource is intended to change to OBSOLETE. This is only informational and the status will not change unless the client explicitly changes it. func (o DeprecationStatusPtrOutput) Obsolete() pulumi.StringPtrOutput { return o.ApplyT(func(v *DeprecationStatus) *string { if v == nil { return nil } return v.Obsolete }).(pulumi.StringPtrOutput) } // The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource. func (o DeprecationStatusPtrOutput) Replacement() pulumi.StringPtrOutput { return o.ApplyT(func(v *DeprecationStatus) *string { if v == nil { return nil } return v.Replacement }).(pulumi.StringPtrOutput) } // The deprecation state of this resource. This can be ACTIVE, DEPRECATED, OBSOLETE, or DELETED. Operations which communicate the end of life date for an image, can use ACTIVE. Operations which create a new resource using a DEPRECATED resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. Operations which use OBSOLETE or DELETED resources will be rejected and result in an error. func (o DeprecationStatusPtrOutput) State() DeprecationStatusStatePtrOutput { return o.ApplyT(func(v *DeprecationStatus) *DeprecationStatusState { if v == nil { return nil } return v.State }).(DeprecationStatusStatePtrOutput) } // Deprecation status for a public resource. type DeprecationStatusResponse struct { // An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DELETED. This is only informational and the status will not change unless the client explicitly changes it. Deleted string `pulumi:"deleted"` // An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DEPRECATED. This is only informational and the status will not change unless the client explicitly changes it. Deprecated string `pulumi:"deprecated"` // An optional RFC3339 timestamp on or after which the state of this resource is intended to change to OBSOLETE. This is only informational and the status will not change unless the client explicitly changes it. Obsolete string `pulumi:"obsolete"` // The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource. Replacement string `pulumi:"replacement"` // The deprecation state of this resource. This can be ACTIVE, DEPRECATED, OBSOLETE, or DELETED. Operations which communicate the end of life date for an image, can use ACTIVE. Operations which create a new resource using a DEPRECATED resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. Operations which use OBSOLETE or DELETED resources will be rejected and result in an error. State string `pulumi:"state"` } // Deprecation status for a public resource. type DeprecationStatusResponseOutput struct{ *pulumi.OutputState } func (DeprecationStatusResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*DeprecationStatusResponse)(nil)).Elem() } func (o DeprecationStatusResponseOutput) ToDeprecationStatusResponseOutput() DeprecationStatusResponseOutput { return o } func (o DeprecationStatusResponseOutput) ToDeprecationStatusResponseOutputWithContext(ctx context.Context) DeprecationStatusResponseOutput { return o } // An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DELETED. This is only informational and the status will not change unless the client explicitly changes it. func (o DeprecationStatusResponseOutput) Deleted() pulumi.StringOutput { return o.ApplyT(func(v DeprecationStatusResponse) string { return v.Deleted }).(pulumi.StringOutput) } // An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DEPRECATED. This is only informational and the status will not change unless the client explicitly changes it. func (o DeprecationStatusResponseOutput) Deprecated() pulumi.StringOutput { return o.ApplyT(func(v DeprecationStatusResponse) string { return v.Deprecated }).(pulumi.StringOutput) } // An optional RFC3339 timestamp on or after which the state of this resource is intended to change to OBSOLETE. This is only informational and the status will not change unless the client explicitly changes it. func (o DeprecationStatusResponseOutput) Obsolete() pulumi.StringOutput { return o.ApplyT(func(v DeprecationStatusResponse) string { return v.Obsolete }).(pulumi.StringOutput) } // The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource. func (o DeprecationStatusResponseOutput) Replacement() pulumi.StringOutput { return o.ApplyT(func(v DeprecationStatusResponse) string { return v.Replacement }).(pulumi.StringOutput) } // The deprecation state of this resource. This can be ACTIVE, DEPRECATED, OBSOLETE, or DELETED. Operations which communicate the end of life date for an image, can use ACTIVE. Operations which create a new resource using a DEPRECATED resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. Operations which use OBSOLETE or DELETED resources will be rejected and result in an error. func (o DeprecationStatusResponseOutput) State() pulumi.StringOutput { return o.ApplyT(func(v DeprecationStatusResponse) string { return v.State }).(pulumi.StringOutput) } // A specification of the desired way to instantiate a disk in the instance template when its created from a source instance. type DiskInstantiationConfig struct { // Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance). AutoDelete *bool `pulumi:"autoDelete"` // The custom source image to be used to restore this disk when instantiating this instance template. CustomImage *string `pulumi:"customImage"` // Specifies the device name of the disk to which the configurations apply to. DeviceName *string `pulumi:"deviceName"` // Specifies whether to include the disk and what image to use. Possible values are: - source-image: to use the same image that was used to create the source instance's corresponding disk. Applicable to the boot disk and additional read-write disks. - source-image-family: to use the same image family that was used to create the source instance's corresponding disk. Applicable to the boot disk and additional read-write disks. - custom-image: to use a user-provided image url for disk creation. Applicable to the boot disk and additional read-write disks. - attach-read-only: to attach a read-only disk. Applicable to read-only disks. - do-not-include: to exclude a disk from the template. Applicable to additional read-write disks, local SSDs, and read-only disks. InstantiateFrom *DiskInstantiationConfigInstantiateFrom `pulumi:"instantiateFrom"` } // DiskInstantiationConfigInput is an input type that accepts DiskInstantiationConfigArgs and DiskInstantiationConfigOutput values. // You can construct a concrete instance of `DiskInstantiationConfigInput` via: // // DiskInstantiationConfigArgs{...} type DiskInstantiationConfigInput interface { pulumi.Input ToDiskInstantiationConfigOutput() DiskInstantiationConfigOutput ToDiskInstantiationConfigOutputWithContext(context.Context) DiskInstantiationConfigOutput } // A specification of the desired way to instantiate a disk in the instance template when its created from a source instance. type DiskInstantiationConfigArgs struct { // Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance). AutoDelete pulumi.BoolPtrInput `pulumi:"autoDelete"` // The custom source image to be used to restore this disk when instantiating this instance template. CustomImage pulumi.StringPtrInput `pulumi:"customImage"` // Specifies the device name of the disk to which the configurations apply to. DeviceName pulumi.StringPtrInput `pulumi:"deviceName"` // Specifies whether to include the disk and what image to use. Possible values are: - source-image: to use the same image that was used to create the source instance's corresponding disk. Applicable to the boot disk and additional read-write disks. - source-image-family: to use the same image family that was used to create the source instance's corresponding disk. Applicable to the boot disk and additional read-write disks. - custom-image: to use a user-provided image url for disk creation. Applicable to the boot disk and additional read-write disks. - attach-read-only: to attach a read-only disk. Applicable to read-only disks. - do-not-include: to exclude a disk from the template. Applicable to additional read-write disks, local SSDs, and read-only disks. InstantiateFrom DiskInstantiationConfigInstantiateFromPtrInput `pulumi:"instantiateFrom"` } func (DiskInstantiationConfigArgs) ElementType() reflect.Type { return reflect.TypeOf((*DiskInstantiationConfig)(nil)).Elem() } func (i DiskInstantiationConfigArgs) ToDiskInstantiationConfigOutput() DiskInstantiationConfigOutput { return i.ToDiskInstantiationConfigOutputWithContext(context.Background()) } func (i DiskInstantiationConfigArgs) ToDiskInstantiationConfigOutputWithContext(ctx context.Context) DiskInstantiationConfigOutput { return pulumi.ToOutputWithContext(ctx, i).(DiskInstantiationConfigOutput) } // DiskInstantiationConfigArrayInput is an input type that accepts DiskInstantiationConfigArray and DiskInstantiationConfigArrayOutput values. // You can construct a concrete instance of `DiskInstantiationConfigArrayInput` via: // // DiskInstantiationConfigArray{ DiskInstantiationConfigArgs{...} } type DiskInstantiationConfigArrayInput interface { pulumi.Input ToDiskInstantiationConfigArrayOutput() DiskInstantiationConfigArrayOutput ToDiskInstantiationConfigArrayOutputWithContext(context.Context) DiskInstantiationConfigArrayOutput } type DiskInstantiationConfigArray []DiskInstantiationConfigInput func (DiskInstantiationConfigArray) ElementType() reflect.Type { return reflect.TypeOf((*[]DiskInstantiationConfig)(nil)).Elem() } func (i DiskInstantiationConfigArray) ToDiskInstantiationConfigArrayOutput() DiskInstantiationConfigArrayOutput { return i.ToDiskInstantiationConfigArrayOutputWithContext(context.Background()) } func (i DiskInstantiationConfigArray) ToDiskInstantiationConfigArrayOutputWithContext(ctx context.Context) DiskInstantiationConfigArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(DiskInstantiationConfigArrayOutput) } // A specification of the desired way to instantiate a disk in the instance template when its created from a source instance. type DiskInstantiationConfigOutput struct{ *pulumi.OutputState } func (DiskInstantiationConfigOutput) ElementType() reflect.Type { return reflect.TypeOf((*DiskInstantiationConfig)(nil)).Elem() } func (o DiskInstantiationConfigOutput) ToDiskInstantiationConfigOutput() DiskInstantiationConfigOutput { return o } func (o DiskInstantiationConfigOutput) ToDiskInstantiationConfigOutputWithContext(ctx context.Context) DiskInstantiationConfigOutput { return o } // Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance). func (o DiskInstantiationConfigOutput) AutoDelete() pulumi.BoolPtrOutput { return o.ApplyT(func(v DiskInstantiationConfig) *bool { return v.AutoDelete }).(pulumi.BoolPtrOutput) } // The custom source image to be used to restore this disk when instantiating this instance template. func (o DiskInstantiationConfigOutput) CustomImage() pulumi.StringPtrOutput { return o.ApplyT(func(v DiskInstantiationConfig) *string { return v.CustomImage }).(pulumi.StringPtrOutput) } // Specifies the device name of the disk to which the configurations apply to. func (o DiskInstantiationConfigOutput) DeviceName() pulumi.StringPtrOutput { return o.ApplyT(func(v DiskInstantiationConfig) *string { return v.DeviceName }).(pulumi.StringPtrOutput) } // Specifies whether to include the disk and what image to use. Possible values are: - source-image: to use the same image that was used to create the source instance's corresponding disk. Applicable to the boot disk and additional read-write disks. - source-image-family: to use the same image family that was used to create the source instance's corresponding disk. Applicable to the boot disk and additional read-write disks. - custom-image: to use a user-provided image url for disk creation. Applicable to the boot disk and additional read-write disks. - attach-read-only: to attach a read-only disk. Applicable to read-only disks. - do-not-include: to exclude a disk from the template. Applicable to additional read-write disks, local SSDs, and read-only disks. func (o DiskInstantiationConfigOutput) InstantiateFrom() DiskInstantiationConfigInstantiateFromPtrOutput { return o.ApplyT(func(v DiskInstantiationConfig) *DiskInstantiationConfigInstantiateFrom { return v.InstantiateFrom }).(DiskInstantiationConfigInstantiateFromPtrOutput) } type DiskInstantiationConfigArrayOutput struct{ *pulumi.OutputState } func (DiskInstantiationConfigArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]DiskInstantiationConfig)(nil)).Elem() } func (o DiskInstantiationConfigArrayOutput) ToDiskInstantiationConfigArrayOutput() DiskInstantiationConfigArrayOutput { return o } func (o DiskInstantiationConfigArrayOutput) ToDiskInstantiationConfigArrayOutputWithContext(ctx context.Context) DiskInstantiationConfigArrayOutput { return o } func (o DiskInstantiationConfigArrayOutput) Index(i pulumi.IntInput) DiskInstantiationConfigOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) DiskInstantiationConfig { return vs[0].([]DiskInstantiationConfig)[vs[1].(int)] }).(DiskInstantiationConfigOutput) } // A specification of the desired way to instantiate a disk in the instance template when its created from a source instance. type DiskInstantiationConfigResponse struct { // Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance). AutoDelete bool `pulumi:"autoDelete"` // The custom source image to be used to restore this disk when instantiating this instance template. CustomImage string `pulumi:"customImage"` // Specifies the device name of the disk to which the configurations apply to. DeviceName string `pulumi:"deviceName"` // Specifies whether to include the disk and what image to use. Possible values are: - source-image: to use the same image that was used to create the source instance's corresponding disk. Applicable to the boot disk and additional read-write disks. - source-image-family: to use the same image family that was used to create the source instance's corresponding disk. Applicable to the boot disk and additional read-write disks. - custom-image: to use a user-provided image url for disk creation. Applicable to the boot disk and additional read-write disks. - attach-read-only: to attach a read-only disk. Applicable to read-only disks. - do-not-include: to exclude a disk from the template. Applicable to additional read-write disks, local SSDs, and read-only disks. InstantiateFrom string `pulumi:"instantiateFrom"` } // A specification of the desired way to instantiate a disk in the instance template when its created from a source instance. type DiskInstantiationConfigResponseOutput struct{ *pulumi.OutputState } func (DiskInstantiationConfigResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*DiskInstantiationConfigResponse)(nil)).Elem() } func (o DiskInstantiationConfigResponseOutput) ToDiskInstantiationConfigResponseOutput() DiskInstantiationConfigResponseOutput { return o } func (o DiskInstantiationConfigResponseOutput) ToDiskInstantiationConfigResponseOutputWithContext(ctx context.Context) DiskInstantiationConfigResponseOutput { return o } // Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance). func (o DiskInstantiationConfigResponseOutput) AutoDelete() pulumi.BoolOutput { return o.ApplyT(func(v DiskInstantiationConfigResponse) bool { return v.AutoDelete }).(pulumi.BoolOutput) } // The custom source image to be used to restore this disk when instantiating this instance template. func (o DiskInstantiationConfigResponseOutput) CustomImage() pulumi.StringOutput { return o.ApplyT(func(v DiskInstantiationConfigResponse) string { return v.CustomImage }).(pulumi.StringOutput) } // Specifies the device name of the disk to which the configurations apply to. func (o DiskInstantiationConfigResponseOutput) DeviceName() pulumi.StringOutput { return o.ApplyT(func(v DiskInstantiationConfigResponse) string { return v.DeviceName }).(pulumi.StringOutput) } // Specifies whether to include the disk and what image to use. Possible values are: - source-image: to use the same image that was used to create the source instance's corresponding disk. Applicable to the boot disk and additional read-write disks. - source-image-family: to use the same image family that was used to create the source instance's corresponding disk. Applicable to the boot disk and additional read-write disks. - custom-image: to use a user-provided image url for disk creation. Applicable to the boot disk and additional read-write disks. - attach-read-only: to attach a read-only disk. Applicable to read-only disks. - do-not-include: to exclude a disk from the template. Applicable to additional read-write disks, local SSDs, and read-only disks. func (o DiskInstantiationConfigResponseOutput) InstantiateFrom() pulumi.StringOutput { return o.ApplyT(func(v DiskInstantiationConfigResponse) string { return v.InstantiateFrom }).(pulumi.StringOutput) } type DiskInstantiationConfigResponseArrayOutput struct{ *pulumi.OutputState } func (DiskInstantiationConfigResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]DiskInstantiationConfigResponse)(nil)).Elem() } func (o DiskInstantiationConfigResponseArrayOutput) ToDiskInstantiationConfigResponseArrayOutput() DiskInstantiationConfigResponseArrayOutput { return o } func (o DiskInstantiationConfigResponseArrayOutput) ToDiskInstantiationConfigResponseArrayOutputWithContext(ctx context.Context) DiskInstantiationConfigResponseArrayOutput { return o } func (o DiskInstantiationConfigResponseArrayOutput) Index(i pulumi.IntInput) DiskInstantiationConfigResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) DiskInstantiationConfigResponse { return vs[0].([]DiskInstantiationConfigResponse)[vs[1].(int)] }).(DiskInstantiationConfigResponseOutput) } // A set of Display Device options type DisplayDevice struct { // Defines whether the instance has Display enabled. EnableDisplay *bool `pulumi:"enableDisplay"` } // DisplayDeviceInput is an input type that accepts DisplayDeviceArgs and DisplayDeviceOutput values. // You can construct a concrete instance of `DisplayDeviceInput` via: // // DisplayDeviceArgs{...} type DisplayDeviceInput interface { pulumi.Input ToDisplayDeviceOutput() DisplayDeviceOutput ToDisplayDeviceOutputWithContext(context.Context) DisplayDeviceOutput } // A set of Display Device options type DisplayDeviceArgs struct { // Defines whether the instance has Display enabled. EnableDisplay pulumi.BoolPtrInput `pulumi:"enableDisplay"` } func (DisplayDeviceArgs) ElementType() reflect.Type { return reflect.TypeOf((*DisplayDevice)(nil)).Elem() } func (i DisplayDeviceArgs) ToDisplayDeviceOutput() DisplayDeviceOutput { return i.ToDisplayDeviceOutputWithContext(context.Background()) } func (i DisplayDeviceArgs) ToDisplayDeviceOutputWithContext(ctx context.Context) DisplayDeviceOutput { return pulumi.ToOutputWithContext(ctx, i).(DisplayDeviceOutput) } func (i DisplayDeviceArgs) ToDisplayDevicePtrOutput() DisplayDevicePtrOutput { return i.ToDisplayDevicePtrOutputWithContext(context.Background()) } func (i DisplayDeviceArgs) ToDisplayDevicePtrOutputWithContext(ctx context.Context) DisplayDevicePtrOutput { return pulumi.ToOutputWithContext(ctx, i).(DisplayDeviceOutput).ToDisplayDevicePtrOutputWithContext(ctx) } // DisplayDevicePtrInput is an input type that accepts DisplayDeviceArgs, DisplayDevicePtr and DisplayDevicePtrOutput values. // You can construct a concrete instance of `DisplayDevicePtrInput` via: // // DisplayDeviceArgs{...} // // or: // // nil type DisplayDevicePtrInput interface { pulumi.Input ToDisplayDevicePtrOutput() DisplayDevicePtrOutput ToDisplayDevicePtrOutputWithContext(context.Context) DisplayDevicePtrOutput } type displayDevicePtrType DisplayDeviceArgs func DisplayDevicePtr(v *DisplayDeviceArgs) DisplayDevicePtrInput { return (*displayDevicePtrType)(v) } func (*displayDevicePtrType) ElementType() reflect.Type { return reflect.TypeOf((**DisplayDevice)(nil)).Elem() } func (i *displayDevicePtrType) ToDisplayDevicePtrOutput() DisplayDevicePtrOutput { return i.ToDisplayDevicePtrOutputWithContext(context.Background()) } func (i *displayDevicePtrType) ToDisplayDevicePtrOutputWithContext(ctx context.Context) DisplayDevicePtrOutput { return pulumi.ToOutputWithContext(ctx, i).(DisplayDevicePtrOutput) } // A set of Display Device options type DisplayDeviceOutput struct{ *pulumi.OutputState } func (DisplayDeviceOutput) ElementType() reflect.Type { return reflect.TypeOf((*DisplayDevice)(nil)).Elem() } func (o DisplayDeviceOutput) ToDisplayDeviceOutput() DisplayDeviceOutput { return o } func (o DisplayDeviceOutput) ToDisplayDeviceOutputWithContext(ctx context.Context) DisplayDeviceOutput { return o } func (o DisplayDeviceOutput) ToDisplayDevicePtrOutput() DisplayDevicePtrOutput { return o.ToDisplayDevicePtrOutputWithContext(context.Background()) } func (o DisplayDeviceOutput) ToDisplayDevicePtrOutputWithContext(ctx context.Context) DisplayDevicePtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v DisplayDevice) *DisplayDevice { return &v }).(DisplayDevicePtrOutput) } // Defines whether the instance has Display enabled. func (o DisplayDeviceOutput) EnableDisplay() pulumi.BoolPtrOutput { return o.ApplyT(func(v DisplayDevice) *bool { return v.EnableDisplay }).(pulumi.BoolPtrOutput) } type DisplayDevicePtrOutput struct{ *pulumi.OutputState } func (DisplayDevicePtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**DisplayDevice)(nil)).Elem() } func (o DisplayDevicePtrOutput) ToDisplayDevicePtrOutput() DisplayDevicePtrOutput { return o } func (o DisplayDevicePtrOutput) ToDisplayDevicePtrOutputWithContext(ctx context.Context) DisplayDevicePtrOutput { return o } func (o DisplayDevicePtrOutput) Elem() DisplayDeviceOutput { return o.ApplyT(func(v *DisplayDevice) DisplayDevice { if v != nil { return *v } var ret DisplayDevice return ret }).(DisplayDeviceOutput) } // Defines whether the instance has Display enabled. func (o DisplayDevicePtrOutput) EnableDisplay() pulumi.BoolPtrOutput { return o.ApplyT(func(v *DisplayDevice) *bool { if v == nil { return nil } return v.EnableDisplay }).(pulumi.BoolPtrOutput) } // A set of Display Device options type DisplayDeviceResponse struct { // Defines whether the instance has Display enabled. EnableDisplay bool `pulumi:"enableDisplay"` } // A set of Display Device options type DisplayDeviceResponseOutput struct{ *pulumi.OutputState } func (DisplayDeviceResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*DisplayDeviceResponse)(nil)).Elem() } func (o DisplayDeviceResponseOutput) ToDisplayDeviceResponseOutput() DisplayDeviceResponseOutput { return o } func (o DisplayDeviceResponseOutput) ToDisplayDeviceResponseOutputWithContext(ctx context.Context) DisplayDeviceResponseOutput { return o } // Defines whether the instance has Display enabled. func (o DisplayDeviceResponseOutput) EnableDisplay() pulumi.BoolOutput { return o.ApplyT(func(v DisplayDeviceResponse) bool { return v.EnableDisplay }).(pulumi.BoolOutput) } type DistributionPolicy struct { // The distribution shape to which the group converges either proactively or on resize events (depending on the value set in updatePolicy.instanceRedistributionType). TargetShape *DistributionPolicyTargetShape `pulumi:"targetShape"` // Zones where the regional managed instance group will create and manage its instances. Zones []DistributionPolicyZoneConfiguration `pulumi:"zones"` } // DistributionPolicyInput is an input type that accepts DistributionPolicyArgs and DistributionPolicyOutput values. // You can construct a concrete instance of `DistributionPolicyInput` via: // // DistributionPolicyArgs{...} type DistributionPolicyInput interface { pulumi.Input ToDistributionPolicyOutput() DistributionPolicyOutput ToDistributionPolicyOutputWithContext(context.Context) DistributionPolicyOutput } type DistributionPolicyArgs struct { // The distribution shape to which the group converges either proactively or on resize events (depending on the value set in updatePolicy.instanceRedistributionType). TargetShape DistributionPolicyTargetShapePtrInput `pulumi:"targetShape"` // Zones where the regional managed instance group will create and manage its instances. Zones DistributionPolicyZoneConfigurationArrayInput `pulumi:"zones"` } func (DistributionPolicyArgs) ElementType() reflect.Type { return reflect.TypeOf((*DistributionPolicy)(nil)).Elem() } func (i DistributionPolicyArgs) ToDistributionPolicyOutput() DistributionPolicyOutput { return i.ToDistributionPolicyOutputWithContext(context.Background()) } func (i DistributionPolicyArgs) ToDistributionPolicyOutputWithContext(ctx context.Context) DistributionPolicyOutput { return pulumi.ToOutputWithContext(ctx, i).(DistributionPolicyOutput) } func (i DistributionPolicyArgs) ToDistributionPolicyPtrOutput() DistributionPolicyPtrOutput { return i.ToDistributionPolicyPtrOutputWithContext(context.Background()) } func (i DistributionPolicyArgs) ToDistributionPolicyPtrOutputWithContext(ctx context.Context) DistributionPolicyPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(DistributionPolicyOutput).ToDistributionPolicyPtrOutputWithContext(ctx) } // DistributionPolicyPtrInput is an input type that accepts DistributionPolicyArgs, DistributionPolicyPtr and DistributionPolicyPtrOutput values. // You can construct a concrete instance of `DistributionPolicyPtrInput` via: // // DistributionPolicyArgs{...} // // or: // // nil type DistributionPolicyPtrInput interface { pulumi.Input ToDistributionPolicyPtrOutput() DistributionPolicyPtrOutput ToDistributionPolicyPtrOutputWithContext(context.Context) DistributionPolicyPtrOutput } type distributionPolicyPtrType DistributionPolicyArgs func DistributionPolicyPtr(v *DistributionPolicyArgs) DistributionPolicyPtrInput { return (*distributionPolicyPtrType)(v) } func (*distributionPolicyPtrType) ElementType() reflect.Type { return reflect.TypeOf((**DistributionPolicy)(nil)).Elem() } func (i *distributionPolicyPtrType) ToDistributionPolicyPtrOutput() DistributionPolicyPtrOutput { return i.ToDistributionPolicyPtrOutputWithContext(context.Background()) } func (i *distributionPolicyPtrType) ToDistributionPolicyPtrOutputWithContext(ctx context.Context) DistributionPolicyPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(DistributionPolicyPtrOutput) } type DistributionPolicyOutput struct{ *pulumi.OutputState } func (DistributionPolicyOutput) ElementType() reflect.Type { return reflect.TypeOf((*DistributionPolicy)(nil)).Elem() } func (o DistributionPolicyOutput) ToDistributionPolicyOutput() DistributionPolicyOutput { return o } func (o DistributionPolicyOutput) ToDistributionPolicyOutputWithContext(ctx context.Context) DistributionPolicyOutput { return o } func (o DistributionPolicyOutput) ToDistributionPolicyPtrOutput() DistributionPolicyPtrOutput { return o.ToDistributionPolicyPtrOutputWithContext(context.Background()) } func (o DistributionPolicyOutput) ToDistributionPolicyPtrOutputWithContext(ctx context.Context) DistributionPolicyPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v DistributionPolicy) *DistributionPolicy { return &v }).(DistributionPolicyPtrOutput) } // The distribution shape to which the group converges either proactively or on resize events (depending on the value set in updatePolicy.instanceRedistributionType). func (o DistributionPolicyOutput) TargetShape() DistributionPolicyTargetShapePtrOutput { return o.ApplyT(func(v DistributionPolicy) *DistributionPolicyTargetShape { return v.TargetShape }).(DistributionPolicyTargetShapePtrOutput) } // Zones where the regional managed instance group will create and manage its instances. func (o DistributionPolicyOutput) Zones() DistributionPolicyZoneConfigurationArrayOutput { return o.ApplyT(func(v DistributionPolicy) []DistributionPolicyZoneConfiguration { return v.Zones }).(DistributionPolicyZoneConfigurationArrayOutput) } type DistributionPolicyPtrOutput struct{ *pulumi.OutputState } func (DistributionPolicyPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**DistributionPolicy)(nil)).Elem() } func (o DistributionPolicyPtrOutput) ToDistributionPolicyPtrOutput() DistributionPolicyPtrOutput { return o } func (o DistributionPolicyPtrOutput) ToDistributionPolicyPtrOutputWithContext(ctx context.Context) DistributionPolicyPtrOutput { return o } func (o DistributionPolicyPtrOutput) Elem() DistributionPolicyOutput { return o.ApplyT(func(v *DistributionPolicy) DistributionPolicy { if v != nil { return *v } var ret DistributionPolicy return ret }).(DistributionPolicyOutput) } // The distribution shape to which the group converges either proactively or on resize events (depending on the value set in updatePolicy.instanceRedistributionType). func (o DistributionPolicyPtrOutput) TargetShape() DistributionPolicyTargetShapePtrOutput { return o.ApplyT(func(v *DistributionPolicy) *DistributionPolicyTargetShape { if v == nil { return nil } return v.TargetShape }).(DistributionPolicyTargetShapePtrOutput) } // Zones where the regional managed instance group will create and manage its instances. func (o DistributionPolicyPtrOutput) Zones() DistributionPolicyZoneConfigurationArrayOutput { return o.ApplyT(func(v *DistributionPolicy) []DistributionPolicyZoneConfiguration { if v == nil { return nil } return v.Zones }).(DistributionPolicyZoneConfigurationArrayOutput) } type DistributionPolicyResponse struct { // The distribution shape to which the group converges either proactively or on resize events (depending on the value set in updatePolicy.instanceRedistributionType). TargetShape string `pulumi:"targetShape"` // Zones where the regional managed instance group will create and manage its instances. Zones []DistributionPolicyZoneConfigurationResponse `pulumi:"zones"` } type DistributionPolicyResponseOutput struct{ *pulumi.OutputState } func (DistributionPolicyResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*DistributionPolicyResponse)(nil)).Elem() } func (o DistributionPolicyResponseOutput) ToDistributionPolicyResponseOutput() DistributionPolicyResponseOutput { return o } func (o DistributionPolicyResponseOutput) ToDistributionPolicyResponseOutputWithContext(ctx context.Context) DistributionPolicyResponseOutput { return o } // The distribution shape to which the group converges either proactively or on resize events (depending on the value set in updatePolicy.instanceRedistributionType). func (o DistributionPolicyResponseOutput) TargetShape() pulumi.StringOutput { return o.ApplyT(func(v DistributionPolicyResponse) string { return v.TargetShape }).(pulumi.StringOutput) } // Zones where the regional managed instance group will create and manage its instances. func (o DistributionPolicyResponseOutput) Zones() DistributionPolicyZoneConfigurationResponseArrayOutput { return o.ApplyT(func(v DistributionPolicyResponse) []DistributionPolicyZoneConfigurationResponse { return v.Zones }).(DistributionPolicyZoneConfigurationResponseArrayOutput) } type DistributionPolicyZoneConfiguration struct { // The URL of the zone. The zone must exist in the region where the managed instance group is located. Zone *string `pulumi:"zone"` } // DistributionPolicyZoneConfigurationInput is an input type that accepts DistributionPolicyZoneConfigurationArgs and DistributionPolicyZoneConfigurationOutput values. // You can construct a concrete instance of `DistributionPolicyZoneConfigurationInput` via: // // DistributionPolicyZoneConfigurationArgs{...} type DistributionPolicyZoneConfigurationInput interface { pulumi.Input ToDistributionPolicyZoneConfigurationOutput() DistributionPolicyZoneConfigurationOutput ToDistributionPolicyZoneConfigurationOutputWithContext(context.Context) DistributionPolicyZoneConfigurationOutput } type DistributionPolicyZoneConfigurationArgs struct { // The URL of the zone. The zone must exist in the region where the managed instance group is located. Zone pulumi.StringPtrInput `pulumi:"zone"` } func (DistributionPolicyZoneConfigurationArgs) ElementType() reflect.Type { return reflect.TypeOf((*DistributionPolicyZoneConfiguration)(nil)).Elem() } func (i DistributionPolicyZoneConfigurationArgs) ToDistributionPolicyZoneConfigurationOutput() DistributionPolicyZoneConfigurationOutput { return i.ToDistributionPolicyZoneConfigurationOutputWithContext(context.Background()) } func (i DistributionPolicyZoneConfigurationArgs) ToDistributionPolicyZoneConfigurationOutputWithContext(ctx context.Context) DistributionPolicyZoneConfigurationOutput { return pulumi.ToOutputWithContext(ctx, i).(DistributionPolicyZoneConfigurationOutput) } // DistributionPolicyZoneConfigurationArrayInput is an input type that accepts DistributionPolicyZoneConfigurationArray and DistributionPolicyZoneConfigurationArrayOutput values. // You can construct a concrete instance of `DistributionPolicyZoneConfigurationArrayInput` via: // // DistributionPolicyZoneConfigurationArray{ DistributionPolicyZoneConfigurationArgs{...} } type DistributionPolicyZoneConfigurationArrayInput interface { pulumi.Input ToDistributionPolicyZoneConfigurationArrayOutput() DistributionPolicyZoneConfigurationArrayOutput ToDistributionPolicyZoneConfigurationArrayOutputWithContext(context.Context) DistributionPolicyZoneConfigurationArrayOutput } type DistributionPolicyZoneConfigurationArray []DistributionPolicyZoneConfigurationInput func (DistributionPolicyZoneConfigurationArray) ElementType() reflect.Type { return reflect.TypeOf((*[]DistributionPolicyZoneConfiguration)(nil)).Elem() } func (i DistributionPolicyZoneConfigurationArray) ToDistributionPolicyZoneConfigurationArrayOutput() DistributionPolicyZoneConfigurationArrayOutput { return i.ToDistributionPolicyZoneConfigurationArrayOutputWithContext(context.Background()) } func (i DistributionPolicyZoneConfigurationArray) ToDistributionPolicyZoneConfigurationArrayOutputWithContext(ctx context.Context) DistributionPolicyZoneConfigurationArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(DistributionPolicyZoneConfigurationArrayOutput) } type DistributionPolicyZoneConfigurationOutput struct{ *pulumi.OutputState } func (DistributionPolicyZoneConfigurationOutput) ElementType() reflect.Type { return reflect.TypeOf((*DistributionPolicyZoneConfiguration)(nil)).Elem() } func (o DistributionPolicyZoneConfigurationOutput) ToDistributionPolicyZoneConfigurationOutput() DistributionPolicyZoneConfigurationOutput { return o } func (o DistributionPolicyZoneConfigurationOutput) ToDistributionPolicyZoneConfigurationOutputWithContext(ctx context.Context) DistributionPolicyZoneConfigurationOutput { return o } // The URL of the zone. The zone must exist in the region where the managed instance group is located. func (o DistributionPolicyZoneConfigurationOutput) Zone() pulumi.StringPtrOutput { return o.ApplyT(func(v DistributionPolicyZoneConfiguration) *string { return v.Zone }).(pulumi.StringPtrOutput) } type DistributionPolicyZoneConfigurationArrayOutput struct{ *pulumi.OutputState } func (DistributionPolicyZoneConfigurationArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]DistributionPolicyZoneConfiguration)(nil)).Elem() } func (o DistributionPolicyZoneConfigurationArrayOutput) ToDistributionPolicyZoneConfigurationArrayOutput() DistributionPolicyZoneConfigurationArrayOutput { return o } func (o DistributionPolicyZoneConfigurationArrayOutput) ToDistributionPolicyZoneConfigurationArrayOutputWithContext(ctx context.Context) DistributionPolicyZoneConfigurationArrayOutput { return o } func (o DistributionPolicyZoneConfigurationArrayOutput) Index(i pulumi.IntInput) DistributionPolicyZoneConfigurationOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) DistributionPolicyZoneConfiguration { return vs[0].([]DistributionPolicyZoneConfiguration)[vs[1].(int)] }).(DistributionPolicyZoneConfigurationOutput) } type DistributionPolicyZoneConfigurationResponse struct { // The URL of the zone. The zone must exist in the region where the managed instance group is located. Zone string `pulumi:"zone"` } type DistributionPolicyZoneConfigurationResponseOutput struct{ *pulumi.OutputState } func (DistributionPolicyZoneConfigurationResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*DistributionPolicyZoneConfigurationResponse)(nil)).Elem() } func (o DistributionPolicyZoneConfigurationResponseOutput) ToDistributionPolicyZoneConfigurationResponseOutput() DistributionPolicyZoneConfigurationResponseOutput { return o } func (o DistributionPolicyZoneConfigurationResponseOutput) ToDistributionPolicyZoneConfigurationResponseOutputWithContext(ctx context.Context) DistributionPolicyZoneConfigurationResponseOutput { return o } // The URL of the zone. The zone must exist in the region where the managed instance group is located. func (o DistributionPolicyZoneConfigurationResponseOutput) Zone() pulumi.StringOutput { return o.ApplyT(func(v DistributionPolicyZoneConfigurationResponse) string { return v.Zone }).(pulumi.StringOutput) } type DistributionPolicyZoneConfigurationResponseArrayOutput struct{ *pulumi.OutputState } func (DistributionPolicyZoneConfigurationResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]DistributionPolicyZoneConfigurationResponse)(nil)).Elem() } func (o DistributionPolicyZoneConfigurationResponseArrayOutput) ToDistributionPolicyZoneConfigurationResponseArrayOutput() DistributionPolicyZoneConfigurationResponseArrayOutput { return o } func (o DistributionPolicyZoneConfigurationResponseArrayOutput) ToDistributionPolicyZoneConfigurationResponseArrayOutputWithContext(ctx context.Context) DistributionPolicyZoneConfigurationResponseArrayOutput { return o } func (o DistributionPolicyZoneConfigurationResponseArrayOutput) Index(i pulumi.IntInput) DistributionPolicyZoneConfigurationResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) DistributionPolicyZoneConfigurationResponse { return vs[0].([]DistributionPolicyZoneConfigurationResponse)[vs[1].(int)] }).(DistributionPolicyZoneConfigurationResponseOutput) } // A Duration represents a fixed-length span of time represented as a count of seconds and fractions of seconds at nanosecond resolution. It is independent of any calendar and concepts like "day" or "month". Range is approximately 10,000 years. type Duration struct { // Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 `seconds` field and a positive `nanos` field. Must be from 0 to 999,999,999 inclusive. Nanos *int `pulumi:"nanos"` // Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years Seconds *string `pulumi:"seconds"` } // DurationInput is an input type that accepts DurationArgs and DurationOutput values. // You can construct a concrete instance of `DurationInput` via: // // DurationArgs{...} type DurationInput interface { pulumi.Input ToDurationOutput() DurationOutput ToDurationOutputWithContext(context.Context) DurationOutput } // A Duration represents a fixed-length span of time represented as a count of seconds and fractions of seconds at nanosecond resolution. It is independent of any calendar and concepts like "day" or "month". Range is approximately 10,000 years. type DurationArgs struct { // Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 `seconds` field and a positive `nanos` field. Must be from 0 to 999,999,999 inclusive. Nanos pulumi.IntPtrInput `pulumi:"nanos"` // Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years Seconds pulumi.StringPtrInput `pulumi:"seconds"` } func (DurationArgs) ElementType() reflect.Type { return reflect.TypeOf((*Duration)(nil)).Elem() } func (i DurationArgs) ToDurationOutput() DurationOutput { return i.ToDurationOutputWithContext(context.Background()) } func (i DurationArgs) ToDurationOutputWithContext(ctx context.Context) DurationOutput { return pulumi.ToOutputWithContext(ctx, i).(DurationOutput) } func (i DurationArgs) ToDurationPtrOutput() DurationPtrOutput { return i.ToDurationPtrOutputWithContext(context.Background()) } func (i DurationArgs) ToDurationPtrOutputWithContext(ctx context.Context) DurationPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(DurationOutput).ToDurationPtrOutputWithContext(ctx) } // DurationPtrInput is an input type that accepts DurationArgs, DurationPtr and DurationPtrOutput values. // You can construct a concrete instance of `DurationPtrInput` via: // // DurationArgs{...} // // or: // // nil type DurationPtrInput interface { pulumi.Input ToDurationPtrOutput() DurationPtrOutput ToDurationPtrOutputWithContext(context.Context) DurationPtrOutput } type durationPtrType DurationArgs func DurationPtr(v *DurationArgs) DurationPtrInput { return (*durationPtrType)(v) } func (*durationPtrType) ElementType() reflect.Type { return reflect.TypeOf((**Duration)(nil)).Elem() } func (i *durationPtrType) ToDurationPtrOutput() DurationPtrOutput { return i.ToDurationPtrOutputWithContext(context.Background()) } func (i *durationPtrType) ToDurationPtrOutputWithContext(ctx context.Context) DurationPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(DurationPtrOutput) } // A Duration represents a fixed-length span of time represented as a count of seconds and fractions of seconds at nanosecond resolution. It is independent of any calendar and concepts like "day" or "month". Range is approximately 10,000 years. type DurationOutput struct{ *pulumi.OutputState } func (DurationOutput) ElementType() reflect.Type { return reflect.TypeOf((*Duration)(nil)).Elem() } func (o DurationOutput) ToDurationOutput() DurationOutput { return o } func (o DurationOutput) ToDurationOutputWithContext(ctx context.Context) DurationOutput { return o } func (o DurationOutput) ToDurationPtrOutput() DurationPtrOutput { return o.ToDurationPtrOutputWithContext(context.Background()) } func (o DurationOutput) ToDurationPtrOutputWithContext(ctx context.Context) DurationPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v Duration) *Duration { return &v }).(DurationPtrOutput) } // Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 `seconds` field and a positive `nanos` field. Must be from 0 to 999,999,999 inclusive. func (o DurationOutput) Nanos() pulumi.IntPtrOutput { return o.ApplyT(func(v Duration) *int { return v.Nanos }).(pulumi.IntPtrOutput) } // Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years func (o DurationOutput) Seconds() pulumi.StringPtrOutput { return o.ApplyT(func(v Duration) *string { return v.Seconds }).(pulumi.StringPtrOutput) } type DurationPtrOutput struct{ *pulumi.OutputState } func (DurationPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**Duration)(nil)).Elem() } func (o DurationPtrOutput) ToDurationPtrOutput() DurationPtrOutput { return o } func (o DurationPtrOutput) ToDurationPtrOutputWithContext(ctx context.Context) DurationPtrOutput { return o } func (o DurationPtrOutput) Elem() DurationOutput { return o.ApplyT(func(v *Duration) Duration { if v != nil { return *v } var ret Duration return ret }).(DurationOutput) } // Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 `seconds` field and a positive `nanos` field. Must be from 0 to 999,999,999 inclusive. func (o DurationPtrOutput) Nanos() pulumi.IntPtrOutput { return o.ApplyT(func(v *Duration) *int { if v == nil { return nil } return v.Nanos }).(pulumi.IntPtrOutput) } // Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years func (o DurationPtrOutput) Seconds() pulumi.StringPtrOutput { return o.ApplyT(func(v *Duration) *string { if v == nil { return nil } return v.Seconds }).(pulumi.StringPtrOutput) } // A Duration represents a fixed-length span of time represented as a count of seconds and fractions of seconds at nanosecond resolution. It is independent of any calendar and concepts like "day" or "month". Range is approximately 10,000 years. type DurationResponse struct { // Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 `seconds` field and a positive `nanos` field. Must be from 0 to 999,999,999 inclusive. Nanos int `pulumi:"nanos"` // Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years Seconds string `pulumi:"seconds"` } // A Duration represents a fixed-length span of time represented as a count of seconds and fractions of seconds at nanosecond resolution. It is independent of any calendar and concepts like "day" or "month". Range is approximately 10,000 years. type DurationResponseOutput struct{ *pulumi.OutputState } func (DurationResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*DurationResponse)(nil)).Elem() } func (o DurationResponseOutput) ToDurationResponseOutput() DurationResponseOutput { return o } func (o DurationResponseOutput) ToDurationResponseOutputWithContext(ctx context.Context) DurationResponseOutput { return o } // Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 `seconds` field and a positive `nanos` field. Must be from 0 to 999,999,999 inclusive. func (o DurationResponseOutput) Nanos() pulumi.IntOutput { return o.ApplyT(func(v DurationResponse) int { return v.Nanos }).(pulumi.IntOutput) } // Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years func (o DurationResponseOutput) Seconds() pulumi.StringOutput { return o.ApplyT(func(v DurationResponse) string { return v.Seconds }).(pulumi.StringOutput) } // Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. type Expr struct { // Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. Description *string `pulumi:"description"` // Textual representation of an expression in Common Expression Language syntax. Expression *string `pulumi:"expression"` // Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. Location *string `pulumi:"location"` // Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. Title *string `pulumi:"title"` } // ExprInput is an input type that accepts ExprArgs and ExprOutput values. // You can construct a concrete instance of `ExprInput` via: // // ExprArgs{...} type ExprInput interface { pulumi.Input ToExprOutput() ExprOutput ToExprOutputWithContext(context.Context) ExprOutput } // Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. type ExprArgs struct { // Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. Description pulumi.StringPtrInput `pulumi:"description"` // Textual representation of an expression in Common Expression Language syntax. Expression pulumi.StringPtrInput `pulumi:"expression"` // Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. Location pulumi.StringPtrInput `pulumi:"location"` // Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. Title pulumi.StringPtrInput `pulumi:"title"` } func (ExprArgs) ElementType() reflect.Type { return reflect.TypeOf((*Expr)(nil)).Elem() } func (i ExprArgs) ToExprOutput() ExprOutput { return i.ToExprOutputWithContext(context.Background()) } func (i ExprArgs) ToExprOutputWithContext(ctx context.Context) ExprOutput { return pulumi.ToOutputWithContext(ctx, i).(ExprOutput) } func (i ExprArgs) ToExprPtrOutput() ExprPtrOutput { return i.ToExprPtrOutputWithContext(context.Background()) } func (i ExprArgs) ToExprPtrOutputWithContext(ctx context.Context) ExprPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(ExprOutput).ToExprPtrOutputWithContext(ctx) } // ExprPtrInput is an input type that accepts ExprArgs, ExprPtr and ExprPtrOutput values. // You can construct a concrete instance of `ExprPtrInput` via: // // ExprArgs{...} // // or: // // nil type ExprPtrInput interface { pulumi.Input ToExprPtrOutput() ExprPtrOutput ToExprPtrOutputWithContext(context.Context) ExprPtrOutput } type exprPtrType ExprArgs func ExprPtr(v *ExprArgs) ExprPtrInput { return (*exprPtrType)(v) } func (*exprPtrType) ElementType() reflect.Type { return reflect.TypeOf((**Expr)(nil)).Elem() } func (i *exprPtrType) ToExprPtrOutput() ExprPtrOutput { return i.ToExprPtrOutputWithContext(context.Background()) } func (i *exprPtrType) ToExprPtrOutputWithContext(ctx context.Context) ExprPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(ExprPtrOutput) } // Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. type ExprOutput struct{ *pulumi.OutputState } func (ExprOutput) ElementType() reflect.Type { return reflect.TypeOf((*Expr)(nil)).Elem() } func (o ExprOutput) ToExprOutput() ExprOutput { return o } func (o ExprOutput) ToExprOutputWithContext(ctx context.Context) ExprOutput { return o } func (o ExprOutput) ToExprPtrOutput() ExprPtrOutput { return o.ToExprPtrOutputWithContext(context.Background()) } func (o ExprOutput) ToExprPtrOutputWithContext(ctx context.Context) ExprPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v Expr) *Expr { return &v }).(ExprPtrOutput) } // Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. func (o ExprOutput) Description() pulumi.StringPtrOutput { return o.ApplyT(func(v Expr) *string { return v.Description }).(pulumi.StringPtrOutput) } // Textual representation of an expression in Common Expression Language syntax. func (o ExprOutput) Expression() pulumi.StringPtrOutput { return o.ApplyT(func(v Expr) *string { return v.Expression }).(pulumi.StringPtrOutput) } // Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. func (o ExprOutput) Location() pulumi.StringPtrOutput { return o.ApplyT(func(v Expr) *string { return v.Location }).(pulumi.StringPtrOutput) } // Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. func (o ExprOutput) Title() pulumi.StringPtrOutput { return o.ApplyT(func(v Expr) *string { return v.Title }).(pulumi.StringPtrOutput) } type ExprPtrOutput struct{ *pulumi.OutputState } func (ExprPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**Expr)(nil)).Elem() } func (o ExprPtrOutput) ToExprPtrOutput() ExprPtrOutput { return o } func (o ExprPtrOutput) ToExprPtrOutputWithContext(ctx context.Context) ExprPtrOutput { return o } func (o ExprPtrOutput) Elem() ExprOutput { return o.ApplyT(func(v *Expr) Expr { if v != nil { return *v } var ret Expr return ret }).(ExprOutput) } // Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. func (o ExprPtrOutput) Description() pulumi.StringPtrOutput { return o.ApplyT(func(v *Expr) *string { if v == nil { return nil } return v.Description }).(pulumi.StringPtrOutput) } // Textual representation of an expression in Common Expression Language syntax. func (o ExprPtrOutput) Expression() pulumi.StringPtrOutput { return o.ApplyT(func(v *Expr) *string { if v == nil { return nil } return v.Expression }).(pulumi.StringPtrOutput) } // Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. func (o ExprPtrOutput) Location() pulumi.StringPtrOutput { return o.ApplyT(func(v *Expr) *string { if v == nil { return nil } return v.Location }).(pulumi.StringPtrOutput) } // Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. func (o ExprPtrOutput) Title() pulumi.StringPtrOutput { return o.ApplyT(func(v *Expr) *string { if v == nil { return nil } return v.Title }).(pulumi.StringPtrOutput) } // Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. type ExprResponse struct { // Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. Description string `pulumi:"description"` // Textual representation of an expression in Common Expression Language syntax. Expression string `pulumi:"expression"` // Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. Location string `pulumi:"location"` // Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. Title string `pulumi:"title"` } // Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. type ExprResponseOutput struct{ *pulumi.OutputState } func (ExprResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*ExprResponse)(nil)).Elem() } func (o ExprResponseOutput) ToExprResponseOutput() ExprResponseOutput { return o } func (o ExprResponseOutput) ToExprResponseOutputWithContext(ctx context.Context) ExprResponseOutput { return o } // Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. func (o ExprResponseOutput) Description() pulumi.StringOutput { return o.ApplyT(func(v ExprResponse) string { return v.Description }).(pulumi.StringOutput) } // Textual representation of an expression in Common Expression Language syntax. func (o ExprResponseOutput) Expression() pulumi.StringOutput { return o.ApplyT(func(v ExprResponse) string { return v.Expression }).(pulumi.StringOutput) } // Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. func (o ExprResponseOutput) Location() pulumi.StringOutput { return o.ApplyT(func(v ExprResponse) string { return v.Location }).(pulumi.StringOutput) } // Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. func (o ExprResponseOutput) Title() pulumi.StringOutput { return o.ApplyT(func(v ExprResponse) string { return v.Title }).(pulumi.StringOutput) } // The interface for the external VPN gateway. type ExternalVpnGatewayInterface struct { // The numeric ID of this interface. The allowed input values for this id for different redundancy types of external VPN gateway: - SINGLE_IP_INTERNALLY_REDUNDANT - 0 - TWO_IPS_REDUNDANCY - 0, 1 - FOUR_IPS_REDUNDANCY - 0, 1, 2, 3 Id *int `pulumi:"id"` // IP address of the interface in the external VPN gateway. Only IPv4 is supported. This IP address can be either from your on-premise gateway or another Cloud provider's VPN gateway, it cannot be an IP address from Google Compute Engine. IpAddress *string `pulumi:"ipAddress"` } // ExternalVpnGatewayInterfaceInput is an input type that accepts ExternalVpnGatewayInterfaceArgs and ExternalVpnGatewayInterfaceOutput values. // You can construct a concrete instance of `ExternalVpnGatewayInterfaceInput` via: // // ExternalVpnGatewayInterfaceArgs{...} type ExternalVpnGatewayInterfaceInput interface { pulumi.Input ToExternalVpnGatewayInterfaceOutput() ExternalVpnGatewayInterfaceOutput ToExternalVpnGatewayInterfaceOutputWithContext(context.Context) ExternalVpnGatewayInterfaceOutput } // The interface for the external VPN gateway. type ExternalVpnGatewayInterfaceArgs struct { // The numeric ID of this interface. The allowed input values for this id for different redundancy types of external VPN gateway: - SINGLE_IP_INTERNALLY_REDUNDANT - 0 - TWO_IPS_REDUNDANCY - 0, 1 - FOUR_IPS_REDUNDANCY - 0, 1, 2, 3 Id pulumi.IntPtrInput `pulumi:"id"` // IP address of the interface in the external VPN gateway. Only IPv4 is supported. This IP address can be either from your on-premise gateway or another Cloud provider's VPN gateway, it cannot be an IP address from Google Compute Engine. IpAddress pulumi.StringPtrInput `pulumi:"ipAddress"` } func (ExternalVpnGatewayInterfaceArgs) ElementType() reflect.Type { return reflect.TypeOf((*ExternalVpnGatewayInterface)(nil)).Elem() } func (i ExternalVpnGatewayInterfaceArgs) ToExternalVpnGatewayInterfaceOutput() ExternalVpnGatewayInterfaceOutput { return i.ToExternalVpnGatewayInterfaceOutputWithContext(context.Background()) } func (i ExternalVpnGatewayInterfaceArgs) ToExternalVpnGatewayInterfaceOutputWithContext(ctx context.Context) ExternalVpnGatewayInterfaceOutput { return pulumi.ToOutputWithContext(ctx, i).(ExternalVpnGatewayInterfaceOutput) } // ExternalVpnGatewayInterfaceArrayInput is an input type that accepts ExternalVpnGatewayInterfaceArray and ExternalVpnGatewayInterfaceArrayOutput values. // You can construct a concrete instance of `ExternalVpnGatewayInterfaceArrayInput` via: // // ExternalVpnGatewayInterfaceArray{ ExternalVpnGatewayInterfaceArgs{...} } type ExternalVpnGatewayInterfaceArrayInput interface { pulumi.Input ToExternalVpnGatewayInterfaceArrayOutput() ExternalVpnGatewayInterfaceArrayOutput ToExternalVpnGatewayInterfaceArrayOutputWithContext(context.Context) ExternalVpnGatewayInterfaceArrayOutput } type ExternalVpnGatewayInterfaceArray []ExternalVpnGatewayInterfaceInput func (ExternalVpnGatewayInterfaceArray) ElementType() reflect.Type { return reflect.TypeOf((*[]ExternalVpnGatewayInterface)(nil)).Elem() } func (i ExternalVpnGatewayInterfaceArray) ToExternalVpnGatewayInterfaceArrayOutput() ExternalVpnGatewayInterfaceArrayOutput { return i.ToExternalVpnGatewayInterfaceArrayOutputWithContext(context.Background()) } func (i ExternalVpnGatewayInterfaceArray) ToExternalVpnGatewayInterfaceArrayOutputWithContext(ctx context.Context) ExternalVpnGatewayInterfaceArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(ExternalVpnGatewayInterfaceArrayOutput) } // The interface for the external VPN gateway. type ExternalVpnGatewayInterfaceOutput struct{ *pulumi.OutputState } func (ExternalVpnGatewayInterfaceOutput) ElementType() reflect.Type { return reflect.TypeOf((*ExternalVpnGatewayInterface)(nil)).Elem() } func (o ExternalVpnGatewayInterfaceOutput) ToExternalVpnGatewayInterfaceOutput() ExternalVpnGatewayInterfaceOutput { return o } func (o ExternalVpnGatewayInterfaceOutput) ToExternalVpnGatewayInterfaceOutputWithContext(ctx context.Context) ExternalVpnGatewayInterfaceOutput { return o } // The numeric ID of this interface. The allowed input values for this id for different redundancy types of external VPN gateway: - SINGLE_IP_INTERNALLY_REDUNDANT - 0 - TWO_IPS_REDUNDANCY - 0, 1 - FOUR_IPS_REDUNDANCY - 0, 1, 2, 3 func (o ExternalVpnGatewayInterfaceOutput) Id() pulumi.IntPtrOutput { return o.ApplyT(func(v ExternalVpnGatewayInterface) *int { return v.Id }).(pulumi.IntPtrOutput) } // IP address of the interface in the external VPN gateway. Only IPv4 is supported. This IP address can be either from your on-premise gateway or another Cloud provider's VPN gateway, it cannot be an IP address from Google Compute Engine. func (o ExternalVpnGatewayInterfaceOutput) IpAddress() pulumi.StringPtrOutput { return o.ApplyT(func(v ExternalVpnGatewayInterface) *string { return v.IpAddress }).(pulumi.StringPtrOutput) } type ExternalVpnGatewayInterfaceArrayOutput struct{ *pulumi.OutputState } func (ExternalVpnGatewayInterfaceArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]ExternalVpnGatewayInterface)(nil)).Elem() } func (o ExternalVpnGatewayInterfaceArrayOutput) ToExternalVpnGatewayInterfaceArrayOutput() ExternalVpnGatewayInterfaceArrayOutput { return o } func (o ExternalVpnGatewayInterfaceArrayOutput) ToExternalVpnGatewayInterfaceArrayOutputWithContext(ctx context.Context) ExternalVpnGatewayInterfaceArrayOutput { return o } func (o ExternalVpnGatewayInterfaceArrayOutput) Index(i pulumi.IntInput) ExternalVpnGatewayInterfaceOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) ExternalVpnGatewayInterface { return vs[0].([]ExternalVpnGatewayInterface)[vs[1].(int)] }).(ExternalVpnGatewayInterfaceOutput) } // The interface for the external VPN gateway. type ExternalVpnGatewayInterfaceResponse struct { // IP address of the interface in the external VPN gateway. Only IPv4 is supported. This IP address can be either from your on-premise gateway or another Cloud provider's VPN gateway, it cannot be an IP address from Google Compute Engine. IpAddress string `pulumi:"ipAddress"` } // The interface for the external VPN gateway. type ExternalVpnGatewayInterfaceResponseOutput struct{ *pulumi.OutputState } func (ExternalVpnGatewayInterfaceResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*ExternalVpnGatewayInterfaceResponse)(nil)).Elem() } func (o ExternalVpnGatewayInterfaceResponseOutput) ToExternalVpnGatewayInterfaceResponseOutput() ExternalVpnGatewayInterfaceResponseOutput { return o } func (o ExternalVpnGatewayInterfaceResponseOutput) ToExternalVpnGatewayInterfaceResponseOutputWithContext(ctx context.Context) ExternalVpnGatewayInterfaceResponseOutput { return o } // IP address of the interface in the external VPN gateway. Only IPv4 is supported. This IP address can be either from your on-premise gateway or another Cloud provider's VPN gateway, it cannot be an IP address from Google Compute Engine. func (o ExternalVpnGatewayInterfaceResponseOutput) IpAddress() pulumi.StringOutput { return o.ApplyT(func(v ExternalVpnGatewayInterfaceResponse) string { return v.IpAddress }).(pulumi.StringOutput) } type ExternalVpnGatewayInterfaceResponseArrayOutput struct{ *pulumi.OutputState } func (ExternalVpnGatewayInterfaceResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]ExternalVpnGatewayInterfaceResponse)(nil)).Elem() } func (o ExternalVpnGatewayInterfaceResponseArrayOutput) ToExternalVpnGatewayInterfaceResponseArrayOutput() ExternalVpnGatewayInterfaceResponseArrayOutput { return o } func (o ExternalVpnGatewayInterfaceResponseArrayOutput) ToExternalVpnGatewayInterfaceResponseArrayOutputWithContext(ctx context.Context) ExternalVpnGatewayInterfaceResponseArrayOutput { return o } func (o ExternalVpnGatewayInterfaceResponseArrayOutput) Index(i pulumi.IntInput) ExternalVpnGatewayInterfaceResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) ExternalVpnGatewayInterfaceResponse { return vs[0].([]ExternalVpnGatewayInterfaceResponse)[vs[1].(int)] }).(ExternalVpnGatewayInterfaceResponseOutput) } type FileContentBuffer struct { // The raw content in the secure keys file. Content *string `pulumi:"content"` // The file type of source file. FileType *FileContentBufferFileType `pulumi:"fileType"` } // FileContentBufferInput is an input type that accepts FileContentBufferArgs and FileContentBufferOutput values. // You can construct a concrete instance of `FileContentBufferInput` via: // // FileContentBufferArgs{...} type FileContentBufferInput interface { pulumi.Input ToFileContentBufferOutput() FileContentBufferOutput ToFileContentBufferOutputWithContext(context.Context) FileContentBufferOutput } type FileContentBufferArgs struct { // The raw content in the secure keys file. Content pulumi.StringPtrInput `pulumi:"content"` // The file type of source file. FileType FileContentBufferFileTypePtrInput `pulumi:"fileType"` } func (FileContentBufferArgs) ElementType() reflect.Type { return reflect.TypeOf((*FileContentBuffer)(nil)).Elem() } func (i FileContentBufferArgs) ToFileContentBufferOutput() FileContentBufferOutput { return i.ToFileContentBufferOutputWithContext(context.Background()) } func (i FileContentBufferArgs) ToFileContentBufferOutputWithContext(ctx context.Context) FileContentBufferOutput { return pulumi.ToOutputWithContext(ctx, i).(FileContentBufferOutput) } func (i FileContentBufferArgs) ToFileContentBufferPtrOutput() FileContentBufferPtrOutput { return i.ToFileContentBufferPtrOutputWithContext(context.Background()) } func (i FileContentBufferArgs) ToFileContentBufferPtrOutputWithContext(ctx context.Context) FileContentBufferPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(FileContentBufferOutput).ToFileContentBufferPtrOutputWithContext(ctx) } // FileContentBufferPtrInput is an input type that accepts FileContentBufferArgs, FileContentBufferPtr and FileContentBufferPtrOutput values. // You can construct a concrete instance of `FileContentBufferPtrInput` via: // // FileContentBufferArgs{...} // // or: // // nil type FileContentBufferPtrInput interface { pulumi.Input ToFileContentBufferPtrOutput() FileContentBufferPtrOutput ToFileContentBufferPtrOutputWithContext(context.Context) FileContentBufferPtrOutput } type fileContentBufferPtrType FileContentBufferArgs func FileContentBufferPtr(v *FileContentBufferArgs) FileContentBufferPtrInput { return (*fileContentBufferPtrType)(v) } func (*fileContentBufferPtrType) ElementType() reflect.Type { return reflect.TypeOf((**FileContentBuffer)(nil)).Elem() } func (i *fileContentBufferPtrType) ToFileContentBufferPtrOutput() FileContentBufferPtrOutput { return i.ToFileContentBufferPtrOutputWithContext(context.Background()) } func (i *fileContentBufferPtrType) ToFileContentBufferPtrOutputWithContext(ctx context.Context) FileContentBufferPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(FileContentBufferPtrOutput) } // FileContentBufferArrayInput is an input type that accepts FileContentBufferArray and FileContentBufferArrayOutput values. // You can construct a concrete instance of `FileContentBufferArrayInput` via: // // FileContentBufferArray{ FileContentBufferArgs{...} } type FileContentBufferArrayInput interface { pulumi.Input ToFileContentBufferArrayOutput() FileContentBufferArrayOutput ToFileContentBufferArrayOutputWithContext(context.Context) FileContentBufferArrayOutput } type FileContentBufferArray []FileContentBufferInput func (FileContentBufferArray) ElementType() reflect.Type { return reflect.TypeOf((*[]FileContentBuffer)(nil)).Elem() } func (i FileContentBufferArray) ToFileContentBufferArrayOutput() FileContentBufferArrayOutput { return i.ToFileContentBufferArrayOutputWithContext(context.Background()) } func (i FileContentBufferArray) ToFileContentBufferArrayOutputWithContext(ctx context.Context) FileContentBufferArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(FileContentBufferArrayOutput) } type FileContentBufferOutput struct{ *pulumi.OutputState } func (FileContentBufferOutput) ElementType() reflect.Type { return reflect.TypeOf((*FileContentBuffer)(nil)).Elem() } func (o FileContentBufferOutput) ToFileContentBufferOutput() FileContentBufferOutput { return o } func (o FileContentBufferOutput) ToFileContentBufferOutputWithContext(ctx context.Context) FileContentBufferOutput { return o } func (o FileContentBufferOutput) ToFileContentBufferPtrOutput() FileContentBufferPtrOutput { return o.ToFileContentBufferPtrOutputWithContext(context.Background()) } func (o FileContentBufferOutput) ToFileContentBufferPtrOutputWithContext(ctx context.Context) FileContentBufferPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v FileContentBuffer) *FileContentBuffer { return &v }).(FileContentBufferPtrOutput) } // The raw content in the secure keys file. func (o FileContentBufferOutput) Content() pulumi.StringPtrOutput { return o.ApplyT(func(v FileContentBuffer) *string { return v.Content }).(pulumi.StringPtrOutput) } // The file type of source file. func (o FileContentBufferOutput) FileType() FileContentBufferFileTypePtrOutput { return o.ApplyT(func(v FileContentBuffer) *FileContentBufferFileType { return v.FileType }).(FileContentBufferFileTypePtrOutput) } type FileContentBufferPtrOutput struct{ *pulumi.OutputState } func (FileContentBufferPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**FileContentBuffer)(nil)).Elem() } func (o FileContentBufferPtrOutput) ToFileContentBufferPtrOutput() FileContentBufferPtrOutput { return o } func (o FileContentBufferPtrOutput) ToFileContentBufferPtrOutputWithContext(ctx context.Context) FileContentBufferPtrOutput { return o } func (o FileContentBufferPtrOutput) Elem() FileContentBufferOutput { return o.ApplyT(func(v *FileContentBuffer) FileContentBuffer { if v != nil { return *v } var ret FileContentBuffer return ret }).(FileContentBufferOutput) } // The raw content in the secure keys file. func (o FileContentBufferPtrOutput) Content() pulumi.StringPtrOutput { return o.ApplyT(func(v *FileContentBuffer) *string { if v == nil { return nil } return v.Content }).(pulumi.StringPtrOutput) } // The file type of source file. func (o FileContentBufferPtrOutput) FileType() FileContentBufferFileTypePtrOutput { return o.ApplyT(func(v *FileContentBuffer) *FileContentBufferFileType { if v == nil { return nil } return v.FileType }).(FileContentBufferFileTypePtrOutput) } type FileContentBufferArrayOutput struct{ *pulumi.OutputState } func (FileContentBufferArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]FileContentBuffer)(nil)).Elem() } func (o FileContentBufferArrayOutput) ToFileContentBufferArrayOutput() FileContentBufferArrayOutput { return o } func (o FileContentBufferArrayOutput) ToFileContentBufferArrayOutputWithContext(ctx context.Context) FileContentBufferArrayOutput { return o } func (o FileContentBufferArrayOutput) Index(i pulumi.IntInput) FileContentBufferOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) FileContentBuffer { return vs[0].([]FileContentBuffer)[vs[1].(int)] }).(FileContentBufferOutput) } type FileContentBufferResponse struct { // The raw content in the secure keys file. Content string `pulumi:"content"` // The file type of source file. FileType string `pulumi:"fileType"` } type FileContentBufferResponseOutput struct{ *pulumi.OutputState } func (FileContentBufferResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*FileContentBufferResponse)(nil)).Elem() } func (o FileContentBufferResponseOutput) ToFileContentBufferResponseOutput() FileContentBufferResponseOutput { return o } func (o FileContentBufferResponseOutput) ToFileContentBufferResponseOutputWithContext(ctx context.Context) FileContentBufferResponseOutput { return o } // The raw content in the secure keys file. func (o FileContentBufferResponseOutput) Content() pulumi.StringOutput { return o.ApplyT(func(v FileContentBufferResponse) string { return v.Content }).(pulumi.StringOutput) } // The file type of source file. func (o FileContentBufferResponseOutput) FileType() pulumi.StringOutput { return o.ApplyT(func(v FileContentBufferResponse) string { return v.FileType }).(pulumi.StringOutput) } type FileContentBufferResponseArrayOutput struct{ *pulumi.OutputState } func (FileContentBufferResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]FileContentBufferResponse)(nil)).Elem() } func (o FileContentBufferResponseArrayOutput) ToFileContentBufferResponseArrayOutput() FileContentBufferResponseArrayOutput { return o } func (o FileContentBufferResponseArrayOutput) ToFileContentBufferResponseArrayOutputWithContext(ctx context.Context) FileContentBufferResponseArrayOutput { return o } func (o FileContentBufferResponseArrayOutput) Index(i pulumi.IntInput) FileContentBufferResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) FileContentBufferResponse { return vs[0].([]FileContentBufferResponse)[vs[1].(int)] }).(FileContentBufferResponseOutput) } type FirewallAllowedItem struct { // The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp) or the IP protocol number. IpProtocol *string `pulumi:"ipProtocol"` // An optional list of ports to which this rule applies. This field is only applicable for the UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ["22"], ["80","443"], and ["12345-12349"]. Ports []string `pulumi:"ports"` } // FirewallAllowedItemInput is an input type that accepts FirewallAllowedItemArgs and FirewallAllowedItemOutput values. // You can construct a concrete instance of `FirewallAllowedItemInput` via: // // FirewallAllowedItemArgs{...} type FirewallAllowedItemInput interface { pulumi.Input ToFirewallAllowedItemOutput() FirewallAllowedItemOutput ToFirewallAllowedItemOutputWithContext(context.Context) FirewallAllowedItemOutput } type FirewallAllowedItemArgs struct { // The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp) or the IP protocol number. IpProtocol pulumi.StringPtrInput `pulumi:"ipProtocol"` // An optional list of ports to which this rule applies. This field is only applicable for the UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ["22"], ["80","443"], and ["12345-12349"]. Ports pulumi.StringArrayInput `pulumi:"ports"` } func (FirewallAllowedItemArgs) ElementType() reflect.Type { return reflect.TypeOf((*FirewallAllowedItem)(nil)).Elem() } func (i FirewallAllowedItemArgs) ToFirewallAllowedItemOutput() FirewallAllowedItemOutput { return i.ToFirewallAllowedItemOutputWithContext(context.Background()) } func (i FirewallAllowedItemArgs) ToFirewallAllowedItemOutputWithContext(ctx context.Context) FirewallAllowedItemOutput { return pulumi.ToOutputWithContext(ctx, i).(FirewallAllowedItemOutput) } // FirewallAllowedItemArrayInput is an input type that accepts FirewallAllowedItemArray and FirewallAllowedItemArrayOutput values. // You can construct a concrete instance of `FirewallAllowedItemArrayInput` via: // // FirewallAllowedItemArray{ FirewallAllowedItemArgs{...} } type FirewallAllowedItemArrayInput interface { pulumi.Input ToFirewallAllowedItemArrayOutput() FirewallAllowedItemArrayOutput ToFirewallAllowedItemArrayOutputWithContext(context.Context) FirewallAllowedItemArrayOutput } type FirewallAllowedItemArray []FirewallAllowedItemInput func (FirewallAllowedItemArray) ElementType() reflect.Type { return reflect.TypeOf((*[]FirewallAllowedItem)(nil)).Elem() } func (i FirewallAllowedItemArray) ToFirewallAllowedItemArrayOutput() FirewallAllowedItemArrayOutput { return i.ToFirewallAllowedItemArrayOutputWithContext(context.Background()) } func (i FirewallAllowedItemArray) ToFirewallAllowedItemArrayOutputWithContext(ctx context.Context) FirewallAllowedItemArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(FirewallAllowedItemArrayOutput) } type FirewallAllowedItemOutput struct{ *pulumi.OutputState } func (FirewallAllowedItemOutput) ElementType() reflect.Type { return reflect.TypeOf((*FirewallAllowedItem)(nil)).Elem() } func (o FirewallAllowedItemOutput) ToFirewallAllowedItemOutput() FirewallAllowedItemOutput { return o } func (o FirewallAllowedItemOutput) ToFirewallAllowedItemOutputWithContext(ctx context.Context) FirewallAllowedItemOutput { return o } // The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp) or the IP protocol number. func (o FirewallAllowedItemOutput) IpProtocol() pulumi.StringPtrOutput { return o.ApplyT(func(v FirewallAllowedItem) *string { return v.IpProtocol }).(pulumi.StringPtrOutput) } // An optional list of ports to which this rule applies. This field is only applicable for the UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ["22"], ["80","443"], and ["12345-12349"]. func (o FirewallAllowedItemOutput) Ports() pulumi.StringArrayOutput { return o.ApplyT(func(v FirewallAllowedItem) []string { return v.Ports }).(pulumi.StringArrayOutput) } type FirewallAllowedItemArrayOutput struct{ *pulumi.OutputState } func (FirewallAllowedItemArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]FirewallAllowedItem)(nil)).Elem() } func (o FirewallAllowedItemArrayOutput) ToFirewallAllowedItemArrayOutput() FirewallAllowedItemArrayOutput { return o } func (o FirewallAllowedItemArrayOutput) ToFirewallAllowedItemArrayOutputWithContext(ctx context.Context) FirewallAllowedItemArrayOutput { return o } func (o FirewallAllowedItemArrayOutput) Index(i pulumi.IntInput) FirewallAllowedItemOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) FirewallAllowedItem { return vs[0].([]FirewallAllowedItem)[vs[1].(int)] }).(FirewallAllowedItemOutput) } type FirewallAllowedItemResponse struct { // The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp) or the IP protocol number. IpProtocol string `pulumi:"ipProtocol"` // An optional list of ports to which this rule applies. This field is only applicable for the UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ["22"], ["80","443"], and ["12345-12349"]. Ports []string `pulumi:"ports"` } type FirewallAllowedItemResponseOutput struct{ *pulumi.OutputState } func (FirewallAllowedItemResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*FirewallAllowedItemResponse)(nil)).Elem() } func (o FirewallAllowedItemResponseOutput) ToFirewallAllowedItemResponseOutput() FirewallAllowedItemResponseOutput { return o } func (o FirewallAllowedItemResponseOutput) ToFirewallAllowedItemResponseOutputWithContext(ctx context.Context) FirewallAllowedItemResponseOutput { return o } // The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp) or the IP protocol number. func (o FirewallAllowedItemResponseOutput) IpProtocol() pulumi.StringOutput { return o.ApplyT(func(v FirewallAllowedItemResponse) string { return v.IpProtocol }).(pulumi.StringOutput) } // An optional list of ports to which this rule applies. This field is only applicable for the UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ["22"], ["80","443"], and ["12345-12349"]. func (o FirewallAllowedItemResponseOutput) Ports() pulumi.StringArrayOutput { return o.ApplyT(func(v FirewallAllowedItemResponse) []string { return v.Ports }).(pulumi.StringArrayOutput) } type FirewallAllowedItemResponseArrayOutput struct{ *pulumi.OutputState } func (FirewallAllowedItemResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]FirewallAllowedItemResponse)(nil)).Elem() } func (o FirewallAllowedItemResponseArrayOutput) ToFirewallAllowedItemResponseArrayOutput() FirewallAllowedItemResponseArrayOutput { return o } func (o FirewallAllowedItemResponseArrayOutput) ToFirewallAllowedItemResponseArrayOutputWithContext(ctx context.Context) FirewallAllowedItemResponseArrayOutput { return o } func (o FirewallAllowedItemResponseArrayOutput) Index(i pulumi.IntInput) FirewallAllowedItemResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) FirewallAllowedItemResponse { return vs[0].([]FirewallAllowedItemResponse)[vs[1].(int)] }).(FirewallAllowedItemResponseOutput) } type FirewallDeniedItem struct { // The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp) or the IP protocol number. IpProtocol *string `pulumi:"ipProtocol"` // An optional list of ports to which this rule applies. This field is only applicable for the UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ["22"], ["80","443"], and ["12345-12349"]. Ports []string `pulumi:"ports"` } // FirewallDeniedItemInput is an input type that accepts FirewallDeniedItemArgs and FirewallDeniedItemOutput values. // You can construct a concrete instance of `FirewallDeniedItemInput` via: // // FirewallDeniedItemArgs{...} type FirewallDeniedItemInput interface { pulumi.Input ToFirewallDeniedItemOutput() FirewallDeniedItemOutput ToFirewallDeniedItemOutputWithContext(context.Context) FirewallDeniedItemOutput } type FirewallDeniedItemArgs struct { // The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp) or the IP protocol number. IpProtocol pulumi.StringPtrInput `pulumi:"ipProtocol"` // An optional list of ports to which this rule applies. This field is only applicable for the UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ["22"], ["80","443"], and ["12345-12349"]. Ports pulumi.StringArrayInput `pulumi:"ports"` } func (FirewallDeniedItemArgs) ElementType() reflect.Type { return reflect.TypeOf((*FirewallDeniedItem)(nil)).Elem() } func (i FirewallDeniedItemArgs) ToFirewallDeniedItemOutput() FirewallDeniedItemOutput { return i.ToFirewallDeniedItemOutputWithContext(context.Background()) } func (i FirewallDeniedItemArgs) ToFirewallDeniedItemOutputWithContext(ctx context.Context) FirewallDeniedItemOutput { return pulumi.ToOutputWithContext(ctx, i).(FirewallDeniedItemOutput) } // FirewallDeniedItemArrayInput is an input type that accepts FirewallDeniedItemArray and FirewallDeniedItemArrayOutput values. // You can construct a concrete instance of `FirewallDeniedItemArrayInput` via: // // FirewallDeniedItemArray{ FirewallDeniedItemArgs{...} } type FirewallDeniedItemArrayInput interface { pulumi.Input ToFirewallDeniedItemArrayOutput() FirewallDeniedItemArrayOutput ToFirewallDeniedItemArrayOutputWithContext(context.Context) FirewallDeniedItemArrayOutput } type FirewallDeniedItemArray []FirewallDeniedItemInput func (FirewallDeniedItemArray) ElementType() reflect.Type { return reflect.TypeOf((*[]FirewallDeniedItem)(nil)).Elem() } func (i FirewallDeniedItemArray) ToFirewallDeniedItemArrayOutput() FirewallDeniedItemArrayOutput { return i.ToFirewallDeniedItemArrayOutputWithContext(context.Background()) } func (i FirewallDeniedItemArray) ToFirewallDeniedItemArrayOutputWithContext(ctx context.Context) FirewallDeniedItemArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(FirewallDeniedItemArrayOutput) } type FirewallDeniedItemOutput struct{ *pulumi.OutputState } func (FirewallDeniedItemOutput) ElementType() reflect.Type { return reflect.TypeOf((*FirewallDeniedItem)(nil)).Elem() } func (o FirewallDeniedItemOutput) ToFirewallDeniedItemOutput() FirewallDeniedItemOutput { return o } func (o FirewallDeniedItemOutput) ToFirewallDeniedItemOutputWithContext(ctx context.Context) FirewallDeniedItemOutput { return o } // The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp) or the IP protocol number. func (o FirewallDeniedItemOutput) IpProtocol() pulumi.StringPtrOutput { return o.ApplyT(func(v FirewallDeniedItem) *string { return v.IpProtocol }).(pulumi.StringPtrOutput) } // An optional list of ports to which this rule applies. This field is only applicable for the UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ["22"], ["80","443"], and ["12345-12349"]. func (o FirewallDeniedItemOutput) Ports() pulumi.StringArrayOutput { return o.ApplyT(func(v FirewallDeniedItem) []string { return v.Ports }).(pulumi.StringArrayOutput) } type FirewallDeniedItemArrayOutput struct{ *pulumi.OutputState } func (FirewallDeniedItemArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]FirewallDeniedItem)(nil)).Elem() } func (o FirewallDeniedItemArrayOutput) ToFirewallDeniedItemArrayOutput() FirewallDeniedItemArrayOutput { return o } func (o FirewallDeniedItemArrayOutput) ToFirewallDeniedItemArrayOutputWithContext(ctx context.Context) FirewallDeniedItemArrayOutput { return o } func (o FirewallDeniedItemArrayOutput) Index(i pulumi.IntInput) FirewallDeniedItemOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) FirewallDeniedItem { return vs[0].([]FirewallDeniedItem)[vs[1].(int)] }).(FirewallDeniedItemOutput) } type FirewallDeniedItemResponse struct { // The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp) or the IP protocol number. IpProtocol string `pulumi:"ipProtocol"` // An optional list of ports to which this rule applies. This field is only applicable for the UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ["22"], ["80","443"], and ["12345-12349"]. Ports []string `pulumi:"ports"` } type FirewallDeniedItemResponseOutput struct{ *pulumi.OutputState } func (FirewallDeniedItemResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*FirewallDeniedItemResponse)(nil)).Elem() } func (o FirewallDeniedItemResponseOutput) ToFirewallDeniedItemResponseOutput() FirewallDeniedItemResponseOutput { return o } func (o FirewallDeniedItemResponseOutput) ToFirewallDeniedItemResponseOutputWithContext(ctx context.Context) FirewallDeniedItemResponseOutput { return o } // The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp) or the IP protocol number. func (o FirewallDeniedItemResponseOutput) IpProtocol() pulumi.StringOutput { return o.ApplyT(func(v FirewallDeniedItemResponse) string { return v.IpProtocol }).(pulumi.StringOutput) } // An optional list of ports to which this rule applies. This field is only applicable for the UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ["22"], ["80","443"], and ["12345-12349"]. func (o FirewallDeniedItemResponseOutput) Ports() pulumi.StringArrayOutput { return o.ApplyT(func(v FirewallDeniedItemResponse) []string { return v.Ports }).(pulumi.StringArrayOutput) } type FirewallDeniedItemResponseArrayOutput struct{ *pulumi.OutputState } func (FirewallDeniedItemResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]FirewallDeniedItemResponse)(nil)).Elem() } func (o FirewallDeniedItemResponseArrayOutput) ToFirewallDeniedItemResponseArrayOutput() FirewallDeniedItemResponseArrayOutput { return o } func (o FirewallDeniedItemResponseArrayOutput) ToFirewallDeniedItemResponseArrayOutputWithContext(ctx context.Context) FirewallDeniedItemResponseArrayOutput { return o } func (o FirewallDeniedItemResponseArrayOutput) Index(i pulumi.IntInput) FirewallDeniedItemResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) FirewallDeniedItemResponse { return vs[0].([]FirewallDeniedItemResponse)[vs[1].(int)] }).(FirewallDeniedItemResponseOutput) } // The available logging options for a firewall rule. type FirewallLogConfig struct { // This field denotes whether to enable logging for a particular firewall rule. Enable *bool `pulumi:"enable"` // This field can only be specified for a particular firewall rule if logging is enabled for that rule. This field denotes whether to include or exclude metadata for firewall logs. Metadata *FirewallLogConfigMetadata `pulumi:"metadata"` } // FirewallLogConfigInput is an input type that accepts FirewallLogConfigArgs and FirewallLogConfigOutput values. // You can construct a concrete instance of `FirewallLogConfigInput` via: // // FirewallLogConfigArgs{...} type FirewallLogConfigInput interface { pulumi.Input ToFirewallLogConfigOutput() FirewallLogConfigOutput ToFirewallLogConfigOutputWithContext(context.Context) FirewallLogConfigOutput } // The available logging options for a firewall rule. type FirewallLogConfigArgs struct { // This field denotes whether to enable logging for a particular firewall rule. Enable pulumi.BoolPtrInput `pulumi:"enable"` // This field can only be specified for a particular firewall rule if logging is enabled for that rule. This field denotes whether to include or exclude metadata for firewall logs. Metadata FirewallLogConfigMetadataPtrInput `pulumi:"metadata"` } func (FirewallLogConfigArgs) ElementType() reflect.Type { return reflect.TypeOf((*FirewallLogConfig)(nil)).Elem() } func (i FirewallLogConfigArgs) ToFirewallLogConfigOutput() FirewallLogConfigOutput { return i.ToFirewallLogConfigOutputWithContext(context.Background()) } func (i FirewallLogConfigArgs) ToFirewallLogConfigOutputWithContext(ctx context.Context) FirewallLogConfigOutput { return pulumi.ToOutputWithContext(ctx, i).(FirewallLogConfigOutput) } func (i FirewallLogConfigArgs) ToFirewallLogConfigPtrOutput() FirewallLogConfigPtrOutput { return i.ToFirewallLogConfigPtrOutputWithContext(context.Background()) } func (i FirewallLogConfigArgs) ToFirewallLogConfigPtrOutputWithContext(ctx context.Context) FirewallLogConfigPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(FirewallLogConfigOutput).ToFirewallLogConfigPtrOutputWithContext(ctx) } // FirewallLogConfigPtrInput is an input type that accepts FirewallLogConfigArgs, FirewallLogConfigPtr and FirewallLogConfigPtrOutput values. // You can construct a concrete instance of `FirewallLogConfigPtrInput` via: // // FirewallLogConfigArgs{...} // // or: // // nil type FirewallLogConfigPtrInput interface { pulumi.Input ToFirewallLogConfigPtrOutput() FirewallLogConfigPtrOutput ToFirewallLogConfigPtrOutputWithContext(context.Context) FirewallLogConfigPtrOutput } type firewallLogConfigPtrType FirewallLogConfigArgs func FirewallLogConfigPtr(v *FirewallLogConfigArgs) FirewallLogConfigPtrInput { return (*firewallLogConfigPtrType)(v) } func (*firewallLogConfigPtrType) ElementType() reflect.Type { return reflect.TypeOf((**FirewallLogConfig)(nil)).Elem() } func (i *firewallLogConfigPtrType) ToFirewallLogConfigPtrOutput() FirewallLogConfigPtrOutput { return i.ToFirewallLogConfigPtrOutputWithContext(context.Background()) } func (i *firewallLogConfigPtrType) ToFirewallLogConfigPtrOutputWithContext(ctx context.Context) FirewallLogConfigPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(FirewallLogConfigPtrOutput) } // The available logging options for a firewall rule. type FirewallLogConfigOutput struct{ *pulumi.OutputState } func (FirewallLogConfigOutput) ElementType() reflect.Type { return reflect.TypeOf((*FirewallLogConfig)(nil)).Elem() } func (o FirewallLogConfigOutput) ToFirewallLogConfigOutput() FirewallLogConfigOutput { return o } func (o FirewallLogConfigOutput) ToFirewallLogConfigOutputWithContext(ctx context.Context) FirewallLogConfigOutput { return o } func (o FirewallLogConfigOutput) ToFirewallLogConfigPtrOutput() FirewallLogConfigPtrOutput { return o.ToFirewallLogConfigPtrOutputWithContext(context.Background()) } func (o FirewallLogConfigOutput) ToFirewallLogConfigPtrOutputWithContext(ctx context.Context) FirewallLogConfigPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v FirewallLogConfig) *FirewallLogConfig { return &v }).(FirewallLogConfigPtrOutput) } // This field denotes whether to enable logging for a particular firewall rule. func (o FirewallLogConfigOutput) Enable() pulumi.BoolPtrOutput { return o.ApplyT(func(v FirewallLogConfig) *bool { return v.Enable }).(pulumi.BoolPtrOutput) } // This field can only be specified for a particular firewall rule if logging is enabled for that rule. This field denotes whether to include or exclude metadata for firewall logs. func (o FirewallLogConfigOutput) Metadata() FirewallLogConfigMetadataPtrOutput { return o.ApplyT(func(v FirewallLogConfig) *FirewallLogConfigMetadata { return v.Metadata }).(FirewallLogConfigMetadataPtrOutput) } type FirewallLogConfigPtrOutput struct{ *pulumi.OutputState } func (FirewallLogConfigPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**FirewallLogConfig)(nil)).Elem() } func (o FirewallLogConfigPtrOutput) ToFirewallLogConfigPtrOutput() FirewallLogConfigPtrOutput { return o } func (o FirewallLogConfigPtrOutput) ToFirewallLogConfigPtrOutputWithContext(ctx context.Context) FirewallLogConfigPtrOutput { return o } func (o FirewallLogConfigPtrOutput) Elem() FirewallLogConfigOutput { return o.ApplyT(func(v *FirewallLogConfig) FirewallLogConfig { if v != nil { return *v } var ret FirewallLogConfig return ret }).(FirewallLogConfigOutput) } // This field denotes whether to enable logging for a particular firewall rule. func (o FirewallLogConfigPtrOutput) Enable() pulumi.BoolPtrOutput { return o.ApplyT(func(v *FirewallLogConfig) *bool { if v == nil { return nil } return v.Enable }).(pulumi.BoolPtrOutput) } // This field can only be specified for a particular firewall rule if logging is enabled for that rule. This field denotes whether to include or exclude metadata for firewall logs. func (o FirewallLogConfigPtrOutput) Metadata() FirewallLogConfigMetadataPtrOutput { return o.ApplyT(func(v *FirewallLogConfig) *FirewallLogConfigMetadata { if v == nil { return nil } return v.Metadata }).(FirewallLogConfigMetadataPtrOutput) } // The available logging options for a firewall rule. type FirewallLogConfigResponse struct { // This field denotes whether to enable logging for a particular firewall rule. Enable bool `pulumi:"enable"` // This field can only be specified for a particular firewall rule if logging is enabled for that rule. This field denotes whether to include or exclude metadata for firewall logs. Metadata string `pulumi:"metadata"` } // The available logging options for a firewall rule. type FirewallLogConfigResponseOutput struct{ *pulumi.OutputState } func (FirewallLogConfigResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*FirewallLogConfigResponse)(nil)).Elem() } func (o FirewallLogConfigResponseOutput) ToFirewallLogConfigResponseOutput() FirewallLogConfigResponseOutput { return o } func (o FirewallLogConfigResponseOutput) ToFirewallLogConfigResponseOutputWithContext(ctx context.Context) FirewallLogConfigResponseOutput { return o } // This field denotes whether to enable logging for a particular firewall rule. func (o FirewallLogConfigResponseOutput) Enable() pulumi.BoolOutput { return o.ApplyT(func(v FirewallLogConfigResponse) bool { return v.Enable }).(pulumi.BoolOutput) } // This field can only be specified for a particular firewall rule if logging is enabled for that rule. This field denotes whether to include or exclude metadata for firewall logs. func (o FirewallLogConfigResponseOutput) Metadata() pulumi.StringOutput { return o.ApplyT(func(v FirewallLogConfigResponse) string { return v.Metadata }).(pulumi.StringOutput) } type FirewallPolicyAssociation struct { // The target that the firewall policy is attached to. AttachmentTarget *string `pulumi:"attachmentTarget"` // The name for an association. Name *string `pulumi:"name"` } // FirewallPolicyAssociationInput is an input type that accepts FirewallPolicyAssociationArgs and FirewallPolicyAssociationOutput values. // You can construct a concrete instance of `FirewallPolicyAssociationInput` via: // // FirewallPolicyAssociationArgs{...} type FirewallPolicyAssociationInput interface { pulumi.Input ToFirewallPolicyAssociationOutput() FirewallPolicyAssociationOutput ToFirewallPolicyAssociationOutputWithContext(context.Context) FirewallPolicyAssociationOutput } type FirewallPolicyAssociationArgs struct { // The target that the firewall policy is attached to. AttachmentTarget pulumi.StringPtrInput `pulumi:"attachmentTarget"` // The name for an association. Name pulumi.StringPtrInput `pulumi:"name"` } func (FirewallPolicyAssociationArgs) ElementType() reflect.Type { return reflect.TypeOf((*FirewallPolicyAssociation)(nil)).Elem() } func (i FirewallPolicyAssociationArgs) ToFirewallPolicyAssociationOutput() FirewallPolicyAssociationOutput { return i.ToFirewallPolicyAssociationOutputWithContext(context.Background()) } func (i FirewallPolicyAssociationArgs) ToFirewallPolicyAssociationOutputWithContext(ctx context.Context) FirewallPolicyAssociationOutput { return pulumi.ToOutputWithContext(ctx, i).(FirewallPolicyAssociationOutput) } // FirewallPolicyAssociationArrayInput is an input type that accepts FirewallPolicyAssociationArray and FirewallPolicyAssociationArrayOutput values. // You can construct a concrete instance of `FirewallPolicyAssociationArrayInput` via: // // FirewallPolicyAssociationArray{ FirewallPolicyAssociationArgs{...} } type FirewallPolicyAssociationArrayInput interface { pulumi.Input ToFirewallPolicyAssociationArrayOutput() FirewallPolicyAssociationArrayOutput ToFirewallPolicyAssociationArrayOutputWithContext(context.Context) FirewallPolicyAssociationArrayOutput } type FirewallPolicyAssociationArray []FirewallPolicyAssociationInput func (FirewallPolicyAssociationArray) ElementType() reflect.Type { return reflect.TypeOf((*[]FirewallPolicyAssociation)(nil)).Elem() } func (i FirewallPolicyAssociationArray) ToFirewallPolicyAssociationArrayOutput() FirewallPolicyAssociationArrayOutput { return i.ToFirewallPolicyAssociationArrayOutputWithContext(context.Background()) } func (i FirewallPolicyAssociationArray) ToFirewallPolicyAssociationArrayOutputWithContext(ctx context.Context) FirewallPolicyAssociationArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(FirewallPolicyAssociationArrayOutput) } type FirewallPolicyAssociationOutput struct{ *pulumi.OutputState } func (FirewallPolicyAssociationOutput) ElementType() reflect.Type { return reflect.TypeOf((*FirewallPolicyAssociation)(nil)).Elem() } func (o FirewallPolicyAssociationOutput) ToFirewallPolicyAssociationOutput() FirewallPolicyAssociationOutput { return o } func (o FirewallPolicyAssociationOutput) ToFirewallPolicyAssociationOutputWithContext(ctx context.Context) FirewallPolicyAssociationOutput { return o } // The target that the firewall policy is attached to. func (o FirewallPolicyAssociationOutput) AttachmentTarget() pulumi.StringPtrOutput { return o.ApplyT(func(v FirewallPolicyAssociation) *string { return v.AttachmentTarget }).(pulumi.StringPtrOutput) } // The name for an association. func (o FirewallPolicyAssociationOutput) Name() pulumi.StringPtrOutput { return o.ApplyT(func(v FirewallPolicyAssociation) *string { return v.Name }).(pulumi.StringPtrOutput) } type FirewallPolicyAssociationArrayOutput struct{ *pulumi.OutputState } func (FirewallPolicyAssociationArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]FirewallPolicyAssociation)(nil)).Elem() } func (o FirewallPolicyAssociationArrayOutput) ToFirewallPolicyAssociationArrayOutput() FirewallPolicyAssociationArrayOutput { return o } func (o FirewallPolicyAssociationArrayOutput) ToFirewallPolicyAssociationArrayOutputWithContext(ctx context.Context) FirewallPolicyAssociationArrayOutput { return o } func (o FirewallPolicyAssociationArrayOutput) Index(i pulumi.IntInput) FirewallPolicyAssociationOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) FirewallPolicyAssociation { return vs[0].([]FirewallPolicyAssociation)[vs[1].(int)] }).(FirewallPolicyAssociationOutput) } type FirewallPolicyAssociationResponse struct { // The target that the firewall policy is attached to. AttachmentTarget string `pulumi:"attachmentTarget"` // Deprecated, please use short name instead. The display name of the firewall policy of the association. DisplayName string `pulumi:"displayName"` // The firewall policy ID of the association. FirewallPolicyId string `pulumi:"firewallPolicyId"` // The name for an association. Name string `pulumi:"name"` // The short name of the firewall policy of the association. ShortName string `pulumi:"shortName"` } type FirewallPolicyAssociationResponseOutput struct{ *pulumi.OutputState } func (FirewallPolicyAssociationResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*FirewallPolicyAssociationResponse)(nil)).Elem() } func (o FirewallPolicyAssociationResponseOutput) ToFirewallPolicyAssociationResponseOutput() FirewallPolicyAssociationResponseOutput { return o } func (o FirewallPolicyAssociationResponseOutput) ToFirewallPolicyAssociationResponseOutputWithContext(ctx context.Context) FirewallPolicyAssociationResponseOutput { return o } // The target that the firewall policy is attached to. func (o FirewallPolicyAssociationResponseOutput) AttachmentTarget() pulumi.StringOutput { return o.ApplyT(func(v FirewallPolicyAssociationResponse) string { return v.AttachmentTarget }).(pulumi.StringOutput) } // Deprecated, please use short name instead. The display name of the firewall policy of the association. func (o FirewallPolicyAssociationResponseOutput) DisplayName() pulumi.StringOutput { return o.ApplyT(func(v FirewallPolicyAssociationResponse) string { return v.DisplayName }).(pulumi.StringOutput) } // The firewall policy ID of the association. func (o FirewallPolicyAssociationResponseOutput) FirewallPolicyId() pulumi.StringOutput { return o.ApplyT(func(v FirewallPolicyAssociationResponse) string { return v.FirewallPolicyId }).(pulumi.StringOutput) } // The name for an association. func (o FirewallPolicyAssociationResponseOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v FirewallPolicyAssociationResponse) string { return v.Name }).(pulumi.StringOutput) } // The short name of the firewall policy of the association. func (o FirewallPolicyAssociationResponseOutput) ShortName() pulumi.StringOutput { return o.ApplyT(func(v FirewallPolicyAssociationResponse) string { return v.ShortName }).(pulumi.StringOutput) } type FirewallPolicyAssociationResponseArrayOutput struct{ *pulumi.OutputState } func (FirewallPolicyAssociationResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]FirewallPolicyAssociationResponse)(nil)).Elem() } func (o FirewallPolicyAssociationResponseArrayOutput) ToFirewallPolicyAssociationResponseArrayOutput() FirewallPolicyAssociationResponseArrayOutput { return o } func (o FirewallPolicyAssociationResponseArrayOutput) ToFirewallPolicyAssociationResponseArrayOutputWithContext(ctx context.Context) FirewallPolicyAssociationResponseArrayOutput { return o } func (o FirewallPolicyAssociationResponseArrayOutput) Index(i pulumi.IntInput) FirewallPolicyAssociationResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) FirewallPolicyAssociationResponse { return vs[0].([]FirewallPolicyAssociationResponse)[vs[1].(int)] }).(FirewallPolicyAssociationResponseOutput) } // Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny). type FirewallPolicyRule struct { // The Action to perform when the client connection triggers the rule. Can currently be either "allow" or "deny()" where valid values for status are 403, 404, and 502. Action *string `pulumi:"action"` // An optional description for this resource. Description *string `pulumi:"description"` // The direction in which this rule applies. Direction *FirewallPolicyRuleDirection `pulumi:"direction"` // Denotes whether the firewall policy rule is disabled. When set to true, the firewall policy rule is not enforced and traffic behaves as if it did not exist. If this is unspecified, the firewall policy rule will be enabled. Disabled *bool `pulumi:"disabled"` // Denotes whether to enable logging for a particular rule. If logging is enabled, logs will be exported to the configured export destination in Stackdriver. Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging on "goto_next" rules. EnableLogging *bool `pulumi:"enableLogging"` // A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced. Match *FirewallPolicyRuleMatcher `pulumi:"match"` // An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. Priority *int `pulumi:"priority"` // A list of network resource URLs to which this rule applies. This field allows you to control which network's VMs get this rule. If this field is left blank, all VMs within the organization will receive the rule. TargetResources []string `pulumi:"targetResources"` // A list of service accounts indicating the sets of instances that are applied with this rule. TargetServiceAccounts []string `pulumi:"targetServiceAccounts"` } // FirewallPolicyRuleInput is an input type that accepts FirewallPolicyRuleArgs and FirewallPolicyRuleOutput values. // You can construct a concrete instance of `FirewallPolicyRuleInput` via: // // FirewallPolicyRuleArgs{...} type FirewallPolicyRuleInput interface { pulumi.Input ToFirewallPolicyRuleOutput() FirewallPolicyRuleOutput ToFirewallPolicyRuleOutputWithContext(context.Context) FirewallPolicyRuleOutput } // Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny). type FirewallPolicyRuleArgs struct { // The Action to perform when the client connection triggers the rule. Can currently be either "allow" or "deny()" where valid values for status are 403, 404, and 502. Action pulumi.StringPtrInput `pulumi:"action"` // An optional description for this resource. Description pulumi.StringPtrInput `pulumi:"description"` // The direction in which this rule applies. Direction FirewallPolicyRuleDirectionPtrInput `pulumi:"direction"` // Denotes whether the firewall policy rule is disabled. When set to true, the firewall policy rule is not enforced and traffic behaves as if it did not exist. If this is unspecified, the firewall policy rule will be enabled. Disabled pulumi.BoolPtrInput `pulumi:"disabled"` // Denotes whether to enable logging for a particular rule. If logging is enabled, logs will be exported to the configured export destination in Stackdriver. Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging on "goto_next" rules. EnableLogging pulumi.BoolPtrInput `pulumi:"enableLogging"` // A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced. Match FirewallPolicyRuleMatcherPtrInput `pulumi:"match"` // An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. Priority pulumi.IntPtrInput `pulumi:"priority"` // A list of network resource URLs to which this rule applies. This field allows you to control which network's VMs get this rule. If this field is left blank, all VMs within the organization will receive the rule. TargetResources pulumi.StringArrayInput `pulumi:"targetResources"` // A list of service accounts indicating the sets of instances that are applied with this rule. TargetServiceAccounts pulumi.StringArrayInput `pulumi:"targetServiceAccounts"` } func (FirewallPolicyRuleArgs) ElementType() reflect.Type { return reflect.TypeOf((*FirewallPolicyRule)(nil)).Elem() } func (i FirewallPolicyRuleArgs) ToFirewallPolicyRuleOutput() FirewallPolicyRuleOutput { return i.ToFirewallPolicyRuleOutputWithContext(context.Background()) } func (i FirewallPolicyRuleArgs) ToFirewallPolicyRuleOutputWithContext(ctx context.Context) FirewallPolicyRuleOutput { return pulumi.ToOutputWithContext(ctx, i).(FirewallPolicyRuleOutput) } // FirewallPolicyRuleArrayInput is an input type that accepts FirewallPolicyRuleArray and FirewallPolicyRuleArrayOutput values. // You can construct a concrete instance of `FirewallPolicyRuleArrayInput` via: // // FirewallPolicyRuleArray{ FirewallPolicyRuleArgs{...} } type FirewallPolicyRuleArrayInput interface { pulumi.Input ToFirewallPolicyRuleArrayOutput() FirewallPolicyRuleArrayOutput ToFirewallPolicyRuleArrayOutputWithContext(context.Context) FirewallPolicyRuleArrayOutput } type FirewallPolicyRuleArray []FirewallPolicyRuleInput func (FirewallPolicyRuleArray) ElementType() reflect.Type { return reflect.TypeOf((*[]FirewallPolicyRule)(nil)).Elem() } func (i FirewallPolicyRuleArray) ToFirewallPolicyRuleArrayOutput() FirewallPolicyRuleArrayOutput { return i.ToFirewallPolicyRuleArrayOutputWithContext(context.Background()) } func (i FirewallPolicyRuleArray) ToFirewallPolicyRuleArrayOutputWithContext(ctx context.Context) FirewallPolicyRuleArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(FirewallPolicyRuleArrayOutput) } // Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny). type FirewallPolicyRuleOutput struct{ *pulumi.OutputState } func (FirewallPolicyRuleOutput) ElementType() reflect.Type { return reflect.TypeOf((*FirewallPolicyRule)(nil)).Elem() } func (o FirewallPolicyRuleOutput) ToFirewallPolicyRuleOutput() FirewallPolicyRuleOutput { return o } func (o FirewallPolicyRuleOutput) ToFirewallPolicyRuleOutputWithContext(ctx context.Context) FirewallPolicyRuleOutput { return o } // The Action to perform when the client connection triggers the rule. Can currently be either "allow" or "deny()" where valid values for status are 403, 404, and 502. func (o FirewallPolicyRuleOutput) Action() pulumi.StringPtrOutput { return o.ApplyT(func(v FirewallPolicyRule) *string { return v.Action }).(pulumi.StringPtrOutput) } // An optional description for this resource. func (o FirewallPolicyRuleOutput) Description() pulumi.StringPtrOutput { return o.ApplyT(func(v FirewallPolicyRule) *string { return v.Description }).(pulumi.StringPtrOutput) } // The direction in which this rule applies. func (o FirewallPolicyRuleOutput) Direction() FirewallPolicyRuleDirectionPtrOutput { return o.ApplyT(func(v FirewallPolicyRule) *FirewallPolicyRuleDirection { return v.Direction }).(FirewallPolicyRuleDirectionPtrOutput) } // Denotes whether the firewall policy rule is disabled. When set to true, the firewall policy rule is not enforced and traffic behaves as if it did not exist. If this is unspecified, the firewall policy rule will be enabled. func (o FirewallPolicyRuleOutput) Disabled() pulumi.BoolPtrOutput { return o.ApplyT(func(v FirewallPolicyRule) *bool { return v.Disabled }).(pulumi.BoolPtrOutput) } // Denotes whether to enable logging for a particular rule. If logging is enabled, logs will be exported to the configured export destination in Stackdriver. Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging on "goto_next" rules. func (o FirewallPolicyRuleOutput) EnableLogging() pulumi.BoolPtrOutput { return o.ApplyT(func(v FirewallPolicyRule) *bool { return v.EnableLogging }).(pulumi.BoolPtrOutput) } // A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced. func (o FirewallPolicyRuleOutput) Match() FirewallPolicyRuleMatcherPtrOutput { return o.ApplyT(func(v FirewallPolicyRule) *FirewallPolicyRuleMatcher { return v.Match }).(FirewallPolicyRuleMatcherPtrOutput) } // An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. func (o FirewallPolicyRuleOutput) Priority() pulumi.IntPtrOutput { return o.ApplyT(func(v FirewallPolicyRule) *int { return v.Priority }).(pulumi.IntPtrOutput) } // A list of network resource URLs to which this rule applies. This field allows you to control which network's VMs get this rule. If this field is left blank, all VMs within the organization will receive the rule. func (o FirewallPolicyRuleOutput) TargetResources() pulumi.StringArrayOutput { return o.ApplyT(func(v FirewallPolicyRule) []string { return v.TargetResources }).(pulumi.StringArrayOutput) } // A list of service accounts indicating the sets of instances that are applied with this rule. func (o FirewallPolicyRuleOutput) TargetServiceAccounts() pulumi.StringArrayOutput { return o.ApplyT(func(v FirewallPolicyRule) []string { return v.TargetServiceAccounts }).(pulumi.StringArrayOutput) } type FirewallPolicyRuleArrayOutput struct{ *pulumi.OutputState } func (FirewallPolicyRuleArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]FirewallPolicyRule)(nil)).Elem() } func (o FirewallPolicyRuleArrayOutput) ToFirewallPolicyRuleArrayOutput() FirewallPolicyRuleArrayOutput { return o } func (o FirewallPolicyRuleArrayOutput) ToFirewallPolicyRuleArrayOutputWithContext(ctx context.Context) FirewallPolicyRuleArrayOutput { return o } func (o FirewallPolicyRuleArrayOutput) Index(i pulumi.IntInput) FirewallPolicyRuleOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) FirewallPolicyRule { return vs[0].([]FirewallPolicyRule)[vs[1].(int)] }).(FirewallPolicyRuleOutput) } // Represents a match condition that incoming traffic is evaluated against. Exactly one field must be specified. type FirewallPolicyRuleMatcher struct { // CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 5000. DestIpRanges []string `pulumi:"destIpRanges"` // Pairs of IP protocols and ports that the rule should match. Layer4Configs []FirewallPolicyRuleMatcherLayer4Config `pulumi:"layer4Configs"` // CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000. SrcIpRanges []string `pulumi:"srcIpRanges"` } // FirewallPolicyRuleMatcherInput is an input type that accepts FirewallPolicyRuleMatcherArgs and FirewallPolicyRuleMatcherOutput values. // You can construct a concrete instance of `FirewallPolicyRuleMatcherInput` via: // // FirewallPolicyRuleMatcherArgs{...} type FirewallPolicyRuleMatcherInput interface { pulumi.Input ToFirewallPolicyRuleMatcherOutput() FirewallPolicyRuleMatcherOutput ToFirewallPolicyRuleMatcherOutputWithContext(context.Context) FirewallPolicyRuleMatcherOutput } // Represents a match condition that incoming traffic is evaluated against. Exactly one field must be specified. type FirewallPolicyRuleMatcherArgs struct { // CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 5000. DestIpRanges pulumi.StringArrayInput `pulumi:"destIpRanges"` // Pairs of IP protocols and ports that the rule should match. Layer4Configs FirewallPolicyRuleMatcherLayer4ConfigArrayInput `pulumi:"layer4Configs"` // CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000. SrcIpRanges pulumi.StringArrayInput `pulumi:"srcIpRanges"` } func (FirewallPolicyRuleMatcherArgs) ElementType() reflect.Type { return reflect.TypeOf((*FirewallPolicyRuleMatcher)(nil)).Elem() } func (i FirewallPolicyRuleMatcherArgs) ToFirewallPolicyRuleMatcherOutput() FirewallPolicyRuleMatcherOutput { return i.ToFirewallPolicyRuleMatcherOutputWithContext(context.Background()) } func (i FirewallPolicyRuleMatcherArgs) ToFirewallPolicyRuleMatcherOutputWithContext(ctx context.Context) FirewallPolicyRuleMatcherOutput { return pulumi.ToOutputWithContext(ctx, i).(FirewallPolicyRuleMatcherOutput) } func (i FirewallPolicyRuleMatcherArgs) ToFirewallPolicyRuleMatcherPtrOutput() FirewallPolicyRuleMatcherPtrOutput { return i.ToFirewallPolicyRuleMatcherPtrOutputWithContext(context.Background()) } func (i FirewallPolicyRuleMatcherArgs) ToFirewallPolicyRuleMatcherPtrOutputWithContext(ctx context.Context) FirewallPolicyRuleMatcherPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(FirewallPolicyRuleMatcherOutput).ToFirewallPolicyRuleMatcherPtrOutputWithContext(ctx) } // FirewallPolicyRuleMatcherPtrInput is an input type that accepts FirewallPolicyRuleMatcherArgs, FirewallPolicyRuleMatcherPtr and FirewallPolicyRuleMatcherPtrOutput values. // You can construct a concrete instance of `FirewallPolicyRuleMatcherPtrInput` via: // // FirewallPolicyRuleMatcherArgs{...} // // or: // // nil type FirewallPolicyRuleMatcherPtrInput interface { pulumi.Input ToFirewallPolicyRuleMatcherPtrOutput() FirewallPolicyRuleMatcherPtrOutput ToFirewallPolicyRuleMatcherPtrOutputWithContext(context.Context) FirewallPolicyRuleMatcherPtrOutput } type firewallPolicyRuleMatcherPtrType FirewallPolicyRuleMatcherArgs func FirewallPolicyRuleMatcherPtr(v *FirewallPolicyRuleMatcherArgs) FirewallPolicyRuleMatcherPtrInput { return (*firewallPolicyRuleMatcherPtrType)(v) } func (*firewallPolicyRuleMatcherPtrType) ElementType() reflect.Type { return reflect.TypeOf((**FirewallPolicyRuleMatcher)(nil)).Elem() } func (i *firewallPolicyRuleMatcherPtrType) ToFirewallPolicyRuleMatcherPtrOutput() FirewallPolicyRuleMatcherPtrOutput { return i.ToFirewallPolicyRuleMatcherPtrOutputWithContext(context.Background()) } func (i *firewallPolicyRuleMatcherPtrType) ToFirewallPolicyRuleMatcherPtrOutputWithContext(ctx context.Context) FirewallPolicyRuleMatcherPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(FirewallPolicyRuleMatcherPtrOutput) } // Represents a match condition that incoming traffic is evaluated against. Exactly one field must be specified. type FirewallPolicyRuleMatcherOutput struct{ *pulumi.OutputState } func (FirewallPolicyRuleMatcherOutput) ElementType() reflect.Type { return reflect.TypeOf((*FirewallPolicyRuleMatcher)(nil)).Elem() } func (o FirewallPolicyRuleMatcherOutput) ToFirewallPolicyRuleMatcherOutput() FirewallPolicyRuleMatcherOutput { return o } func (o FirewallPolicyRuleMatcherOutput) ToFirewallPolicyRuleMatcherOutputWithContext(ctx context.Context) FirewallPolicyRuleMatcherOutput { return o } func (o FirewallPolicyRuleMatcherOutput) ToFirewallPolicyRuleMatcherPtrOutput() FirewallPolicyRuleMatcherPtrOutput { return o.ToFirewallPolicyRuleMatcherPtrOutputWithContext(context.Background()) } func (o FirewallPolicyRuleMatcherOutput) ToFirewallPolicyRuleMatcherPtrOutputWithContext(ctx context.Context) FirewallPolicyRuleMatcherPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v FirewallPolicyRuleMatcher) *FirewallPolicyRuleMatcher { return &v }).(FirewallPolicyRuleMatcherPtrOutput) } // CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 5000. func (o FirewallPolicyRuleMatcherOutput) DestIpRanges() pulumi.StringArrayOutput { return o.ApplyT(func(v FirewallPolicyRuleMatcher) []string { return v.DestIpRanges }).(pulumi.StringArrayOutput) } // Pairs of IP protocols and ports that the rule should match. func (o FirewallPolicyRuleMatcherOutput) Layer4Configs() FirewallPolicyRuleMatcherLayer4ConfigArrayOutput { return o.ApplyT(func(v FirewallPolicyRuleMatcher) []FirewallPolicyRuleMatcherLayer4Config { return v.Layer4Configs }).(FirewallPolicyRuleMatcherLayer4ConfigArrayOutput) } // CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000. func (o FirewallPolicyRuleMatcherOutput) SrcIpRanges() pulumi.StringArrayOutput { return o.ApplyT(func(v FirewallPolicyRuleMatcher) []string { return v.SrcIpRanges }).(pulumi.StringArrayOutput) } type FirewallPolicyRuleMatcherPtrOutput struct{ *pulumi.OutputState } func (FirewallPolicyRuleMatcherPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**FirewallPolicyRuleMatcher)(nil)).Elem() } func (o FirewallPolicyRuleMatcherPtrOutput) ToFirewallPolicyRuleMatcherPtrOutput() FirewallPolicyRuleMatcherPtrOutput { return o } func (o FirewallPolicyRuleMatcherPtrOutput) ToFirewallPolicyRuleMatcherPtrOutputWithContext(ctx context.Context) FirewallPolicyRuleMatcherPtrOutput { return o } func (o FirewallPolicyRuleMatcherPtrOutput) Elem() FirewallPolicyRuleMatcherOutput { return o.ApplyT(func(v *FirewallPolicyRuleMatcher) FirewallPolicyRuleMatcher { if v != nil { return *v } var ret FirewallPolicyRuleMatcher return ret }).(FirewallPolicyRuleMatcherOutput) } // CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 5000. func (o FirewallPolicyRuleMatcherPtrOutput) DestIpRanges() pulumi.StringArrayOutput { return o.ApplyT(func(v *FirewallPolicyRuleMatcher) []string { if v == nil { return nil } return v.DestIpRanges }).(pulumi.StringArrayOutput) } // Pairs of IP protocols and ports that the rule should match. func (o FirewallPolicyRuleMatcherPtrOutput) Layer4Configs() FirewallPolicyRuleMatcherLayer4ConfigArrayOutput { return o.ApplyT(func(v *FirewallPolicyRuleMatcher) []FirewallPolicyRuleMatcherLayer4Config { if v == nil { return nil } return v.Layer4Configs }).(FirewallPolicyRuleMatcherLayer4ConfigArrayOutput) } // CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000. func (o FirewallPolicyRuleMatcherPtrOutput) SrcIpRanges() pulumi.StringArrayOutput { return o.ApplyT(func(v *FirewallPolicyRuleMatcher) []string { if v == nil { return nil } return v.SrcIpRanges }).(pulumi.StringArrayOutput) } type FirewallPolicyRuleMatcherLayer4Config struct { // The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp), or the IP protocol number. IpProtocol *string `pulumi:"ipProtocol"` // An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ["22"], ["80","443"], and ["12345-12349"]. Ports []string `pulumi:"ports"` } // FirewallPolicyRuleMatcherLayer4ConfigInput is an input type that accepts FirewallPolicyRuleMatcherLayer4ConfigArgs and FirewallPolicyRuleMatcherLayer4ConfigOutput values. // You can construct a concrete instance of `FirewallPolicyRuleMatcherLayer4ConfigInput` via: // // FirewallPolicyRuleMatcherLayer4ConfigArgs{...} type FirewallPolicyRuleMatcherLayer4ConfigInput interface { pulumi.Input ToFirewallPolicyRuleMatcherLayer4ConfigOutput() FirewallPolicyRuleMatcherLayer4ConfigOutput ToFirewallPolicyRuleMatcherLayer4ConfigOutputWithContext(context.Context) FirewallPolicyRuleMatcherLayer4ConfigOutput } type FirewallPolicyRuleMatcherLayer4ConfigArgs struct { // The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp), or the IP protocol number. IpProtocol pulumi.StringPtrInput `pulumi:"ipProtocol"` // An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ["22"], ["80","443"], and ["12345-12349"]. Ports pulumi.StringArrayInput `pulumi:"ports"` } func (FirewallPolicyRuleMatcherLayer4ConfigArgs) ElementType() reflect.Type { return reflect.TypeOf((*FirewallPolicyRuleMatcherLayer4Config)(nil)).Elem() } func (i FirewallPolicyRuleMatcherLayer4ConfigArgs) ToFirewallPolicyRuleMatcherLayer4ConfigOutput() FirewallPolicyRuleMatcherLayer4ConfigOutput { return i.ToFirewallPolicyRuleMatcherLayer4ConfigOutputWithContext(context.Background()) } func (i FirewallPolicyRuleMatcherLayer4ConfigArgs) ToFirewallPolicyRuleMatcherLayer4ConfigOutputWithContext(ctx context.Context) FirewallPolicyRuleMatcherLayer4ConfigOutput { return pulumi.ToOutputWithContext(ctx, i).(FirewallPolicyRuleMatcherLayer4ConfigOutput) } // FirewallPolicyRuleMatcherLayer4ConfigArrayInput is an input type that accepts FirewallPolicyRuleMatcherLayer4ConfigArray and FirewallPolicyRuleMatcherLayer4ConfigArrayOutput values. // You can construct a concrete instance of `FirewallPolicyRuleMatcherLayer4ConfigArrayInput` via: // // FirewallPolicyRuleMatcherLayer4ConfigArray{ FirewallPolicyRuleMatcherLayer4ConfigArgs{...} } type FirewallPolicyRuleMatcherLayer4ConfigArrayInput interface { pulumi.Input ToFirewallPolicyRuleMatcherLayer4ConfigArrayOutput() FirewallPolicyRuleMatcherLayer4ConfigArrayOutput ToFirewallPolicyRuleMatcherLayer4ConfigArrayOutputWithContext(context.Context) FirewallPolicyRuleMatcherLayer4ConfigArrayOutput } type FirewallPolicyRuleMatcherLayer4ConfigArray []FirewallPolicyRuleMatcherLayer4ConfigInput func (FirewallPolicyRuleMatcherLayer4ConfigArray) ElementType() reflect.Type { return reflect.TypeOf((*[]FirewallPolicyRuleMatcherLayer4Config)(nil)).Elem() } func (i FirewallPolicyRuleMatcherLayer4ConfigArray) ToFirewallPolicyRuleMatcherLayer4ConfigArrayOutput() FirewallPolicyRuleMatcherLayer4ConfigArrayOutput { return i.ToFirewallPolicyRuleMatcherLayer4ConfigArrayOutputWithContext(context.Background()) } func (i FirewallPolicyRuleMatcherLayer4ConfigArray) ToFirewallPolicyRuleMatcherLayer4ConfigArrayOutputWithContext(ctx context.Context) FirewallPolicyRuleMatcherLayer4ConfigArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(FirewallPolicyRuleMatcherLayer4ConfigArrayOutput) } type FirewallPolicyRuleMatcherLayer4ConfigOutput struct{ *pulumi.OutputState } func (FirewallPolicyRuleMatcherLayer4ConfigOutput) ElementType() reflect.Type { return reflect.TypeOf((*FirewallPolicyRuleMatcherLayer4Config)(nil)).Elem() } func (o FirewallPolicyRuleMatcherLayer4ConfigOutput) ToFirewallPolicyRuleMatcherLayer4ConfigOutput() FirewallPolicyRuleMatcherLayer4ConfigOutput { return o } func (o FirewallPolicyRuleMatcherLayer4ConfigOutput) ToFirewallPolicyRuleMatcherLayer4ConfigOutputWithContext(ctx context.Context) FirewallPolicyRuleMatcherLayer4ConfigOutput { return o } // The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp), or the IP protocol number. func (o FirewallPolicyRuleMatcherLayer4ConfigOutput) IpProtocol() pulumi.StringPtrOutput { return o.ApplyT(func(v FirewallPolicyRuleMatcherLayer4Config) *string { return v.IpProtocol }).(pulumi.StringPtrOutput) } // An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ["22"], ["80","443"], and ["12345-12349"]. func (o FirewallPolicyRuleMatcherLayer4ConfigOutput) Ports() pulumi.StringArrayOutput { return o.ApplyT(func(v FirewallPolicyRuleMatcherLayer4Config) []string { return v.Ports }).(pulumi.StringArrayOutput) } type FirewallPolicyRuleMatcherLayer4ConfigArrayOutput struct{ *pulumi.OutputState } func (FirewallPolicyRuleMatcherLayer4ConfigArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]FirewallPolicyRuleMatcherLayer4Config)(nil)).Elem() } func (o FirewallPolicyRuleMatcherLayer4ConfigArrayOutput) ToFirewallPolicyRuleMatcherLayer4ConfigArrayOutput() FirewallPolicyRuleMatcherLayer4ConfigArrayOutput { return o } func (o FirewallPolicyRuleMatcherLayer4ConfigArrayOutput) ToFirewallPolicyRuleMatcherLayer4ConfigArrayOutputWithContext(ctx context.Context) FirewallPolicyRuleMatcherLayer4ConfigArrayOutput { return o } func (o FirewallPolicyRuleMatcherLayer4ConfigArrayOutput) Index(i pulumi.IntInput) FirewallPolicyRuleMatcherLayer4ConfigOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) FirewallPolicyRuleMatcherLayer4Config { return vs[0].([]FirewallPolicyRuleMatcherLayer4Config)[vs[1].(int)] }).(FirewallPolicyRuleMatcherLayer4ConfigOutput) } type FirewallPolicyRuleMatcherLayer4ConfigResponse struct { // The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp), or the IP protocol number. IpProtocol string `pulumi:"ipProtocol"` // An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ["22"], ["80","443"], and ["12345-12349"]. Ports []string `pulumi:"ports"` } type FirewallPolicyRuleMatcherLayer4ConfigResponseOutput struct{ *pulumi.OutputState } func (FirewallPolicyRuleMatcherLayer4ConfigResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*FirewallPolicyRuleMatcherLayer4ConfigResponse)(nil)).Elem() } func (o FirewallPolicyRuleMatcherLayer4ConfigResponseOutput) ToFirewallPolicyRuleMatcherLayer4ConfigResponseOutput() FirewallPolicyRuleMatcherLayer4ConfigResponseOutput { return o } func (o FirewallPolicyRuleMatcherLayer4ConfigResponseOutput) ToFirewallPolicyRuleMatcherLayer4ConfigResponseOutputWithContext(ctx context.Context) FirewallPolicyRuleMatcherLayer4ConfigResponseOutput { return o } // The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp), or the IP protocol number. func (o FirewallPolicyRuleMatcherLayer4ConfigResponseOutput) IpProtocol() pulumi.StringOutput { return o.ApplyT(func(v FirewallPolicyRuleMatcherLayer4ConfigResponse) string { return v.IpProtocol }).(pulumi.StringOutput) } // An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ["22"], ["80","443"], and ["12345-12349"]. func (o FirewallPolicyRuleMatcherLayer4ConfigResponseOutput) Ports() pulumi.StringArrayOutput { return o.ApplyT(func(v FirewallPolicyRuleMatcherLayer4ConfigResponse) []string { return v.Ports }).(pulumi.StringArrayOutput) } type FirewallPolicyRuleMatcherLayer4ConfigResponseArrayOutput struct{ *pulumi.OutputState } func (FirewallPolicyRuleMatcherLayer4ConfigResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]FirewallPolicyRuleMatcherLayer4ConfigResponse)(nil)).Elem() } func (o FirewallPolicyRuleMatcherLayer4ConfigResponseArrayOutput) ToFirewallPolicyRuleMatcherLayer4ConfigResponseArrayOutput() FirewallPolicyRuleMatcherLayer4ConfigResponseArrayOutput { return o } func (o FirewallPolicyRuleMatcherLayer4ConfigResponseArrayOutput) ToFirewallPolicyRuleMatcherLayer4ConfigResponseArrayOutputWithContext(ctx context.Context) FirewallPolicyRuleMatcherLayer4ConfigResponseArrayOutput { return o } func (o FirewallPolicyRuleMatcherLayer4ConfigResponseArrayOutput) Index(i pulumi.IntInput) FirewallPolicyRuleMatcherLayer4ConfigResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) FirewallPolicyRuleMatcherLayer4ConfigResponse { return vs[0].([]FirewallPolicyRuleMatcherLayer4ConfigResponse)[vs[1].(int)] }).(FirewallPolicyRuleMatcherLayer4ConfigResponseOutput) } // Represents a match condition that incoming traffic is evaluated against. Exactly one field must be specified. type FirewallPolicyRuleMatcherResponse struct { // CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 5000. DestIpRanges []string `pulumi:"destIpRanges"` // Pairs of IP protocols and ports that the rule should match. Layer4Configs []FirewallPolicyRuleMatcherLayer4ConfigResponse `pulumi:"layer4Configs"` // CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000. SrcIpRanges []string `pulumi:"srcIpRanges"` } // Represents a match condition that incoming traffic is evaluated against. Exactly one field must be specified. type FirewallPolicyRuleMatcherResponseOutput struct{ *pulumi.OutputState } func (FirewallPolicyRuleMatcherResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*FirewallPolicyRuleMatcherResponse)(nil)).Elem() } func (o FirewallPolicyRuleMatcherResponseOutput) ToFirewallPolicyRuleMatcherResponseOutput() FirewallPolicyRuleMatcherResponseOutput { return o } func (o FirewallPolicyRuleMatcherResponseOutput) ToFirewallPolicyRuleMatcherResponseOutputWithContext(ctx context.Context) FirewallPolicyRuleMatcherResponseOutput { return o } // CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 5000. func (o FirewallPolicyRuleMatcherResponseOutput) DestIpRanges() pulumi.StringArrayOutput { return o.ApplyT(func(v FirewallPolicyRuleMatcherResponse) []string { return v.DestIpRanges }).(pulumi.StringArrayOutput) } // Pairs of IP protocols and ports that the rule should match. func (o FirewallPolicyRuleMatcherResponseOutput) Layer4Configs() FirewallPolicyRuleMatcherLayer4ConfigResponseArrayOutput { return o.ApplyT(func(v FirewallPolicyRuleMatcherResponse) []FirewallPolicyRuleMatcherLayer4ConfigResponse { return v.Layer4Configs }).(FirewallPolicyRuleMatcherLayer4ConfigResponseArrayOutput) } // CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000. func (o FirewallPolicyRuleMatcherResponseOutput) SrcIpRanges() pulumi.StringArrayOutput { return o.ApplyT(func(v FirewallPolicyRuleMatcherResponse) []string { return v.SrcIpRanges }).(pulumi.StringArrayOutput) } // Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny). type FirewallPolicyRuleResponse struct { // The Action to perform when the client connection triggers the rule. Can currently be either "allow" or "deny()" where valid values for status are 403, 404, and 502. Action string `pulumi:"action"` // An optional description for this resource. Description string `pulumi:"description"` // The direction in which this rule applies. Direction string `pulumi:"direction"` // Denotes whether the firewall policy rule is disabled. When set to true, the firewall policy rule is not enforced and traffic behaves as if it did not exist. If this is unspecified, the firewall policy rule will be enabled. Disabled bool `pulumi:"disabled"` // Denotes whether to enable logging for a particular rule. If logging is enabled, logs will be exported to the configured export destination in Stackdriver. Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging on "goto_next" rules. EnableLogging bool `pulumi:"enableLogging"` // [Output only] Type of the resource. Always compute#firewallPolicyRule for firewall policy rules Kind string `pulumi:"kind"` // A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced. Match FirewallPolicyRuleMatcherResponse `pulumi:"match"` // An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. Priority int `pulumi:"priority"` // Calculation of the complexity of a single firewall policy rule. RuleTupleCount int `pulumi:"ruleTupleCount"` // A list of network resource URLs to which this rule applies. This field allows you to control which network's VMs get this rule. If this field is left blank, all VMs within the organization will receive the rule. TargetResources []string `pulumi:"targetResources"` // A list of service accounts indicating the sets of instances that are applied with this rule. TargetServiceAccounts []string `pulumi:"targetServiceAccounts"` } // Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny). type FirewallPolicyRuleResponseOutput struct{ *pulumi.OutputState } func (FirewallPolicyRuleResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*FirewallPolicyRuleResponse)(nil)).Elem() } func (o FirewallPolicyRuleResponseOutput) ToFirewallPolicyRuleResponseOutput() FirewallPolicyRuleResponseOutput { return o } func (o FirewallPolicyRuleResponseOutput) ToFirewallPolicyRuleResponseOutputWithContext(ctx context.Context) FirewallPolicyRuleResponseOutput { return o } // The Action to perform when the client connection triggers the rule. Can currently be either "allow" or "deny()" where valid values for status are 403, 404, and 502. func (o FirewallPolicyRuleResponseOutput) Action() pulumi.StringOutput { return o.ApplyT(func(v FirewallPolicyRuleResponse) string { return v.Action }).(pulumi.StringOutput) } // An optional description for this resource. func (o FirewallPolicyRuleResponseOutput) Description() pulumi.StringOutput { return o.ApplyT(func(v FirewallPolicyRuleResponse) string { return v.Description }).(pulumi.StringOutput) } // The direction in which this rule applies. func (o FirewallPolicyRuleResponseOutput) Direction() pulumi.StringOutput { return o.ApplyT(func(v FirewallPolicyRuleResponse) string { return v.Direction }).(pulumi.StringOutput) } // Denotes whether the firewall policy rule is disabled. When set to true, the firewall policy rule is not enforced and traffic behaves as if it did not exist. If this is unspecified, the firewall policy rule will be enabled. func (o FirewallPolicyRuleResponseOutput) Disabled() pulumi.BoolOutput { return o.ApplyT(func(v FirewallPolicyRuleResponse) bool { return v.Disabled }).(pulumi.BoolOutput) } // Denotes whether to enable logging for a particular rule. If logging is enabled, logs will be exported to the configured export destination in Stackdriver. Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging on "goto_next" rules. func (o FirewallPolicyRuleResponseOutput) EnableLogging() pulumi.BoolOutput { return o.ApplyT(func(v FirewallPolicyRuleResponse) bool { return v.EnableLogging }).(pulumi.BoolOutput) } // [Output only] Type of the resource. Always compute#firewallPolicyRule for firewall policy rules func (o FirewallPolicyRuleResponseOutput) Kind() pulumi.StringOutput { return o.ApplyT(func(v FirewallPolicyRuleResponse) string { return v.Kind }).(pulumi.StringOutput) } // A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced. func (o FirewallPolicyRuleResponseOutput) Match() FirewallPolicyRuleMatcherResponseOutput { return o.ApplyT(func(v FirewallPolicyRuleResponse) FirewallPolicyRuleMatcherResponse { return v.Match }).(FirewallPolicyRuleMatcherResponseOutput) } // An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority. func (o FirewallPolicyRuleResponseOutput) Priority() pulumi.IntOutput { return o.ApplyT(func(v FirewallPolicyRuleResponse) int { return v.Priority }).(pulumi.IntOutput) } // Calculation of the complexity of a single firewall policy rule. func (o FirewallPolicyRuleResponseOutput) RuleTupleCount() pulumi.IntOutput { return o.ApplyT(func(v FirewallPolicyRuleResponse) int { return v.RuleTupleCount }).(pulumi.IntOutput) } // A list of network resource URLs to which this rule applies. This field allows you to control which network's VMs get this rule. If this field is left blank, all VMs within the organization will receive the rule. func (o FirewallPolicyRuleResponseOutput) TargetResources() pulumi.StringArrayOutput { return o.ApplyT(func(v FirewallPolicyRuleResponse) []string { return v.TargetResources }).(pulumi.StringArrayOutput) } // A list of service accounts indicating the sets of instances that are applied with this rule. func (o FirewallPolicyRuleResponseOutput) TargetServiceAccounts() pulumi.StringArrayOutput { return o.ApplyT(func(v FirewallPolicyRuleResponse) []string { return v.TargetServiceAccounts }).(pulumi.StringArrayOutput) } type FirewallPolicyRuleResponseArrayOutput struct{ *pulumi.OutputState } func (FirewallPolicyRuleResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]FirewallPolicyRuleResponse)(nil)).Elem() } func (o FirewallPolicyRuleResponseArrayOutput) ToFirewallPolicyRuleResponseArrayOutput() FirewallPolicyRuleResponseArrayOutput { return o } func (o FirewallPolicyRuleResponseArrayOutput) ToFirewallPolicyRuleResponseArrayOutputWithContext(ctx context.Context) FirewallPolicyRuleResponseArrayOutput { return o } func (o FirewallPolicyRuleResponseArrayOutput) Index(i pulumi.IntInput) FirewallPolicyRuleResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) FirewallPolicyRuleResponse { return vs[0].([]FirewallPolicyRuleResponse)[vs[1].(int)] }).(FirewallPolicyRuleResponseOutput) } // Encapsulates numeric value that can be either absolute or relative. type FixedOrPercent struct { // Specifies a fixed number of VM instances. This must be a positive integer. Fixed *int `pulumi:"fixed"` // Specifies a percentage of instances between 0 to 100%, inclusive. For example, specify 80 for 80%. Percent *int `pulumi:"percent"` } // FixedOrPercentInput is an input type that accepts FixedOrPercentArgs and FixedOrPercentOutput values. // You can construct a concrete instance of `FixedOrPercentInput` via: // // FixedOrPercentArgs{...} type FixedOrPercentInput interface { pulumi.Input ToFixedOrPercentOutput() FixedOrPercentOutput ToFixedOrPercentOutputWithContext(context.Context) FixedOrPercentOutput } // Encapsulates numeric value that can be either absolute or relative. type FixedOrPercentArgs struct { // Specifies a fixed number of VM instances. This must be a positive integer. Fixed pulumi.IntPtrInput `pulumi:"fixed"` // Specifies a percentage of instances between 0 to 100%, inclusive. For example, specify 80 for 80%. Percent pulumi.IntPtrInput `pulumi:"percent"` } func (FixedOrPercentArgs) ElementType() reflect.Type { return reflect.TypeOf((*FixedOrPercent)(nil)).Elem() } func (i FixedOrPercentArgs) ToFixedOrPercentOutput() FixedOrPercentOutput { return i.ToFixedOrPercentOutputWithContext(context.Background()) } func (i FixedOrPercentArgs) ToFixedOrPercentOutputWithContext(ctx context.Context) FixedOrPercentOutput { return pulumi.ToOutputWithContext(ctx, i).(FixedOrPercentOutput) } func (i FixedOrPercentArgs) ToFixedOrPercentPtrOutput() FixedOrPercentPtrOutput { return i.ToFixedOrPercentPtrOutputWithContext(context.Background()) } func (i FixedOrPercentArgs) ToFixedOrPercentPtrOutputWithContext(ctx context.Context) FixedOrPercentPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(FixedOrPercentOutput).ToFixedOrPercentPtrOutputWithContext(ctx) } // FixedOrPercentPtrInput is an input type that accepts FixedOrPercentArgs, FixedOrPercentPtr and FixedOrPercentPtrOutput values. // You can construct a concrete instance of `FixedOrPercentPtrInput` via: // // FixedOrPercentArgs{...} // // or: // // nil type FixedOrPercentPtrInput interface { pulumi.Input ToFixedOrPercentPtrOutput() FixedOrPercentPtrOutput ToFixedOrPercentPtrOutputWithContext(context.Context) FixedOrPercentPtrOutput } type fixedOrPercentPtrType FixedOrPercentArgs func FixedOrPercentPtr(v *FixedOrPercentArgs) FixedOrPercentPtrInput { return (*fixedOrPercentPtrType)(v) } func (*fixedOrPercentPtrType) ElementType() reflect.Type { return reflect.TypeOf((**FixedOrPercent)(nil)).Elem() } func (i *fixedOrPercentPtrType) ToFixedOrPercentPtrOutput() FixedOrPercentPtrOutput { return i.ToFixedOrPercentPtrOutputWithContext(context.Background()) } func (i *fixedOrPercentPtrType) ToFixedOrPercentPtrOutputWithContext(ctx context.Context) FixedOrPercentPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(FixedOrPercentPtrOutput) } // Encapsulates numeric value that can be either absolute or relative. type FixedOrPercentOutput struct{ *pulumi.OutputState } func (FixedOrPercentOutput) ElementType() reflect.Type { return reflect.TypeOf((*FixedOrPercent)(nil)).Elem() } func (o FixedOrPercentOutput) ToFixedOrPercentOutput() FixedOrPercentOutput { return o } func (o FixedOrPercentOutput) ToFixedOrPercentOutputWithContext(ctx context.Context) FixedOrPercentOutput { return o } func (o FixedOrPercentOutput) ToFixedOrPercentPtrOutput() FixedOrPercentPtrOutput { return o.ToFixedOrPercentPtrOutputWithContext(context.Background()) } func (o FixedOrPercentOutput) ToFixedOrPercentPtrOutputWithContext(ctx context.Context) FixedOrPercentPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v FixedOrPercent) *FixedOrPercent { return &v }).(FixedOrPercentPtrOutput) } // Specifies a fixed number of VM instances. This must be a positive integer. func (o FixedOrPercentOutput) Fixed() pulumi.IntPtrOutput { return o.ApplyT(func(v FixedOrPercent) *int { return v.Fixed }).(pulumi.IntPtrOutput) } // Specifies a percentage of instances between 0 to 100%, inclusive. For example, specify 80 for 80%. func (o FixedOrPercentOutput) Percent() pulumi.IntPtrOutput { return o.ApplyT(func(v FixedOrPercent) *int { return v.Percent }).(pulumi.IntPtrOutput) } type FixedOrPercentPtrOutput struct{ *pulumi.OutputState } func (FixedOrPercentPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**FixedOrPercent)(nil)).Elem() } func (o FixedOrPercentPtrOutput) ToFixedOrPercentPtrOutput() FixedOrPercentPtrOutput { return o } func (o FixedOrPercentPtrOutput) ToFixedOrPercentPtrOutputWithContext(ctx context.Context) FixedOrPercentPtrOutput { return o } func (o FixedOrPercentPtrOutput) Elem() FixedOrPercentOutput { return o.ApplyT(func(v *FixedOrPercent) FixedOrPercent { if v != nil { return *v } var ret FixedOrPercent return ret }).(FixedOrPercentOutput) } // Specifies a fixed number of VM instances. This must be a positive integer. func (o FixedOrPercentPtrOutput) Fixed() pulumi.IntPtrOutput { return o.ApplyT(func(v *FixedOrPercent) *int { if v == nil { return nil } return v.Fixed }).(pulumi.IntPtrOutput) } // Specifies a percentage of instances between 0 to 100%, inclusive. For example, specify 80 for 80%. func (o FixedOrPercentPtrOutput) Percent() pulumi.IntPtrOutput { return o.ApplyT(func(v *FixedOrPercent) *int { if v == nil { return nil } return v.Percent }).(pulumi.IntPtrOutput) } // Encapsulates numeric value that can be either absolute or relative. type FixedOrPercentResponse struct { // Absolute value of VM instances calculated based on the specific mode. - If the value is fixed, then the calculated value is equal to the fixed value. - If the value is a percent, then the calculated value is percent/100 * targetSize. For example, the calculated value of a 80% of a managed instance group with 150 instances would be (80/100 * 150) = 120 VM instances. If there is a remainder, the number is rounded. Calculated int `pulumi:"calculated"` // Specifies a fixed number of VM instances. This must be a positive integer. Fixed int `pulumi:"fixed"` // Specifies a percentage of instances between 0 to 100%, inclusive. For example, specify 80 for 80%. Percent int `pulumi:"percent"` } // Encapsulates numeric value that can be either absolute or relative. type FixedOrPercentResponseOutput struct{ *pulumi.OutputState } func (FixedOrPercentResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*FixedOrPercentResponse)(nil)).Elem() } func (o FixedOrPercentResponseOutput) ToFixedOrPercentResponseOutput() FixedOrPercentResponseOutput { return o } func (o FixedOrPercentResponseOutput) ToFixedOrPercentResponseOutputWithContext(ctx context.Context) FixedOrPercentResponseOutput { return o } // Absolute value of VM instances calculated based on the specific mode. - If the value is fixed, then the calculated value is equal to the fixed value. - If the value is a percent, then the calculated value is percent/100 * targetSize. For example, the calculated value of a 80% of a managed instance group with 150 instances would be (80/100 * 150) = 120 VM instances. If there is a remainder, the number is rounded. func (o FixedOrPercentResponseOutput) Calculated() pulumi.IntOutput { return o.ApplyT(func(v FixedOrPercentResponse) int { return v.Calculated }).(pulumi.IntOutput) } // Specifies a fixed number of VM instances. This must be a positive integer. func (o FixedOrPercentResponseOutput) Fixed() pulumi.IntOutput { return o.ApplyT(func(v FixedOrPercentResponse) int { return v.Fixed }).(pulumi.IntOutput) } // Specifies a percentage of instances between 0 to 100%, inclusive. For example, specify 80 for 80%. func (o FixedOrPercentResponseOutput) Percent() pulumi.IntOutput { return o.ApplyT(func(v FixedOrPercentResponse) int { return v.Percent }).(pulumi.IntOutput) } // Describes the auto-registration of the Forwarding Rule to Service Directory. The region and project of the Service Directory resource generated from this registration will be the same as this Forwarding Rule. type ForwardingRuleServiceDirectoryRegistration struct { // Service Directory namespace to register the forwarding rule under. Namespace *string `pulumi:"namespace"` // Service Directory service to register the forwarding rule under. Service *string `pulumi:"service"` // [Optional] Service Directory region to register this global forwarding rule under. Default to "us-central1". Only used for PSC for Google APIs. All PSC for Google APIs Forwarding Rules on the same network should use the same Service Directory region. ServiceDirectoryRegion *string `pulumi:"serviceDirectoryRegion"` } // ForwardingRuleServiceDirectoryRegistrationInput is an input type that accepts ForwardingRuleServiceDirectoryRegistrationArgs and ForwardingRuleServiceDirectoryRegistrationOutput values. // You can construct a concrete instance of `ForwardingRuleServiceDirectoryRegistrationInput` via: // // ForwardingRuleServiceDirectoryRegistrationArgs{...} type ForwardingRuleServiceDirectoryRegistrationInput interface { pulumi.Input ToForwardingRuleServiceDirectoryRegistrationOutput() ForwardingRuleServiceDirectoryRegistrationOutput ToForwardingRuleServiceDirectoryRegistrationOutputWithContext(context.Context) ForwardingRuleServiceDirectoryRegistrationOutput } // Describes the auto-registration of the Forwarding Rule to Service Directory. The region and project of the Service Directory resource generated from this registration will be the same as this Forwarding Rule. type ForwardingRuleServiceDirectoryRegistrationArgs struct { // Service Directory namespace to register the forwarding rule under. Namespace pulumi.StringPtrInput `pulumi:"namespace"` // Service Directory service to register the forwarding rule under. Service pulumi.StringPtrInput `pulumi:"service"` // [Optional] Service Directory region to register this global forwarding rule under. Default to "us-central1". Only used for PSC for Google APIs. All PSC for Google APIs Forwarding Rules on the same network should use the same Service Directory region. ServiceDirectoryRegion pulumi.StringPtrInput `pulumi:"serviceDirectoryRegion"` } func (ForwardingRuleServiceDirectoryRegistrationArgs) ElementType() reflect.Type { return reflect.TypeOf((*ForwardingRuleServiceDirectoryRegistration)(nil)).Elem() } func (i ForwardingRuleServiceDirectoryRegistrationArgs) ToForwardingRuleServiceDirectoryRegistrationOutput() ForwardingRuleServiceDirectoryRegistrationOutput { return i.ToForwardingRuleServiceDirectoryRegistrationOutputWithContext(context.Background()) } func (i ForwardingRuleServiceDirectoryRegistrationArgs) ToForwardingRuleServiceDirectoryRegistrationOutputWithContext(ctx context.Context) ForwardingRuleServiceDirectoryRegistrationOutput { return pulumi.ToOutputWithContext(ctx, i).(ForwardingRuleServiceDirectoryRegistrationOutput) } // ForwardingRuleServiceDirectoryRegistrationArrayInput is an input type that accepts ForwardingRuleServiceDirectoryRegistrationArray and ForwardingRuleServiceDirectoryRegistrationArrayOutput values. // You can construct a concrete instance of `ForwardingRuleServiceDirectoryRegistrationArrayInput` via: // // ForwardingRuleServiceDirectoryRegistrationArray{ ForwardingRuleServiceDirectoryRegistrationArgs{...} } type ForwardingRuleServiceDirectoryRegistrationArrayInput interface { pulumi.Input ToForwardingRuleServiceDirectoryRegistrationArrayOutput() ForwardingRuleServiceDirectoryRegistrationArrayOutput ToForwardingRuleServiceDirectoryRegistrationArrayOutputWithContext(context.Context) ForwardingRuleServiceDirectoryRegistrationArrayOutput } type ForwardingRuleServiceDirectoryRegistrationArray []ForwardingRuleServiceDirectoryRegistrationInput func (ForwardingRuleServiceDirectoryRegistrationArray) ElementType() reflect.Type { return reflect.TypeOf((*[]ForwardingRuleServiceDirectoryRegistration)(nil)).Elem() } func (i ForwardingRuleServiceDirectoryRegistrationArray) ToForwardingRuleServiceDirectoryRegistrationArrayOutput() ForwardingRuleServiceDirectoryRegistrationArrayOutput { return i.ToForwardingRuleServiceDirectoryRegistrationArrayOutputWithContext(context.Background()) } func (i ForwardingRuleServiceDirectoryRegistrationArray) ToForwardingRuleServiceDirectoryRegistrationArrayOutputWithContext(ctx context.Context) ForwardingRuleServiceDirectoryRegistrationArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(ForwardingRuleServiceDirectoryRegistrationArrayOutput) } // Describes the auto-registration of the Forwarding Rule to Service Directory. The region and project of the Service Directory resource generated from this registration will be the same as this Forwarding Rule. type ForwardingRuleServiceDirectoryRegistrationOutput struct{ *pulumi.OutputState } func (ForwardingRuleServiceDirectoryRegistrationOutput) ElementType() reflect.Type { return reflect.TypeOf((*ForwardingRuleServiceDirectoryRegistration)(nil)).Elem() } func (o ForwardingRuleServiceDirectoryRegistrationOutput) ToForwardingRuleServiceDirectoryRegistrationOutput() ForwardingRuleServiceDirectoryRegistrationOutput { return o } func (o ForwardingRuleServiceDirectoryRegistrationOutput) ToForwardingRuleServiceDirectoryRegistrationOutputWithContext(ctx context.Context) ForwardingRuleServiceDirectoryRegistrationOutput { return o } // Service Directory namespace to register the forwarding rule under. func (o ForwardingRuleServiceDirectoryRegistrationOutput) Namespace() pulumi.StringPtrOutput { return o.ApplyT(func(v ForwardingRuleServiceDirectoryRegistration) *string { return v.Namespace }).(pulumi.StringPtrOutput) } // Service Directory service to register the forwarding rule under. func (o ForwardingRuleServiceDirectoryRegistrationOutput) Service() pulumi.StringPtrOutput { return o.ApplyT(func(v ForwardingRuleServiceDirectoryRegistration) *string { return v.Service }).(pulumi.StringPtrOutput) } // [Optional] Service Directory region to register this global forwarding rule under. Default to "us-central1". Only used for PSC for Google APIs. All PSC for Google APIs Forwarding Rules on the same network should use the same Service Directory region. func (o ForwardingRuleServiceDirectoryRegistrationOutput) ServiceDirectoryRegion() pulumi.StringPtrOutput { return o.ApplyT(func(v ForwardingRuleServiceDirectoryRegistration) *string { return v.ServiceDirectoryRegion }).(pulumi.StringPtrOutput) } type ForwardingRuleServiceDirectoryRegistrationArrayOutput struct{ *pulumi.OutputState } func (ForwardingRuleServiceDirectoryRegistrationArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]ForwardingRuleServiceDirectoryRegistration)(nil)).Elem() } func (o ForwardingRuleServiceDirectoryRegistrationArrayOutput) ToForwardingRuleServiceDirectoryRegistrationArrayOutput() ForwardingRuleServiceDirectoryRegistrationArrayOutput { return o } func (o ForwardingRuleServiceDirectoryRegistrationArrayOutput) ToForwardingRuleServiceDirectoryRegistrationArrayOutputWithContext(ctx context.Context) ForwardingRuleServiceDirectoryRegistrationArrayOutput { return o } func (o ForwardingRuleServiceDirectoryRegistrationArrayOutput) Index(i pulumi.IntInput) ForwardingRuleServiceDirectoryRegistrationOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) ForwardingRuleServiceDirectoryRegistration { return vs[0].([]ForwardingRuleServiceDirectoryRegistration)[vs[1].(int)] }).(ForwardingRuleServiceDirectoryRegistrationOutput) } // Describes the auto-registration of the Forwarding Rule to Service Directory. The region and project of the Service Directory resource generated from this registration will be the same as this Forwarding Rule. type ForwardingRuleServiceDirectoryRegistrationResponse struct { // Service Directory namespace to register the forwarding rule under. Namespace string `pulumi:"namespace"` // Service Directory service to register the forwarding rule under. Service string `pulumi:"service"` // [Optional] Service Directory region to register this global forwarding rule under. Default to "us-central1". Only used for PSC for Google APIs. All PSC for Google APIs Forwarding Rules on the same network should use the same Service Directory region. ServiceDirectoryRegion string `pulumi:"serviceDirectoryRegion"` } // Describes the auto-registration of the Forwarding Rule to Service Directory. The region and project of the Service Directory resource generated from this registration will be the same as this Forwarding Rule. type ForwardingRuleServiceDirectoryRegistrationResponseOutput struct{ *pulumi.OutputState } func (ForwardingRuleServiceDirectoryRegistrationResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*ForwardingRuleServiceDirectoryRegistrationResponse)(nil)).Elem() } func (o ForwardingRuleServiceDirectoryRegistrationResponseOutput) ToForwardingRuleServiceDirectoryRegistrationResponseOutput() ForwardingRuleServiceDirectoryRegistrationResponseOutput { return o } func (o ForwardingRuleServiceDirectoryRegistrationResponseOutput) ToForwardingRuleServiceDirectoryRegistrationResponseOutputWithContext(ctx context.Context) ForwardingRuleServiceDirectoryRegistrationResponseOutput { return o } // Service Directory namespace to register the forwarding rule under. func (o ForwardingRuleServiceDirectoryRegistrationResponseOutput) Namespace() pulumi.StringOutput { return o.ApplyT(func(v ForwardingRuleServiceDirectoryRegistrationResponse) string { return v.Namespace }).(pulumi.StringOutput) } // Service Directory service to register the forwarding rule under. func (o ForwardingRuleServiceDirectoryRegistrationResponseOutput) Service() pulumi.StringOutput { return o.ApplyT(func(v ForwardingRuleServiceDirectoryRegistrationResponse) string { return v.Service }).(pulumi.StringOutput) } // [Optional] Service Directory region to register this global forwarding rule under. Default to "us-central1". Only used for PSC for Google APIs. All PSC for Google APIs Forwarding Rules on the same network should use the same Service Directory region. func (o ForwardingRuleServiceDirectoryRegistrationResponseOutput) ServiceDirectoryRegion() pulumi.StringOutput { return o.ApplyT(func(v ForwardingRuleServiceDirectoryRegistrationResponse) string { return v.ServiceDirectoryRegion }).(pulumi.StringOutput) } type ForwardingRuleServiceDirectoryRegistrationResponseArrayOutput struct{ *pulumi.OutputState } func (ForwardingRuleServiceDirectoryRegistrationResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]ForwardingRuleServiceDirectoryRegistrationResponse)(nil)).Elem() } func (o ForwardingRuleServiceDirectoryRegistrationResponseArrayOutput) ToForwardingRuleServiceDirectoryRegistrationResponseArrayOutput() ForwardingRuleServiceDirectoryRegistrationResponseArrayOutput { return o } func (o ForwardingRuleServiceDirectoryRegistrationResponseArrayOutput) ToForwardingRuleServiceDirectoryRegistrationResponseArrayOutputWithContext(ctx context.Context) ForwardingRuleServiceDirectoryRegistrationResponseArrayOutput { return o } func (o ForwardingRuleServiceDirectoryRegistrationResponseArrayOutput) Index(i pulumi.IntInput) ForwardingRuleServiceDirectoryRegistrationResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) ForwardingRuleServiceDirectoryRegistrationResponse { return vs[0].([]ForwardingRuleServiceDirectoryRegistrationResponse)[vs[1].(int)] }).(ForwardingRuleServiceDirectoryRegistrationResponseOutput) } type GRPCHealthCheck struct { // The gRPC service name for the health check. This field is optional. The value of grpc_service_name has the following meanings by convention: - Empty service_name means the overall status of all services at the backend. - Non-empty service_name means the health of that gRPC service, as defined by the owner of the service. The grpc_service_name can only be ASCII. GrpcServiceName *string `pulumi:"grpcServiceName"` // The port number for the health check request. Must be specified if port_name and port_specification are not set or if port_specification is USE_FIXED_PORT. Valid values are 1 through 65535. Port *int `pulumi:"port"` // Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence. The port_name should conform to RFC1035. PortName *string `pulumi:"portName"` // Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, gRPC health check follows behavior specified in port and portName fields. PortSpecification *GRPCHealthCheckPortSpecification `pulumi:"portSpecification"` } // GRPCHealthCheckInput is an input type that accepts GRPCHealthCheckArgs and GRPCHealthCheckOutput values. // You can construct a concrete instance of `GRPCHealthCheckInput` via: // // GRPCHealthCheckArgs{...} type GRPCHealthCheckInput interface { pulumi.Input ToGRPCHealthCheckOutput() GRPCHealthCheckOutput ToGRPCHealthCheckOutputWithContext(context.Context) GRPCHealthCheckOutput } type GRPCHealthCheckArgs struct { // The gRPC service name for the health check. This field is optional. The value of grpc_service_name has the following meanings by convention: - Empty service_name means the overall status of all services at the backend. - Non-empty service_name means the health of that gRPC service, as defined by the owner of the service. The grpc_service_name can only be ASCII. GrpcServiceName pulumi.StringPtrInput `pulumi:"grpcServiceName"` // The port number for the health check request. Must be specified if port_name and port_specification are not set or if port_specification is USE_FIXED_PORT. Valid values are 1 through 65535. Port pulumi.IntPtrInput `pulumi:"port"` // Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence. The port_name should conform to RFC1035. PortName pulumi.StringPtrInput `pulumi:"portName"` // Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, gRPC health check follows behavior specified in port and portName fields. PortSpecification GRPCHealthCheckPortSpecificationPtrInput `pulumi:"portSpecification"` } func (GRPCHealthCheckArgs) ElementType() reflect.Type { return reflect.TypeOf((*GRPCHealthCheck)(nil)).Elem() } func (i GRPCHealthCheckArgs) ToGRPCHealthCheckOutput() GRPCHealthCheckOutput { return i.ToGRPCHealthCheckOutputWithContext(context.Background()) } func (i GRPCHealthCheckArgs) ToGRPCHealthCheckOutputWithContext(ctx context.Context) GRPCHealthCheckOutput { return pulumi.ToOutputWithContext(ctx, i).(GRPCHealthCheckOutput) } func (i GRPCHealthCheckArgs) ToGRPCHealthCheckPtrOutput() GRPCHealthCheckPtrOutput { return i.ToGRPCHealthCheckPtrOutputWithContext(context.Background()) } func (i GRPCHealthCheckArgs) ToGRPCHealthCheckPtrOutputWithContext(ctx context.Context) GRPCHealthCheckPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(GRPCHealthCheckOutput).ToGRPCHealthCheckPtrOutputWithContext(ctx) } // GRPCHealthCheckPtrInput is an input type that accepts GRPCHealthCheckArgs, GRPCHealthCheckPtr and GRPCHealthCheckPtrOutput values. // You can construct a concrete instance of `GRPCHealthCheckPtrInput` via: // // GRPCHealthCheckArgs{...} // // or: // // nil type GRPCHealthCheckPtrInput interface { pulumi.Input ToGRPCHealthCheckPtrOutput() GRPCHealthCheckPtrOutput ToGRPCHealthCheckPtrOutputWithContext(context.Context) GRPCHealthCheckPtrOutput } type grpchealthCheckPtrType GRPCHealthCheckArgs func GRPCHealthCheckPtr(v *GRPCHealthCheckArgs) GRPCHealthCheckPtrInput { return (*grpchealthCheckPtrType)(v) } func (*grpchealthCheckPtrType) ElementType() reflect.Type { return reflect.TypeOf((**GRPCHealthCheck)(nil)).Elem() } func (i *grpchealthCheckPtrType) ToGRPCHealthCheckPtrOutput() GRPCHealthCheckPtrOutput { return i.ToGRPCHealthCheckPtrOutputWithContext(context.Background()) } func (i *grpchealthCheckPtrType) ToGRPCHealthCheckPtrOutputWithContext(ctx context.Context) GRPCHealthCheckPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(GRPCHealthCheckPtrOutput) } type GRPCHealthCheckOutput struct{ *pulumi.OutputState } func (GRPCHealthCheckOutput) ElementType() reflect.Type { return reflect.TypeOf((*GRPCHealthCheck)(nil)).Elem() } func (o GRPCHealthCheckOutput) ToGRPCHealthCheckOutput() GRPCHealthCheckOutput { return o } func (o GRPCHealthCheckOutput) ToGRPCHealthCheckOutputWithContext(ctx context.Context) GRPCHealthCheckOutput { return o } func (o GRPCHealthCheckOutput) ToGRPCHealthCheckPtrOutput() GRPCHealthCheckPtrOutput { return o.ToGRPCHealthCheckPtrOutputWithContext(context.Background()) } func (o GRPCHealthCheckOutput) ToGRPCHealthCheckPtrOutputWithContext(ctx context.Context) GRPCHealthCheckPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v GRPCHealthCheck) *GRPCHealthCheck { return &v }).(GRPCHealthCheckPtrOutput) } // The gRPC service name for the health check. This field is optional. The value of grpc_service_name has the following meanings by convention: - Empty service_name means the overall status of all services at the backend. - Non-empty service_name means the health of that gRPC service, as defined by the owner of the service. The grpc_service_name can only be ASCII. func (o GRPCHealthCheckOutput) GrpcServiceName() pulumi.StringPtrOutput { return o.ApplyT(func(v GRPCHealthCheck) *string { return v.GrpcServiceName }).(pulumi.StringPtrOutput) } // The port number for the health check request. Must be specified if port_name and port_specification are not set or if port_specification is USE_FIXED_PORT. Valid values are 1 through 65535. func (o GRPCHealthCheckOutput) Port() pulumi.IntPtrOutput { return o.ApplyT(func(v GRPCHealthCheck) *int { return v.Port }).(pulumi.IntPtrOutput) } // Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence. The port_name should conform to RFC1035. func (o GRPCHealthCheckOutput) PortName() pulumi.StringPtrOutput { return o.ApplyT(func(v GRPCHealthCheck) *string { return v.PortName }).(pulumi.StringPtrOutput) } // Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, gRPC health check follows behavior specified in port and portName fields. func (o GRPCHealthCheckOutput) PortSpecification() GRPCHealthCheckPortSpecificationPtrOutput { return o.ApplyT(func(v GRPCHealthCheck) *GRPCHealthCheckPortSpecification { return v.PortSpecification }).(GRPCHealthCheckPortSpecificationPtrOutput) } type GRPCHealthCheckPtrOutput struct{ *pulumi.OutputState } func (GRPCHealthCheckPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**GRPCHealthCheck)(nil)).Elem() } func (o GRPCHealthCheckPtrOutput) ToGRPCHealthCheckPtrOutput() GRPCHealthCheckPtrOutput { return o } func (o GRPCHealthCheckPtrOutput) ToGRPCHealthCheckPtrOutputWithContext(ctx context.Context) GRPCHealthCheckPtrOutput { return o } func (o GRPCHealthCheckPtrOutput) Elem() GRPCHealthCheckOutput { return o.ApplyT(func(v *GRPCHealthCheck) GRPCHealthCheck { if v != nil { return *v } var ret GRPCHealthCheck return ret }).(GRPCHealthCheckOutput) } // The gRPC service name for the health check. This field is optional. The value of grpc_service_name has the following meanings by convention: - Empty service_name means the overall status of all services at the backend. - Non-empty service_name means the health of that gRPC service, as defined by the owner of the service. The grpc_service_name can only be ASCII. func (o GRPCHealthCheckPtrOutput) GrpcServiceName() pulumi.StringPtrOutput { return o.ApplyT(func(v *GRPCHealthCheck) *string { if v == nil { return nil } return v.GrpcServiceName }).(pulumi.StringPtrOutput) } // The port number for the health check request. Must be specified if port_name and port_specification are not set or if port_specification is USE_FIXED_PORT. Valid values are 1 through 65535. func (o GRPCHealthCheckPtrOutput) Port() pulumi.IntPtrOutput { return o.ApplyT(func(v *GRPCHealthCheck) *int { if v == nil { return nil } return v.Port }).(pulumi.IntPtrOutput) } // Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence. The port_name should conform to RFC1035. func (o GRPCHealthCheckPtrOutput) PortName() pulumi.StringPtrOutput { return o.ApplyT(func(v *GRPCHealthCheck) *string { if v == nil { return nil } return v.PortName }).(pulumi.StringPtrOutput) } // Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, gRPC health check follows behavior specified in port and portName fields. func (o GRPCHealthCheckPtrOutput) PortSpecification() GRPCHealthCheckPortSpecificationPtrOutput { return o.ApplyT(func(v *GRPCHealthCheck) *GRPCHealthCheckPortSpecification { if v == nil { return nil } return v.PortSpecification }).(GRPCHealthCheckPortSpecificationPtrOutput) } type GRPCHealthCheckResponse struct { // The gRPC service name for the health check. This field is optional. The value of grpc_service_name has the following meanings by convention: - Empty service_name means the overall status of all services at the backend. - Non-empty service_name means the health of that gRPC service, as defined by the owner of the service. The grpc_service_name can only be ASCII. GrpcServiceName string `pulumi:"grpcServiceName"` // The port number for the health check request. Must be specified if port_name and port_specification are not set or if port_specification is USE_FIXED_PORT. Valid values are 1 through 65535. Port int `pulumi:"port"` // Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence. The port_name should conform to RFC1035. PortName string `pulumi:"portName"` // Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, gRPC health check follows behavior specified in port and portName fields. PortSpecification string `pulumi:"portSpecification"` } type GRPCHealthCheckResponseOutput struct{ *pulumi.OutputState } func (GRPCHealthCheckResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*GRPCHealthCheckResponse)(nil)).Elem() } func (o GRPCHealthCheckResponseOutput) ToGRPCHealthCheckResponseOutput() GRPCHealthCheckResponseOutput { return o } func (o GRPCHealthCheckResponseOutput) ToGRPCHealthCheckResponseOutputWithContext(ctx context.Context) GRPCHealthCheckResponseOutput { return o } // The gRPC service name for the health check. This field is optional. The value of grpc_service_name has the following meanings by convention: - Empty service_name means the overall status of all services at the backend. - Non-empty service_name means the health of that gRPC service, as defined by the owner of the service. The grpc_service_name can only be ASCII. func (o GRPCHealthCheckResponseOutput) GrpcServiceName() pulumi.StringOutput { return o.ApplyT(func(v GRPCHealthCheckResponse) string { return v.GrpcServiceName }).(pulumi.StringOutput) } // The port number for the health check request. Must be specified if port_name and port_specification are not set or if port_specification is USE_FIXED_PORT. Valid values are 1 through 65535. func (o GRPCHealthCheckResponseOutput) Port() pulumi.IntOutput { return o.ApplyT(func(v GRPCHealthCheckResponse) int { return v.Port }).(pulumi.IntOutput) } // Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence. The port_name should conform to RFC1035. func (o GRPCHealthCheckResponseOutput) PortName() pulumi.StringOutput { return o.ApplyT(func(v GRPCHealthCheckResponse) string { return v.PortName }).(pulumi.StringOutput) } // Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, gRPC health check follows behavior specified in port and portName fields. func (o GRPCHealthCheckResponseOutput) PortSpecification() pulumi.StringOutput { return o.ApplyT(func(v GRPCHealthCheckResponse) string { return v.PortSpecification }).(pulumi.StringOutput) } // Guest OS features. type GuestOsFeature struct { // The ID of a supported feature. To add multiple values, use commas to separate values. Set to one or more of the following values: - VIRTIO_SCSI_MULTIQUEUE - WINDOWS - MULTI_IP_SUBNET - UEFI_COMPATIBLE - SECURE_BOOT - GVNIC - SEV_CAPABLE - SUSPEND_RESUME_COMPATIBLE For more information, see Enabling guest operating system features. Type *GuestOsFeatureType `pulumi:"type"` } // GuestOsFeatureInput is an input type that accepts GuestOsFeatureArgs and GuestOsFeatureOutput values. // You can construct a concrete instance of `GuestOsFeatureInput` via: // // GuestOsFeatureArgs{...} type GuestOsFeatureInput interface { pulumi.Input ToGuestOsFeatureOutput() GuestOsFeatureOutput ToGuestOsFeatureOutputWithContext(context.Context) GuestOsFeatureOutput } // Guest OS features. type GuestOsFeatureArgs struct { // The ID of a supported feature. To add multiple values, use commas to separate values. Set to one or more of the following values: - VIRTIO_SCSI_MULTIQUEUE - WINDOWS - MULTI_IP_SUBNET - UEFI_COMPATIBLE - SECURE_BOOT - GVNIC - SEV_CAPABLE - SUSPEND_RESUME_COMPATIBLE For more information, see Enabling guest operating system features. Type GuestOsFeatureTypePtrInput `pulumi:"type"` } func (GuestOsFeatureArgs) ElementType() reflect.Type { return reflect.TypeOf((*GuestOsFeature)(nil)).Elem() } func (i GuestOsFeatureArgs) ToGuestOsFeatureOutput() GuestOsFeatureOutput { return i.ToGuestOsFeatureOutputWithContext(context.Background()) } func (i GuestOsFeatureArgs) ToGuestOsFeatureOutputWithContext(ctx context.Context) GuestOsFeatureOutput { return pulumi.ToOutputWithContext(ctx, i).(GuestOsFeatureOutput) } // GuestOsFeatureArrayInput is an input type that accepts GuestOsFeatureArray and GuestOsFeatureArrayOutput values. // You can construct a concrete instance of `GuestOsFeatureArrayInput` via: // // GuestOsFeatureArray{ GuestOsFeatureArgs{...} } type GuestOsFeatureArrayInput interface { pulumi.Input ToGuestOsFeatureArrayOutput() GuestOsFeatureArrayOutput ToGuestOsFeatureArrayOutputWithContext(context.Context) GuestOsFeatureArrayOutput } type GuestOsFeatureArray []GuestOsFeatureInput func (GuestOsFeatureArray) ElementType() reflect.Type { return reflect.TypeOf((*[]GuestOsFeature)(nil)).Elem() } func (i GuestOsFeatureArray) ToGuestOsFeatureArrayOutput() GuestOsFeatureArrayOutput { return i.ToGuestOsFeatureArrayOutputWithContext(context.Background()) } func (i GuestOsFeatureArray) ToGuestOsFeatureArrayOutputWithContext(ctx context.Context) GuestOsFeatureArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(GuestOsFeatureArrayOutput) } // Guest OS features. type GuestOsFeatureOutput struct{ *pulumi.OutputState } func (GuestOsFeatureOutput) ElementType() reflect.Type { return reflect.TypeOf((*GuestOsFeature)(nil)).Elem() } func (o GuestOsFeatureOutput) ToGuestOsFeatureOutput() GuestOsFeatureOutput { return o } func (o GuestOsFeatureOutput) ToGuestOsFeatureOutputWithContext(ctx context.Context) GuestOsFeatureOutput { return o } // The ID of a supported feature. To add multiple values, use commas to separate values. Set to one or more of the following values: - VIRTIO_SCSI_MULTIQUEUE - WINDOWS - MULTI_IP_SUBNET - UEFI_COMPATIBLE - SECURE_BOOT - GVNIC - SEV_CAPABLE - SUSPEND_RESUME_COMPATIBLE For more information, see Enabling guest operating system features. func (o GuestOsFeatureOutput) Type() GuestOsFeatureTypePtrOutput { return o.ApplyT(func(v GuestOsFeature) *GuestOsFeatureType { return v.Type }).(GuestOsFeatureTypePtrOutput) } type GuestOsFeatureArrayOutput struct{ *pulumi.OutputState } func (GuestOsFeatureArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]GuestOsFeature)(nil)).Elem() } func (o GuestOsFeatureArrayOutput) ToGuestOsFeatureArrayOutput() GuestOsFeatureArrayOutput { return o } func (o GuestOsFeatureArrayOutput) ToGuestOsFeatureArrayOutputWithContext(ctx context.Context) GuestOsFeatureArrayOutput { return o } func (o GuestOsFeatureArrayOutput) Index(i pulumi.IntInput) GuestOsFeatureOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) GuestOsFeature { return vs[0].([]GuestOsFeature)[vs[1].(int)] }).(GuestOsFeatureOutput) } // Guest OS features. type GuestOsFeatureResponse struct { // The ID of a supported feature. To add multiple values, use commas to separate values. Set to one or more of the following values: - VIRTIO_SCSI_MULTIQUEUE - WINDOWS - MULTI_IP_SUBNET - UEFI_COMPATIBLE - SECURE_BOOT - GVNIC - SEV_CAPABLE - SUSPEND_RESUME_COMPATIBLE For more information, see Enabling guest operating system features. Type string `pulumi:"type"` } // Guest OS features. type GuestOsFeatureResponseOutput struct{ *pulumi.OutputState } func (GuestOsFeatureResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*GuestOsFeatureResponse)(nil)).Elem() } func (o GuestOsFeatureResponseOutput) ToGuestOsFeatureResponseOutput() GuestOsFeatureResponseOutput { return o } func (o GuestOsFeatureResponseOutput) ToGuestOsFeatureResponseOutputWithContext(ctx context.Context) GuestOsFeatureResponseOutput { return o } // The ID of a supported feature. To add multiple values, use commas to separate values. Set to one or more of the following values: - VIRTIO_SCSI_MULTIQUEUE - WINDOWS - MULTI_IP_SUBNET - UEFI_COMPATIBLE - SECURE_BOOT - GVNIC - SEV_CAPABLE - SUSPEND_RESUME_COMPATIBLE For more information, see Enabling guest operating system features. func (o GuestOsFeatureResponseOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v GuestOsFeatureResponse) string { return v.Type }).(pulumi.StringOutput) } type GuestOsFeatureResponseArrayOutput struct{ *pulumi.OutputState } func (GuestOsFeatureResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]GuestOsFeatureResponse)(nil)).Elem() } func (o GuestOsFeatureResponseArrayOutput) ToGuestOsFeatureResponseArrayOutput() GuestOsFeatureResponseArrayOutput { return o } func (o GuestOsFeatureResponseArrayOutput) ToGuestOsFeatureResponseArrayOutputWithContext(ctx context.Context) GuestOsFeatureResponseArrayOutput { return o } func (o GuestOsFeatureResponseArrayOutput) Index(i pulumi.IntInput) GuestOsFeatureResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) GuestOsFeatureResponse { return vs[0].([]GuestOsFeatureResponse)[vs[1].(int)] }).(GuestOsFeatureResponseOutput) } type HTTP2HealthCheck struct { // The value of the host header in the HTTP/2 health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used. Host *string `pulumi:"host"` // The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535. Port *int `pulumi:"port"` // Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence. PortName *string `pulumi:"portName"` // Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, HTTP2 health check follows behavior specified in port and portName fields. PortSpecification *HTTP2HealthCheckPortSpecification `pulumi:"portSpecification"` // Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE. ProxyHeader *HTTP2HealthCheckProxyHeader `pulumi:"proxyHeader"` // The request path of the HTTP/2 health check request. The default value is /. RequestPath *string `pulumi:"requestPath"` // The string to match anywhere in the first 1024 bytes of the response body. If left empty (the default value), the status code determines health. The response data can only be ASCII. Response *string `pulumi:"response"` } // HTTP2HealthCheckInput is an input type that accepts HTTP2HealthCheckArgs and HTTP2HealthCheckOutput values. // You can construct a concrete instance of `HTTP2HealthCheckInput` via: // // HTTP2HealthCheckArgs{...} type HTTP2HealthCheckInput interface { pulumi.Input ToHTTP2HealthCheckOutput() HTTP2HealthCheckOutput ToHTTP2HealthCheckOutputWithContext(context.Context) HTTP2HealthCheckOutput } type HTTP2HealthCheckArgs struct { // The value of the host header in the HTTP/2 health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used. Host pulumi.StringPtrInput `pulumi:"host"` // The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535. Port pulumi.IntPtrInput `pulumi:"port"` // Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence. PortName pulumi.StringPtrInput `pulumi:"portName"` // Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, HTTP2 health check follows behavior specified in port and portName fields. PortSpecification HTTP2HealthCheckPortSpecificationPtrInput `pulumi:"portSpecification"` // Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE. ProxyHeader HTTP2HealthCheckProxyHeaderPtrInput `pulumi:"proxyHeader"` // The request path of the HTTP/2 health check request. The default value is /. RequestPath pulumi.StringPtrInput `pulumi:"requestPath"` // The string to match anywhere in the first 1024 bytes of the response body. If left empty (the default value), the status code determines health. The response data can only be ASCII. Response pulumi.StringPtrInput `pulumi:"response"` } func (HTTP2HealthCheckArgs) ElementType() reflect.Type { return reflect.TypeOf((*HTTP2HealthCheck)(nil)).Elem() } func (i HTTP2HealthCheckArgs) ToHTTP2HealthCheckOutput() HTTP2HealthCheckOutput { return i.ToHTTP2HealthCheckOutputWithContext(context.Background()) } func (i HTTP2HealthCheckArgs) ToHTTP2HealthCheckOutputWithContext(ctx context.Context) HTTP2HealthCheckOutput { return pulumi.ToOutputWithContext(ctx, i).(HTTP2HealthCheckOutput) } func (i HTTP2HealthCheckArgs) ToHTTP2HealthCheckPtrOutput() HTTP2HealthCheckPtrOutput { return i.ToHTTP2HealthCheckPtrOutputWithContext(context.Background()) } func (i HTTP2HealthCheckArgs) ToHTTP2HealthCheckPtrOutputWithContext(ctx context.Context) HTTP2HealthCheckPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(HTTP2HealthCheckOutput).ToHTTP2HealthCheckPtrOutputWithContext(ctx) } // HTTP2HealthCheckPtrInput is an input type that accepts HTTP2HealthCheckArgs, HTTP2HealthCheckPtr and HTTP2HealthCheckPtrOutput values. // You can construct a concrete instance of `HTTP2HealthCheckPtrInput` via: // // HTTP2HealthCheckArgs{...} // // or: // // nil type HTTP2HealthCheckPtrInput interface { pulumi.Input ToHTTP2HealthCheckPtrOutput() HTTP2HealthCheckPtrOutput ToHTTP2HealthCheckPtrOutputWithContext(context.Context) HTTP2HealthCheckPtrOutput } type http2healthCheckPtrType HTTP2HealthCheckArgs func HTTP2HealthCheckPtr(v *HTTP2HealthCheckArgs) HTTP2HealthCheckPtrInput { return (*http2healthCheckPtrType)(v) } func (*http2healthCheckPtrType) ElementType() reflect.Type { return reflect.TypeOf((**HTTP2HealthCheck)(nil)).Elem() } func (i *http2healthCheckPtrType) ToHTTP2HealthCheckPtrOutput() HTTP2HealthCheckPtrOutput { return i.ToHTTP2HealthCheckPtrOutputWithContext(context.Background()) } func (i *http2healthCheckPtrType) ToHTTP2HealthCheckPtrOutputWithContext(ctx context.Context) HTTP2HealthCheckPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(HTTP2HealthCheckPtrOutput) } type HTTP2HealthCheckOutput struct{ *pulumi.OutputState } func (HTTP2HealthCheckOutput) ElementType() reflect.Type { return reflect.TypeOf((*HTTP2HealthCheck)(nil)).Elem() } func (o HTTP2HealthCheckOutput) ToHTTP2HealthCheckOutput() HTTP2HealthCheckOutput { return o } func (o HTTP2HealthCheckOutput) ToHTTP2HealthCheckOutputWithContext(ctx context.Context) HTTP2HealthCheckOutput { return o } func (o HTTP2HealthCheckOutput) ToHTTP2HealthCheckPtrOutput() HTTP2HealthCheckPtrOutput { return o.ToHTTP2HealthCheckPtrOutputWithContext(context.Background()) } func (o HTTP2HealthCheckOutput) ToHTTP2HealthCheckPtrOutputWithContext(ctx context.Context) HTTP2HealthCheckPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v HTTP2HealthCheck) *HTTP2HealthCheck { return &v }).(HTTP2HealthCheckPtrOutput) } // The value of the host header in the HTTP/2 health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used. func (o HTTP2HealthCheckOutput) Host() pulumi.StringPtrOutput { return o.ApplyT(func(v HTTP2HealthCheck) *string { return v.Host }).(pulumi.StringPtrOutput) } // The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535. func (o HTTP2HealthCheckOutput) Port() pulumi.IntPtrOutput { return o.ApplyT(func(v HTTP2HealthCheck) *int { return v.Port }).(pulumi.IntPtrOutput) } // Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence. func (o HTTP2HealthCheckOutput) PortName() pulumi.StringPtrOutput { return o.ApplyT(func(v HTTP2HealthCheck) *string { return v.PortName }).(pulumi.StringPtrOutput) } // Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, HTTP2 health check follows behavior specified in port and portName fields. func (o HTTP2HealthCheckOutput) PortSpecification() HTTP2HealthCheckPortSpecificationPtrOutput { return o.ApplyT(func(v HTTP2HealthCheck) *HTTP2HealthCheckPortSpecification { return v.PortSpecification }).(HTTP2HealthCheckPortSpecificationPtrOutput) } // Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE. func (o HTTP2HealthCheckOutput) ProxyHeader() HTTP2HealthCheckProxyHeaderPtrOutput { return o.ApplyT(func(v HTTP2HealthCheck) *HTTP2HealthCheckProxyHeader { return v.ProxyHeader }).(HTTP2HealthCheckProxyHeaderPtrOutput) } // The request path of the HTTP/2 health check request. The default value is /. func (o HTTP2HealthCheckOutput) RequestPath() pulumi.StringPtrOutput { return o.ApplyT(func(v HTTP2HealthCheck) *string { return v.RequestPath }).(pulumi.StringPtrOutput) } // The string to match anywhere in the first 1024 bytes of the response body. If left empty (the default value), the status code determines health. The response data can only be ASCII. func (o HTTP2HealthCheckOutput) Response() pulumi.StringPtrOutput { return o.ApplyT(func(v HTTP2HealthCheck) *string { return v.Response }).(pulumi.StringPtrOutput) } type HTTP2HealthCheckPtrOutput struct{ *pulumi.OutputState } func (HTTP2HealthCheckPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**HTTP2HealthCheck)(nil)).Elem() } func (o HTTP2HealthCheckPtrOutput) ToHTTP2HealthCheckPtrOutput() HTTP2HealthCheckPtrOutput { return o } func (o HTTP2HealthCheckPtrOutput) ToHTTP2HealthCheckPtrOutputWithContext(ctx context.Context) HTTP2HealthCheckPtrOutput { return o } func (o HTTP2HealthCheckPtrOutput) Elem() HTTP2HealthCheckOutput { return o.ApplyT(func(v *HTTP2HealthCheck) HTTP2HealthCheck { if v != nil { return *v } var ret HTTP2HealthCheck return ret }).(HTTP2HealthCheckOutput) } // The value of the host header in the HTTP/2 health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used. func (o HTTP2HealthCheckPtrOutput) Host() pulumi.StringPtrOutput { return o.ApplyT(func(v *HTTP2HealthCheck) *string { if v == nil { return nil } return v.Host }).(pulumi.StringPtrOutput) } // The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535. func (o HTTP2HealthCheckPtrOutput) Port() pulumi.IntPtrOutput { return o.ApplyT(func(v *HTTP2HealthCheck) *int { if v == nil { return nil } return v.Port }).(pulumi.IntPtrOutput) } // Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence. func (o HTTP2HealthCheckPtrOutput) PortName() pulumi.StringPtrOutput { return o.ApplyT(func(v *HTTP2HealthCheck) *string { if v == nil { return nil } return v.PortName }).(pulumi.StringPtrOutput) } // Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, HTTP2 health check follows behavior specified in port and portName fields. func (o HTTP2HealthCheckPtrOutput) PortSpecification() HTTP2HealthCheckPortSpecificationPtrOutput { return o.ApplyT(func(v *HTTP2HealthCheck) *HTTP2HealthCheckPortSpecification { if v == nil { return nil } return v.PortSpecification }).(HTTP2HealthCheckPortSpecificationPtrOutput) } // Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE. func (o HTTP2HealthCheckPtrOutput) ProxyHeader() HTTP2HealthCheckProxyHeaderPtrOutput { return o.ApplyT(func(v *HTTP2HealthCheck) *HTTP2HealthCheckProxyHeader { if v == nil { return nil } return v.ProxyHeader }).(HTTP2HealthCheckProxyHeaderPtrOutput) } // The request path of the HTTP/2 health check request. The default value is /. func (o HTTP2HealthCheckPtrOutput) RequestPath() pulumi.StringPtrOutput { return o.ApplyT(func(v *HTTP2HealthCheck) *string { if v == nil { return nil } return v.RequestPath }).(pulumi.StringPtrOutput) } // The string to match anywhere in the first 1024 bytes of the response body. If left empty (the default value), the status code determines health. The response data can only be ASCII. func (o HTTP2HealthCheckPtrOutput) Response() pulumi.StringPtrOutput { return o.ApplyT(func(v *HTTP2HealthCheck) *string { if v == nil { return nil } return v.Response }).(pulumi.StringPtrOutput) } type HTTP2HealthCheckResponse struct { // The value of the host header in the HTTP/2 health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used. Host string `pulumi:"host"` // The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535. Port int `pulumi:"port"` // Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence. PortName string `pulumi:"portName"` // Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, HTTP2 health check follows behavior specified in port and portName fields. PortSpecification string `pulumi:"portSpecification"` // Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE. ProxyHeader string `pulumi:"proxyHeader"` // The request path of the HTTP/2 health check request. The default value is /. RequestPath string `pulumi:"requestPath"` // The string to match anywhere in the first 1024 bytes of the response body. If left empty (the default value), the status code determines health. The response data can only be ASCII. Response string `pulumi:"response"` } type HTTP2HealthCheckResponseOutput struct{ *pulumi.OutputState } func (HTTP2HealthCheckResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*HTTP2HealthCheckResponse)(nil)).Elem() } func (o HTTP2HealthCheckResponseOutput) ToHTTP2HealthCheckResponseOutput() HTTP2HealthCheckResponseOutput { return o } func (o HTTP2HealthCheckResponseOutput) ToHTTP2HealthCheckResponseOutputWithContext(ctx context.Context) HTTP2HealthCheckResponseOutput { return o } // The value of the host header in the HTTP/2 health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used. func (o HTTP2HealthCheckResponseOutput) Host() pulumi.StringOutput { return o.ApplyT(func(v HTTP2HealthCheckResponse) string { return v.Host }).(pulumi.StringOutput) } // The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535. func (o HTTP2HealthCheckResponseOutput) Port() pulumi.IntOutput { return o.ApplyT(func(v HTTP2HealthCheckResponse) int { return v.Port }).(pulumi.IntOutput) } // Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence. func (o HTTP2HealthCheckResponseOutput) PortName() pulumi.StringOutput { return o.ApplyT(func(v HTTP2HealthCheckResponse) string { return v.PortName }).(pulumi.StringOutput) } // Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, HTTP2 health check follows behavior specified in port and portName fields. func (o HTTP2HealthCheckResponseOutput) PortSpecification() pulumi.StringOutput { return o.ApplyT(func(v HTTP2HealthCheckResponse) string { return v.PortSpecification }).(pulumi.StringOutput) } // Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE. func (o HTTP2HealthCheckResponseOutput) ProxyHeader() pulumi.StringOutput { return o.ApplyT(func(v HTTP2HealthCheckResponse) string { return v.ProxyHeader }).(pulumi.StringOutput) } // The request path of the HTTP/2 health check request. The default value is /. func (o HTTP2HealthCheckResponseOutput) RequestPath() pulumi.StringOutput { return o.ApplyT(func(v HTTP2HealthCheckResponse) string { return v.RequestPath }).(pulumi.StringOutput) } // The string to match anywhere in the first 1024 bytes of the response body. If left empty (the default value), the status code determines health. The response data can only be ASCII. func (o HTTP2HealthCheckResponseOutput) Response() pulumi.StringOutput { return o.ApplyT(func(v HTTP2HealthCheckResponse) string { return v.Response }).(pulumi.StringOutput) } type HTTPHealthCheckType struct { // The value of the host header in the HTTP health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used. Host *string `pulumi:"host"` // The TCP port number for the health check request. The default value is 80. Valid values are 1 through 65535. Port *int `pulumi:"port"` // Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence. PortName *string `pulumi:"portName"` // Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, HTTP health check follows behavior specified in port and portName fields. PortSpecification *HTTPHealthCheckPortSpecification `pulumi:"portSpecification"` // Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE. ProxyHeader *HTTPHealthCheckProxyHeader `pulumi:"proxyHeader"` // The request path of the HTTP health check request. The default value is /. RequestPath *string `pulumi:"requestPath"` // The string to match anywhere in the first 1024 bytes of the response body. If left empty (the default value), the status code determines health. The response data can only be ASCII. Response *string `pulumi:"response"` } // HTTPHealthCheckTypeInput is an input type that accepts HTTPHealthCheckTypeArgs and HTTPHealthCheckTypeOutput values. // You can construct a concrete instance of `HTTPHealthCheckTypeInput` via: // // HTTPHealthCheckTypeArgs{...} type HTTPHealthCheckTypeInput interface { pulumi.Input ToHTTPHealthCheckTypeOutput() HTTPHealthCheckTypeOutput ToHTTPHealthCheckTypeOutputWithContext(context.Context) HTTPHealthCheckTypeOutput } type HTTPHealthCheckTypeArgs struct { // The value of the host header in the HTTP health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used. Host pulumi.StringPtrInput `pulumi:"host"` // The TCP port number for the health check request. The default value is 80. Valid values are 1 through 65535. Port pulumi.IntPtrInput `pulumi:"port"` // Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence. PortName pulumi.StringPtrInput `pulumi:"portName"` // Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, HTTP health check follows behavior specified in port and portName fields. PortSpecification HTTPHealthCheckPortSpecificationPtrInput `pulumi:"portSpecification"` // Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE. ProxyHeader HTTPHealthCheckProxyHeaderPtrInput `pulumi:"proxyHeader"` // The request path of the HTTP health check request. The default value is /. RequestPath pulumi.StringPtrInput `pulumi:"requestPath"` // The string to match anywhere in the first 1024 bytes of the response body. If left empty (the default value), the status code determines health. The response data can only be ASCII. Response pulumi.StringPtrInput `pulumi:"response"` } func (HTTPHealthCheckTypeArgs) ElementType() reflect.Type { return reflect.TypeOf((*HTTPHealthCheckType)(nil)).Elem() } func (i HTTPHealthCheckTypeArgs) ToHTTPHealthCheckTypeOutput() HTTPHealthCheckTypeOutput { return i.ToHTTPHealthCheckTypeOutputWithContext(context.Background()) } func (i HTTPHealthCheckTypeArgs) ToHTTPHealthCheckTypeOutputWithContext(ctx context.Context) HTTPHealthCheckTypeOutput { return pulumi.ToOutputWithContext(ctx, i).(HTTPHealthCheckTypeOutput) } func (i HTTPHealthCheckTypeArgs) ToHTTPHealthCheckTypePtrOutput() HTTPHealthCheckTypePtrOutput { return i.ToHTTPHealthCheckTypePtrOutputWithContext(context.Background()) } func (i HTTPHealthCheckTypeArgs) ToHTTPHealthCheckTypePtrOutputWithContext(ctx context.Context) HTTPHealthCheckTypePtrOutput { return pulumi.ToOutputWithContext(ctx, i).(HTTPHealthCheckTypeOutput).ToHTTPHealthCheckTypePtrOutputWithContext(ctx) } // HTTPHealthCheckTypePtrInput is an input type that accepts HTTPHealthCheckTypeArgs, HTTPHealthCheckTypePtr and HTTPHealthCheckTypePtrOutput values. // You can construct a concrete instance of `HTTPHealthCheckTypePtrInput` via: // // HTTPHealthCheckTypeArgs{...} // // or: // // nil type HTTPHealthCheckTypePtrInput interface { pulumi.Input ToHTTPHealthCheckTypePtrOutput() HTTPHealthCheckTypePtrOutput ToHTTPHealthCheckTypePtrOutputWithContext(context.Context) HTTPHealthCheckTypePtrOutput } type httphealthCheckTypePtrType HTTPHealthCheckTypeArgs func HTTPHealthCheckTypePtr(v *HTTPHealthCheckTypeArgs) HTTPHealthCheckTypePtrInput { return (*httphealthCheckTypePtrType)(v) } func (*httphealthCheckTypePtrType) ElementType() reflect.Type { return reflect.TypeOf((**HTTPHealthCheckType)(nil)).Elem() } func (i *httphealthCheckTypePtrType) ToHTTPHealthCheckTypePtrOutput() HTTPHealthCheckTypePtrOutput { return i.ToHTTPHealthCheckTypePtrOutputWithContext(context.Background()) } func (i *httphealthCheckTypePtrType) ToHTTPHealthCheckTypePtrOutputWithContext(ctx context.Context) HTTPHealthCheckTypePtrOutput { return pulumi.ToOutputWithContext(ctx, i).(HTTPHealthCheckTypePtrOutput) } type HTTPHealthCheckTypeOutput struct{ *pulumi.OutputState } func (HTTPHealthCheckTypeOutput) ElementType() reflect.Type { return reflect.TypeOf((*HTTPHealthCheckType)(nil)).Elem() } func (o HTTPHealthCheckTypeOutput) ToHTTPHealthCheckTypeOutput() HTTPHealthCheckTypeOutput { return o } func (o HTTPHealthCheckTypeOutput) ToHTTPHealthCheckTypeOutputWithContext(ctx context.Context) HTTPHealthCheckTypeOutput { return o } func (o HTTPHealthCheckTypeOutput) ToHTTPHealthCheckTypePtrOutput() HTTPHealthCheckTypePtrOutput { return o.ToHTTPHealthCheckTypePtrOutputWithContext(context.Background()) } func (o HTTPHealthCheckTypeOutput) ToHTTPHealthCheckTypePtrOutputWithContext(ctx context.Context) HTTPHealthCheckTypePtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v HTTPHealthCheckType) *HTTPHealthCheckType { return &v }).(HTTPHealthCheckTypePtrOutput) } // The value of the host header in the HTTP health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used. func (o HTTPHealthCheckTypeOutput) Host() pulumi.StringPtrOutput { return o.ApplyT(func(v HTTPHealthCheckType) *string { return v.Host }).(pulumi.StringPtrOutput) } // The TCP port number for the health check request. The default value is 80. Valid values are 1 through 65535. func (o HTTPHealthCheckTypeOutput) Port() pulumi.IntPtrOutput { return o.ApplyT(func(v HTTPHealthCheckType) *int { return v.Port }).(pulumi.IntPtrOutput) } // Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence. func (o HTTPHealthCheckTypeOutput) PortName() pulumi.StringPtrOutput { return o.ApplyT(func(v HTTPHealthCheckType) *string { return v.PortName }).(pulumi.StringPtrOutput) } // Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, HTTP health check follows behavior specified in port and portName fields. func (o HTTPHealthCheckTypeOutput) PortSpecification() HTTPHealthCheckPortSpecificationPtrOutput { return o.ApplyT(func(v HTTPHealthCheckType) *HTTPHealthCheckPortSpecification { return v.PortSpecification }).(HTTPHealthCheckPortSpecificationPtrOutput) } // Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE. func (o HTTPHealthCheckTypeOutput) ProxyHeader() HTTPHealthCheckProxyHeaderPtrOutput { return o.ApplyT(func(v HTTPHealthCheckType) *HTTPHealthCheckProxyHeader { return v.ProxyHeader }).(HTTPHealthCheckProxyHeaderPtrOutput) } // The request path of the HTTP health check request. The default value is /. func (o HTTPHealthCheckTypeOutput) RequestPath() pulumi.StringPtrOutput { return o.ApplyT(func(v HTTPHealthCheckType) *string { return v.RequestPath }).(pulumi.StringPtrOutput) } // The string to match anywhere in the first 1024 bytes of the response body. If left empty (the default value), the status code determines health. The response data can only be ASCII. func (o HTTPHealthCheckTypeOutput) Response() pulumi.StringPtrOutput { return o.ApplyT(func(v HTTPHealthCheckType) *string { return v.Response }).(pulumi.StringPtrOutput) } type HTTPHealthCheckTypePtrOutput struct{ *pulumi.OutputState } func (HTTPHealthCheckTypePtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**HTTPHealthCheckType)(nil)).Elem() } func (o HTTPHealthCheckTypePtrOutput) ToHTTPHealthCheckTypePtrOutput() HTTPHealthCheckTypePtrOutput { return o } func (o HTTPHealthCheckTypePtrOutput) ToHTTPHealthCheckTypePtrOutputWithContext(ctx context.Context) HTTPHealthCheckTypePtrOutput { return o } func (o HTTPHealthCheckTypePtrOutput) Elem() HTTPHealthCheckTypeOutput { return o.ApplyT(func(v *HTTPHealthCheckType) HTTPHealthCheckType { if v != nil { return *v } var ret HTTPHealthCheckType return ret }).(HTTPHealthCheckTypeOutput) } // The value of the host header in the HTTP health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used. func (o HTTPHealthCheckTypePtrOutput) Host() pulumi.StringPtrOutput { return o.ApplyT(func(v *HTTPHealthCheckType) *string { if v == nil { return nil } return v.Host }).(pulumi.StringPtrOutput) } // The TCP port number for the health check request. The default value is 80. Valid values are 1 through 65535. func (o HTTPHealthCheckTypePtrOutput) Port() pulumi.IntPtrOutput { return o.ApplyT(func(v *HTTPHealthCheckType) *int { if v == nil { return nil } return v.Port }).(pulumi.IntPtrOutput) } // Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence. func (o HTTPHealthCheckTypePtrOutput) PortName() pulumi.StringPtrOutput { return o.ApplyT(func(v *HTTPHealthCheckType) *string { if v == nil { return nil } return v.PortName }).(pulumi.StringPtrOutput) } // Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, HTTP health check follows behavior specified in port and portName fields. func (o HTTPHealthCheckTypePtrOutput) PortSpecification() HTTPHealthCheckPortSpecificationPtrOutput { return o.ApplyT(func(v *HTTPHealthCheckType) *HTTPHealthCheckPortSpecification { if v == nil { return nil } return v.PortSpecification }).(HTTPHealthCheckPortSpecificationPtrOutput) } // Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE. func (o HTTPHealthCheckTypePtrOutput) ProxyHeader() HTTPHealthCheckProxyHeaderPtrOutput { return o.ApplyT(func(v *HTTPHealthCheckType) *HTTPHealthCheckProxyHeader { if v == nil { return nil } return v.ProxyHeader }).(HTTPHealthCheckProxyHeaderPtrOutput) } // The request path of the HTTP health check request. The default value is /. func (o HTTPHealthCheckTypePtrOutput) RequestPath() pulumi.StringPtrOutput { return o.ApplyT(func(v *HTTPHealthCheckType) *string { if v == nil { return nil } return v.RequestPath }).(pulumi.StringPtrOutput) } // The string to match anywhere in the first 1024 bytes of the response body. If left empty (the default value), the status code determines health. The response data can only be ASCII. func (o HTTPHealthCheckTypePtrOutput) Response() pulumi.StringPtrOutput { return o.ApplyT(func(v *HTTPHealthCheckType) *string { if v == nil { return nil } return v.Response }).(pulumi.StringPtrOutput) } type HTTPHealthCheckResponse struct { // The value of the host header in the HTTP health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used. Host string `pulumi:"host"` // The TCP port number for the health check request. The default value is 80. Valid values are 1 through 65535. Port int `pulumi:"port"` // Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence. PortName string `pulumi:"portName"` // Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, HTTP health check follows behavior specified in port and portName fields. PortSpecification string `pulumi:"portSpecification"` // Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE. ProxyHeader string `pulumi:"proxyHeader"` // The request path of the HTTP health check request. The default value is /. RequestPath string `pulumi:"requestPath"` // The string to match anywhere in the first 1024 bytes of the response body. If left empty (the default value), the status code determines health. The response data can only be ASCII. Response string `pulumi:"response"` } type HTTPHealthCheckResponseOutput struct{ *pulumi.OutputState } func (HTTPHealthCheckResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*HTTPHealthCheckResponse)(nil)).Elem() } func (o HTTPHealthCheckResponseOutput) ToHTTPHealthCheckResponseOutput() HTTPHealthCheckResponseOutput { return o } func (o HTTPHealthCheckResponseOutput) ToHTTPHealthCheckResponseOutputWithContext(ctx context.Context) HTTPHealthCheckResponseOutput { return o } // The value of the host header in the HTTP health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used. func (o HTTPHealthCheckResponseOutput) Host() pulumi.StringOutput { return o.ApplyT(func(v HTTPHealthCheckResponse) string { return v.Host }).(pulumi.StringOutput) } // The TCP port number for the health check request. The default value is 80. Valid values are 1 through 65535. func (o HTTPHealthCheckResponseOutput) Port() pulumi.IntOutput { return o.ApplyT(func(v HTTPHealthCheckResponse) int { return v.Port }).(pulumi.IntOutput) } // Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence. func (o HTTPHealthCheckResponseOutput) PortName() pulumi.StringOutput { return o.ApplyT(func(v HTTPHealthCheckResponse) string { return v.PortName }).(pulumi.StringOutput) } // Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, HTTP health check follows behavior specified in port and portName fields. func (o HTTPHealthCheckResponseOutput) PortSpecification() pulumi.StringOutput { return o.ApplyT(func(v HTTPHealthCheckResponse) string { return v.PortSpecification }).(pulumi.StringOutput) } // Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE. func (o HTTPHealthCheckResponseOutput) ProxyHeader() pulumi.StringOutput { return o.ApplyT(func(v HTTPHealthCheckResponse) string { return v.ProxyHeader }).(pulumi.StringOutput) } // The request path of the HTTP health check request. The default value is /. func (o HTTPHealthCheckResponseOutput) RequestPath() pulumi.StringOutput { return o.ApplyT(func(v HTTPHealthCheckResponse) string { return v.RequestPath }).(pulumi.StringOutput) } // The string to match anywhere in the first 1024 bytes of the response body. If left empty (the default value), the status code determines health. The response data can only be ASCII. func (o HTTPHealthCheckResponseOutput) Response() pulumi.StringOutput { return o.ApplyT(func(v HTTPHealthCheckResponse) string { return v.Response }).(pulumi.StringOutput) } type HTTPSHealthCheckType struct { // The value of the host header in the HTTPS health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used. Host *string `pulumi:"host"` // The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535. Port *int `pulumi:"port"` // Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence. PortName *string `pulumi:"portName"` // Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, HTTPS health check follows behavior specified in port and portName fields. PortSpecification *HTTPSHealthCheckPortSpecification `pulumi:"portSpecification"` // Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE. ProxyHeader *HTTPSHealthCheckProxyHeader `pulumi:"proxyHeader"` // The request path of the HTTPS health check request. The default value is /. RequestPath *string `pulumi:"requestPath"` // The string to match anywhere in the first 1024 bytes of the response body. If left empty (the default value), the status code determines health. The response data can only be ASCII. Response *string `pulumi:"response"` } // HTTPSHealthCheckTypeInput is an input type that accepts HTTPSHealthCheckTypeArgs and HTTPSHealthCheckTypeOutput values. // You can construct a concrete instance of `HTTPSHealthCheckTypeInput` via: // // HTTPSHealthCheckTypeArgs{...} type HTTPSHealthCheckTypeInput interface { pulumi.Input ToHTTPSHealthCheckTypeOutput() HTTPSHealthCheckTypeOutput ToHTTPSHealthCheckTypeOutputWithContext(context.Context) HTTPSHealthCheckTypeOutput } type HTTPSHealthCheckTypeArgs struct { // The value of the host header in the HTTPS health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used. Host pulumi.StringPtrInput `pulumi:"host"` // The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535. Port pulumi.IntPtrInput `pulumi:"port"` // Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence. PortName pulumi.StringPtrInput `pulumi:"portName"` // Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, HTTPS health check follows behavior specified in port and portName fields. PortSpecification HTTPSHealthCheckPortSpecificationPtrInput `pulumi:"portSpecification"` // Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE. ProxyHeader HTTPSHealthCheckProxyHeaderPtrInput `pulumi:"proxyHeader"` // The request path of the HTTPS health check request. The default value is /. RequestPath pulumi.StringPtrInput `pulumi:"requestPath"` // The string to match anywhere in the first 1024 bytes of the response body. If left empty (the default value), the status code determines health. The response data can only be ASCII. Response pulumi.StringPtrInput `pulumi:"response"` } func (HTTPSHealthCheckTypeArgs) ElementType() reflect.Type { return reflect.TypeOf((*HTTPSHealthCheckType)(nil)).Elem() } func (i HTTPSHealthCheckTypeArgs) ToHTTPSHealthCheckTypeOutput() HTTPSHealthCheckTypeOutput { return i.ToHTTPSHealthCheckTypeOutputWithContext(context.Background()) } func (i HTTPSHealthCheckTypeArgs) ToHTTPSHealthCheckTypeOutputWithContext(ctx context.Context) HTTPSHealthCheckTypeOutput { return pulumi.ToOutputWithContext(ctx, i).(HTTPSHealthCheckTypeOutput) } func (i HTTPSHealthCheckTypeArgs) ToHTTPSHealthCheckTypePtrOutput() HTTPSHealthCheckTypePtrOutput { return i.ToHTTPSHealthCheckTypePtrOutputWithContext(context.Background()) } func (i HTTPSHealthCheckTypeArgs) ToHTTPSHealthCheckTypePtrOutputWithContext(ctx context.Context) HTTPSHealthCheckTypePtrOutput { return pulumi.ToOutputWithContext(ctx, i).(HTTPSHealthCheckTypeOutput).ToHTTPSHealthCheckTypePtrOutputWithContext(ctx) } // HTTPSHealthCheckTypePtrInput is an input type that accepts HTTPSHealthCheckTypeArgs, HTTPSHealthCheckTypePtr and HTTPSHealthCheckTypePtrOutput values. // You can construct a concrete instance of `HTTPSHealthCheckTypePtrInput` via: // // HTTPSHealthCheckTypeArgs{...} // // or: // // nil type HTTPSHealthCheckTypePtrInput interface { pulumi.Input ToHTTPSHealthCheckTypePtrOutput() HTTPSHealthCheckTypePtrOutput ToHTTPSHealthCheckTypePtrOutputWithContext(context.Context) HTTPSHealthCheckTypePtrOutput } type httpshealthCheckTypePtrType HTTPSHealthCheckTypeArgs func HTTPSHealthCheckTypePtr(v *HTTPSHealthCheckTypeArgs) HTTPSHealthCheckTypePtrInput { return (*httpshealthCheckTypePtrType)(v) } func (*httpshealthCheckTypePtrType) ElementType() reflect.Type { return reflect.TypeOf((**HTTPSHealthCheckType)(nil)).Elem() } func (i *httpshealthCheckTypePtrType) ToHTTPSHealthCheckTypePtrOutput() HTTPSHealthCheckTypePtrOutput { return i.ToHTTPSHealthCheckTypePtrOutputWithContext(context.Background()) } func (i *httpshealthCheckTypePtrType) ToHTTPSHealthCheckTypePtrOutputWithContext(ctx context.Context) HTTPSHealthCheckTypePtrOutput { return pulumi.ToOutputWithContext(ctx, i).(HTTPSHealthCheckTypePtrOutput) } type HTTPSHealthCheckTypeOutput struct{ *pulumi.OutputState } func (HTTPSHealthCheckTypeOutput) ElementType() reflect.Type { return reflect.TypeOf((*HTTPSHealthCheckType)(nil)).Elem() } func (o HTTPSHealthCheckTypeOutput) ToHTTPSHealthCheckTypeOutput() HTTPSHealthCheckTypeOutput { return o } func (o HTTPSHealthCheckTypeOutput) ToHTTPSHealthCheckTypeOutputWithContext(ctx context.Context) HTTPSHealthCheckTypeOutput { return o } func (o HTTPSHealthCheckTypeOutput) ToHTTPSHealthCheckTypePtrOutput() HTTPSHealthCheckTypePtrOutput { return o.ToHTTPSHealthCheckTypePtrOutputWithContext(context.Background()) } func (o HTTPSHealthCheckTypeOutput) ToHTTPSHealthCheckTypePtrOutputWithContext(ctx context.Context) HTTPSHealthCheckTypePtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v HTTPSHealthCheckType) *HTTPSHealthCheckType { return &v }).(HTTPSHealthCheckTypePtrOutput) } // The value of the host header in the HTTPS health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used. func (o HTTPSHealthCheckTypeOutput) Host() pulumi.StringPtrOutput { return o.ApplyT(func(v HTTPSHealthCheckType) *string { return v.Host }).(pulumi.StringPtrOutput) } // The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535. func (o HTTPSHealthCheckTypeOutput) Port() pulumi.IntPtrOutput { return o.ApplyT(func(v HTTPSHealthCheckType) *int { return v.Port }).(pulumi.IntPtrOutput) } // Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence. func (o HTTPSHealthCheckTypeOutput) PortName() pulumi.StringPtrOutput { return o.ApplyT(func(v HTTPSHealthCheckType) *string { return v.PortName }).(pulumi.StringPtrOutput) } // Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, HTTPS health check follows behavior specified in port and portName fields. func (o HTTPSHealthCheckTypeOutput) PortSpecification() HTTPSHealthCheckPortSpecificationPtrOutput { return o.ApplyT(func(v HTTPSHealthCheckType) *HTTPSHealthCheckPortSpecification { return v.PortSpecification }).(HTTPSHealthCheckPortSpecificationPtrOutput) } // Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE. func (o HTTPSHealthCheckTypeOutput) ProxyHeader() HTTPSHealthCheckProxyHeaderPtrOutput { return o.ApplyT(func(v HTTPSHealthCheckType) *HTTPSHealthCheckProxyHeader { return v.ProxyHeader }).(HTTPSHealthCheckProxyHeaderPtrOutput) } // The request path of the HTTPS health check request. The default value is /. func (o HTTPSHealthCheckTypeOutput) RequestPath() pulumi.StringPtrOutput { return o.ApplyT(func(v HTTPSHealthCheckType) *string { return v.RequestPath }).(pulumi.StringPtrOutput) } // The string to match anywhere in the first 1024 bytes of the response body. If left empty (the default value), the status code determines health. The response data can only be ASCII. func (o HTTPSHealthCheckTypeOutput) Response() pulumi.StringPtrOutput { return o.ApplyT(func(v HTTPSHealthCheckType) *string { return v.Response }).(pulumi.StringPtrOutput) } type HTTPSHealthCheckTypePtrOutput struct{ *pulumi.OutputState } func (HTTPSHealthCheckTypePtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**HTTPSHealthCheckType)(nil)).Elem() } func (o HTTPSHealthCheckTypePtrOutput) ToHTTPSHealthCheckTypePtrOutput() HTTPSHealthCheckTypePtrOutput { return o } func (o HTTPSHealthCheckTypePtrOutput) ToHTTPSHealthCheckTypePtrOutputWithContext(ctx context.Context) HTTPSHealthCheckTypePtrOutput { return o } func (o HTTPSHealthCheckTypePtrOutput) Elem() HTTPSHealthCheckTypeOutput { return o.ApplyT(func(v *HTTPSHealthCheckType) HTTPSHealthCheckType { if v != nil { return *v } var ret HTTPSHealthCheckType return ret }).(HTTPSHealthCheckTypeOutput) } // The value of the host header in the HTTPS health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used. func (o HTTPSHealthCheckTypePtrOutput) Host() pulumi.StringPtrOutput { return o.ApplyT(func(v *HTTPSHealthCheckType) *string { if v == nil { return nil } return v.Host }).(pulumi.StringPtrOutput) } // The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535. func (o HTTPSHealthCheckTypePtrOutput) Port() pulumi.IntPtrOutput { return o.ApplyT(func(v *HTTPSHealthCheckType) *int { if v == nil { return nil } return v.Port }).(pulumi.IntPtrOutput) } // Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence. func (o HTTPSHealthCheckTypePtrOutput) PortName() pulumi.StringPtrOutput { return o.ApplyT(func(v *HTTPSHealthCheckType) *string { if v == nil { return nil } return v.PortName }).(pulumi.StringPtrOutput) } // Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, HTTPS health check follows behavior specified in port and portName fields. func (o HTTPSHealthCheckTypePtrOutput) PortSpecification() HTTPSHealthCheckPortSpecificationPtrOutput { return o.ApplyT(func(v *HTTPSHealthCheckType) *HTTPSHealthCheckPortSpecification { if v == nil { return nil } return v.PortSpecification }).(HTTPSHealthCheckPortSpecificationPtrOutput) } // Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE. func (o HTTPSHealthCheckTypePtrOutput) ProxyHeader() HTTPSHealthCheckProxyHeaderPtrOutput { return o.ApplyT(func(v *HTTPSHealthCheckType) *HTTPSHealthCheckProxyHeader { if v == nil { return nil } return v.ProxyHeader }).(HTTPSHealthCheckProxyHeaderPtrOutput) } // The request path of the HTTPS health check request. The default value is /. func (o HTTPSHealthCheckTypePtrOutput) RequestPath() pulumi.StringPtrOutput { return o.ApplyT(func(v *HTTPSHealthCheckType) *string { if v == nil { return nil } return v.RequestPath }).(pulumi.StringPtrOutput) } // The string to match anywhere in the first 1024 bytes of the response body. If left empty (the default value), the status code determines health. The response data can only be ASCII. func (o HTTPSHealthCheckTypePtrOutput) Response() pulumi.StringPtrOutput { return o.ApplyT(func(v *HTTPSHealthCheckType) *string { if v == nil { return nil } return v.Response }).(pulumi.StringPtrOutput) } type HTTPSHealthCheckResponse struct { // The value of the host header in the HTTPS health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used. Host string `pulumi:"host"` // The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535. Port int `pulumi:"port"` // Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence. PortName string `pulumi:"portName"` // Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, HTTPS health check follows behavior specified in port and portName fields. PortSpecification string `pulumi:"portSpecification"` // Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE. ProxyHeader string `pulumi:"proxyHeader"` // The request path of the HTTPS health check request. The default value is /. RequestPath string `pulumi:"requestPath"` // The string to match anywhere in the first 1024 bytes of the response body. If left empty (the default value), the status code determines health. The response data can only be ASCII. Response string `pulumi:"response"` } type HTTPSHealthCheckResponseOutput struct{ *pulumi.OutputState } func (HTTPSHealthCheckResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*HTTPSHealthCheckResponse)(nil)).Elem() } func (o HTTPSHealthCheckResponseOutput) ToHTTPSHealthCheckResponseOutput() HTTPSHealthCheckResponseOutput { return o } func (o HTTPSHealthCheckResponseOutput) ToHTTPSHealthCheckResponseOutputWithContext(ctx context.Context) HTTPSHealthCheckResponseOutput { return o } // The value of the host header in the HTTPS health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used. func (o HTTPSHealthCheckResponseOutput) Host() pulumi.StringOutput { return o.ApplyT(func(v HTTPSHealthCheckResponse) string { return v.Host }).(pulumi.StringOutput) } // The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535. func (o HTTPSHealthCheckResponseOutput) Port() pulumi.IntOutput { return o.ApplyT(func(v HTTPSHealthCheckResponse) int { return v.Port }).(pulumi.IntOutput) } // Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence. func (o HTTPSHealthCheckResponseOutput) PortName() pulumi.StringOutput { return o.ApplyT(func(v HTTPSHealthCheckResponse) string { return v.PortName }).(pulumi.StringOutput) } // Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, HTTPS health check follows behavior specified in port and portName fields. func (o HTTPSHealthCheckResponseOutput) PortSpecification() pulumi.StringOutput { return o.ApplyT(func(v HTTPSHealthCheckResponse) string { return v.PortSpecification }).(pulumi.StringOutput) } // Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE. func (o HTTPSHealthCheckResponseOutput) ProxyHeader() pulumi.StringOutput { return o.ApplyT(func(v HTTPSHealthCheckResponse) string { return v.ProxyHeader }).(pulumi.StringOutput) } // The request path of the HTTPS health check request. The default value is /. func (o HTTPSHealthCheckResponseOutput) RequestPath() pulumi.StringOutput { return o.ApplyT(func(v HTTPSHealthCheckResponse) string { return v.RequestPath }).(pulumi.StringOutput) } // The string to match anywhere in the first 1024 bytes of the response body. If left empty (the default value), the status code determines health. The response data can only be ASCII. func (o HTTPSHealthCheckResponseOutput) Response() pulumi.StringOutput { return o.ApplyT(func(v HTTPSHealthCheckResponse) string { return v.Response }).(pulumi.StringOutput) } // Configuration of logging on a health check. If logging is enabled, logs will be exported to Stackdriver. type HealthCheckLogConfig struct { // Indicates whether or not to export logs. This is false by default, which means no health check logging will be done. Enable *bool `pulumi:"enable"` } // HealthCheckLogConfigInput is an input type that accepts HealthCheckLogConfigArgs and HealthCheckLogConfigOutput values. // You can construct a concrete instance of `HealthCheckLogConfigInput` via: // // HealthCheckLogConfigArgs{...} type HealthCheckLogConfigInput interface { pulumi.Input ToHealthCheckLogConfigOutput() HealthCheckLogConfigOutput ToHealthCheckLogConfigOutputWithContext(context.Context) HealthCheckLogConfigOutput } // Configuration of logging on a health check. If logging is enabled, logs will be exported to Stackdriver. type HealthCheckLogConfigArgs struct { // Indicates whether or not to export logs. This is false by default, which means no health check logging will be done. Enable pulumi.BoolPtrInput `pulumi:"enable"` } func (HealthCheckLogConfigArgs) ElementType() reflect.Type { return reflect.TypeOf((*HealthCheckLogConfig)(nil)).Elem() } func (i HealthCheckLogConfigArgs) ToHealthCheckLogConfigOutput() HealthCheckLogConfigOutput { return i.ToHealthCheckLogConfigOutputWithContext(context.Background()) } func (i HealthCheckLogConfigArgs) ToHealthCheckLogConfigOutputWithContext(ctx context.Context) HealthCheckLogConfigOutput { return pulumi.ToOutputWithContext(ctx, i).(HealthCheckLogConfigOutput) } func (i HealthCheckLogConfigArgs) ToHealthCheckLogConfigPtrOutput() HealthCheckLogConfigPtrOutput { return i.ToHealthCheckLogConfigPtrOutputWithContext(context.Background()) } func (i HealthCheckLogConfigArgs) ToHealthCheckLogConfigPtrOutputWithContext(ctx context.Context) HealthCheckLogConfigPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(HealthCheckLogConfigOutput).ToHealthCheckLogConfigPtrOutputWithContext(ctx) } // HealthCheckLogConfigPtrInput is an input type that accepts HealthCheckLogConfigArgs, HealthCheckLogConfigPtr and HealthCheckLogConfigPtrOutput values. // You can construct a concrete instance of `HealthCheckLogConfigPtrInput` via: // // HealthCheckLogConfigArgs{...} // // or: // // nil type HealthCheckLogConfigPtrInput interface { pulumi.Input ToHealthCheckLogConfigPtrOutput() HealthCheckLogConfigPtrOutput ToHealthCheckLogConfigPtrOutputWithContext(context.Context) HealthCheckLogConfigPtrOutput } type healthCheckLogConfigPtrType HealthCheckLogConfigArgs func HealthCheckLogConfigPtr(v *HealthCheckLogConfigArgs) HealthCheckLogConfigPtrInput { return (*healthCheckLogConfigPtrType)(v) } func (*healthCheckLogConfigPtrType) ElementType() reflect.Type { return reflect.TypeOf((**HealthCheckLogConfig)(nil)).Elem() } func (i *healthCheckLogConfigPtrType) ToHealthCheckLogConfigPtrOutput() HealthCheckLogConfigPtrOutput { return i.ToHealthCheckLogConfigPtrOutputWithContext(context.Background()) } func (i *healthCheckLogConfigPtrType) ToHealthCheckLogConfigPtrOutputWithContext(ctx context.Context) HealthCheckLogConfigPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(HealthCheckLogConfigPtrOutput) } // Configuration of logging on a health check. If logging is enabled, logs will be exported to Stackdriver. type HealthCheckLogConfigOutput struct{ *pulumi.OutputState } func (HealthCheckLogConfigOutput) ElementType() reflect.Type { return reflect.TypeOf((*HealthCheckLogConfig)(nil)).Elem() } func (o HealthCheckLogConfigOutput) ToHealthCheckLogConfigOutput() HealthCheckLogConfigOutput { return o } func (o HealthCheckLogConfigOutput) ToHealthCheckLogConfigOutputWithContext(ctx context.Context) HealthCheckLogConfigOutput { return o } func (o HealthCheckLogConfigOutput) ToHealthCheckLogConfigPtrOutput() HealthCheckLogConfigPtrOutput { return o.ToHealthCheckLogConfigPtrOutputWithContext(context.Background()) } func (o HealthCheckLogConfigOutput) ToHealthCheckLogConfigPtrOutputWithContext(ctx context.Context) HealthCheckLogConfigPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v HealthCheckLogConfig) *HealthCheckLogConfig { return &v }).(HealthCheckLogConfigPtrOutput) } // Indicates whether or not to export logs. This is false by default, which means no health check logging will be done. func (o HealthCheckLogConfigOutput) Enable() pulumi.BoolPtrOutput { return o.ApplyT(func(v HealthCheckLogConfig) *bool { return v.Enable }).(pulumi.BoolPtrOutput) } type HealthCheckLogConfigPtrOutput struct{ *pulumi.OutputState } func (HealthCheckLogConfigPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**HealthCheckLogConfig)(nil)).Elem() } func (o HealthCheckLogConfigPtrOutput) ToHealthCheckLogConfigPtrOutput() HealthCheckLogConfigPtrOutput { return o } func (o HealthCheckLogConfigPtrOutput) ToHealthCheckLogConfigPtrOutputWithContext(ctx context.Context) HealthCheckLogConfigPtrOutput { return o } func (o HealthCheckLogConfigPtrOutput) Elem() HealthCheckLogConfigOutput { return o.ApplyT(func(v *HealthCheckLogConfig) HealthCheckLogConfig { if v != nil { return *v } var ret HealthCheckLogConfig return ret }).(HealthCheckLogConfigOutput) } // Indicates whether or not to export logs. This is false by default, which means no health check logging will be done. func (o HealthCheckLogConfigPtrOutput) Enable() pulumi.BoolPtrOutput { return o.ApplyT(func(v *HealthCheckLogConfig) *bool { if v == nil { return nil } return v.Enable }).(pulumi.BoolPtrOutput) } // Configuration of logging on a health check. If logging is enabled, logs will be exported to Stackdriver. type HealthCheckLogConfigResponse struct { // Indicates whether or not to export logs. This is false by default, which means no health check logging will be done. Enable bool `pulumi:"enable"` } // Configuration of logging on a health check. If logging is enabled, logs will be exported to Stackdriver. type HealthCheckLogConfigResponseOutput struct{ *pulumi.OutputState } func (HealthCheckLogConfigResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*HealthCheckLogConfigResponse)(nil)).Elem() } func (o HealthCheckLogConfigResponseOutput) ToHealthCheckLogConfigResponseOutput() HealthCheckLogConfigResponseOutput { return o } func (o HealthCheckLogConfigResponseOutput) ToHealthCheckLogConfigResponseOutputWithContext(ctx context.Context) HealthCheckLogConfigResponseOutput { return o } // Indicates whether or not to export logs. This is false by default, which means no health check logging will be done. func (o HealthCheckLogConfigResponseOutput) Enable() pulumi.BoolOutput { return o.ApplyT(func(v HealthCheckLogConfigResponse) bool { return v.Enable }).(pulumi.BoolOutput) } // UrlMaps A host-matching rule for a URL. If matched, will use the named PathMatcher to select the BackendService. type HostRule struct { // An optional description of this resource. Provide this property when you create the resource. Description *string `pulumi:"description"` // The list of host patterns to match. They must be valid hostnames with optional port numbers in the format host:port. * matches any string of ([a-z0-9-.]*). In that case, * must be the first character and must be followed in the pattern by either - or .. * based matching is not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. Hosts []string `pulumi:"hosts"` // The name of the PathMatcher to use to match the path portion of the URL if the hostRule matches the URL's host portion. PathMatcher *string `pulumi:"pathMatcher"` } // HostRuleInput is an input type that accepts HostRuleArgs and HostRuleOutput values. // You can construct a concrete instance of `HostRuleInput` via: // // HostRuleArgs{...} type HostRuleInput interface { pulumi.Input ToHostRuleOutput() HostRuleOutput ToHostRuleOutputWithContext(context.Context) HostRuleOutput } // UrlMaps A host-matching rule for a URL. If matched, will use the named PathMatcher to select the BackendService. type HostRuleArgs struct { // An optional description of this resource. Provide this property when you create the resource. Description pulumi.StringPtrInput `pulumi:"description"` // The list of host patterns to match. They must be valid hostnames with optional port numbers in the format host:port. * matches any string of ([a-z0-9-.]*). In that case, * must be the first character and must be followed in the pattern by either - or .. * based matching is not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. Hosts pulumi.StringArrayInput `pulumi:"hosts"` // The name of the PathMatcher to use to match the path portion of the URL if the hostRule matches the URL's host portion. PathMatcher pulumi.StringPtrInput `pulumi:"pathMatcher"` } func (HostRuleArgs) ElementType() reflect.Type { return reflect.TypeOf((*HostRule)(nil)).Elem() } func (i HostRuleArgs) ToHostRuleOutput() HostRuleOutput { return i.ToHostRuleOutputWithContext(context.Background()) } func (i HostRuleArgs) ToHostRuleOutputWithContext(ctx context.Context) HostRuleOutput { return pulumi.ToOutputWithContext(ctx, i).(HostRuleOutput) } // HostRuleArrayInput is an input type that accepts HostRuleArray and HostRuleArrayOutput values. // You can construct a concrete instance of `HostRuleArrayInput` via: // // HostRuleArray{ HostRuleArgs{...} } type HostRuleArrayInput interface { pulumi.Input ToHostRuleArrayOutput() HostRuleArrayOutput ToHostRuleArrayOutputWithContext(context.Context) HostRuleArrayOutput } type HostRuleArray []HostRuleInput func (HostRuleArray) ElementType() reflect.Type { return reflect.TypeOf((*[]HostRule)(nil)).Elem() } func (i HostRuleArray) ToHostRuleArrayOutput() HostRuleArrayOutput { return i.ToHostRuleArrayOutputWithContext(context.Background()) } func (i HostRuleArray) ToHostRuleArrayOutputWithContext(ctx context.Context) HostRuleArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(HostRuleArrayOutput) } // UrlMaps A host-matching rule for a URL. If matched, will use the named PathMatcher to select the BackendService. type HostRuleOutput struct{ *pulumi.OutputState } func (HostRuleOutput) ElementType() reflect.Type { return reflect.TypeOf((*HostRule)(nil)).Elem() } func (o HostRuleOutput) ToHostRuleOutput() HostRuleOutput { return o } func (o HostRuleOutput) ToHostRuleOutputWithContext(ctx context.Context) HostRuleOutput { return o } // An optional description of this resource. Provide this property when you create the resource. func (o HostRuleOutput) Description() pulumi.StringPtrOutput { return o.ApplyT(func(v HostRule) *string { return v.Description }).(pulumi.StringPtrOutput) } // The list of host patterns to match. They must be valid hostnames with optional port numbers in the format host:port. * matches any string of ([a-z0-9-.]*). In that case, * must be the first character and must be followed in the pattern by either - or .. * based matching is not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. func (o HostRuleOutput) Hosts() pulumi.StringArrayOutput { return o.ApplyT(func(v HostRule) []string { return v.Hosts }).(pulumi.StringArrayOutput) } // The name of the PathMatcher to use to match the path portion of the URL if the hostRule matches the URL's host portion. func (o HostRuleOutput) PathMatcher() pulumi.StringPtrOutput { return o.ApplyT(func(v HostRule) *string { return v.PathMatcher }).(pulumi.StringPtrOutput) } type HostRuleArrayOutput struct{ *pulumi.OutputState } func (HostRuleArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]HostRule)(nil)).Elem() } func (o HostRuleArrayOutput) ToHostRuleArrayOutput() HostRuleArrayOutput { return o } func (o HostRuleArrayOutput) ToHostRuleArrayOutputWithContext(ctx context.Context) HostRuleArrayOutput { return o } func (o HostRuleArrayOutput) Index(i pulumi.IntInput) HostRuleOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) HostRule { return vs[0].([]HostRule)[vs[1].(int)] }).(HostRuleOutput) } // UrlMaps A host-matching rule for a URL. If matched, will use the named PathMatcher to select the BackendService. type HostRuleResponse struct { // An optional description of this resource. Provide this property when you create the resource. Description string `pulumi:"description"` // The list of host patterns to match. They must be valid hostnames with optional port numbers in the format host:port. * matches any string of ([a-z0-9-.]*). In that case, * must be the first character and must be followed in the pattern by either - or .. * based matching is not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. Hosts []string `pulumi:"hosts"` // The name of the PathMatcher to use to match the path portion of the URL if the hostRule matches the URL's host portion. PathMatcher string `pulumi:"pathMatcher"` } // UrlMaps A host-matching rule for a URL. If matched, will use the named PathMatcher to select the BackendService. type HostRuleResponseOutput struct{ *pulumi.OutputState } func (HostRuleResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*HostRuleResponse)(nil)).Elem() } func (o HostRuleResponseOutput) ToHostRuleResponseOutput() HostRuleResponseOutput { return o } func (o HostRuleResponseOutput) ToHostRuleResponseOutputWithContext(ctx context.Context) HostRuleResponseOutput { return o } // An optional description of this resource. Provide this property when you create the resource. func (o HostRuleResponseOutput) Description() pulumi.StringOutput { return o.ApplyT(func(v HostRuleResponse) string { return v.Description }).(pulumi.StringOutput) } // The list of host patterns to match. They must be valid hostnames with optional port numbers in the format host:port. * matches any string of ([a-z0-9-.]*). In that case, * must be the first character and must be followed in the pattern by either - or .. * based matching is not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. func (o HostRuleResponseOutput) Hosts() pulumi.StringArrayOutput { return o.ApplyT(func(v HostRuleResponse) []string { return v.Hosts }).(pulumi.StringArrayOutput) } // The name of the PathMatcher to use to match the path portion of the URL if the hostRule matches the URL's host portion. func (o HostRuleResponseOutput) PathMatcher() pulumi.StringOutput { return o.ApplyT(func(v HostRuleResponse) string { return v.PathMatcher }).(pulumi.StringOutput) } type HostRuleResponseArrayOutput struct{ *pulumi.OutputState } func (HostRuleResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]HostRuleResponse)(nil)).Elem() } func (o HostRuleResponseArrayOutput) ToHostRuleResponseArrayOutput() HostRuleResponseArrayOutput { return o } func (o HostRuleResponseArrayOutput) ToHostRuleResponseArrayOutputWithContext(ctx context.Context) HostRuleResponseArrayOutput { return o } func (o HostRuleResponseArrayOutput) Index(i pulumi.IntInput) HostRuleResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) HostRuleResponse { return vs[0].([]HostRuleResponse)[vs[1].(int)] }).(HostRuleResponseOutput) } // Specification for how requests are aborted as part of fault injection. type HttpFaultAbort struct { // The HTTP status code used to abort the request. The value must be from 200 to 599 inclusive. For gRPC protocol, the gRPC status code is mapped to HTTP status code according to this mapping table. HTTP status 200 is mapped to gRPC status UNKNOWN. Injecting an OK status is currently not supported by Traffic Director. HttpStatus *int `pulumi:"httpStatus"` // The percentage of traffic for connections, operations, or requests that is aborted as part of fault injection. The value must be from 0.0 to 100.0 inclusive. Percentage *float64 `pulumi:"percentage"` } // HttpFaultAbortInput is an input type that accepts HttpFaultAbortArgs and HttpFaultAbortOutput values. // You can construct a concrete instance of `HttpFaultAbortInput` via: // // HttpFaultAbortArgs{...} type HttpFaultAbortInput interface { pulumi.Input ToHttpFaultAbortOutput() HttpFaultAbortOutput ToHttpFaultAbortOutputWithContext(context.Context) HttpFaultAbortOutput } // Specification for how requests are aborted as part of fault injection. type HttpFaultAbortArgs struct { // The HTTP status code used to abort the request. The value must be from 200 to 599 inclusive. For gRPC protocol, the gRPC status code is mapped to HTTP status code according to this mapping table. HTTP status 200 is mapped to gRPC status UNKNOWN. Injecting an OK status is currently not supported by Traffic Director. HttpStatus pulumi.IntPtrInput `pulumi:"httpStatus"` // The percentage of traffic for connections, operations, or requests that is aborted as part of fault injection. The value must be from 0.0 to 100.0 inclusive. Percentage pulumi.Float64PtrInput `pulumi:"percentage"` } func (HttpFaultAbortArgs) ElementType() reflect.Type { return reflect.TypeOf((*HttpFaultAbort)(nil)).Elem() } func (i HttpFaultAbortArgs) ToHttpFaultAbortOutput() HttpFaultAbortOutput { return i.ToHttpFaultAbortOutputWithContext(context.Background()) } func (i HttpFaultAbortArgs) ToHttpFaultAbortOutputWithContext(ctx context.Context) HttpFaultAbortOutput { return pulumi.ToOutputWithContext(ctx, i).(HttpFaultAbortOutput) } func (i HttpFaultAbortArgs) ToHttpFaultAbortPtrOutput() HttpFaultAbortPtrOutput { return i.ToHttpFaultAbortPtrOutputWithContext(context.Background()) } func (i HttpFaultAbortArgs) ToHttpFaultAbortPtrOutputWithContext(ctx context.Context) HttpFaultAbortPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(HttpFaultAbortOutput).ToHttpFaultAbortPtrOutputWithContext(ctx) } // HttpFaultAbortPtrInput is an input type that accepts HttpFaultAbortArgs, HttpFaultAbortPtr and HttpFaultAbortPtrOutput values. // You can construct a concrete instance of `HttpFaultAbortPtrInput` via: // // HttpFaultAbortArgs{...} // // or: // // nil type HttpFaultAbortPtrInput interface { pulumi.Input ToHttpFaultAbortPtrOutput() HttpFaultAbortPtrOutput ToHttpFaultAbortPtrOutputWithContext(context.Context) HttpFaultAbortPtrOutput } type httpFaultAbortPtrType HttpFaultAbortArgs func HttpFaultAbortPtr(v *HttpFaultAbortArgs) HttpFaultAbortPtrInput { return (*httpFaultAbortPtrType)(v) } func (*httpFaultAbortPtrType) ElementType() reflect.Type { return reflect.TypeOf((**HttpFaultAbort)(nil)).Elem() } func (i *httpFaultAbortPtrType) ToHttpFaultAbortPtrOutput() HttpFaultAbortPtrOutput { return i.ToHttpFaultAbortPtrOutputWithContext(context.Background()) } func (i *httpFaultAbortPtrType) ToHttpFaultAbortPtrOutputWithContext(ctx context.Context) HttpFaultAbortPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(HttpFaultAbortPtrOutput) } // Specification for how requests are aborted as part of fault injection. type HttpFaultAbortOutput struct{ *pulumi.OutputState } func (HttpFaultAbortOutput) ElementType() reflect.Type { return reflect.TypeOf((*HttpFaultAbort)(nil)).Elem() } func (o HttpFaultAbortOutput) ToHttpFaultAbortOutput() HttpFaultAbortOutput { return o } func (o HttpFaultAbortOutput) ToHttpFaultAbortOutputWithContext(ctx context.Context) HttpFaultAbortOutput { return o } func (o HttpFaultAbortOutput) ToHttpFaultAbortPtrOutput() HttpFaultAbortPtrOutput { return o.ToHttpFaultAbortPtrOutputWithContext(context.Background()) } func (o HttpFaultAbortOutput) ToHttpFaultAbortPtrOutputWithContext(ctx context.Context) HttpFaultAbortPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v HttpFaultAbort) *HttpFaultAbort { return &v }).(HttpFaultAbortPtrOutput) } // The HTTP status code used to abort the request. The value must be from 200 to 599 inclusive. For gRPC protocol, the gRPC status code is mapped to HTTP status code according to this mapping table. HTTP status 200 is mapped to gRPC status UNKNOWN. Injecting an OK status is currently not supported by Traffic Director. func (o HttpFaultAbortOutput) HttpStatus() pulumi.IntPtrOutput { return o.ApplyT(func(v HttpFaultAbort) *int { return v.HttpStatus }).(pulumi.IntPtrOutput) } // The percentage of traffic for connections, operations, or requests that is aborted as part of fault injection. The value must be from 0.0 to 100.0 inclusive. func (o HttpFaultAbortOutput) Percentage() pulumi.Float64PtrOutput { return o.ApplyT(func(v HttpFaultAbort) *float64 { return v.Percentage }).(pulumi.Float64PtrOutput) } type HttpFaultAbortPtrOutput struct{ *pulumi.OutputState } func (HttpFaultAbortPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**HttpFaultAbort)(nil)).Elem() } func (o HttpFaultAbortPtrOutput) ToHttpFaultAbortPtrOutput() HttpFaultAbortPtrOutput { return o } func (o HttpFaultAbortPtrOutput) ToHttpFaultAbortPtrOutputWithContext(ctx context.Context) HttpFaultAbortPtrOutput { return o } func (o HttpFaultAbortPtrOutput) Elem() HttpFaultAbortOutput { return o.ApplyT(func(v *HttpFaultAbort) HttpFaultAbort { if v != nil { return *v } var ret HttpFaultAbort return ret }).(HttpFaultAbortOutput) } // The HTTP status code used to abort the request. The value must be from 200 to 599 inclusive. For gRPC protocol, the gRPC status code is mapped to HTTP status code according to this mapping table. HTTP status 200 is mapped to gRPC status UNKNOWN. Injecting an OK status is currently not supported by Traffic Director. func (o HttpFaultAbortPtrOutput) HttpStatus() pulumi.IntPtrOutput { return o.ApplyT(func(v *HttpFaultAbort) *int { if v == nil { return nil } return v.HttpStatus }).(pulumi.IntPtrOutput) } // The percentage of traffic for connections, operations, or requests that is aborted as part of fault injection. The value must be from 0.0 to 100.0 inclusive. func (o HttpFaultAbortPtrOutput) Percentage() pulumi.Float64PtrOutput { return o.ApplyT(func(v *HttpFaultAbort) *float64 { if v == nil { return nil } return v.Percentage }).(pulumi.Float64PtrOutput) } // Specification for how requests are aborted as part of fault injection. type HttpFaultAbortResponse struct { // The HTTP status code used to abort the request. The value must be from 200 to 599 inclusive. For gRPC protocol, the gRPC status code is mapped to HTTP status code according to this mapping table. HTTP status 200 is mapped to gRPC status UNKNOWN. Injecting an OK status is currently not supported by Traffic Director. HttpStatus int `pulumi:"httpStatus"` // The percentage of traffic for connections, operations, or requests that is aborted as part of fault injection. The value must be from 0.0 to 100.0 inclusive. Percentage float64 `pulumi:"percentage"` } // Specification for how requests are aborted as part of fault injection. type HttpFaultAbortResponseOutput struct{ *pulumi.OutputState } func (HttpFaultAbortResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*HttpFaultAbortResponse)(nil)).Elem() } func (o HttpFaultAbortResponseOutput) ToHttpFaultAbortResponseOutput() HttpFaultAbortResponseOutput { return o } func (o HttpFaultAbortResponseOutput) ToHttpFaultAbortResponseOutputWithContext(ctx context.Context) HttpFaultAbortResponseOutput { return o } // The HTTP status code used to abort the request. The value must be from 200 to 599 inclusive. For gRPC protocol, the gRPC status code is mapped to HTTP status code according to this mapping table. HTTP status 200 is mapped to gRPC status UNKNOWN. Injecting an OK status is currently not supported by Traffic Director. func (o HttpFaultAbortResponseOutput) HttpStatus() pulumi.IntOutput { return o.ApplyT(func(v HttpFaultAbortResponse) int { return v.HttpStatus }).(pulumi.IntOutput) } // The percentage of traffic for connections, operations, or requests that is aborted as part of fault injection. The value must be from 0.0 to 100.0 inclusive. func (o HttpFaultAbortResponseOutput) Percentage() pulumi.Float64Output { return o.ApplyT(func(v HttpFaultAbortResponse) float64 { return v.Percentage }).(pulumi.Float64Output) } // Specifies the delay introduced by the load balancer before forwarding the request to the backend service as part of fault injection. type HttpFaultDelay struct { // Specifies the value of the fixed delay interval. FixedDelay *Duration `pulumi:"fixedDelay"` // The percentage of traffic for connections, operations, or requests for which a delay is introduced as part of fault injection. The value must be from 0.0 to 100.0 inclusive. Percentage *float64 `pulumi:"percentage"` } // HttpFaultDelayInput is an input type that accepts HttpFaultDelayArgs and HttpFaultDelayOutput values. // You can construct a concrete instance of `HttpFaultDelayInput` via: // // HttpFaultDelayArgs{...} type HttpFaultDelayInput interface { pulumi.Input ToHttpFaultDelayOutput() HttpFaultDelayOutput ToHttpFaultDelayOutputWithContext(context.Context) HttpFaultDelayOutput } // Specifies the delay introduced by the load balancer before forwarding the request to the backend service as part of fault injection. type HttpFaultDelayArgs struct { // Specifies the value of the fixed delay interval. FixedDelay DurationPtrInput `pulumi:"fixedDelay"` // The percentage of traffic for connections, operations, or requests for which a delay is introduced as part of fault injection. The value must be from 0.0 to 100.0 inclusive. Percentage pulumi.Float64PtrInput `pulumi:"percentage"` } func (HttpFaultDelayArgs) ElementType() reflect.Type { return reflect.TypeOf((*HttpFaultDelay)(nil)).Elem() } func (i HttpFaultDelayArgs) ToHttpFaultDelayOutput() HttpFaultDelayOutput { return i.ToHttpFaultDelayOutputWithContext(context.Background()) } func (i HttpFaultDelayArgs) ToHttpFaultDelayOutputWithContext(ctx context.Context) HttpFaultDelayOutput { return pulumi.ToOutputWithContext(ctx, i).(HttpFaultDelayOutput) } func (i HttpFaultDelayArgs) ToHttpFaultDelayPtrOutput() HttpFaultDelayPtrOutput { return i.ToHttpFaultDelayPtrOutputWithContext(context.Background()) } func (i HttpFaultDelayArgs) ToHttpFaultDelayPtrOutputWithContext(ctx context.Context) HttpFaultDelayPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(HttpFaultDelayOutput).ToHttpFaultDelayPtrOutputWithContext(ctx) } // HttpFaultDelayPtrInput is an input type that accepts HttpFaultDelayArgs, HttpFaultDelayPtr and HttpFaultDelayPtrOutput values. // You can construct a concrete instance of `HttpFaultDelayPtrInput` via: // // HttpFaultDelayArgs{...} // // or: // // nil type HttpFaultDelayPtrInput interface { pulumi.Input ToHttpFaultDelayPtrOutput() HttpFaultDelayPtrOutput ToHttpFaultDelayPtrOutputWithContext(context.Context) HttpFaultDelayPtrOutput } type httpFaultDelayPtrType HttpFaultDelayArgs func HttpFaultDelayPtr(v *HttpFaultDelayArgs) HttpFaultDelayPtrInput { return (*httpFaultDelayPtrType)(v) } func (*httpFaultDelayPtrType) ElementType() reflect.Type { return reflect.TypeOf((**HttpFaultDelay)(nil)).Elem() } func (i *httpFaultDelayPtrType) ToHttpFaultDelayPtrOutput() HttpFaultDelayPtrOutput { return i.ToHttpFaultDelayPtrOutputWithContext(context.Background()) } func (i *httpFaultDelayPtrType) ToHttpFaultDelayPtrOutputWithContext(ctx context.Context) HttpFaultDelayPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(HttpFaultDelayPtrOutput) } // Specifies the delay introduced by the load balancer before forwarding the request to the backend service as part of fault injection. type HttpFaultDelayOutput struct{ *pulumi.OutputState } func (HttpFaultDelayOutput) ElementType() reflect.Type { return reflect.TypeOf((*HttpFaultDelay)(nil)).Elem() } func (o HttpFaultDelayOutput) ToHttpFaultDelayOutput() HttpFaultDelayOutput { return o } func (o HttpFaultDelayOutput) ToHttpFaultDelayOutputWithContext(ctx context.Context) HttpFaultDelayOutput { return o } func (o HttpFaultDelayOutput) ToHttpFaultDelayPtrOutput() HttpFaultDelayPtrOutput { return o.ToHttpFaultDelayPtrOutputWithContext(context.Background()) } func (o HttpFaultDelayOutput) ToHttpFaultDelayPtrOutputWithContext(ctx context.Context) HttpFaultDelayPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v HttpFaultDelay) *HttpFaultDelay { return &v }).(HttpFaultDelayPtrOutput) } // Specifies the value of the fixed delay interval. func (o HttpFaultDelayOutput) FixedDelay() DurationPtrOutput { return o.ApplyT(func(v HttpFaultDelay) *Duration { return v.FixedDelay }).(DurationPtrOutput) } // The percentage of traffic for connections, operations, or requests for which a delay is introduced as part of fault injection. The value must be from 0.0 to 100.0 inclusive. func (o HttpFaultDelayOutput) Percentage() pulumi.Float64PtrOutput { return o.ApplyT(func(v HttpFaultDelay) *float64 { return v.Percentage }).(pulumi.Float64PtrOutput) } type HttpFaultDelayPtrOutput struct{ *pulumi.OutputState } func (HttpFaultDelayPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**HttpFaultDelay)(nil)).Elem() } func (o HttpFaultDelayPtrOutput) ToHttpFaultDelayPtrOutput() HttpFaultDelayPtrOutput { return o } func (o HttpFaultDelayPtrOutput) ToHttpFaultDelayPtrOutputWithContext(ctx context.Context) HttpFaultDelayPtrOutput { return o } func (o HttpFaultDelayPtrOutput) Elem() HttpFaultDelayOutput { return o.ApplyT(func(v *HttpFaultDelay) HttpFaultDelay { if v != nil { return *v } var ret HttpFaultDelay return ret }).(HttpFaultDelayOutput) } // Specifies the value of the fixed delay interval. func (o HttpFaultDelayPtrOutput) FixedDelay() DurationPtrOutput { return o.ApplyT(func(v *HttpFaultDelay) *Duration { if v == nil { return nil } return v.FixedDelay }).(DurationPtrOutput) } // The percentage of traffic for connections, operations, or requests for which a delay is introduced as part of fault injection. The value must be from 0.0 to 100.0 inclusive. func (o HttpFaultDelayPtrOutput) Percentage() pulumi.Float64PtrOutput { return o.ApplyT(func(v *HttpFaultDelay) *float64 { if v == nil { return nil } return v.Percentage }).(pulumi.Float64PtrOutput) } // Specifies the delay introduced by the load balancer before forwarding the request to the backend service as part of fault injection. type HttpFaultDelayResponse struct { // Specifies the value of the fixed delay interval. FixedDelay DurationResponse `pulumi:"fixedDelay"` // The percentage of traffic for connections, operations, or requests for which a delay is introduced as part of fault injection. The value must be from 0.0 to 100.0 inclusive. Percentage float64 `pulumi:"percentage"` } // Specifies the delay introduced by the load balancer before forwarding the request to the backend service as part of fault injection. type HttpFaultDelayResponseOutput struct{ *pulumi.OutputState } func (HttpFaultDelayResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*HttpFaultDelayResponse)(nil)).Elem() } func (o HttpFaultDelayResponseOutput) ToHttpFaultDelayResponseOutput() HttpFaultDelayResponseOutput { return o } func (o HttpFaultDelayResponseOutput) ToHttpFaultDelayResponseOutputWithContext(ctx context.Context) HttpFaultDelayResponseOutput { return o } // Specifies the value of the fixed delay interval. func (o HttpFaultDelayResponseOutput) FixedDelay() DurationResponseOutput { return o.ApplyT(func(v HttpFaultDelayResponse) DurationResponse { return v.FixedDelay }).(DurationResponseOutput) } // The percentage of traffic for connections, operations, or requests for which a delay is introduced as part of fault injection. The value must be from 0.0 to 100.0 inclusive. func (o HttpFaultDelayResponseOutput) Percentage() pulumi.Float64Output { return o.ApplyT(func(v HttpFaultDelayResponse) float64 { return v.Percentage }).(pulumi.Float64Output) } // The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. As part of fault injection, when clients send requests to a backend service, delays can be introduced by the load balancer on a percentage of requests before sending those request to the backend service. Similarly requests from clients can be aborted by the load balancer for a percentage of requests. type HttpFaultInjection struct { // The specification for how client requests are aborted as part of fault injection. Abort *HttpFaultAbort `pulumi:"abort"` // The specification for how client requests are delayed as part of fault injection, before being sent to a backend service. Delay *HttpFaultDelay `pulumi:"delay"` } // HttpFaultInjectionInput is an input type that accepts HttpFaultInjectionArgs and HttpFaultInjectionOutput values. // You can construct a concrete instance of `HttpFaultInjectionInput` via: // // HttpFaultInjectionArgs{...} type HttpFaultInjectionInput interface { pulumi.Input ToHttpFaultInjectionOutput() HttpFaultInjectionOutput ToHttpFaultInjectionOutputWithContext(context.Context) HttpFaultInjectionOutput } // The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. As part of fault injection, when clients send requests to a backend service, delays can be introduced by the load balancer on a percentage of requests before sending those request to the backend service. Similarly requests from clients can be aborted by the load balancer for a percentage of requests. type HttpFaultInjectionArgs struct { // The specification for how client requests are aborted as part of fault injection. Abort HttpFaultAbortPtrInput `pulumi:"abort"` // The specification for how client requests are delayed as part of fault injection, before being sent to a backend service. Delay HttpFaultDelayPtrInput `pulumi:"delay"` } func (HttpFaultInjectionArgs) ElementType() reflect.Type { return reflect.TypeOf((*HttpFaultInjection)(nil)).Elem() } func (i HttpFaultInjectionArgs) ToHttpFaultInjectionOutput() HttpFaultInjectionOutput { return i.ToHttpFaultInjectionOutputWithContext(context.Background()) } func (i HttpFaultInjectionArgs) ToHttpFaultInjectionOutputWithContext(ctx context.Context) HttpFaultInjectionOutput { return pulumi.ToOutputWithContext(ctx, i).(HttpFaultInjectionOutput) } func (i HttpFaultInjectionArgs) ToHttpFaultInjectionPtrOutput() HttpFaultInjectionPtrOutput { return i.ToHttpFaultInjectionPtrOutputWithContext(context.Background()) } func (i HttpFaultInjectionArgs) ToHttpFaultInjectionPtrOutputWithContext(ctx context.Context) HttpFaultInjectionPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(HttpFaultInjectionOutput).ToHttpFaultInjectionPtrOutputWithContext(ctx) } // HttpFaultInjectionPtrInput is an input type that accepts HttpFaultInjectionArgs, HttpFaultInjectionPtr and HttpFaultInjectionPtrOutput values. // You can construct a concrete instance of `HttpFaultInjectionPtrInput` via: // // HttpFaultInjectionArgs{...} // // or: // // nil type HttpFaultInjectionPtrInput interface { pulumi.Input ToHttpFaultInjectionPtrOutput() HttpFaultInjectionPtrOutput ToHttpFaultInjectionPtrOutputWithContext(context.Context) HttpFaultInjectionPtrOutput } type httpFaultInjectionPtrType HttpFaultInjectionArgs func HttpFaultInjectionPtr(v *HttpFaultInjectionArgs) HttpFaultInjectionPtrInput { return (*httpFaultInjectionPtrType)(v) } func (*httpFaultInjectionPtrType) ElementType() reflect.Type { return reflect.TypeOf((**HttpFaultInjection)(nil)).Elem() } func (i *httpFaultInjectionPtrType) ToHttpFaultInjectionPtrOutput() HttpFaultInjectionPtrOutput { return i.ToHttpFaultInjectionPtrOutputWithContext(context.Background()) } func (i *httpFaultInjectionPtrType) ToHttpFaultInjectionPtrOutputWithContext(ctx context.Context) HttpFaultInjectionPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(HttpFaultInjectionPtrOutput) } // The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. As part of fault injection, when clients send requests to a backend service, delays can be introduced by the load balancer on a percentage of requests before sending those request to the backend service. Similarly requests from clients can be aborted by the load balancer for a percentage of requests. type HttpFaultInjectionOutput struct{ *pulumi.OutputState } func (HttpFaultInjectionOutput) ElementType() reflect.Type { return reflect.TypeOf((*HttpFaultInjection)(nil)).Elem() } func (o HttpFaultInjectionOutput) ToHttpFaultInjectionOutput() HttpFaultInjectionOutput { return o } func (o HttpFaultInjectionOutput) ToHttpFaultInjectionOutputWithContext(ctx context.Context) HttpFaultInjectionOutput { return o } func (o HttpFaultInjectionOutput) ToHttpFaultInjectionPtrOutput() HttpFaultInjectionPtrOutput { return o.ToHttpFaultInjectionPtrOutputWithContext(context.Background()) } func (o HttpFaultInjectionOutput) ToHttpFaultInjectionPtrOutputWithContext(ctx context.Context) HttpFaultInjectionPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v HttpFaultInjection) *HttpFaultInjection { return &v }).(HttpFaultInjectionPtrOutput) } // The specification for how client requests are aborted as part of fault injection. func (o HttpFaultInjectionOutput) Abort() HttpFaultAbortPtrOutput { return o.ApplyT(func(v HttpFaultInjection) *HttpFaultAbort { return v.Abort }).(HttpFaultAbortPtrOutput) } // The specification for how client requests are delayed as part of fault injection, before being sent to a backend service. func (o HttpFaultInjectionOutput) Delay() HttpFaultDelayPtrOutput { return o.ApplyT(func(v HttpFaultInjection) *HttpFaultDelay { return v.Delay }).(HttpFaultDelayPtrOutput) } type HttpFaultInjectionPtrOutput struct{ *pulumi.OutputState } func (HttpFaultInjectionPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**HttpFaultInjection)(nil)).Elem() } func (o HttpFaultInjectionPtrOutput) ToHttpFaultInjectionPtrOutput() HttpFaultInjectionPtrOutput { return o } func (o HttpFaultInjectionPtrOutput) ToHttpFaultInjectionPtrOutputWithContext(ctx context.Context) HttpFaultInjectionPtrOutput { return o } func (o HttpFaultInjectionPtrOutput) Elem() HttpFaultInjectionOutput { return o.ApplyT(func(v *HttpFaultInjection) HttpFaultInjection { if v != nil { return *v } var ret HttpFaultInjection return ret }).(HttpFaultInjectionOutput) } // The specification for how client requests are aborted as part of fault injection. func (o HttpFaultInjectionPtrOutput) Abort() HttpFaultAbortPtrOutput { return o.ApplyT(func(v *HttpFaultInjection) *HttpFaultAbort { if v == nil { return nil } return v.Abort }).(HttpFaultAbortPtrOutput) } // The specification for how client requests are delayed as part of fault injection, before being sent to a backend service. func (o HttpFaultInjectionPtrOutput) Delay() HttpFaultDelayPtrOutput { return o.ApplyT(func(v *HttpFaultInjection) *HttpFaultDelay { if v == nil { return nil } return v.Delay }).(HttpFaultDelayPtrOutput) } // The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. As part of fault injection, when clients send requests to a backend service, delays can be introduced by the load balancer on a percentage of requests before sending those request to the backend service. Similarly requests from clients can be aborted by the load balancer for a percentage of requests. type HttpFaultInjectionResponse struct { // The specification for how client requests are aborted as part of fault injection. Abort HttpFaultAbortResponse `pulumi:"abort"` // The specification for how client requests are delayed as part of fault injection, before being sent to a backend service. Delay HttpFaultDelayResponse `pulumi:"delay"` } // The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. As part of fault injection, when clients send requests to a backend service, delays can be introduced by the load balancer on a percentage of requests before sending those request to the backend service. Similarly requests from clients can be aborted by the load balancer for a percentage of requests. type HttpFaultInjectionResponseOutput struct{ *pulumi.OutputState } func (HttpFaultInjectionResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*HttpFaultInjectionResponse)(nil)).Elem() } func (o HttpFaultInjectionResponseOutput) ToHttpFaultInjectionResponseOutput() HttpFaultInjectionResponseOutput { return o } func (o HttpFaultInjectionResponseOutput) ToHttpFaultInjectionResponseOutputWithContext(ctx context.Context) HttpFaultInjectionResponseOutput { return o } // The specification for how client requests are aborted as part of fault injection. func (o HttpFaultInjectionResponseOutput) Abort() HttpFaultAbortResponseOutput { return o.ApplyT(func(v HttpFaultInjectionResponse) HttpFaultAbortResponse { return v.Abort }).(HttpFaultAbortResponseOutput) } // The specification for how client requests are delayed as part of fault injection, before being sent to a backend service. func (o HttpFaultInjectionResponseOutput) Delay() HttpFaultDelayResponseOutput { return o.ApplyT(func(v HttpFaultInjectionResponse) HttpFaultDelayResponse { return v.Delay }).(HttpFaultDelayResponseOutput) } // The request and response header transformations that take effect before the request is passed along to the selected backendService. type HttpHeaderAction struct { // Headers to add to a matching request before forwarding the request to the backendService. RequestHeadersToAdd []HttpHeaderOption `pulumi:"requestHeadersToAdd"` // A list of header names for headers that need to be removed from the request before forwarding the request to the backendService. RequestHeadersToRemove []string `pulumi:"requestHeadersToRemove"` // Headers to add the response before sending the response back to the client. ResponseHeadersToAdd []HttpHeaderOption `pulumi:"responseHeadersToAdd"` // A list of header names for headers that need to be removed from the response before sending the response back to the client. ResponseHeadersToRemove []string `pulumi:"responseHeadersToRemove"` } // HttpHeaderActionInput is an input type that accepts HttpHeaderActionArgs and HttpHeaderActionOutput values. // You can construct a concrete instance of `HttpHeaderActionInput` via: // // HttpHeaderActionArgs{...} type HttpHeaderActionInput interface { pulumi.Input ToHttpHeaderActionOutput() HttpHeaderActionOutput ToHttpHeaderActionOutputWithContext(context.Context) HttpHeaderActionOutput } // The request and response header transformations that take effect before the request is passed along to the selected backendService. type HttpHeaderActionArgs struct { // Headers to add to a matching request before forwarding the request to the backendService. RequestHeadersToAdd HttpHeaderOptionArrayInput `pulumi:"requestHeadersToAdd"` // A list of header names for headers that need to be removed from the request before forwarding the request to the backendService. RequestHeadersToRemove pulumi.StringArrayInput `pulumi:"requestHeadersToRemove"` // Headers to add the response before sending the response back to the client. ResponseHeadersToAdd HttpHeaderOptionArrayInput `pulumi:"responseHeadersToAdd"` // A list of header names for headers that need to be removed from the response before sending the response back to the client. ResponseHeadersToRemove pulumi.StringArrayInput `pulumi:"responseHeadersToRemove"` } func (HttpHeaderActionArgs) ElementType() reflect.Type { return reflect.TypeOf((*HttpHeaderAction)(nil)).Elem() } func (i HttpHeaderActionArgs) ToHttpHeaderActionOutput() HttpHeaderActionOutput { return i.ToHttpHeaderActionOutputWithContext(context.Background()) } func (i HttpHeaderActionArgs) ToHttpHeaderActionOutputWithContext(ctx context.Context) HttpHeaderActionOutput { return pulumi.ToOutputWithContext(ctx, i).(HttpHeaderActionOutput) } func (i HttpHeaderActionArgs) ToHttpHeaderActionPtrOutput() HttpHeaderActionPtrOutput { return i.ToHttpHeaderActionPtrOutputWithContext(context.Background()) } func (i HttpHeaderActionArgs) ToHttpHeaderActionPtrOutputWithContext(ctx context.Context) HttpHeaderActionPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(HttpHeaderActionOutput).ToHttpHeaderActionPtrOutputWithContext(ctx) } // HttpHeaderActionPtrInput is an input type that accepts HttpHeaderActionArgs, HttpHeaderActionPtr and HttpHeaderActionPtrOutput values. // You can construct a concrete instance of `HttpHeaderActionPtrInput` via: // // HttpHeaderActionArgs{...} // // or: // // nil type HttpHeaderActionPtrInput interface { pulumi.Input ToHttpHeaderActionPtrOutput() HttpHeaderActionPtrOutput ToHttpHeaderActionPtrOutputWithContext(context.Context) HttpHeaderActionPtrOutput } type httpHeaderActionPtrType HttpHeaderActionArgs func HttpHeaderActionPtr(v *HttpHeaderActionArgs) HttpHeaderActionPtrInput { return (*httpHeaderActionPtrType)(v) } func (*httpHeaderActionPtrType) ElementType() reflect.Type { return reflect.TypeOf((**HttpHeaderAction)(nil)).Elem() } func (i *httpHeaderActionPtrType) ToHttpHeaderActionPtrOutput() HttpHeaderActionPtrOutput { return i.ToHttpHeaderActionPtrOutputWithContext(context.Background()) } func (i *httpHeaderActionPtrType) ToHttpHeaderActionPtrOutputWithContext(ctx context.Context) HttpHeaderActionPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(HttpHeaderActionPtrOutput) } // The request and response header transformations that take effect before the request is passed along to the selected backendService. type HttpHeaderActionOutput struct{ *pulumi.OutputState } func (HttpHeaderActionOutput) ElementType() reflect.Type { return reflect.TypeOf((*HttpHeaderAction)(nil)).Elem() } func (o HttpHeaderActionOutput) ToHttpHeaderActionOutput() HttpHeaderActionOutput { return o } func (o HttpHeaderActionOutput) ToHttpHeaderActionOutputWithContext(ctx context.Context) HttpHeaderActionOutput { return o } func (o HttpHeaderActionOutput) ToHttpHeaderActionPtrOutput() HttpHeaderActionPtrOutput { return o.ToHttpHeaderActionPtrOutputWithContext(context.Background()) } func (o HttpHeaderActionOutput) ToHttpHeaderActionPtrOutputWithContext(ctx context.Context) HttpHeaderActionPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v HttpHeaderAction) *HttpHeaderAction { return &v }).(HttpHeaderActionPtrOutput) } // Headers to add to a matching request before forwarding the request to the backendService. func (o HttpHeaderActionOutput) RequestHeadersToAdd() HttpHeaderOptionArrayOutput { return o.ApplyT(func(v HttpHeaderAction) []HttpHeaderOption { return v.RequestHeadersToAdd }).(HttpHeaderOptionArrayOutput) } // A list of header names for headers that need to be removed from the request before forwarding the request to the backendService. func (o HttpHeaderActionOutput) RequestHeadersToRemove() pulumi.StringArrayOutput { return o.ApplyT(func(v HttpHeaderAction) []string { return v.RequestHeadersToRemove }).(pulumi.StringArrayOutput) } // Headers to add the response before sending the response back to the client. func (o HttpHeaderActionOutput) ResponseHeadersToAdd() HttpHeaderOptionArrayOutput { return o.ApplyT(func(v HttpHeaderAction) []HttpHeaderOption { return v.ResponseHeadersToAdd }).(HttpHeaderOptionArrayOutput) } // A list of header names for headers that need to be removed from the response before sending the response back to the client. func (o HttpHeaderActionOutput) ResponseHeadersToRemove() pulumi.StringArrayOutput { return o.ApplyT(func(v HttpHeaderAction) []string { return v.ResponseHeadersToRemove }).(pulumi.StringArrayOutput) } type HttpHeaderActionPtrOutput struct{ *pulumi.OutputState } func (HttpHeaderActionPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**HttpHeaderAction)(nil)).Elem() } func (o HttpHeaderActionPtrOutput) ToHttpHeaderActionPtrOutput() HttpHeaderActionPtrOutput { return o } func (o HttpHeaderActionPtrOutput) ToHttpHeaderActionPtrOutputWithContext(ctx context.Context) HttpHeaderActionPtrOutput { return o } func (o HttpHeaderActionPtrOutput) Elem() HttpHeaderActionOutput { return o.ApplyT(func(v *HttpHeaderAction) HttpHeaderAction { if v != nil { return *v } var ret HttpHeaderAction return ret }).(HttpHeaderActionOutput) } // Headers to add to a matching request before forwarding the request to the backendService. func (o HttpHeaderActionPtrOutput) RequestHeadersToAdd() HttpHeaderOptionArrayOutput { return o.ApplyT(func(v *HttpHeaderAction) []HttpHeaderOption { if v == nil { return nil } return v.RequestHeadersToAdd }).(HttpHeaderOptionArrayOutput) } // A list of header names for headers that need to be removed from the request before forwarding the request to the backendService. func (o HttpHeaderActionPtrOutput) RequestHeadersToRemove() pulumi.StringArrayOutput { return o.ApplyT(func(v *HttpHeaderAction) []string { if v == nil { return nil } return v.RequestHeadersToRemove }).(pulumi.StringArrayOutput) } // Headers to add the response before sending the response back to the client. func (o HttpHeaderActionPtrOutput) ResponseHeadersToAdd() HttpHeaderOptionArrayOutput { return o.ApplyT(func(v *HttpHeaderAction) []HttpHeaderOption { if v == nil { return nil } return v.ResponseHeadersToAdd }).(HttpHeaderOptionArrayOutput) } // A list of header names for headers that need to be removed from the response before sending the response back to the client. func (o HttpHeaderActionPtrOutput) ResponseHeadersToRemove() pulumi.StringArrayOutput { return o.ApplyT(func(v *HttpHeaderAction) []string { if v == nil { return nil } return v.ResponseHeadersToRemove }).(pulumi.StringArrayOutput) } // The request and response header transformations that take effect before the request is passed along to the selected backendService. type HttpHeaderActionResponse struct { // Headers to add to a matching request before forwarding the request to the backendService. RequestHeadersToAdd []HttpHeaderOptionResponse `pulumi:"requestHeadersToAdd"` // A list of header names for headers that need to be removed from the request before forwarding the request to the backendService. RequestHeadersToRemove []string `pulumi:"requestHeadersToRemove"` // Headers to add the response before sending the response back to the client. ResponseHeadersToAdd []HttpHeaderOptionResponse `pulumi:"responseHeadersToAdd"` // A list of header names for headers that need to be removed from the response before sending the response back to the client. ResponseHeadersToRemove []string `pulumi:"responseHeadersToRemove"` } // The request and response header transformations that take effect before the request is passed along to the selected backendService. type HttpHeaderActionResponseOutput struct{ *pulumi.OutputState } func (HttpHeaderActionResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*HttpHeaderActionResponse)(nil)).Elem() } func (o HttpHeaderActionResponseOutput) ToHttpHeaderActionResponseOutput() HttpHeaderActionResponseOutput { return o } func (o HttpHeaderActionResponseOutput) ToHttpHeaderActionResponseOutputWithContext(ctx context.Context) HttpHeaderActionResponseOutput { return o } // Headers to add to a matching request before forwarding the request to the backendService. func (o HttpHeaderActionResponseOutput) RequestHeadersToAdd() HttpHeaderOptionResponseArrayOutput { return o.ApplyT(func(v HttpHeaderActionResponse) []HttpHeaderOptionResponse { return v.RequestHeadersToAdd }).(HttpHeaderOptionResponseArrayOutput) } // A list of header names for headers that need to be removed from the request before forwarding the request to the backendService. func (o HttpHeaderActionResponseOutput) RequestHeadersToRemove() pulumi.StringArrayOutput { return o.ApplyT(func(v HttpHeaderActionResponse) []string { return v.RequestHeadersToRemove }).(pulumi.StringArrayOutput) } // Headers to add the response before sending the response back to the client. func (o HttpHeaderActionResponseOutput) ResponseHeadersToAdd() HttpHeaderOptionResponseArrayOutput { return o.ApplyT(func(v HttpHeaderActionResponse) []HttpHeaderOptionResponse { return v.ResponseHeadersToAdd }).(HttpHeaderOptionResponseArrayOutput) } // A list of header names for headers that need to be removed from the response before sending the response back to the client. func (o HttpHeaderActionResponseOutput) ResponseHeadersToRemove() pulumi.StringArrayOutput { return o.ApplyT(func(v HttpHeaderActionResponse) []string { return v.ResponseHeadersToRemove }).(pulumi.StringArrayOutput) } // matchRule criteria for request header matches. type HttpHeaderMatch struct { // The value should exactly match contents of exactMatch. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. ExactMatch *string `pulumi:"exactMatch"` // The name of the HTTP header to match. For matching against the HTTP request's authority, use a headerMatch with the header name ":authority". For matching a request's method, use the headerName ":method". When the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true, only non-binary user-specified custom metadata and the `content-type` header are supported. The following transport-level headers cannot be used in header matching rules: `:authority`, `:method`, `:path`, `:scheme`, `user-agent`, `accept-encoding`, `content-encoding`, `grpc-accept-encoding`, `grpc-encoding`, `grpc-previous-rpc-attempts`, `grpc-tags-bin`, `grpc-timeout` and `grpc-trace-bin`. HeaderName *string `pulumi:"headerName"` // If set to false, the headerMatch is considered a match if the preceding match criteria are met. If set to true, the headerMatch is considered a match if the preceding match criteria are NOT met. The default setting is false. InvertMatch *bool `pulumi:"invertMatch"` // The value of the header must start with the contents of prefixMatch. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. PrefixMatch *string `pulumi:"prefixMatch"` // A header with the contents of headerName must exist. The match takes place whether or not the request's header has a value. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. PresentMatch *bool `pulumi:"presentMatch"` // The header value must be an integer and its value must be in the range specified in rangeMatch. If the header does not contain an integer, number or is empty, the match fails. For example for a range [-5, 0] - -3 will match. - 0 will not match. - 0.25 will not match. - -3someString will not match. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. rangeMatch is not supported for load balancers that have loadBalancingScheme set to EXTERNAL. RangeMatch *Int64RangeMatch `pulumi:"rangeMatch"` // The value of the header must match the regular expression specified in regexMatch. For more information about regular expression syntax, see Syntax. For matching against a port specified in the HTTP request, use a headerMatch with headerName set to PORT and a regular expression that satisfies the RFC2616 Host header's port specifier. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. regexMatch only applies to load balancers that have loadBalancingScheme set to INTERNAL_SELF_MANAGED. RegexMatch *string `pulumi:"regexMatch"` // The value of the header must end with the contents of suffixMatch. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. SuffixMatch *string `pulumi:"suffixMatch"` } // HttpHeaderMatchInput is an input type that accepts HttpHeaderMatchArgs and HttpHeaderMatchOutput values. // You can construct a concrete instance of `HttpHeaderMatchInput` via: // // HttpHeaderMatchArgs{...} type HttpHeaderMatchInput interface { pulumi.Input ToHttpHeaderMatchOutput() HttpHeaderMatchOutput ToHttpHeaderMatchOutputWithContext(context.Context) HttpHeaderMatchOutput } // matchRule criteria for request header matches. type HttpHeaderMatchArgs struct { // The value should exactly match contents of exactMatch. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. ExactMatch pulumi.StringPtrInput `pulumi:"exactMatch"` // The name of the HTTP header to match. For matching against the HTTP request's authority, use a headerMatch with the header name ":authority". For matching a request's method, use the headerName ":method". When the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true, only non-binary user-specified custom metadata and the `content-type` header are supported. The following transport-level headers cannot be used in header matching rules: `:authority`, `:method`, `:path`, `:scheme`, `user-agent`, `accept-encoding`, `content-encoding`, `grpc-accept-encoding`, `grpc-encoding`, `grpc-previous-rpc-attempts`, `grpc-tags-bin`, `grpc-timeout` and `grpc-trace-bin`. HeaderName pulumi.StringPtrInput `pulumi:"headerName"` // If set to false, the headerMatch is considered a match if the preceding match criteria are met. If set to true, the headerMatch is considered a match if the preceding match criteria are NOT met. The default setting is false. InvertMatch pulumi.BoolPtrInput `pulumi:"invertMatch"` // The value of the header must start with the contents of prefixMatch. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. PrefixMatch pulumi.StringPtrInput `pulumi:"prefixMatch"` // A header with the contents of headerName must exist. The match takes place whether or not the request's header has a value. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. PresentMatch pulumi.BoolPtrInput `pulumi:"presentMatch"` // The header value must be an integer and its value must be in the range specified in rangeMatch. If the header does not contain an integer, number or is empty, the match fails. For example for a range [-5, 0] - -3 will match. - 0 will not match. - 0.25 will not match. - -3someString will not match. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. rangeMatch is not supported for load balancers that have loadBalancingScheme set to EXTERNAL. RangeMatch Int64RangeMatchPtrInput `pulumi:"rangeMatch"` // The value of the header must match the regular expression specified in regexMatch. For more information about regular expression syntax, see Syntax. For matching against a port specified in the HTTP request, use a headerMatch with headerName set to PORT and a regular expression that satisfies the RFC2616 Host header's port specifier. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. regexMatch only applies to load balancers that have loadBalancingScheme set to INTERNAL_SELF_MANAGED. RegexMatch pulumi.StringPtrInput `pulumi:"regexMatch"` // The value of the header must end with the contents of suffixMatch. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. SuffixMatch pulumi.StringPtrInput `pulumi:"suffixMatch"` } func (HttpHeaderMatchArgs) ElementType() reflect.Type { return reflect.TypeOf((*HttpHeaderMatch)(nil)).Elem() } func (i HttpHeaderMatchArgs) ToHttpHeaderMatchOutput() HttpHeaderMatchOutput { return i.ToHttpHeaderMatchOutputWithContext(context.Background()) } func (i HttpHeaderMatchArgs) ToHttpHeaderMatchOutputWithContext(ctx context.Context) HttpHeaderMatchOutput { return pulumi.ToOutputWithContext(ctx, i).(HttpHeaderMatchOutput) } // HttpHeaderMatchArrayInput is an input type that accepts HttpHeaderMatchArray and HttpHeaderMatchArrayOutput values. // You can construct a concrete instance of `HttpHeaderMatchArrayInput` via: // // HttpHeaderMatchArray{ HttpHeaderMatchArgs{...} } type HttpHeaderMatchArrayInput interface { pulumi.Input ToHttpHeaderMatchArrayOutput() HttpHeaderMatchArrayOutput ToHttpHeaderMatchArrayOutputWithContext(context.Context) HttpHeaderMatchArrayOutput } type HttpHeaderMatchArray []HttpHeaderMatchInput func (HttpHeaderMatchArray) ElementType() reflect.Type { return reflect.TypeOf((*[]HttpHeaderMatch)(nil)).Elem() } func (i HttpHeaderMatchArray) ToHttpHeaderMatchArrayOutput() HttpHeaderMatchArrayOutput { return i.ToHttpHeaderMatchArrayOutputWithContext(context.Background()) } func (i HttpHeaderMatchArray) ToHttpHeaderMatchArrayOutputWithContext(ctx context.Context) HttpHeaderMatchArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(HttpHeaderMatchArrayOutput) } // matchRule criteria for request header matches. type HttpHeaderMatchOutput struct{ *pulumi.OutputState } func (HttpHeaderMatchOutput) ElementType() reflect.Type { return reflect.TypeOf((*HttpHeaderMatch)(nil)).Elem() } func (o HttpHeaderMatchOutput) ToHttpHeaderMatchOutput() HttpHeaderMatchOutput { return o } func (o HttpHeaderMatchOutput) ToHttpHeaderMatchOutputWithContext(ctx context.Context) HttpHeaderMatchOutput { return o } // The value should exactly match contents of exactMatch. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. func (o HttpHeaderMatchOutput) ExactMatch() pulumi.StringPtrOutput { return o.ApplyT(func(v HttpHeaderMatch) *string { return v.ExactMatch }).(pulumi.StringPtrOutput) } // The name of the HTTP header to match. For matching against the HTTP request's authority, use a headerMatch with the header name ":authority". For matching a request's method, use the headerName ":method". When the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true, only non-binary user-specified custom metadata and the `content-type` header are supported. The following transport-level headers cannot be used in header matching rules: `:authority`, `:method`, `:path`, `:scheme`, `user-agent`, `accept-encoding`, `content-encoding`, `grpc-accept-encoding`, `grpc-encoding`, `grpc-previous-rpc-attempts`, `grpc-tags-bin`, `grpc-timeout` and `grpc-trace-bin`. func (o HttpHeaderMatchOutput) HeaderName() pulumi.StringPtrOutput { return o.ApplyT(func(v HttpHeaderMatch) *string { return v.HeaderName }).(pulumi.StringPtrOutput) } // If set to false, the headerMatch is considered a match if the preceding match criteria are met. If set to true, the headerMatch is considered a match if the preceding match criteria are NOT met. The default setting is false. func (o HttpHeaderMatchOutput) InvertMatch() pulumi.BoolPtrOutput { return o.ApplyT(func(v HttpHeaderMatch) *bool { return v.InvertMatch }).(pulumi.BoolPtrOutput) } // The value of the header must start with the contents of prefixMatch. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. func (o HttpHeaderMatchOutput) PrefixMatch() pulumi.StringPtrOutput { return o.ApplyT(func(v HttpHeaderMatch) *string { return v.PrefixMatch }).(pulumi.StringPtrOutput) } // A header with the contents of headerName must exist. The match takes place whether or not the request's header has a value. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. func (o HttpHeaderMatchOutput) PresentMatch() pulumi.BoolPtrOutput { return o.ApplyT(func(v HttpHeaderMatch) *bool { return v.PresentMatch }).(pulumi.BoolPtrOutput) } // The header value must be an integer and its value must be in the range specified in rangeMatch. If the header does not contain an integer, number or is empty, the match fails. For example for a range [-5, 0] - -3 will match. - 0 will not match. - 0.25 will not match. - -3someString will not match. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. rangeMatch is not supported for load balancers that have loadBalancingScheme set to EXTERNAL. func (o HttpHeaderMatchOutput) RangeMatch() Int64RangeMatchPtrOutput { return o.ApplyT(func(v HttpHeaderMatch) *Int64RangeMatch { return v.RangeMatch }).(Int64RangeMatchPtrOutput) } // The value of the header must match the regular expression specified in regexMatch. For more information about regular expression syntax, see Syntax. For matching against a port specified in the HTTP request, use a headerMatch with headerName set to PORT and a regular expression that satisfies the RFC2616 Host header's port specifier. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. regexMatch only applies to load balancers that have loadBalancingScheme set to INTERNAL_SELF_MANAGED. func (o HttpHeaderMatchOutput) RegexMatch() pulumi.StringPtrOutput { return o.ApplyT(func(v HttpHeaderMatch) *string { return v.RegexMatch }).(pulumi.StringPtrOutput) } // The value of the header must end with the contents of suffixMatch. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. func (o HttpHeaderMatchOutput) SuffixMatch() pulumi.StringPtrOutput { return o.ApplyT(func(v HttpHeaderMatch) *string { return v.SuffixMatch }).(pulumi.StringPtrOutput) } type HttpHeaderMatchArrayOutput struct{ *pulumi.OutputState } func (HttpHeaderMatchArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]HttpHeaderMatch)(nil)).Elem() } func (o HttpHeaderMatchArrayOutput) ToHttpHeaderMatchArrayOutput() HttpHeaderMatchArrayOutput { return o } func (o HttpHeaderMatchArrayOutput) ToHttpHeaderMatchArrayOutputWithContext(ctx context.Context) HttpHeaderMatchArrayOutput { return o } func (o HttpHeaderMatchArrayOutput) Index(i pulumi.IntInput) HttpHeaderMatchOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) HttpHeaderMatch { return vs[0].([]HttpHeaderMatch)[vs[1].(int)] }).(HttpHeaderMatchOutput) } // matchRule criteria for request header matches. type HttpHeaderMatchResponse struct { // The value should exactly match contents of exactMatch. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. ExactMatch string `pulumi:"exactMatch"` // The name of the HTTP header to match. For matching against the HTTP request's authority, use a headerMatch with the header name ":authority". For matching a request's method, use the headerName ":method". When the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true, only non-binary user-specified custom metadata and the `content-type` header are supported. The following transport-level headers cannot be used in header matching rules: `:authority`, `:method`, `:path`, `:scheme`, `user-agent`, `accept-encoding`, `content-encoding`, `grpc-accept-encoding`, `grpc-encoding`, `grpc-previous-rpc-attempts`, `grpc-tags-bin`, `grpc-timeout` and `grpc-trace-bin`. HeaderName string `pulumi:"headerName"` // If set to false, the headerMatch is considered a match if the preceding match criteria are met. If set to true, the headerMatch is considered a match if the preceding match criteria are NOT met. The default setting is false. InvertMatch bool `pulumi:"invertMatch"` // The value of the header must start with the contents of prefixMatch. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. PrefixMatch string `pulumi:"prefixMatch"` // A header with the contents of headerName must exist. The match takes place whether or not the request's header has a value. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. PresentMatch bool `pulumi:"presentMatch"` // The header value must be an integer and its value must be in the range specified in rangeMatch. If the header does not contain an integer, number or is empty, the match fails. For example for a range [-5, 0] - -3 will match. - 0 will not match. - 0.25 will not match. - -3someString will not match. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. rangeMatch is not supported for load balancers that have loadBalancingScheme set to EXTERNAL. RangeMatch Int64RangeMatchResponse `pulumi:"rangeMatch"` // The value of the header must match the regular expression specified in regexMatch. For more information about regular expression syntax, see Syntax. For matching against a port specified in the HTTP request, use a headerMatch with headerName set to PORT and a regular expression that satisfies the RFC2616 Host header's port specifier. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. regexMatch only applies to load balancers that have loadBalancingScheme set to INTERNAL_SELF_MANAGED. RegexMatch string `pulumi:"regexMatch"` // The value of the header must end with the contents of suffixMatch. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. SuffixMatch string `pulumi:"suffixMatch"` } // matchRule criteria for request header matches. type HttpHeaderMatchResponseOutput struct{ *pulumi.OutputState } func (HttpHeaderMatchResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*HttpHeaderMatchResponse)(nil)).Elem() } func (o HttpHeaderMatchResponseOutput) ToHttpHeaderMatchResponseOutput() HttpHeaderMatchResponseOutput { return o } func (o HttpHeaderMatchResponseOutput) ToHttpHeaderMatchResponseOutputWithContext(ctx context.Context) HttpHeaderMatchResponseOutput { return o } // The value should exactly match contents of exactMatch. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. func (o HttpHeaderMatchResponseOutput) ExactMatch() pulumi.StringOutput { return o.ApplyT(func(v HttpHeaderMatchResponse) string { return v.ExactMatch }).(pulumi.StringOutput) } // The name of the HTTP header to match. For matching against the HTTP request's authority, use a headerMatch with the header name ":authority". For matching a request's method, use the headerName ":method". When the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true, only non-binary user-specified custom metadata and the `content-type` header are supported. The following transport-level headers cannot be used in header matching rules: `:authority`, `:method`, `:path`, `:scheme`, `user-agent`, `accept-encoding`, `content-encoding`, `grpc-accept-encoding`, `grpc-encoding`, `grpc-previous-rpc-attempts`, `grpc-tags-bin`, `grpc-timeout` and `grpc-trace-bin`. func (o HttpHeaderMatchResponseOutput) HeaderName() pulumi.StringOutput { return o.ApplyT(func(v HttpHeaderMatchResponse) string { return v.HeaderName }).(pulumi.StringOutput) } // If set to false, the headerMatch is considered a match if the preceding match criteria are met. If set to true, the headerMatch is considered a match if the preceding match criteria are NOT met. The default setting is false. func (o HttpHeaderMatchResponseOutput) InvertMatch() pulumi.BoolOutput { return o.ApplyT(func(v HttpHeaderMatchResponse) bool { return v.InvertMatch }).(pulumi.BoolOutput) } // The value of the header must start with the contents of prefixMatch. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. func (o HttpHeaderMatchResponseOutput) PrefixMatch() pulumi.StringOutput { return o.ApplyT(func(v HttpHeaderMatchResponse) string { return v.PrefixMatch }).(pulumi.StringOutput) } // A header with the contents of headerName must exist. The match takes place whether or not the request's header has a value. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. func (o HttpHeaderMatchResponseOutput) PresentMatch() pulumi.BoolOutput { return o.ApplyT(func(v HttpHeaderMatchResponse) bool { return v.PresentMatch }).(pulumi.BoolOutput) } // The header value must be an integer and its value must be in the range specified in rangeMatch. If the header does not contain an integer, number or is empty, the match fails. For example for a range [-5, 0] - -3 will match. - 0 will not match. - 0.25 will not match. - -3someString will not match. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. rangeMatch is not supported for load balancers that have loadBalancingScheme set to EXTERNAL. func (o HttpHeaderMatchResponseOutput) RangeMatch() Int64RangeMatchResponseOutput { return o.ApplyT(func(v HttpHeaderMatchResponse) Int64RangeMatchResponse { return v.RangeMatch }).(Int64RangeMatchResponseOutput) } // The value of the header must match the regular expression specified in regexMatch. For more information about regular expression syntax, see Syntax. For matching against a port specified in the HTTP request, use a headerMatch with headerName set to PORT and a regular expression that satisfies the RFC2616 Host header's port specifier. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. regexMatch only applies to load balancers that have loadBalancingScheme set to INTERNAL_SELF_MANAGED. func (o HttpHeaderMatchResponseOutput) RegexMatch() pulumi.StringOutput { return o.ApplyT(func(v HttpHeaderMatchResponse) string { return v.RegexMatch }).(pulumi.StringOutput) } // The value of the header must end with the contents of suffixMatch. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. func (o HttpHeaderMatchResponseOutput) SuffixMatch() pulumi.StringOutput { return o.ApplyT(func(v HttpHeaderMatchResponse) string { return v.SuffixMatch }).(pulumi.StringOutput) } type HttpHeaderMatchResponseArrayOutput struct{ *pulumi.OutputState } func (HttpHeaderMatchResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]HttpHeaderMatchResponse)(nil)).Elem() } func (o HttpHeaderMatchResponseArrayOutput) ToHttpHeaderMatchResponseArrayOutput() HttpHeaderMatchResponseArrayOutput { return o } func (o HttpHeaderMatchResponseArrayOutput) ToHttpHeaderMatchResponseArrayOutputWithContext(ctx context.Context) HttpHeaderMatchResponseArrayOutput { return o } func (o HttpHeaderMatchResponseArrayOutput) Index(i pulumi.IntInput) HttpHeaderMatchResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) HttpHeaderMatchResponse { return vs[0].([]HttpHeaderMatchResponse)[vs[1].(int)] }).(HttpHeaderMatchResponseOutput) } // Specification determining how headers are added to requests or responses. type HttpHeaderOption struct { // The name of the header. HeaderName *string `pulumi:"headerName"` // The value of the header to add. HeaderValue *string `pulumi:"headerValue"` // If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. The default value is false. Replace *bool `pulumi:"replace"` } // HttpHeaderOptionInput is an input type that accepts HttpHeaderOptionArgs and HttpHeaderOptionOutput values. // You can construct a concrete instance of `HttpHeaderOptionInput` via: // // HttpHeaderOptionArgs{...} type HttpHeaderOptionInput interface { pulumi.Input ToHttpHeaderOptionOutput() HttpHeaderOptionOutput ToHttpHeaderOptionOutputWithContext(context.Context) HttpHeaderOptionOutput } // Specification determining how headers are added to requests or responses. type HttpHeaderOptionArgs struct { // The name of the header. HeaderName pulumi.StringPtrInput `pulumi:"headerName"` // The value of the header to add. HeaderValue pulumi.StringPtrInput `pulumi:"headerValue"` // If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. The default value is false. Replace pulumi.BoolPtrInput `pulumi:"replace"` } func (HttpHeaderOptionArgs) ElementType() reflect.Type { return reflect.TypeOf((*HttpHeaderOption)(nil)).Elem() } func (i HttpHeaderOptionArgs) ToHttpHeaderOptionOutput() HttpHeaderOptionOutput { return i.ToHttpHeaderOptionOutputWithContext(context.Background()) } func (i HttpHeaderOptionArgs) ToHttpHeaderOptionOutputWithContext(ctx context.Context) HttpHeaderOptionOutput { return pulumi.ToOutputWithContext(ctx, i).(HttpHeaderOptionOutput) } // HttpHeaderOptionArrayInput is an input type that accepts HttpHeaderOptionArray and HttpHeaderOptionArrayOutput values. // You can construct a concrete instance of `HttpHeaderOptionArrayInput` via: // // HttpHeaderOptionArray{ HttpHeaderOptionArgs{...} } type HttpHeaderOptionArrayInput interface { pulumi.Input ToHttpHeaderOptionArrayOutput() HttpHeaderOptionArrayOutput ToHttpHeaderOptionArrayOutputWithContext(context.Context) HttpHeaderOptionArrayOutput } type HttpHeaderOptionArray []HttpHeaderOptionInput func (HttpHeaderOptionArray) ElementType() reflect.Type { return reflect.TypeOf((*[]HttpHeaderOption)(nil)).Elem() } func (i HttpHeaderOptionArray) ToHttpHeaderOptionArrayOutput() HttpHeaderOptionArrayOutput { return i.ToHttpHeaderOptionArrayOutputWithContext(context.Background()) } func (i HttpHeaderOptionArray) ToHttpHeaderOptionArrayOutputWithContext(ctx context.Context) HttpHeaderOptionArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(HttpHeaderOptionArrayOutput) } // Specification determining how headers are added to requests or responses. type HttpHeaderOptionOutput struct{ *pulumi.OutputState } func (HttpHeaderOptionOutput) ElementType() reflect.Type { return reflect.TypeOf((*HttpHeaderOption)(nil)).Elem() } func (o HttpHeaderOptionOutput) ToHttpHeaderOptionOutput() HttpHeaderOptionOutput { return o } func (o HttpHeaderOptionOutput) ToHttpHeaderOptionOutputWithContext(ctx context.Context) HttpHeaderOptionOutput { return o } // The name of the header. func (o HttpHeaderOptionOutput) HeaderName() pulumi.StringPtrOutput { return o.ApplyT(func(v HttpHeaderOption) *string { return v.HeaderName }).(pulumi.StringPtrOutput) } // The value of the header to add. func (o HttpHeaderOptionOutput) HeaderValue() pulumi.StringPtrOutput { return o.ApplyT(func(v HttpHeaderOption) *string { return v.HeaderValue }).(pulumi.StringPtrOutput) } // If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. The default value is false. func (o HttpHeaderOptionOutput) Replace() pulumi.BoolPtrOutput { return o.ApplyT(func(v HttpHeaderOption) *bool { return v.Replace }).(pulumi.BoolPtrOutput) } type HttpHeaderOptionArrayOutput struct{ *pulumi.OutputState } func (HttpHeaderOptionArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]HttpHeaderOption)(nil)).Elem() } func (o HttpHeaderOptionArrayOutput) ToHttpHeaderOptionArrayOutput() HttpHeaderOptionArrayOutput { return o } func (o HttpHeaderOptionArrayOutput) ToHttpHeaderOptionArrayOutputWithContext(ctx context.Context) HttpHeaderOptionArrayOutput { return o } func (o HttpHeaderOptionArrayOutput) Index(i pulumi.IntInput) HttpHeaderOptionOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) HttpHeaderOption { return vs[0].([]HttpHeaderOption)[vs[1].(int)] }).(HttpHeaderOptionOutput) } // Specification determining how headers are added to requests or responses. type HttpHeaderOptionResponse struct { // The name of the header. HeaderName string `pulumi:"headerName"` // The value of the header to add. HeaderValue string `pulumi:"headerValue"` // If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. The default value is false. Replace bool `pulumi:"replace"` } // Specification determining how headers are added to requests or responses. type HttpHeaderOptionResponseOutput struct{ *pulumi.OutputState } func (HttpHeaderOptionResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*HttpHeaderOptionResponse)(nil)).Elem() } func (o HttpHeaderOptionResponseOutput) ToHttpHeaderOptionResponseOutput() HttpHeaderOptionResponseOutput { return o } func (o HttpHeaderOptionResponseOutput) ToHttpHeaderOptionResponseOutputWithContext(ctx context.Context) HttpHeaderOptionResponseOutput { return o } // The name of the header. func (o HttpHeaderOptionResponseOutput) HeaderName() pulumi.StringOutput { return o.ApplyT(func(v HttpHeaderOptionResponse) string { return v.HeaderName }).(pulumi.StringOutput) } // The value of the header to add. func (o HttpHeaderOptionResponseOutput) HeaderValue() pulumi.StringOutput { return o.ApplyT(func(v HttpHeaderOptionResponse) string { return v.HeaderValue }).(pulumi.StringOutput) } // If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. The default value is false. func (o HttpHeaderOptionResponseOutput) Replace() pulumi.BoolOutput { return o.ApplyT(func(v HttpHeaderOptionResponse) bool { return v.Replace }).(pulumi.BoolOutput) } type HttpHeaderOptionResponseArrayOutput struct{ *pulumi.OutputState } func (HttpHeaderOptionResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]HttpHeaderOptionResponse)(nil)).Elem() } func (o HttpHeaderOptionResponseArrayOutput) ToHttpHeaderOptionResponseArrayOutput() HttpHeaderOptionResponseArrayOutput { return o } func (o HttpHeaderOptionResponseArrayOutput) ToHttpHeaderOptionResponseArrayOutputWithContext(ctx context.Context) HttpHeaderOptionResponseArrayOutput { return o } func (o HttpHeaderOptionResponseArrayOutput) Index(i pulumi.IntInput) HttpHeaderOptionResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) HttpHeaderOptionResponse { return vs[0].([]HttpHeaderOptionResponse)[vs[1].(int)] }).(HttpHeaderOptionResponseOutput) } // HttpRouteRuleMatch criteria for a request's query parameter. type HttpQueryParameterMatch struct { // The queryParameterMatch matches if the value of the parameter exactly matches the contents of exactMatch. Only one of presentMatch, exactMatch, or regexMatch must be set. ExactMatch *string `pulumi:"exactMatch"` // The name of the query parameter to match. The query parameter must exist in the request, in the absence of which the request match fails. Name *string `pulumi:"name"` // Specifies that the queryParameterMatch matches if the request contains the query parameter, irrespective of whether the parameter has a value or not. Only one of presentMatch, exactMatch, or regexMatch must be set. PresentMatch *bool `pulumi:"presentMatch"` // The queryParameterMatch matches if the value of the parameter matches the regular expression specified by regexMatch. For more information about regular expression syntax, see Syntax. Only one of presentMatch, exactMatch, or regexMatch must be set. regexMatch only applies when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED. RegexMatch *string `pulumi:"regexMatch"` } // HttpQueryParameterMatchInput is an input type that accepts HttpQueryParameterMatchArgs and HttpQueryParameterMatchOutput values. // You can construct a concrete instance of `HttpQueryParameterMatchInput` via: // // HttpQueryParameterMatchArgs{...} type HttpQueryParameterMatchInput interface { pulumi.Input ToHttpQueryParameterMatchOutput() HttpQueryParameterMatchOutput ToHttpQueryParameterMatchOutputWithContext(context.Context) HttpQueryParameterMatchOutput } // HttpRouteRuleMatch criteria for a request's query parameter. type HttpQueryParameterMatchArgs struct { // The queryParameterMatch matches if the value of the parameter exactly matches the contents of exactMatch. Only one of presentMatch, exactMatch, or regexMatch must be set. ExactMatch pulumi.StringPtrInput `pulumi:"exactMatch"` // The name of the query parameter to match. The query parameter must exist in the request, in the absence of which the request match fails. Name pulumi.StringPtrInput `pulumi:"name"` // Specifies that the queryParameterMatch matches if the request contains the query parameter, irrespective of whether the parameter has a value or not. Only one of presentMatch, exactMatch, or regexMatch must be set. PresentMatch pulumi.BoolPtrInput `pulumi:"presentMatch"` // The queryParameterMatch matches if the value of the parameter matches the regular expression specified by regexMatch. For more information about regular expression syntax, see Syntax. Only one of presentMatch, exactMatch, or regexMatch must be set. regexMatch only applies when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED. RegexMatch pulumi.StringPtrInput `pulumi:"regexMatch"` } func (HttpQueryParameterMatchArgs) ElementType() reflect.Type { return reflect.TypeOf((*HttpQueryParameterMatch)(nil)).Elem() } func (i HttpQueryParameterMatchArgs) ToHttpQueryParameterMatchOutput() HttpQueryParameterMatchOutput { return i.ToHttpQueryParameterMatchOutputWithContext(context.Background()) } func (i HttpQueryParameterMatchArgs) ToHttpQueryParameterMatchOutputWithContext(ctx context.Context) HttpQueryParameterMatchOutput { return pulumi.ToOutputWithContext(ctx, i).(HttpQueryParameterMatchOutput) } // HttpQueryParameterMatchArrayInput is an input type that accepts HttpQueryParameterMatchArray and HttpQueryParameterMatchArrayOutput values. // You can construct a concrete instance of `HttpQueryParameterMatchArrayInput` via: // // HttpQueryParameterMatchArray{ HttpQueryParameterMatchArgs{...} } type HttpQueryParameterMatchArrayInput interface { pulumi.Input ToHttpQueryParameterMatchArrayOutput() HttpQueryParameterMatchArrayOutput ToHttpQueryParameterMatchArrayOutputWithContext(context.Context) HttpQueryParameterMatchArrayOutput } type HttpQueryParameterMatchArray []HttpQueryParameterMatchInput func (HttpQueryParameterMatchArray) ElementType() reflect.Type { return reflect.TypeOf((*[]HttpQueryParameterMatch)(nil)).Elem() } func (i HttpQueryParameterMatchArray) ToHttpQueryParameterMatchArrayOutput() HttpQueryParameterMatchArrayOutput { return i.ToHttpQueryParameterMatchArrayOutputWithContext(context.Background()) } func (i HttpQueryParameterMatchArray) ToHttpQueryParameterMatchArrayOutputWithContext(ctx context.Context) HttpQueryParameterMatchArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(HttpQueryParameterMatchArrayOutput) } // HttpRouteRuleMatch criteria for a request's query parameter. type HttpQueryParameterMatchOutput struct{ *pulumi.OutputState } func (HttpQueryParameterMatchOutput) ElementType() reflect.Type { return reflect.TypeOf((*HttpQueryParameterMatch)(nil)).Elem() } func (o HttpQueryParameterMatchOutput) ToHttpQueryParameterMatchOutput() HttpQueryParameterMatchOutput { return o } func (o HttpQueryParameterMatchOutput) ToHttpQueryParameterMatchOutputWithContext(ctx context.Context) HttpQueryParameterMatchOutput { return o } // The queryParameterMatch matches if the value of the parameter exactly matches the contents of exactMatch. Only one of presentMatch, exactMatch, or regexMatch must be set. func (o HttpQueryParameterMatchOutput) ExactMatch() pulumi.StringPtrOutput { return o.ApplyT(func(v HttpQueryParameterMatch) *string { return v.ExactMatch }).(pulumi.StringPtrOutput) } // The name of the query parameter to match. The query parameter must exist in the request, in the absence of which the request match fails. func (o HttpQueryParameterMatchOutput) Name() pulumi.StringPtrOutput { return o.ApplyT(func(v HttpQueryParameterMatch) *string { return v.Name }).(pulumi.StringPtrOutput) } // Specifies that the queryParameterMatch matches if the request contains the query parameter, irrespective of whether the parameter has a value or not. Only one of presentMatch, exactMatch, or regexMatch must be set. func (o HttpQueryParameterMatchOutput) PresentMatch() pulumi.BoolPtrOutput { return o.ApplyT(func(v HttpQueryParameterMatch) *bool { return v.PresentMatch }).(pulumi.BoolPtrOutput) } // The queryParameterMatch matches if the value of the parameter matches the regular expression specified by regexMatch. For more information about regular expression syntax, see Syntax. Only one of presentMatch, exactMatch, or regexMatch must be set. regexMatch only applies when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED. func (o HttpQueryParameterMatchOutput) RegexMatch() pulumi.StringPtrOutput { return o.ApplyT(func(v HttpQueryParameterMatch) *string { return v.RegexMatch }).(pulumi.StringPtrOutput) } type HttpQueryParameterMatchArrayOutput struct{ *pulumi.OutputState } func (HttpQueryParameterMatchArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]HttpQueryParameterMatch)(nil)).Elem() } func (o HttpQueryParameterMatchArrayOutput) ToHttpQueryParameterMatchArrayOutput() HttpQueryParameterMatchArrayOutput { return o } func (o HttpQueryParameterMatchArrayOutput) ToHttpQueryParameterMatchArrayOutputWithContext(ctx context.Context) HttpQueryParameterMatchArrayOutput { return o } func (o HttpQueryParameterMatchArrayOutput) Index(i pulumi.IntInput) HttpQueryParameterMatchOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) HttpQueryParameterMatch { return vs[0].([]HttpQueryParameterMatch)[vs[1].(int)] }).(HttpQueryParameterMatchOutput) } // HttpRouteRuleMatch criteria for a request's query parameter. type HttpQueryParameterMatchResponse struct { // The queryParameterMatch matches if the value of the parameter exactly matches the contents of exactMatch. Only one of presentMatch, exactMatch, or regexMatch must be set. ExactMatch string `pulumi:"exactMatch"` // The name of the query parameter to match. The query parameter must exist in the request, in the absence of which the request match fails. Name string `pulumi:"name"` // Specifies that the queryParameterMatch matches if the request contains the query parameter, irrespective of whether the parameter has a value or not. Only one of presentMatch, exactMatch, or regexMatch must be set. PresentMatch bool `pulumi:"presentMatch"` // The queryParameterMatch matches if the value of the parameter matches the regular expression specified by regexMatch. For more information about regular expression syntax, see Syntax. Only one of presentMatch, exactMatch, or regexMatch must be set. regexMatch only applies when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED. RegexMatch string `pulumi:"regexMatch"` } // HttpRouteRuleMatch criteria for a request's query parameter. type HttpQueryParameterMatchResponseOutput struct{ *pulumi.OutputState } func (HttpQueryParameterMatchResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*HttpQueryParameterMatchResponse)(nil)).Elem() } func (o HttpQueryParameterMatchResponseOutput) ToHttpQueryParameterMatchResponseOutput() HttpQueryParameterMatchResponseOutput { return o } func (o HttpQueryParameterMatchResponseOutput) ToHttpQueryParameterMatchResponseOutputWithContext(ctx context.Context) HttpQueryParameterMatchResponseOutput { return o } // The queryParameterMatch matches if the value of the parameter exactly matches the contents of exactMatch. Only one of presentMatch, exactMatch, or regexMatch must be set. func (o HttpQueryParameterMatchResponseOutput) ExactMatch() pulumi.StringOutput { return o.ApplyT(func(v HttpQueryParameterMatchResponse) string { return v.ExactMatch }).(pulumi.StringOutput) } // The name of the query parameter to match. The query parameter must exist in the request, in the absence of which the request match fails. func (o HttpQueryParameterMatchResponseOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v HttpQueryParameterMatchResponse) string { return v.Name }).(pulumi.StringOutput) } // Specifies that the queryParameterMatch matches if the request contains the query parameter, irrespective of whether the parameter has a value or not. Only one of presentMatch, exactMatch, or regexMatch must be set. func (o HttpQueryParameterMatchResponseOutput) PresentMatch() pulumi.BoolOutput { return o.ApplyT(func(v HttpQueryParameterMatchResponse) bool { return v.PresentMatch }).(pulumi.BoolOutput) } // The queryParameterMatch matches if the value of the parameter matches the regular expression specified by regexMatch. For more information about regular expression syntax, see Syntax. Only one of presentMatch, exactMatch, or regexMatch must be set. regexMatch only applies when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED. func (o HttpQueryParameterMatchResponseOutput) RegexMatch() pulumi.StringOutput { return o.ApplyT(func(v HttpQueryParameterMatchResponse) string { return v.RegexMatch }).(pulumi.StringOutput) } type HttpQueryParameterMatchResponseArrayOutput struct{ *pulumi.OutputState } func (HttpQueryParameterMatchResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]HttpQueryParameterMatchResponse)(nil)).Elem() } func (o HttpQueryParameterMatchResponseArrayOutput) ToHttpQueryParameterMatchResponseArrayOutput() HttpQueryParameterMatchResponseArrayOutput { return o } func (o HttpQueryParameterMatchResponseArrayOutput) ToHttpQueryParameterMatchResponseArrayOutputWithContext(ctx context.Context) HttpQueryParameterMatchResponseArrayOutput { return o } func (o HttpQueryParameterMatchResponseArrayOutput) Index(i pulumi.IntInput) HttpQueryParameterMatchResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) HttpQueryParameterMatchResponse { return vs[0].([]HttpQueryParameterMatchResponse)[vs[1].(int)] }).(HttpQueryParameterMatchResponseOutput) } // Specifies settings for an HTTP redirect. type HttpRedirectAction struct { // The host that is used in the redirect response instead of the one that was supplied in the request. The value must be from 1 to 255 characters. HostRedirect *string `pulumi:"hostRedirect"` // If set to true, the URL scheme in the redirected request is set to HTTPS. If set to false, the URL scheme of the redirected request remains the same as that of the request. This must only be set for URL maps used in TargetHttpProxys. Setting this true for TargetHttpsProxy is not permitted. The default is set to false. HttpsRedirect *bool `pulumi:"httpsRedirect"` // The path that is used in the redirect response instead of the one that was supplied in the request. pathRedirect cannot be supplied together with prefixRedirect. Supply one alone or neither. If neither is supplied, the path of the original request is used for the redirect. The value must be from 1 to 1024 characters. PathRedirect *string `pulumi:"pathRedirect"` // The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch, retaining the remaining portion of the URL before redirecting the request. prefixRedirect cannot be supplied together with pathRedirect. Supply one alone or neither. If neither is supplied, the path of the original request is used for the redirect. The value must be from 1 to 1024 characters. PrefixRedirect *string `pulumi:"prefixRedirect"` // The HTTP Status code to use for this RedirectAction. Supported values are: - MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. - FOUND, which corresponds to 302. - SEE_OTHER which corresponds to 303. - TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method is retained. - PERMANENT_REDIRECT, which corresponds to 308. In this case, the request method is retained. RedirectResponseCode *HttpRedirectActionRedirectResponseCode `pulumi:"redirectResponseCode"` // If set to true, any accompanying query portion of the original URL is removed before redirecting the request. If set to false, the query portion of the original URL is retained. The default is set to false. StripQuery *bool `pulumi:"stripQuery"` } // HttpRedirectActionInput is an input type that accepts HttpRedirectActionArgs and HttpRedirectActionOutput values. // You can construct a concrete instance of `HttpRedirectActionInput` via: // // HttpRedirectActionArgs{...} type HttpRedirectActionInput interface { pulumi.Input ToHttpRedirectActionOutput() HttpRedirectActionOutput ToHttpRedirectActionOutputWithContext(context.Context) HttpRedirectActionOutput } // Specifies settings for an HTTP redirect. type HttpRedirectActionArgs struct { // The host that is used in the redirect response instead of the one that was supplied in the request. The value must be from 1 to 255 characters. HostRedirect pulumi.StringPtrInput `pulumi:"hostRedirect"` // If set to true, the URL scheme in the redirected request is set to HTTPS. If set to false, the URL scheme of the redirected request remains the same as that of the request. This must only be set for URL maps used in TargetHttpProxys. Setting this true for TargetHttpsProxy is not permitted. The default is set to false. HttpsRedirect pulumi.BoolPtrInput `pulumi:"httpsRedirect"` // The path that is used in the redirect response instead of the one that was supplied in the request. pathRedirect cannot be supplied together with prefixRedirect. Supply one alone or neither. If neither is supplied, the path of the original request is used for the redirect. The value must be from 1 to 1024 characters. PathRedirect pulumi.StringPtrInput `pulumi:"pathRedirect"` // The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch, retaining the remaining portion of the URL before redirecting the request. prefixRedirect cannot be supplied together with pathRedirect. Supply one alone or neither. If neither is supplied, the path of the original request is used for the redirect. The value must be from 1 to 1024 characters. PrefixRedirect pulumi.StringPtrInput `pulumi:"prefixRedirect"` // The HTTP Status code to use for this RedirectAction. Supported values are: - MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. - FOUND, which corresponds to 302. - SEE_OTHER which corresponds to 303. - TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method is retained. - PERMANENT_REDIRECT, which corresponds to 308. In this case, the request method is retained. RedirectResponseCode HttpRedirectActionRedirectResponseCodePtrInput `pulumi:"redirectResponseCode"` // If set to true, any accompanying query portion of the original URL is removed before redirecting the request. If set to false, the query portion of the original URL is retained. The default is set to false. StripQuery pulumi.BoolPtrInput `pulumi:"stripQuery"` } func (HttpRedirectActionArgs) ElementType() reflect.Type { return reflect.TypeOf((*HttpRedirectAction)(nil)).Elem() } func (i HttpRedirectActionArgs) ToHttpRedirectActionOutput() HttpRedirectActionOutput { return i.ToHttpRedirectActionOutputWithContext(context.Background()) } func (i HttpRedirectActionArgs) ToHttpRedirectActionOutputWithContext(ctx context.Context) HttpRedirectActionOutput { return pulumi.ToOutputWithContext(ctx, i).(HttpRedirectActionOutput) } func (i HttpRedirectActionArgs) ToHttpRedirectActionPtrOutput() HttpRedirectActionPtrOutput { return i.ToHttpRedirectActionPtrOutputWithContext(context.Background()) } func (i HttpRedirectActionArgs) ToHttpRedirectActionPtrOutputWithContext(ctx context.Context) HttpRedirectActionPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(HttpRedirectActionOutput).ToHttpRedirectActionPtrOutputWithContext(ctx) } // HttpRedirectActionPtrInput is an input type that accepts HttpRedirectActionArgs, HttpRedirectActionPtr and HttpRedirectActionPtrOutput values. // You can construct a concrete instance of `HttpRedirectActionPtrInput` via: // // HttpRedirectActionArgs{...} // // or: // // nil type HttpRedirectActionPtrInput interface { pulumi.Input ToHttpRedirectActionPtrOutput() HttpRedirectActionPtrOutput ToHttpRedirectActionPtrOutputWithContext(context.Context) HttpRedirectActionPtrOutput } type httpRedirectActionPtrType HttpRedirectActionArgs func HttpRedirectActionPtr(v *HttpRedirectActionArgs) HttpRedirectActionPtrInput { return (*httpRedirectActionPtrType)(v) } func (*httpRedirectActionPtrType) ElementType() reflect.Type { return reflect.TypeOf((**HttpRedirectAction)(nil)).Elem() } func (i *httpRedirectActionPtrType) ToHttpRedirectActionPtrOutput() HttpRedirectActionPtrOutput { return i.ToHttpRedirectActionPtrOutputWithContext(context.Background()) } func (i *httpRedirectActionPtrType) ToHttpRedirectActionPtrOutputWithContext(ctx context.Context) HttpRedirectActionPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(HttpRedirectActionPtrOutput) } // Specifies settings for an HTTP redirect. type HttpRedirectActionOutput struct{ *pulumi.OutputState } func (HttpRedirectActionOutput) ElementType() reflect.Type { return reflect.TypeOf((*HttpRedirectAction)(nil)).Elem() } func (o HttpRedirectActionOutput) ToHttpRedirectActionOutput() HttpRedirectActionOutput { return o } func (o HttpRedirectActionOutput) ToHttpRedirectActionOutputWithContext(ctx context.Context) HttpRedirectActionOutput { return o } func (o HttpRedirectActionOutput) ToHttpRedirectActionPtrOutput() HttpRedirectActionPtrOutput { return o.ToHttpRedirectActionPtrOutputWithContext(context.Background()) } func (o HttpRedirectActionOutput) ToHttpRedirectActionPtrOutputWithContext(ctx context.Context) HttpRedirectActionPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v HttpRedirectAction) *HttpRedirectAction { return &v }).(HttpRedirectActionPtrOutput) } // The host that is used in the redirect response instead of the one that was supplied in the request. The value must be from 1 to 255 characters. func (o HttpRedirectActionOutput) HostRedirect() pulumi.StringPtrOutput { return o.ApplyT(func(v HttpRedirectAction) *string { return v.HostRedirect }).(pulumi.StringPtrOutput) } // If set to true, the URL scheme in the redirected request is set to HTTPS. If set to false, the URL scheme of the redirected request remains the same as that of the request. This must only be set for URL maps used in TargetHttpProxys. Setting this true for TargetHttpsProxy is not permitted. The default is set to false. func (o HttpRedirectActionOutput) HttpsRedirect() pulumi.BoolPtrOutput { return o.ApplyT(func(v HttpRedirectAction) *bool { return v.HttpsRedirect }).(pulumi.BoolPtrOutput) } // The path that is used in the redirect response instead of the one that was supplied in the request. pathRedirect cannot be supplied together with prefixRedirect. Supply one alone or neither. If neither is supplied, the path of the original request is used for the redirect. The value must be from 1 to 1024 characters. func (o HttpRedirectActionOutput) PathRedirect() pulumi.StringPtrOutput { return o.ApplyT(func(v HttpRedirectAction) *string { return v.PathRedirect }).(pulumi.StringPtrOutput) } // The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch, retaining the remaining portion of the URL before redirecting the request. prefixRedirect cannot be supplied together with pathRedirect. Supply one alone or neither. If neither is supplied, the path of the original request is used for the redirect. The value must be from 1 to 1024 characters. func (o HttpRedirectActionOutput) PrefixRedirect() pulumi.StringPtrOutput { return o.ApplyT(func(v HttpRedirectAction) *string { return v.PrefixRedirect }).(pulumi.StringPtrOutput) } // The HTTP Status code to use for this RedirectAction. Supported values are: - MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. - FOUND, which corresponds to 302. - SEE_OTHER which corresponds to 303. - TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method is retained. - PERMANENT_REDIRECT, which corresponds to 308. In this case, the request method is retained. func (o HttpRedirectActionOutput) RedirectResponseCode() HttpRedirectActionRedirectResponseCodePtrOutput { return o.ApplyT(func(v HttpRedirectAction) *HttpRedirectActionRedirectResponseCode { return v.RedirectResponseCode }).(HttpRedirectActionRedirectResponseCodePtrOutput) } // If set to true, any accompanying query portion of the original URL is removed before redirecting the request. If set to false, the query portion of the original URL is retained. The default is set to false. func (o HttpRedirectActionOutput) StripQuery() pulumi.BoolPtrOutput { return o.ApplyT(func(v HttpRedirectAction) *bool { return v.StripQuery }).(pulumi.BoolPtrOutput) } type HttpRedirectActionPtrOutput struct{ *pulumi.OutputState } func (HttpRedirectActionPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**HttpRedirectAction)(nil)).Elem() } func (o HttpRedirectActionPtrOutput) ToHttpRedirectActionPtrOutput() HttpRedirectActionPtrOutput { return o } func (o HttpRedirectActionPtrOutput) ToHttpRedirectActionPtrOutputWithContext(ctx context.Context) HttpRedirectActionPtrOutput { return o } func (o HttpRedirectActionPtrOutput) Elem() HttpRedirectActionOutput { return o.ApplyT(func(v *HttpRedirectAction) HttpRedirectAction { if v != nil { return *v } var ret HttpRedirectAction return ret }).(HttpRedirectActionOutput) } // The host that is used in the redirect response instead of the one that was supplied in the request. The value must be from 1 to 255 characters. func (o HttpRedirectActionPtrOutput) HostRedirect() pulumi.StringPtrOutput { return o.ApplyT(func(v *HttpRedirectAction) *string { if v == nil { return nil } return v.HostRedirect }).(pulumi.StringPtrOutput) } // If set to true, the URL scheme in the redirected request is set to HTTPS. If set to false, the URL scheme of the redirected request remains the same as that of the request. This must only be set for URL maps used in TargetHttpProxys. Setting this true for TargetHttpsProxy is not permitted. The default is set to false. func (o HttpRedirectActionPtrOutput) HttpsRedirect() pulumi.BoolPtrOutput { return o.ApplyT(func(v *HttpRedirectAction) *bool { if v == nil { return nil } return v.HttpsRedirect }).(pulumi.BoolPtrOutput) } // The path that is used in the redirect response instead of the one that was supplied in the request. pathRedirect cannot be supplied together with prefixRedirect. Supply one alone or neither. If neither is supplied, the path of the original request is used for the redirect. The value must be from 1 to 1024 characters. func (o HttpRedirectActionPtrOutput) PathRedirect() pulumi.StringPtrOutput { return o.ApplyT(func(v *HttpRedirectAction) *string { if v == nil { return nil } return v.PathRedirect }).(pulumi.StringPtrOutput) } // The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch, retaining the remaining portion of the URL before redirecting the request. prefixRedirect cannot be supplied together with pathRedirect. Supply one alone or neither. If neither is supplied, the path of the original request is used for the redirect. The value must be from 1 to 1024 characters. func (o HttpRedirectActionPtrOutput) PrefixRedirect() pulumi.StringPtrOutput { return o.ApplyT(func(v *HttpRedirectAction) *string { if v == nil { return nil } return v.PrefixRedirect }).(pulumi.StringPtrOutput) } // The HTTP Status code to use for this RedirectAction. Supported values are: - MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. - FOUND, which corresponds to 302. - SEE_OTHER which corresponds to 303. - TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method is retained. - PERMANENT_REDIRECT, which corresponds to 308. In this case, the request method is retained. func (o HttpRedirectActionPtrOutput) RedirectResponseCode() HttpRedirectActionRedirectResponseCodePtrOutput { return o.ApplyT(func(v *HttpRedirectAction) *HttpRedirectActionRedirectResponseCode { if v == nil { return nil } return v.RedirectResponseCode }).(HttpRedirectActionRedirectResponseCodePtrOutput) } // If set to true, any accompanying query portion of the original URL is removed before redirecting the request. If set to false, the query portion of the original URL is retained. The default is set to false. func (o HttpRedirectActionPtrOutput) StripQuery() pulumi.BoolPtrOutput { return o.ApplyT(func(v *HttpRedirectAction) *bool { if v == nil { return nil } return v.StripQuery }).(pulumi.BoolPtrOutput) } // Specifies settings for an HTTP redirect. type HttpRedirectActionResponse struct { // The host that is used in the redirect response instead of the one that was supplied in the request. The value must be from 1 to 255 characters. HostRedirect string `pulumi:"hostRedirect"` // If set to true, the URL scheme in the redirected request is set to HTTPS. If set to false, the URL scheme of the redirected request remains the same as that of the request. This must only be set for URL maps used in TargetHttpProxys. Setting this true for TargetHttpsProxy is not permitted. The default is set to false. HttpsRedirect bool `pulumi:"httpsRedirect"` // The path that is used in the redirect response instead of the one that was supplied in the request. pathRedirect cannot be supplied together with prefixRedirect. Supply one alone or neither. If neither is supplied, the path of the original request is used for the redirect. The value must be from 1 to 1024 characters. PathRedirect string `pulumi:"pathRedirect"` // The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch, retaining the remaining portion of the URL before redirecting the request. prefixRedirect cannot be supplied together with pathRedirect. Supply one alone or neither. If neither is supplied, the path of the original request is used for the redirect. The value must be from 1 to 1024 characters. PrefixRedirect string `pulumi:"prefixRedirect"` // The HTTP Status code to use for this RedirectAction. Supported values are: - MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. - FOUND, which corresponds to 302. - SEE_OTHER which corresponds to 303. - TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method is retained. - PERMANENT_REDIRECT, which corresponds to 308. In this case, the request method is retained. RedirectResponseCode string `pulumi:"redirectResponseCode"` // If set to true, any accompanying query portion of the original URL is removed before redirecting the request. If set to false, the query portion of the original URL is retained. The default is set to false. StripQuery bool `pulumi:"stripQuery"` } // Specifies settings for an HTTP redirect. type HttpRedirectActionResponseOutput struct{ *pulumi.OutputState } func (HttpRedirectActionResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*HttpRedirectActionResponse)(nil)).Elem() } func (o HttpRedirectActionResponseOutput) ToHttpRedirectActionResponseOutput() HttpRedirectActionResponseOutput { return o } func (o HttpRedirectActionResponseOutput) ToHttpRedirectActionResponseOutputWithContext(ctx context.Context) HttpRedirectActionResponseOutput { return o } // The host that is used in the redirect response instead of the one that was supplied in the request. The value must be from 1 to 255 characters. func (o HttpRedirectActionResponseOutput) HostRedirect() pulumi.StringOutput { return o.ApplyT(func(v HttpRedirectActionResponse) string { return v.HostRedirect }).(pulumi.StringOutput) } // If set to true, the URL scheme in the redirected request is set to HTTPS. If set to false, the URL scheme of the redirected request remains the same as that of the request. This must only be set for URL maps used in TargetHttpProxys. Setting this true for TargetHttpsProxy is not permitted. The default is set to false. func (o HttpRedirectActionResponseOutput) HttpsRedirect() pulumi.BoolOutput { return o.ApplyT(func(v HttpRedirectActionResponse) bool { return v.HttpsRedirect }).(pulumi.BoolOutput) } // The path that is used in the redirect response instead of the one that was supplied in the request. pathRedirect cannot be supplied together with prefixRedirect. Supply one alone or neither. If neither is supplied, the path of the original request is used for the redirect. The value must be from 1 to 1024 characters. func (o HttpRedirectActionResponseOutput) PathRedirect() pulumi.StringOutput { return o.ApplyT(func(v HttpRedirectActionResponse) string { return v.PathRedirect }).(pulumi.StringOutput) } // The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch, retaining the remaining portion of the URL before redirecting the request. prefixRedirect cannot be supplied together with pathRedirect. Supply one alone or neither. If neither is supplied, the path of the original request is used for the redirect. The value must be from 1 to 1024 characters. func (o HttpRedirectActionResponseOutput) PrefixRedirect() pulumi.StringOutput { return o.ApplyT(func(v HttpRedirectActionResponse) string { return v.PrefixRedirect }).(pulumi.StringOutput) } // The HTTP Status code to use for this RedirectAction. Supported values are: - MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. - FOUND, which corresponds to 302. - SEE_OTHER which corresponds to 303. - TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method is retained. - PERMANENT_REDIRECT, which corresponds to 308. In this case, the request method is retained. func (o HttpRedirectActionResponseOutput) RedirectResponseCode() pulumi.StringOutput { return o.ApplyT(func(v HttpRedirectActionResponse) string { return v.RedirectResponseCode }).(pulumi.StringOutput) } // If set to true, any accompanying query portion of the original URL is removed before redirecting the request. If set to false, the query portion of the original URL is retained. The default is set to false. func (o HttpRedirectActionResponseOutput) StripQuery() pulumi.BoolOutput { return o.ApplyT(func(v HttpRedirectActionResponse) bool { return v.StripQuery }).(pulumi.BoolOutput) } // The retry policy associates with HttpRouteRule type HttpRetryPolicy struct { // Specifies the allowed number retries. This number must be > 0. If not specified, defaults to 1. NumRetries *int `pulumi:"numRetries"` // Specifies a non-zero timeout per retry attempt. If not specified, will use the timeout set in the HttpRouteAction field. If timeout in the HttpRouteAction field is not set, this field uses the largest timeout among all backend services associated with the route. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. PerTryTimeout *Duration `pulumi:"perTryTimeout"` // Specifies one or more conditions when this retry policy applies. Valid values are: - 5xx: retry is attempted if the instance or endpoint responds with any 5xx response code, or if the instance or endpoint does not respond at all. For example, disconnects, reset, read timeout, connection failure, and refused streams. - gateway-error: Similar to 5xx, but only applies to response codes 502, 503 or 504. - connect-failure: a retry is attempted on failures connecting to the instance or endpoint. For example, connection timeouts. - retriable-4xx: a retry is attempted if the instance or endpoint responds with a 4xx response code. The only error that you can retry is error code 409. - refused-stream: a retry is attempted if the instance or endpoint resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry. - cancelled: a retry is attempted if the gRPC status code in the response header is set to cancelled. - deadline-exceeded: a retry is attempted if the gRPC status code in the response header is set to deadline-exceeded. - internal: a retry is attempted if the gRPC status code in the response header is set to internal. - resource-exhausted: a retry is attempted if the gRPC status code in the response header is set to resource-exhausted. - unavailable: a retry is attempted if the gRPC status code in the response header is set to unavailable. Only the following codes are supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true. - cancelled - deadline-exceeded - internal - resource-exhausted - unavailable RetryConditions []string `pulumi:"retryConditions"` } // HttpRetryPolicyInput is an input type that accepts HttpRetryPolicyArgs and HttpRetryPolicyOutput values. // You can construct a concrete instance of `HttpRetryPolicyInput` via: // // HttpRetryPolicyArgs{...} type HttpRetryPolicyInput interface { pulumi.Input ToHttpRetryPolicyOutput() HttpRetryPolicyOutput ToHttpRetryPolicyOutputWithContext(context.Context) HttpRetryPolicyOutput } // The retry policy associates with HttpRouteRule type HttpRetryPolicyArgs struct { // Specifies the allowed number retries. This number must be > 0. If not specified, defaults to 1. NumRetries pulumi.IntPtrInput `pulumi:"numRetries"` // Specifies a non-zero timeout per retry attempt. If not specified, will use the timeout set in the HttpRouteAction field. If timeout in the HttpRouteAction field is not set, this field uses the largest timeout among all backend services associated with the route. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. PerTryTimeout DurationPtrInput `pulumi:"perTryTimeout"` // Specifies one or more conditions when this retry policy applies. Valid values are: - 5xx: retry is attempted if the instance or endpoint responds with any 5xx response code, or if the instance or endpoint does not respond at all. For example, disconnects, reset, read timeout, connection failure, and refused streams. - gateway-error: Similar to 5xx, but only applies to response codes 502, 503 or 504. - connect-failure: a retry is attempted on failures connecting to the instance or endpoint. For example, connection timeouts. - retriable-4xx: a retry is attempted if the instance or endpoint responds with a 4xx response code. The only error that you can retry is error code 409. - refused-stream: a retry is attempted if the instance or endpoint resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry. - cancelled: a retry is attempted if the gRPC status code in the response header is set to cancelled. - deadline-exceeded: a retry is attempted if the gRPC status code in the response header is set to deadline-exceeded. - internal: a retry is attempted if the gRPC status code in the response header is set to internal. - resource-exhausted: a retry is attempted if the gRPC status code in the response header is set to resource-exhausted. - unavailable: a retry is attempted if the gRPC status code in the response header is set to unavailable. Only the following codes are supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true. - cancelled - deadline-exceeded - internal - resource-exhausted - unavailable RetryConditions pulumi.StringArrayInput `pulumi:"retryConditions"` } func (HttpRetryPolicyArgs) ElementType() reflect.Type { return reflect.TypeOf((*HttpRetryPolicy)(nil)).Elem() } func (i HttpRetryPolicyArgs) ToHttpRetryPolicyOutput() HttpRetryPolicyOutput { return i.ToHttpRetryPolicyOutputWithContext(context.Background()) } func (i HttpRetryPolicyArgs) ToHttpRetryPolicyOutputWithContext(ctx context.Context) HttpRetryPolicyOutput { return pulumi.ToOutputWithContext(ctx, i).(HttpRetryPolicyOutput) } func (i HttpRetryPolicyArgs) ToHttpRetryPolicyPtrOutput() HttpRetryPolicyPtrOutput { return i.ToHttpRetryPolicyPtrOutputWithContext(context.Background()) } func (i HttpRetryPolicyArgs) ToHttpRetryPolicyPtrOutputWithContext(ctx context.Context) HttpRetryPolicyPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(HttpRetryPolicyOutput).ToHttpRetryPolicyPtrOutputWithContext(ctx) } // HttpRetryPolicyPtrInput is an input type that accepts HttpRetryPolicyArgs, HttpRetryPolicyPtr and HttpRetryPolicyPtrOutput values. // You can construct a concrete instance of `HttpRetryPolicyPtrInput` via: // // HttpRetryPolicyArgs{...} // // or: // // nil type HttpRetryPolicyPtrInput interface { pulumi.Input ToHttpRetryPolicyPtrOutput() HttpRetryPolicyPtrOutput ToHttpRetryPolicyPtrOutputWithContext(context.Context) HttpRetryPolicyPtrOutput } type httpRetryPolicyPtrType HttpRetryPolicyArgs func HttpRetryPolicyPtr(v *HttpRetryPolicyArgs) HttpRetryPolicyPtrInput { return (*httpRetryPolicyPtrType)(v) } func (*httpRetryPolicyPtrType) ElementType() reflect.Type { return reflect.TypeOf((**HttpRetryPolicy)(nil)).Elem() } func (i *httpRetryPolicyPtrType) ToHttpRetryPolicyPtrOutput() HttpRetryPolicyPtrOutput { return i.ToHttpRetryPolicyPtrOutputWithContext(context.Background()) } func (i *httpRetryPolicyPtrType) ToHttpRetryPolicyPtrOutputWithContext(ctx context.Context) HttpRetryPolicyPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(HttpRetryPolicyPtrOutput) } // The retry policy associates with HttpRouteRule type HttpRetryPolicyOutput struct{ *pulumi.OutputState } func (HttpRetryPolicyOutput) ElementType() reflect.Type { return reflect.TypeOf((*HttpRetryPolicy)(nil)).Elem() } func (o HttpRetryPolicyOutput) ToHttpRetryPolicyOutput() HttpRetryPolicyOutput { return o } func (o HttpRetryPolicyOutput) ToHttpRetryPolicyOutputWithContext(ctx context.Context) HttpRetryPolicyOutput { return o } func (o HttpRetryPolicyOutput) ToHttpRetryPolicyPtrOutput() HttpRetryPolicyPtrOutput { return o.ToHttpRetryPolicyPtrOutputWithContext(context.Background()) } func (o HttpRetryPolicyOutput) ToHttpRetryPolicyPtrOutputWithContext(ctx context.Context) HttpRetryPolicyPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v HttpRetryPolicy) *HttpRetryPolicy { return &v }).(HttpRetryPolicyPtrOutput) } // Specifies the allowed number retries. This number must be > 0. If not specified, defaults to 1. func (o HttpRetryPolicyOutput) NumRetries() pulumi.IntPtrOutput { return o.ApplyT(func(v HttpRetryPolicy) *int { return v.NumRetries }).(pulumi.IntPtrOutput) } // Specifies a non-zero timeout per retry attempt. If not specified, will use the timeout set in the HttpRouteAction field. If timeout in the HttpRouteAction field is not set, this field uses the largest timeout among all backend services associated with the route. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. func (o HttpRetryPolicyOutput) PerTryTimeout() DurationPtrOutput { return o.ApplyT(func(v HttpRetryPolicy) *Duration { return v.PerTryTimeout }).(DurationPtrOutput) } // Specifies one or more conditions when this retry policy applies. Valid values are: - 5xx: retry is attempted if the instance or endpoint responds with any 5xx response code, or if the instance or endpoint does not respond at all. For example, disconnects, reset, read timeout, connection failure, and refused streams. - gateway-error: Similar to 5xx, but only applies to response codes 502, 503 or 504. - connect-failure: a retry is attempted on failures connecting to the instance or endpoint. For example, connection timeouts. - retriable-4xx: a retry is attempted if the instance or endpoint responds with a 4xx response code. The only error that you can retry is error code 409. - refused-stream: a retry is attempted if the instance or endpoint resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry. - cancelled: a retry is attempted if the gRPC status code in the response header is set to cancelled. - deadline-exceeded: a retry is attempted if the gRPC status code in the response header is set to deadline-exceeded. - internal: a retry is attempted if the gRPC status code in the response header is set to internal. - resource-exhausted: a retry is attempted if the gRPC status code in the response header is set to resource-exhausted. - unavailable: a retry is attempted if the gRPC status code in the response header is set to unavailable. Only the following codes are supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true. - cancelled - deadline-exceeded - internal - resource-exhausted - unavailable func (o HttpRetryPolicyOutput) RetryConditions() pulumi.StringArrayOutput { return o.ApplyT(func(v HttpRetryPolicy) []string { return v.RetryConditions }).(pulumi.StringArrayOutput) } type HttpRetryPolicyPtrOutput struct{ *pulumi.OutputState } func (HttpRetryPolicyPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**HttpRetryPolicy)(nil)).Elem() } func (o HttpRetryPolicyPtrOutput) ToHttpRetryPolicyPtrOutput() HttpRetryPolicyPtrOutput { return o } func (o HttpRetryPolicyPtrOutput) ToHttpRetryPolicyPtrOutputWithContext(ctx context.Context) HttpRetryPolicyPtrOutput { return o } func (o HttpRetryPolicyPtrOutput) Elem() HttpRetryPolicyOutput { return o.ApplyT(func(v *HttpRetryPolicy) HttpRetryPolicy { if v != nil { return *v } var ret HttpRetryPolicy return ret }).(HttpRetryPolicyOutput) } // Specifies the allowed number retries. This number must be > 0. If not specified, defaults to 1. func (o HttpRetryPolicyPtrOutput) NumRetries() pulumi.IntPtrOutput { return o.ApplyT(func(v *HttpRetryPolicy) *int { if v == nil { return nil } return v.NumRetries }).(pulumi.IntPtrOutput) } // Specifies a non-zero timeout per retry attempt. If not specified, will use the timeout set in the HttpRouteAction field. If timeout in the HttpRouteAction field is not set, this field uses the largest timeout among all backend services associated with the route. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. func (o HttpRetryPolicyPtrOutput) PerTryTimeout() DurationPtrOutput { return o.ApplyT(func(v *HttpRetryPolicy) *Duration { if v == nil { return nil } return v.PerTryTimeout }).(DurationPtrOutput) } // Specifies one or more conditions when this retry policy applies. Valid values are: - 5xx: retry is attempted if the instance or endpoint responds with any 5xx response code, or if the instance or endpoint does not respond at all. For example, disconnects, reset, read timeout, connection failure, and refused streams. - gateway-error: Similar to 5xx, but only applies to response codes 502, 503 or 504. - connect-failure: a retry is attempted on failures connecting to the instance or endpoint. For example, connection timeouts. - retriable-4xx: a retry is attempted if the instance or endpoint responds with a 4xx response code. The only error that you can retry is error code 409. - refused-stream: a retry is attempted if the instance or endpoint resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry. - cancelled: a retry is attempted if the gRPC status code in the response header is set to cancelled. - deadline-exceeded: a retry is attempted if the gRPC status code in the response header is set to deadline-exceeded. - internal: a retry is attempted if the gRPC status code in the response header is set to internal. - resource-exhausted: a retry is attempted if the gRPC status code in the response header is set to resource-exhausted. - unavailable: a retry is attempted if the gRPC status code in the response header is set to unavailable. Only the following codes are supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true. - cancelled - deadline-exceeded - internal - resource-exhausted - unavailable func (o HttpRetryPolicyPtrOutput) RetryConditions() pulumi.StringArrayOutput { return o.ApplyT(func(v *HttpRetryPolicy) []string { if v == nil { return nil } return v.RetryConditions }).(pulumi.StringArrayOutput) } // The retry policy associates with HttpRouteRule type HttpRetryPolicyResponse struct { // Specifies the allowed number retries. This number must be > 0. If not specified, defaults to 1. NumRetries int `pulumi:"numRetries"` // Specifies a non-zero timeout per retry attempt. If not specified, will use the timeout set in the HttpRouteAction field. If timeout in the HttpRouteAction field is not set, this field uses the largest timeout among all backend services associated with the route. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. PerTryTimeout DurationResponse `pulumi:"perTryTimeout"` // Specifies one or more conditions when this retry policy applies. Valid values are: - 5xx: retry is attempted if the instance or endpoint responds with any 5xx response code, or if the instance or endpoint does not respond at all. For example, disconnects, reset, read timeout, connection failure, and refused streams. - gateway-error: Similar to 5xx, but only applies to response codes 502, 503 or 504. - connect-failure: a retry is attempted on failures connecting to the instance or endpoint. For example, connection timeouts. - retriable-4xx: a retry is attempted if the instance or endpoint responds with a 4xx response code. The only error that you can retry is error code 409. - refused-stream: a retry is attempted if the instance or endpoint resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry. - cancelled: a retry is attempted if the gRPC status code in the response header is set to cancelled. - deadline-exceeded: a retry is attempted if the gRPC status code in the response header is set to deadline-exceeded. - internal: a retry is attempted if the gRPC status code in the response header is set to internal. - resource-exhausted: a retry is attempted if the gRPC status code in the response header is set to resource-exhausted. - unavailable: a retry is attempted if the gRPC status code in the response header is set to unavailable. Only the following codes are supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true. - cancelled - deadline-exceeded - internal - resource-exhausted - unavailable RetryConditions []string `pulumi:"retryConditions"` } // The retry policy associates with HttpRouteRule type HttpRetryPolicyResponseOutput struct{ *pulumi.OutputState } func (HttpRetryPolicyResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*HttpRetryPolicyResponse)(nil)).Elem() } func (o HttpRetryPolicyResponseOutput) ToHttpRetryPolicyResponseOutput() HttpRetryPolicyResponseOutput { return o } func (o HttpRetryPolicyResponseOutput) ToHttpRetryPolicyResponseOutputWithContext(ctx context.Context) HttpRetryPolicyResponseOutput { return o } // Specifies the allowed number retries. This number must be > 0. If not specified, defaults to 1. func (o HttpRetryPolicyResponseOutput) NumRetries() pulumi.IntOutput { return o.ApplyT(func(v HttpRetryPolicyResponse) int { return v.NumRetries }).(pulumi.IntOutput) } // Specifies a non-zero timeout per retry attempt. If not specified, will use the timeout set in the HttpRouteAction field. If timeout in the HttpRouteAction field is not set, this field uses the largest timeout among all backend services associated with the route. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. func (o HttpRetryPolicyResponseOutput) PerTryTimeout() DurationResponseOutput { return o.ApplyT(func(v HttpRetryPolicyResponse) DurationResponse { return v.PerTryTimeout }).(DurationResponseOutput) } // Specifies one or more conditions when this retry policy applies. Valid values are: - 5xx: retry is attempted if the instance or endpoint responds with any 5xx response code, or if the instance or endpoint does not respond at all. For example, disconnects, reset, read timeout, connection failure, and refused streams. - gateway-error: Similar to 5xx, but only applies to response codes 502, 503 or 504. - connect-failure: a retry is attempted on failures connecting to the instance or endpoint. For example, connection timeouts. - retriable-4xx: a retry is attempted if the instance or endpoint responds with a 4xx response code. The only error that you can retry is error code 409. - refused-stream: a retry is attempted if the instance or endpoint resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry. - cancelled: a retry is attempted if the gRPC status code in the response header is set to cancelled. - deadline-exceeded: a retry is attempted if the gRPC status code in the response header is set to deadline-exceeded. - internal: a retry is attempted if the gRPC status code in the response header is set to internal. - resource-exhausted: a retry is attempted if the gRPC status code in the response header is set to resource-exhausted. - unavailable: a retry is attempted if the gRPC status code in the response header is set to unavailable. Only the following codes are supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true. - cancelled - deadline-exceeded - internal - resource-exhausted - unavailable func (o HttpRetryPolicyResponseOutput) RetryConditions() pulumi.StringArrayOutput { return o.ApplyT(func(v HttpRetryPolicyResponse) []string { return v.RetryConditions }).(pulumi.StringArrayOutput) } type HttpRouteAction struct { // The specification for allowing client-side cross-origin requests. For more information about the W3C recommendation for cross-origin resource sharing (CORS), see Fetch API Living Standard. Not supported when the URL map is bound to a target gRPC proxy. CorsPolicy *CorsPolicy `pulumi:"corsPolicy"` // The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. As part of fault injection, when clients send requests to a backend service, delays can be introduced by a load balancer on a percentage of requests before sending those requests to the backend service. Similarly requests from clients can be aborted by the load balancer for a percentage of requests. For the requests impacted by fault injection, timeout and retry_policy is ignored by clients that are configured with a fault_injection_policy. FaultInjectionPolicy *HttpFaultInjection `pulumi:"faultInjectionPolicy"` // Specifies the maximum duration (timeout) for streams on the selected route. Unlike the timeout field where the timeout duration starts from the time the request has been fully processed (known as *end-of-stream*), the duration in this field is computed from the beginning of the stream until the response has been processed, including all retries. A stream that does not complete in this duration is closed. If not specified, this field uses the maximum maxStreamDuration value among all backend services associated with the route. This field is only allowed if the Url map is used with backend services with loadBalancingScheme set to INTERNAL_SELF_MANAGED. MaxStreamDuration *Duration `pulumi:"maxStreamDuration"` // Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service. The load balancer does not wait for responses from the shadow service. Before sending traffic to the shadow service, the host / authority header is suffixed with -shadow. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. RequestMirrorPolicy *RequestMirrorPolicy `pulumi:"requestMirrorPolicy"` // Specifies the retry policy associated with this route. RetryPolicy *HttpRetryPolicy `pulumi:"retryPolicy"` // Specifies the timeout for the selected route. Timeout is computed from the time the request has been fully processed (known as *end-of-stream*) up until the response has been processed. Timeout includes all retries. If not specified, this field uses the largest timeout among all backend services associated with the route. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. Timeout *Duration `pulumi:"timeout"` // The spec to modify the URL of the request, before forwarding the request to the matched service. urlRewrite is the only action supported in UrlMaps for external HTTP(S) load balancers. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. UrlRewrite *UrlRewrite `pulumi:"urlRewrite"` // A list of weighted backend services to send traffic to when a route match occurs. The weights determine the fraction of traffic that flows to their corresponding backend service. If all traffic needs to go to a single backend service, there must be one weightedBackendService with weight set to a non-zero number. After a backend service is identified and before forwarding the request to the backend service, advanced routing actions such as URL rewrites and header transformations are applied depending on additional settings specified in this HttpRouteAction. WeightedBackendServices []WeightedBackendService `pulumi:"weightedBackendServices"` } // HttpRouteActionInput is an input type that accepts HttpRouteActionArgs and HttpRouteActionOutput values. // You can construct a concrete instance of `HttpRouteActionInput` via: // // HttpRouteActionArgs{...} type HttpRouteActionInput interface { pulumi.Input ToHttpRouteActionOutput() HttpRouteActionOutput ToHttpRouteActionOutputWithContext(context.Context) HttpRouteActionOutput } type HttpRouteActionArgs struct { // The specification for allowing client-side cross-origin requests. For more information about the W3C recommendation for cross-origin resource sharing (CORS), see Fetch API Living Standard. Not supported when the URL map is bound to a target gRPC proxy. CorsPolicy CorsPolicyPtrInput `pulumi:"corsPolicy"` // The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. As part of fault injection, when clients send requests to a backend service, delays can be introduced by a load balancer on a percentage of requests before sending those requests to the backend service. Similarly requests from clients can be aborted by the load balancer for a percentage of requests. For the requests impacted by fault injection, timeout and retry_policy is ignored by clients that are configured with a fault_injection_policy. FaultInjectionPolicy HttpFaultInjectionPtrInput `pulumi:"faultInjectionPolicy"` // Specifies the maximum duration (timeout) for streams on the selected route. Unlike the timeout field where the timeout duration starts from the time the request has been fully processed (known as *end-of-stream*), the duration in this field is computed from the beginning of the stream until the response has been processed, including all retries. A stream that does not complete in this duration is closed. If not specified, this field uses the maximum maxStreamDuration value among all backend services associated with the route. This field is only allowed if the Url map is used with backend services with loadBalancingScheme set to INTERNAL_SELF_MANAGED. MaxStreamDuration DurationPtrInput `pulumi:"maxStreamDuration"` // Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service. The load balancer does not wait for responses from the shadow service. Before sending traffic to the shadow service, the host / authority header is suffixed with -shadow. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. RequestMirrorPolicy RequestMirrorPolicyPtrInput `pulumi:"requestMirrorPolicy"` // Specifies the retry policy associated with this route. RetryPolicy HttpRetryPolicyPtrInput `pulumi:"retryPolicy"` // Specifies the timeout for the selected route. Timeout is computed from the time the request has been fully processed (known as *end-of-stream*) up until the response has been processed. Timeout includes all retries. If not specified, this field uses the largest timeout among all backend services associated with the route. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. Timeout DurationPtrInput `pulumi:"timeout"` // The spec to modify the URL of the request, before forwarding the request to the matched service. urlRewrite is the only action supported in UrlMaps for external HTTP(S) load balancers. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. UrlRewrite UrlRewritePtrInput `pulumi:"urlRewrite"` // A list of weighted backend services to send traffic to when a route match occurs. The weights determine the fraction of traffic that flows to their corresponding backend service. If all traffic needs to go to a single backend service, there must be one weightedBackendService with weight set to a non-zero number. After a backend service is identified and before forwarding the request to the backend service, advanced routing actions such as URL rewrites and header transformations are applied depending on additional settings specified in this HttpRouteAction. WeightedBackendServices WeightedBackendServiceArrayInput `pulumi:"weightedBackendServices"` } func (HttpRouteActionArgs) ElementType() reflect.Type { return reflect.TypeOf((*HttpRouteAction)(nil)).Elem() } func (i HttpRouteActionArgs) ToHttpRouteActionOutput() HttpRouteActionOutput { return i.ToHttpRouteActionOutputWithContext(context.Background()) } func (i HttpRouteActionArgs) ToHttpRouteActionOutputWithContext(ctx context.Context) HttpRouteActionOutput { return pulumi.ToOutputWithContext(ctx, i).(HttpRouteActionOutput) } func (i HttpRouteActionArgs) ToHttpRouteActionPtrOutput() HttpRouteActionPtrOutput { return i.ToHttpRouteActionPtrOutputWithContext(context.Background()) } func (i HttpRouteActionArgs) ToHttpRouteActionPtrOutputWithContext(ctx context.Context) HttpRouteActionPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(HttpRouteActionOutput).ToHttpRouteActionPtrOutputWithContext(ctx) } // HttpRouteActionPtrInput is an input type that accepts HttpRouteActionArgs, HttpRouteActionPtr and HttpRouteActionPtrOutput values. // You can construct a concrete instance of `HttpRouteActionPtrInput` via: // // HttpRouteActionArgs{...} // // or: // // nil type HttpRouteActionPtrInput interface { pulumi.Input ToHttpRouteActionPtrOutput() HttpRouteActionPtrOutput ToHttpRouteActionPtrOutputWithContext(context.Context) HttpRouteActionPtrOutput } type httpRouteActionPtrType HttpRouteActionArgs func HttpRouteActionPtr(v *HttpRouteActionArgs) HttpRouteActionPtrInput { return (*httpRouteActionPtrType)(v) } func (*httpRouteActionPtrType) ElementType() reflect.Type { return reflect.TypeOf((**HttpRouteAction)(nil)).Elem() } func (i *httpRouteActionPtrType) ToHttpRouteActionPtrOutput() HttpRouteActionPtrOutput { return i.ToHttpRouteActionPtrOutputWithContext(context.Background()) } func (i *httpRouteActionPtrType) ToHttpRouteActionPtrOutputWithContext(ctx context.Context) HttpRouteActionPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(HttpRouteActionPtrOutput) } type HttpRouteActionOutput struct{ *pulumi.OutputState } func (HttpRouteActionOutput) ElementType() reflect.Type { return reflect.TypeOf((*HttpRouteAction)(nil)).Elem() } func (o HttpRouteActionOutput) ToHttpRouteActionOutput() HttpRouteActionOutput { return o } func (o HttpRouteActionOutput) ToHttpRouteActionOutputWithContext(ctx context.Context) HttpRouteActionOutput { return o } func (o HttpRouteActionOutput) ToHttpRouteActionPtrOutput() HttpRouteActionPtrOutput { return o.ToHttpRouteActionPtrOutputWithContext(context.Background()) } func (o HttpRouteActionOutput) ToHttpRouteActionPtrOutputWithContext(ctx context.Context) HttpRouteActionPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v HttpRouteAction) *HttpRouteAction { return &v }).(HttpRouteActionPtrOutput) } // The specification for allowing client-side cross-origin requests. For more information about the W3C recommendation for cross-origin resource sharing (CORS), see Fetch API Living Standard. Not supported when the URL map is bound to a target gRPC proxy. func (o HttpRouteActionOutput) CorsPolicy() CorsPolicyPtrOutput { return o.ApplyT(func(v HttpRouteAction) *CorsPolicy { return v.CorsPolicy }).(CorsPolicyPtrOutput) } // The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. As part of fault injection, when clients send requests to a backend service, delays can be introduced by a load balancer on a percentage of requests before sending those requests to the backend service. Similarly requests from clients can be aborted by the load balancer for a percentage of requests. For the requests impacted by fault injection, timeout and retry_policy is ignored by clients that are configured with a fault_injection_policy. func (o HttpRouteActionOutput) FaultInjectionPolicy() HttpFaultInjectionPtrOutput { return o.ApplyT(func(v HttpRouteAction) *HttpFaultInjection { return v.FaultInjectionPolicy }).(HttpFaultInjectionPtrOutput) } // Specifies the maximum duration (timeout) for streams on the selected route. Unlike the timeout field where the timeout duration starts from the time the request has been fully processed (known as *end-of-stream*), the duration in this field is computed from the beginning of the stream until the response has been processed, including all retries. A stream that does not complete in this duration is closed. If not specified, this field uses the maximum maxStreamDuration value among all backend services associated with the route. This field is only allowed if the Url map is used with backend services with loadBalancingScheme set to INTERNAL_SELF_MANAGED. func (o HttpRouteActionOutput) MaxStreamDuration() DurationPtrOutput { return o.ApplyT(func(v HttpRouteAction) *Duration { return v.MaxStreamDuration }).(DurationPtrOutput) } // Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service. The load balancer does not wait for responses from the shadow service. Before sending traffic to the shadow service, the host / authority header is suffixed with -shadow. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. func (o HttpRouteActionOutput) RequestMirrorPolicy() RequestMirrorPolicyPtrOutput { return o.ApplyT(func(v HttpRouteAction) *RequestMirrorPolicy { return v.RequestMirrorPolicy }).(RequestMirrorPolicyPtrOutput) } // Specifies the retry policy associated with this route. func (o HttpRouteActionOutput) RetryPolicy() HttpRetryPolicyPtrOutput { return o.ApplyT(func(v HttpRouteAction) *HttpRetryPolicy { return v.RetryPolicy }).(HttpRetryPolicyPtrOutput) } // Specifies the timeout for the selected route. Timeout is computed from the time the request has been fully processed (known as *end-of-stream*) up until the response has been processed. Timeout includes all retries. If not specified, this field uses the largest timeout among all backend services associated with the route. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. func (o HttpRouteActionOutput) Timeout() DurationPtrOutput { return o.ApplyT(func(v HttpRouteAction) *Duration { return v.Timeout }).(DurationPtrOutput) } // The spec to modify the URL of the request, before forwarding the request to the matched service. urlRewrite is the only action supported in UrlMaps for external HTTP(S) load balancers. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. func (o HttpRouteActionOutput) UrlRewrite() UrlRewritePtrOutput { return o.ApplyT(func(v HttpRouteAction) *UrlRewrite { return v.UrlRewrite }).(UrlRewritePtrOutput) } // A list of weighted backend services to send traffic to when a route match occurs. The weights determine the fraction of traffic that flows to their corresponding backend service. If all traffic needs to go to a single backend service, there must be one weightedBackendService with weight set to a non-zero number. After a backend service is identified and before forwarding the request to the backend service, advanced routing actions such as URL rewrites and header transformations are applied depending on additional settings specified in this HttpRouteAction. func (o HttpRouteActionOutput) WeightedBackendServices() WeightedBackendServiceArrayOutput { return o.ApplyT(func(v HttpRouteAction) []WeightedBackendService { return v.WeightedBackendServices }).(WeightedBackendServiceArrayOutput) } type HttpRouteActionPtrOutput struct{ *pulumi.OutputState } func (HttpRouteActionPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**HttpRouteAction)(nil)).Elem() } func (o HttpRouteActionPtrOutput) ToHttpRouteActionPtrOutput() HttpRouteActionPtrOutput { return o } func (o HttpRouteActionPtrOutput) ToHttpRouteActionPtrOutputWithContext(ctx context.Context) HttpRouteActionPtrOutput { return o } func (o HttpRouteActionPtrOutput) Elem() HttpRouteActionOutput { return o.ApplyT(func(v *HttpRouteAction) HttpRouteAction { if v != nil { return *v } var ret HttpRouteAction return ret }).(HttpRouteActionOutput) } // The specification for allowing client-side cross-origin requests. For more information about the W3C recommendation for cross-origin resource sharing (CORS), see Fetch API Living Standard. Not supported when the URL map is bound to a target gRPC proxy. func (o HttpRouteActionPtrOutput) CorsPolicy() CorsPolicyPtrOutput { return o.ApplyT(func(v *HttpRouteAction) *CorsPolicy { if v == nil { return nil } return v.CorsPolicy }).(CorsPolicyPtrOutput) } // The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. As part of fault injection, when clients send requests to a backend service, delays can be introduced by a load balancer on a percentage of requests before sending those requests to the backend service. Similarly requests from clients can be aborted by the load balancer for a percentage of requests. For the requests impacted by fault injection, timeout and retry_policy is ignored by clients that are configured with a fault_injection_policy. func (o HttpRouteActionPtrOutput) FaultInjectionPolicy() HttpFaultInjectionPtrOutput { return o.ApplyT(func(v *HttpRouteAction) *HttpFaultInjection { if v == nil { return nil } return v.FaultInjectionPolicy }).(HttpFaultInjectionPtrOutput) } // Specifies the maximum duration (timeout) for streams on the selected route. Unlike the timeout field where the timeout duration starts from the time the request has been fully processed (known as *end-of-stream*), the duration in this field is computed from the beginning of the stream until the response has been processed, including all retries. A stream that does not complete in this duration is closed. If not specified, this field uses the maximum maxStreamDuration value among all backend services associated with the route. This field is only allowed if the Url map is used with backend services with loadBalancingScheme set to INTERNAL_SELF_MANAGED. func (o HttpRouteActionPtrOutput) MaxStreamDuration() DurationPtrOutput { return o.ApplyT(func(v *HttpRouteAction) *Duration { if v == nil { return nil } return v.MaxStreamDuration }).(DurationPtrOutput) } // Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service. The load balancer does not wait for responses from the shadow service. Before sending traffic to the shadow service, the host / authority header is suffixed with -shadow. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. func (o HttpRouteActionPtrOutput) RequestMirrorPolicy() RequestMirrorPolicyPtrOutput { return o.ApplyT(func(v *HttpRouteAction) *RequestMirrorPolicy { if v == nil { return nil } return v.RequestMirrorPolicy }).(RequestMirrorPolicyPtrOutput) } // Specifies the retry policy associated with this route. func (o HttpRouteActionPtrOutput) RetryPolicy() HttpRetryPolicyPtrOutput { return o.ApplyT(func(v *HttpRouteAction) *HttpRetryPolicy { if v == nil { return nil } return v.RetryPolicy }).(HttpRetryPolicyPtrOutput) } // Specifies the timeout for the selected route. Timeout is computed from the time the request has been fully processed (known as *end-of-stream*) up until the response has been processed. Timeout includes all retries. If not specified, this field uses the largest timeout among all backend services associated with the route. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. func (o HttpRouteActionPtrOutput) Timeout() DurationPtrOutput { return o.ApplyT(func(v *HttpRouteAction) *Duration { if v == nil { return nil } return v.Timeout }).(DurationPtrOutput) } // The spec to modify the URL of the request, before forwarding the request to the matched service. urlRewrite is the only action supported in UrlMaps for external HTTP(S) load balancers. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. func (o HttpRouteActionPtrOutput) UrlRewrite() UrlRewritePtrOutput { return o.ApplyT(func(v *HttpRouteAction) *UrlRewrite { if v == nil { return nil } return v.UrlRewrite }).(UrlRewritePtrOutput) } // A list of weighted backend services to send traffic to when a route match occurs. The weights determine the fraction of traffic that flows to their corresponding backend service. If all traffic needs to go to a single backend service, there must be one weightedBackendService with weight set to a non-zero number. After a backend service is identified and before forwarding the request to the backend service, advanced routing actions such as URL rewrites and header transformations are applied depending on additional settings specified in this HttpRouteAction. func (o HttpRouteActionPtrOutput) WeightedBackendServices() WeightedBackendServiceArrayOutput { return o.ApplyT(func(v *HttpRouteAction) []WeightedBackendService { if v == nil { return nil } return v.WeightedBackendServices }).(WeightedBackendServiceArrayOutput) } type HttpRouteActionResponse struct { // The specification for allowing client-side cross-origin requests. For more information about the W3C recommendation for cross-origin resource sharing (CORS), see Fetch API Living Standard. Not supported when the URL map is bound to a target gRPC proxy. CorsPolicy CorsPolicyResponse `pulumi:"corsPolicy"` // The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. As part of fault injection, when clients send requests to a backend service, delays can be introduced by a load balancer on a percentage of requests before sending those requests to the backend service. Similarly requests from clients can be aborted by the load balancer for a percentage of requests. For the requests impacted by fault injection, timeout and retry_policy is ignored by clients that are configured with a fault_injection_policy. FaultInjectionPolicy HttpFaultInjectionResponse `pulumi:"faultInjectionPolicy"` // Specifies the maximum duration (timeout) for streams on the selected route. Unlike the timeout field where the timeout duration starts from the time the request has been fully processed (known as *end-of-stream*), the duration in this field is computed from the beginning of the stream until the response has been processed, including all retries. A stream that does not complete in this duration is closed. If not specified, this field uses the maximum maxStreamDuration value among all backend services associated with the route. This field is only allowed if the Url map is used with backend services with loadBalancingScheme set to INTERNAL_SELF_MANAGED. MaxStreamDuration DurationResponse `pulumi:"maxStreamDuration"` // Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service. The load balancer does not wait for responses from the shadow service. Before sending traffic to the shadow service, the host / authority header is suffixed with -shadow. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. RequestMirrorPolicy RequestMirrorPolicyResponse `pulumi:"requestMirrorPolicy"` // Specifies the retry policy associated with this route. RetryPolicy HttpRetryPolicyResponse `pulumi:"retryPolicy"` // Specifies the timeout for the selected route. Timeout is computed from the time the request has been fully processed (known as *end-of-stream*) up until the response has been processed. Timeout includes all retries. If not specified, this field uses the largest timeout among all backend services associated with the route. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. Timeout DurationResponse `pulumi:"timeout"` // The spec to modify the URL of the request, before forwarding the request to the matched service. urlRewrite is the only action supported in UrlMaps for external HTTP(S) load balancers. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. UrlRewrite UrlRewriteResponse `pulumi:"urlRewrite"` // A list of weighted backend services to send traffic to when a route match occurs. The weights determine the fraction of traffic that flows to their corresponding backend service. If all traffic needs to go to a single backend service, there must be one weightedBackendService with weight set to a non-zero number. After a backend service is identified and before forwarding the request to the backend service, advanced routing actions such as URL rewrites and header transformations are applied depending on additional settings specified in this HttpRouteAction. WeightedBackendServices []WeightedBackendServiceResponse `pulumi:"weightedBackendServices"` } type HttpRouteActionResponseOutput struct{ *pulumi.OutputState } func (HttpRouteActionResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*HttpRouteActionResponse)(nil)).Elem() } func (o HttpRouteActionResponseOutput) ToHttpRouteActionResponseOutput() HttpRouteActionResponseOutput { return o } func (o HttpRouteActionResponseOutput) ToHttpRouteActionResponseOutputWithContext(ctx context.Context) HttpRouteActionResponseOutput { return o } // The specification for allowing client-side cross-origin requests. For more information about the W3C recommendation for cross-origin resource sharing (CORS), see Fetch API Living Standard. Not supported when the URL map is bound to a target gRPC proxy. func (o HttpRouteActionResponseOutput) CorsPolicy() CorsPolicyResponseOutput { return o.ApplyT(func(v HttpRouteActionResponse) CorsPolicyResponse { return v.CorsPolicy }).(CorsPolicyResponseOutput) } // The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. As part of fault injection, when clients send requests to a backend service, delays can be introduced by a load balancer on a percentage of requests before sending those requests to the backend service. Similarly requests from clients can be aborted by the load balancer for a percentage of requests. For the requests impacted by fault injection, timeout and retry_policy is ignored by clients that are configured with a fault_injection_policy. func (o HttpRouteActionResponseOutput) FaultInjectionPolicy() HttpFaultInjectionResponseOutput { return o.ApplyT(func(v HttpRouteActionResponse) HttpFaultInjectionResponse { return v.FaultInjectionPolicy }).(HttpFaultInjectionResponseOutput) } // Specifies the maximum duration (timeout) for streams on the selected route. Unlike the timeout field where the timeout duration starts from the time the request has been fully processed (known as *end-of-stream*), the duration in this field is computed from the beginning of the stream until the response has been processed, including all retries. A stream that does not complete in this duration is closed. If not specified, this field uses the maximum maxStreamDuration value among all backend services associated with the route. This field is only allowed if the Url map is used with backend services with loadBalancingScheme set to INTERNAL_SELF_MANAGED. func (o HttpRouteActionResponseOutput) MaxStreamDuration() DurationResponseOutput { return o.ApplyT(func(v HttpRouteActionResponse) DurationResponse { return v.MaxStreamDuration }).(DurationResponseOutput) } // Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service. The load balancer does not wait for responses from the shadow service. Before sending traffic to the shadow service, the host / authority header is suffixed with -shadow. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. func (o HttpRouteActionResponseOutput) RequestMirrorPolicy() RequestMirrorPolicyResponseOutput { return o.ApplyT(func(v HttpRouteActionResponse) RequestMirrorPolicyResponse { return v.RequestMirrorPolicy }).(RequestMirrorPolicyResponseOutput) } // Specifies the retry policy associated with this route. func (o HttpRouteActionResponseOutput) RetryPolicy() HttpRetryPolicyResponseOutput { return o.ApplyT(func(v HttpRouteActionResponse) HttpRetryPolicyResponse { return v.RetryPolicy }).(HttpRetryPolicyResponseOutput) } // Specifies the timeout for the selected route. Timeout is computed from the time the request has been fully processed (known as *end-of-stream*) up until the response has been processed. Timeout includes all retries. If not specified, this field uses the largest timeout among all backend services associated with the route. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. func (o HttpRouteActionResponseOutput) Timeout() DurationResponseOutput { return o.ApplyT(func(v HttpRouteActionResponse) DurationResponse { return v.Timeout }).(DurationResponseOutput) } // The spec to modify the URL of the request, before forwarding the request to the matched service. urlRewrite is the only action supported in UrlMaps for external HTTP(S) load balancers. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true. func (o HttpRouteActionResponseOutput) UrlRewrite() UrlRewriteResponseOutput { return o.ApplyT(func(v HttpRouteActionResponse) UrlRewriteResponse { return v.UrlRewrite }).(UrlRewriteResponseOutput) } // A list of weighted backend services to send traffic to when a route match occurs. The weights determine the fraction of traffic that flows to their corresponding backend service. If all traffic needs to go to a single backend service, there must be one weightedBackendService with weight set to a non-zero number. After a backend service is identified and before forwarding the request to the backend service, advanced routing actions such as URL rewrites and header transformations are applied depending on additional settings specified in this HttpRouteAction. func (o HttpRouteActionResponseOutput) WeightedBackendServices() WeightedBackendServiceResponseArrayOutput { return o.ApplyT(func(v HttpRouteActionResponse) []WeightedBackendServiceResponse { return v.WeightedBackendServices }).(WeightedBackendServiceResponseArrayOutput) } // The HttpRouteRule setting specifies how to match an HTTP request and the corresponding routing action that load balancing proxies perform. type HttpRouteRule struct { // The short description conveying the intent of this routeRule. The description can have a maximum length of 1024 characters. Description *string `pulumi:"description"` // Specifies changes to request and response headers that need to take effect for the selected backendService. The headerAction value specified here is applied before the matching pathMatchers[].headerAction and after pathMatchers[].routeRules[].routeAction.weightedBackendService.backendServiceWeightAction[].headerAction HeaderAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. HeaderAction *HttpHeaderAction `pulumi:"headerAction"` // The list of criteria for matching attributes of a request to this routeRule. This list has OR semantics: the request matches this routeRule when any of the matchRules are satisfied. However predicates within a given matchRule have AND semantics. All predicates within a matchRule must match for the request to match the rule. MatchRules []HttpRouteRuleMatch `pulumi:"matchRules"` // For routeRules within a given pathMatcher, priority determines the order in which a load balancer interprets routeRules. RouteRules are evaluated in order of priority, from the lowest to highest number. The priority of a rule decreases as its number increases (1, 2, 3, N+1). The first rule that matches the request is applied. You cannot configure two or more routeRules with the same priority. Priority for each rule must be set to a number from 0 to 2147483647 inclusive. Priority numbers can have gaps, which enable you to add or remove rules in the future without affecting the rest of the rules. For example, 1, 2, 3, 4, 5, 9, 12, 16 is a valid series of priority numbers to which you could add rules numbered from 6 to 8, 10 to 11, and 13 to 15 in the future without any impact on existing rules. Priority *int `pulumi:"priority"` // In response to a matching matchRule, the load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If routeAction specifies any weightedBackendServices, service must not be set. Conversely if service is set, routeAction cannot contain any weightedBackendServices. Only one of urlRedirect, service or routeAction.weightedBackendService must be set. UrlMaps for external HTTP(S) load balancers support only the urlRewrite action within a route rule's routeAction. RouteAction *HttpRouteAction `pulumi:"routeAction"` // The full or partial URL of the backend service resource to which traffic is directed if this rule is matched. If routeAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if service is specified, routeAction cannot contain any weightedBackendServices. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. Only one of urlRedirect, service or routeAction.weightedBackendService must be set. Service *string `pulumi:"service"` // When this rule is matched, the request is redirected to a URL specified by urlRedirect. If urlRedirect is specified, service or routeAction must not be set. Not supported when the URL map is bound to a target gRPC proxy. UrlRedirect *HttpRedirectAction `pulumi:"urlRedirect"` } // HttpRouteRuleInput is an input type that accepts HttpRouteRuleArgs and HttpRouteRuleOutput values. // You can construct a concrete instance of `HttpRouteRuleInput` via: // // HttpRouteRuleArgs{...} type HttpRouteRuleInput interface { pulumi.Input ToHttpRouteRuleOutput() HttpRouteRuleOutput ToHttpRouteRuleOutputWithContext(context.Context) HttpRouteRuleOutput } // The HttpRouteRule setting specifies how to match an HTTP request and the corresponding routing action that load balancing proxies perform. type HttpRouteRuleArgs struct { // The short description conveying the intent of this routeRule. The description can have a maximum length of 1024 characters. Description pulumi.StringPtrInput `pulumi:"description"` // Specifies changes to request and response headers that need to take effect for the selected backendService. The headerAction value specified here is applied before the matching pathMatchers[].headerAction and after pathMatchers[].routeRules[].routeAction.weightedBackendService.backendServiceWeightAction[].headerAction HeaderAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. HeaderAction HttpHeaderActionPtrInput `pulumi:"headerAction"` // The list of criteria for matching attributes of a request to this routeRule. This list has OR semantics: the request matches this routeRule when any of the matchRules are satisfied. However predicates within a given matchRule have AND semantics. All predicates within a matchRule must match for the request to match the rule. MatchRules HttpRouteRuleMatchArrayInput `pulumi:"matchRules"` // For routeRules within a given pathMatcher, priority determines the order in which a load balancer interprets routeRules. RouteRules are evaluated in order of priority, from the lowest to highest number. The priority of a rule decreases as its number increases (1, 2, 3, N+1). The first rule that matches the request is applied. You cannot configure two or more routeRules with the same priority. Priority for each rule must be set to a number from 0 to 2147483647 inclusive. Priority numbers can have gaps, which enable you to add or remove rules in the future without affecting the rest of the rules. For example, 1, 2, 3, 4, 5, 9, 12, 16 is a valid series of priority numbers to which you could add rules numbered from 6 to 8, 10 to 11, and 13 to 15 in the future without any impact on existing rules. Priority pulumi.IntPtrInput `pulumi:"priority"` // In response to a matching matchRule, the load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If routeAction specifies any weightedBackendServices, service must not be set. Conversely if service is set, routeAction cannot contain any weightedBackendServices. Only one of urlRedirect, service or routeAction.weightedBackendService must be set. UrlMaps for external HTTP(S) load balancers support only the urlRewrite action within a route rule's routeAction. RouteAction HttpRouteActionPtrInput `pulumi:"routeAction"` // The full or partial URL of the backend service resource to which traffic is directed if this rule is matched. If routeAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if service is specified, routeAction cannot contain any weightedBackendServices. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. Only one of urlRedirect, service or routeAction.weightedBackendService must be set. Service pulumi.StringPtrInput `pulumi:"service"` // When this rule is matched, the request is redirected to a URL specified by urlRedirect. If urlRedirect is specified, service or routeAction must not be set. Not supported when the URL map is bound to a target gRPC proxy. UrlRedirect HttpRedirectActionPtrInput `pulumi:"urlRedirect"` } func (HttpRouteRuleArgs) ElementType() reflect.Type { return reflect.TypeOf((*HttpRouteRule)(nil)).Elem() } func (i HttpRouteRuleArgs) ToHttpRouteRuleOutput() HttpRouteRuleOutput { return i.ToHttpRouteRuleOutputWithContext(context.Background()) } func (i HttpRouteRuleArgs) ToHttpRouteRuleOutputWithContext(ctx context.Context) HttpRouteRuleOutput { return pulumi.ToOutputWithContext(ctx, i).(HttpRouteRuleOutput) } // HttpRouteRuleArrayInput is an input type that accepts HttpRouteRuleArray and HttpRouteRuleArrayOutput values. // You can construct a concrete instance of `HttpRouteRuleArrayInput` via: // // HttpRouteRuleArray{ HttpRouteRuleArgs{...} } type HttpRouteRuleArrayInput interface { pulumi.Input ToHttpRouteRuleArrayOutput() HttpRouteRuleArrayOutput ToHttpRouteRuleArrayOutputWithContext(context.Context) HttpRouteRuleArrayOutput } type HttpRouteRuleArray []HttpRouteRuleInput func (HttpRouteRuleArray) ElementType() reflect.Type { return reflect.TypeOf((*[]HttpRouteRule)(nil)).Elem() } func (i HttpRouteRuleArray) ToHttpRouteRuleArrayOutput() HttpRouteRuleArrayOutput { return i.ToHttpRouteRuleArrayOutputWithContext(context.Background()) } func (i HttpRouteRuleArray) ToHttpRouteRuleArrayOutputWithContext(ctx context.Context) HttpRouteRuleArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(HttpRouteRuleArrayOutput) } // The HttpRouteRule setting specifies how to match an HTTP request and the corresponding routing action that load balancing proxies perform. type HttpRouteRuleOutput struct{ *pulumi.OutputState } func (HttpRouteRuleOutput) ElementType() reflect.Type { return reflect.TypeOf((*HttpRouteRule)(nil)).Elem() } func (o HttpRouteRuleOutput) ToHttpRouteRuleOutput() HttpRouteRuleOutput { return o } func (o HttpRouteRuleOutput) ToHttpRouteRuleOutputWithContext(ctx context.Context) HttpRouteRuleOutput { return o } // The short description conveying the intent of this routeRule. The description can have a maximum length of 1024 characters. func (o HttpRouteRuleOutput) Description() pulumi.StringPtrOutput { return o.ApplyT(func(v HttpRouteRule) *string { return v.Description }).(pulumi.StringPtrOutput) } // Specifies changes to request and response headers that need to take effect for the selected backendService. The headerAction value specified here is applied before the matching pathMatchers[].headerAction and after pathMatchers[].routeRules[].routeAction.weightedBackendService.backendServiceWeightAction[].headerAction HeaderAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. func (o HttpRouteRuleOutput) HeaderAction() HttpHeaderActionPtrOutput { return o.ApplyT(func(v HttpRouteRule) *HttpHeaderAction { return v.HeaderAction }).(HttpHeaderActionPtrOutput) } // The list of criteria for matching attributes of a request to this routeRule. This list has OR semantics: the request matches this routeRule when any of the matchRules are satisfied. However predicates within a given matchRule have AND semantics. All predicates within a matchRule must match for the request to match the rule. func (o HttpRouteRuleOutput) MatchRules() HttpRouteRuleMatchArrayOutput { return o.ApplyT(func(v HttpRouteRule) []HttpRouteRuleMatch { return v.MatchRules }).(HttpRouteRuleMatchArrayOutput) } // For routeRules within a given pathMatcher, priority determines the order in which a load balancer interprets routeRules. RouteRules are evaluated in order of priority, from the lowest to highest number. The priority of a rule decreases as its number increases (1, 2, 3, N+1). The first rule that matches the request is applied. You cannot configure two or more routeRules with the same priority. Priority for each rule must be set to a number from 0 to 2147483647 inclusive. Priority numbers can have gaps, which enable you to add or remove rules in the future without affecting the rest of the rules. For example, 1, 2, 3, 4, 5, 9, 12, 16 is a valid series of priority numbers to which you could add rules numbered from 6 to 8, 10 to 11, and 13 to 15 in the future without any impact on existing rules. func (o HttpRouteRuleOutput) Priority() pulumi.IntPtrOutput { return o.ApplyT(func(v HttpRouteRule) *int { return v.Priority }).(pulumi.IntPtrOutput) } // In response to a matching matchRule, the load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If routeAction specifies any weightedBackendServices, service must not be set. Conversely if service is set, routeAction cannot contain any weightedBackendServices. Only one of urlRedirect, service or routeAction.weightedBackendService must be set. UrlMaps for external HTTP(S) load balancers support only the urlRewrite action within a route rule's routeAction. func (o HttpRouteRuleOutput) RouteAction() HttpRouteActionPtrOutput { return o.ApplyT(func(v HttpRouteRule) *HttpRouteAction { return v.RouteAction }).(HttpRouteActionPtrOutput) } // The full or partial URL of the backend service resource to which traffic is directed if this rule is matched. If routeAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if service is specified, routeAction cannot contain any weightedBackendServices. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. Only one of urlRedirect, service or routeAction.weightedBackendService must be set. func (o HttpRouteRuleOutput) Service() pulumi.StringPtrOutput { return o.ApplyT(func(v HttpRouteRule) *string { return v.Service }).(pulumi.StringPtrOutput) } // When this rule is matched, the request is redirected to a URL specified by urlRedirect. If urlRedirect is specified, service or routeAction must not be set. Not supported when the URL map is bound to a target gRPC proxy. func (o HttpRouteRuleOutput) UrlRedirect() HttpRedirectActionPtrOutput { return o.ApplyT(func(v HttpRouteRule) *HttpRedirectAction { return v.UrlRedirect }).(HttpRedirectActionPtrOutput) } type HttpRouteRuleArrayOutput struct{ *pulumi.OutputState } func (HttpRouteRuleArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]HttpRouteRule)(nil)).Elem() } func (o HttpRouteRuleArrayOutput) ToHttpRouteRuleArrayOutput() HttpRouteRuleArrayOutput { return o } func (o HttpRouteRuleArrayOutput) ToHttpRouteRuleArrayOutputWithContext(ctx context.Context) HttpRouteRuleArrayOutput { return o } func (o HttpRouteRuleArrayOutput) Index(i pulumi.IntInput) HttpRouteRuleOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) HttpRouteRule { return vs[0].([]HttpRouteRule)[vs[1].(int)] }).(HttpRouteRuleOutput) } // HttpRouteRuleMatch specifies a set of criteria for matching requests to an HttpRouteRule. All specified criteria must be satisfied for a match to occur. type HttpRouteRuleMatch struct { // For satisfying the matchRule condition, the path of the request must exactly match the value specified in fullPathMatch after removing any query parameters and anchor that may be part of the original URL. fullPathMatch must be from 1 to 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch must be specified. FullPathMatch *string `pulumi:"fullPathMatch"` // Specifies a list of header match criteria, all of which must match corresponding headers in the request. HeaderMatches []HttpHeaderMatch `pulumi:"headerMatches"` // Specifies that prefixMatch and fullPathMatch matches are case sensitive. The default value is false. ignoreCase must not be used with regexMatch. Not supported when the URL map is bound to a target gRPC proxy. IgnoreCase *bool `pulumi:"ignoreCase"` // Opaque filter criteria used by the load balancer to restrict routing configuration to a limited set of xDS compliant clients. In their xDS requests to the load balancer, xDS clients present node metadata. When there is a match, the relevant routing configuration is made available to those proxies. For each metadataFilter in this list, if its filterMatchCriteria is set to MATCH_ANY, at least one of the filterLabels must match the corresponding label provided in the metadata. If its filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels must match with corresponding labels provided in the metadata. If multiple metadata filters are specified, all of them need to be satisfied in order to be considered a match. metadataFilters specified here is applied after those specified in ForwardingRule that refers to the UrlMap this HttpRouteRuleMatch belongs to. metadataFilters only applies to load balancers that have loadBalancingScheme set to INTERNAL_SELF_MANAGED. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. MetadataFilters []MetadataFilter `pulumi:"metadataFilters"` // For satisfying the matchRule condition, the request's path must begin with the specified prefixMatch. prefixMatch must begin with a /. The value must be from 1 to 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch must be specified. PrefixMatch *string `pulumi:"prefixMatch"` // Specifies a list of query parameter match criteria, all of which must match corresponding query parameters in the request. Not supported when the URL map is bound to a target gRPC proxy. QueryParameterMatches []HttpQueryParameterMatch `pulumi:"queryParameterMatches"` // For satisfying the matchRule condition, the path of the request must satisfy the regular expression specified in regexMatch after removing any query parameters and anchor supplied with the original URL. For more information about regular expression syntax, see Syntax. Only one of prefixMatch, fullPathMatch or regexMatch must be specified. regexMatch only applies to load balancers that have loadBalancingScheme set to INTERNAL_SELF_MANAGED. RegexMatch *string `pulumi:"regexMatch"` } // HttpRouteRuleMatchInput is an input type that accepts HttpRouteRuleMatchArgs and HttpRouteRuleMatchOutput values. // You can construct a concrete instance of `HttpRouteRuleMatchInput` via: // // HttpRouteRuleMatchArgs{...} type HttpRouteRuleMatchInput interface { pulumi.Input ToHttpRouteRuleMatchOutput() HttpRouteRuleMatchOutput ToHttpRouteRuleMatchOutputWithContext(context.Context) HttpRouteRuleMatchOutput } // HttpRouteRuleMatch specifies a set of criteria for matching requests to an HttpRouteRule. All specified criteria must be satisfied for a match to occur. type HttpRouteRuleMatchArgs struct { // For satisfying the matchRule condition, the path of the request must exactly match the value specified in fullPathMatch after removing any query parameters and anchor that may be part of the original URL. fullPathMatch must be from 1 to 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch must be specified. FullPathMatch pulumi.StringPtrInput `pulumi:"fullPathMatch"` // Specifies a list of header match criteria, all of which must match corresponding headers in the request. HeaderMatches HttpHeaderMatchArrayInput `pulumi:"headerMatches"` // Specifies that prefixMatch and fullPathMatch matches are case sensitive. The default value is false. ignoreCase must not be used with regexMatch. Not supported when the URL map is bound to a target gRPC proxy. IgnoreCase pulumi.BoolPtrInput `pulumi:"ignoreCase"` // Opaque filter criteria used by the load balancer to restrict routing configuration to a limited set of xDS compliant clients. In their xDS requests to the load balancer, xDS clients present node metadata. When there is a match, the relevant routing configuration is made available to those proxies. For each metadataFilter in this list, if its filterMatchCriteria is set to MATCH_ANY, at least one of the filterLabels must match the corresponding label provided in the metadata. If its filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels must match with corresponding labels provided in the metadata. If multiple metadata filters are specified, all of them need to be satisfied in order to be considered a match. metadataFilters specified here is applied after those specified in ForwardingRule that refers to the UrlMap this HttpRouteRuleMatch belongs to. metadataFilters only applies to load balancers that have loadBalancingScheme set to INTERNAL_SELF_MANAGED. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. MetadataFilters MetadataFilterArrayInput `pulumi:"metadataFilters"` // For satisfying the matchRule condition, the request's path must begin with the specified prefixMatch. prefixMatch must begin with a /. The value must be from 1 to 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch must be specified. PrefixMatch pulumi.StringPtrInput `pulumi:"prefixMatch"` // Specifies a list of query parameter match criteria, all of which must match corresponding query parameters in the request. Not supported when the URL map is bound to a target gRPC proxy. QueryParameterMatches HttpQueryParameterMatchArrayInput `pulumi:"queryParameterMatches"` // For satisfying the matchRule condition, the path of the request must satisfy the regular expression specified in regexMatch after removing any query parameters and anchor supplied with the original URL. For more information about regular expression syntax, see Syntax. Only one of prefixMatch, fullPathMatch or regexMatch must be specified. regexMatch only applies to load balancers that have loadBalancingScheme set to INTERNAL_SELF_MANAGED. RegexMatch pulumi.StringPtrInput `pulumi:"regexMatch"` } func (HttpRouteRuleMatchArgs) ElementType() reflect.Type { return reflect.TypeOf((*HttpRouteRuleMatch)(nil)).Elem() } func (i HttpRouteRuleMatchArgs) ToHttpRouteRuleMatchOutput() HttpRouteRuleMatchOutput { return i.ToHttpRouteRuleMatchOutputWithContext(context.Background()) } func (i HttpRouteRuleMatchArgs) ToHttpRouteRuleMatchOutputWithContext(ctx context.Context) HttpRouteRuleMatchOutput { return pulumi.ToOutputWithContext(ctx, i).(HttpRouteRuleMatchOutput) } // HttpRouteRuleMatchArrayInput is an input type that accepts HttpRouteRuleMatchArray and HttpRouteRuleMatchArrayOutput values. // You can construct a concrete instance of `HttpRouteRuleMatchArrayInput` via: // // HttpRouteRuleMatchArray{ HttpRouteRuleMatchArgs{...} } type HttpRouteRuleMatchArrayInput interface { pulumi.Input ToHttpRouteRuleMatchArrayOutput() HttpRouteRuleMatchArrayOutput ToHttpRouteRuleMatchArrayOutputWithContext(context.Context) HttpRouteRuleMatchArrayOutput } type HttpRouteRuleMatchArray []HttpRouteRuleMatchInput func (HttpRouteRuleMatchArray) ElementType() reflect.Type { return reflect.TypeOf((*[]HttpRouteRuleMatch)(nil)).Elem() } func (i HttpRouteRuleMatchArray) ToHttpRouteRuleMatchArrayOutput() HttpRouteRuleMatchArrayOutput { return i.ToHttpRouteRuleMatchArrayOutputWithContext(context.Background()) } func (i HttpRouteRuleMatchArray) ToHttpRouteRuleMatchArrayOutputWithContext(ctx context.Context) HttpRouteRuleMatchArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(HttpRouteRuleMatchArrayOutput) } // HttpRouteRuleMatch specifies a set of criteria for matching requests to an HttpRouteRule. All specified criteria must be satisfied for a match to occur. type HttpRouteRuleMatchOutput struct{ *pulumi.OutputState } func (HttpRouteRuleMatchOutput) ElementType() reflect.Type { return reflect.TypeOf((*HttpRouteRuleMatch)(nil)).Elem() } func (o HttpRouteRuleMatchOutput) ToHttpRouteRuleMatchOutput() HttpRouteRuleMatchOutput { return o } func (o HttpRouteRuleMatchOutput) ToHttpRouteRuleMatchOutputWithContext(ctx context.Context) HttpRouteRuleMatchOutput { return o } // For satisfying the matchRule condition, the path of the request must exactly match the value specified in fullPathMatch after removing any query parameters and anchor that may be part of the original URL. fullPathMatch must be from 1 to 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch must be specified. func (o HttpRouteRuleMatchOutput) FullPathMatch() pulumi.StringPtrOutput { return o.ApplyT(func(v HttpRouteRuleMatch) *string { return v.FullPathMatch }).(pulumi.StringPtrOutput) } // Specifies a list of header match criteria, all of which must match corresponding headers in the request. func (o HttpRouteRuleMatchOutput) HeaderMatches() HttpHeaderMatchArrayOutput { return o.ApplyT(func(v HttpRouteRuleMatch) []HttpHeaderMatch { return v.HeaderMatches }).(HttpHeaderMatchArrayOutput) } // Specifies that prefixMatch and fullPathMatch matches are case sensitive. The default value is false. ignoreCase must not be used with regexMatch. Not supported when the URL map is bound to a target gRPC proxy. func (o HttpRouteRuleMatchOutput) IgnoreCase() pulumi.BoolPtrOutput { return o.ApplyT(func(v HttpRouteRuleMatch) *bool { return v.IgnoreCase }).(pulumi.BoolPtrOutput) } // Opaque filter criteria used by the load balancer to restrict routing configuration to a limited set of xDS compliant clients. In their xDS requests to the load balancer, xDS clients present node metadata. When there is a match, the relevant routing configuration is made available to those proxies. For each metadataFilter in this list, if its filterMatchCriteria is set to MATCH_ANY, at least one of the filterLabels must match the corresponding label provided in the metadata. If its filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels must match with corresponding labels provided in the metadata. If multiple metadata filters are specified, all of them need to be satisfied in order to be considered a match. metadataFilters specified here is applied after those specified in ForwardingRule that refers to the UrlMap this HttpRouteRuleMatch belongs to. metadataFilters only applies to load balancers that have loadBalancingScheme set to INTERNAL_SELF_MANAGED. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. func (o HttpRouteRuleMatchOutput) MetadataFilters() MetadataFilterArrayOutput { return o.ApplyT(func(v HttpRouteRuleMatch) []MetadataFilter { return v.MetadataFilters }).(MetadataFilterArrayOutput) } // For satisfying the matchRule condition, the request's path must begin with the specified prefixMatch. prefixMatch must begin with a /. The value must be from 1 to 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch must be specified. func (o HttpRouteRuleMatchOutput) PrefixMatch() pulumi.StringPtrOutput { return o.ApplyT(func(v HttpRouteRuleMatch) *string { return v.PrefixMatch }).(pulumi.StringPtrOutput) } // Specifies a list of query parameter match criteria, all of which must match corresponding query parameters in the request. Not supported when the URL map is bound to a target gRPC proxy. func (o HttpRouteRuleMatchOutput) QueryParameterMatches() HttpQueryParameterMatchArrayOutput { return o.ApplyT(func(v HttpRouteRuleMatch) []HttpQueryParameterMatch { return v.QueryParameterMatches }).(HttpQueryParameterMatchArrayOutput) } // For satisfying the matchRule condition, the path of the request must satisfy the regular expression specified in regexMatch after removing any query parameters and anchor supplied with the original URL. For more information about regular expression syntax, see Syntax. Only one of prefixMatch, fullPathMatch or regexMatch must be specified. regexMatch only applies to load balancers that have loadBalancingScheme set to INTERNAL_SELF_MANAGED. func (o HttpRouteRuleMatchOutput) RegexMatch() pulumi.StringPtrOutput { return o.ApplyT(func(v HttpRouteRuleMatch) *string { return v.RegexMatch }).(pulumi.StringPtrOutput) } type HttpRouteRuleMatchArrayOutput struct{ *pulumi.OutputState } func (HttpRouteRuleMatchArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]HttpRouteRuleMatch)(nil)).Elem() } func (o HttpRouteRuleMatchArrayOutput) ToHttpRouteRuleMatchArrayOutput() HttpRouteRuleMatchArrayOutput { return o } func (o HttpRouteRuleMatchArrayOutput) ToHttpRouteRuleMatchArrayOutputWithContext(ctx context.Context) HttpRouteRuleMatchArrayOutput { return o } func (o HttpRouteRuleMatchArrayOutput) Index(i pulumi.IntInput) HttpRouteRuleMatchOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) HttpRouteRuleMatch { return vs[0].([]HttpRouteRuleMatch)[vs[1].(int)] }).(HttpRouteRuleMatchOutput) } // HttpRouteRuleMatch specifies a set of criteria for matching requests to an HttpRouteRule. All specified criteria must be satisfied for a match to occur. type HttpRouteRuleMatchResponse struct { // For satisfying the matchRule condition, the path of the request must exactly match the value specified in fullPathMatch after removing any query parameters and anchor that may be part of the original URL. fullPathMatch must be from 1 to 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch must be specified. FullPathMatch string `pulumi:"fullPathMatch"` // Specifies a list of header match criteria, all of which must match corresponding headers in the request. HeaderMatches []HttpHeaderMatchResponse `pulumi:"headerMatches"` // Specifies that prefixMatch and fullPathMatch matches are case sensitive. The default value is false. ignoreCase must not be used with regexMatch. Not supported when the URL map is bound to a target gRPC proxy. IgnoreCase bool `pulumi:"ignoreCase"` // Opaque filter criteria used by the load balancer to restrict routing configuration to a limited set of xDS compliant clients. In their xDS requests to the load balancer, xDS clients present node metadata. When there is a match, the relevant routing configuration is made available to those proxies. For each metadataFilter in this list, if its filterMatchCriteria is set to MATCH_ANY, at least one of the filterLabels must match the corresponding label provided in the metadata. If its filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels must match with corresponding labels provided in the metadata. If multiple metadata filters are specified, all of them need to be satisfied in order to be considered a match. metadataFilters specified here is applied after those specified in ForwardingRule that refers to the UrlMap this HttpRouteRuleMatch belongs to. metadataFilters only applies to load balancers that have loadBalancingScheme set to INTERNAL_SELF_MANAGED. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. MetadataFilters []MetadataFilterResponse `pulumi:"metadataFilters"` // For satisfying the matchRule condition, the request's path must begin with the specified prefixMatch. prefixMatch must begin with a /. The value must be from 1 to 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch must be specified. PrefixMatch string `pulumi:"prefixMatch"` // Specifies a list of query parameter match criteria, all of which must match corresponding query parameters in the request. Not supported when the URL map is bound to a target gRPC proxy. QueryParameterMatches []HttpQueryParameterMatchResponse `pulumi:"queryParameterMatches"` // For satisfying the matchRule condition, the path of the request must satisfy the regular expression specified in regexMatch after removing any query parameters and anchor supplied with the original URL. For more information about regular expression syntax, see Syntax. Only one of prefixMatch, fullPathMatch or regexMatch must be specified. regexMatch only applies to load balancers that have loadBalancingScheme set to INTERNAL_SELF_MANAGED. RegexMatch string `pulumi:"regexMatch"` } // HttpRouteRuleMatch specifies a set of criteria for matching requests to an HttpRouteRule. All specified criteria must be satisfied for a match to occur. type HttpRouteRuleMatchResponseOutput struct{ *pulumi.OutputState } func (HttpRouteRuleMatchResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*HttpRouteRuleMatchResponse)(nil)).Elem() } func (o HttpRouteRuleMatchResponseOutput) ToHttpRouteRuleMatchResponseOutput() HttpRouteRuleMatchResponseOutput { return o } func (o HttpRouteRuleMatchResponseOutput) ToHttpRouteRuleMatchResponseOutputWithContext(ctx context.Context) HttpRouteRuleMatchResponseOutput { return o } // For satisfying the matchRule condition, the path of the request must exactly match the value specified in fullPathMatch after removing any query parameters and anchor that may be part of the original URL. fullPathMatch must be from 1 to 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch must be specified. func (o HttpRouteRuleMatchResponseOutput) FullPathMatch() pulumi.StringOutput { return o.ApplyT(func(v HttpRouteRuleMatchResponse) string { return v.FullPathMatch }).(pulumi.StringOutput) } // Specifies a list of header match criteria, all of which must match corresponding headers in the request. func (o HttpRouteRuleMatchResponseOutput) HeaderMatches() HttpHeaderMatchResponseArrayOutput { return o.ApplyT(func(v HttpRouteRuleMatchResponse) []HttpHeaderMatchResponse { return v.HeaderMatches }).(HttpHeaderMatchResponseArrayOutput) } // Specifies that prefixMatch and fullPathMatch matches are case sensitive. The default value is false. ignoreCase must not be used with regexMatch. Not supported when the URL map is bound to a target gRPC proxy. func (o HttpRouteRuleMatchResponseOutput) IgnoreCase() pulumi.BoolOutput { return o.ApplyT(func(v HttpRouteRuleMatchResponse) bool { return v.IgnoreCase }).(pulumi.BoolOutput) } // Opaque filter criteria used by the load balancer to restrict routing configuration to a limited set of xDS compliant clients. In their xDS requests to the load balancer, xDS clients present node metadata. When there is a match, the relevant routing configuration is made available to those proxies. For each metadataFilter in this list, if its filterMatchCriteria is set to MATCH_ANY, at least one of the filterLabels must match the corresponding label provided in the metadata. If its filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels must match with corresponding labels provided in the metadata. If multiple metadata filters are specified, all of them need to be satisfied in order to be considered a match. metadataFilters specified here is applied after those specified in ForwardingRule that refers to the UrlMap this HttpRouteRuleMatch belongs to. metadataFilters only applies to load balancers that have loadBalancingScheme set to INTERNAL_SELF_MANAGED. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. func (o HttpRouteRuleMatchResponseOutput) MetadataFilters() MetadataFilterResponseArrayOutput { return o.ApplyT(func(v HttpRouteRuleMatchResponse) []MetadataFilterResponse { return v.MetadataFilters }).(MetadataFilterResponseArrayOutput) } // For satisfying the matchRule condition, the request's path must begin with the specified prefixMatch. prefixMatch must begin with a /. The value must be from 1 to 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch must be specified. func (o HttpRouteRuleMatchResponseOutput) PrefixMatch() pulumi.StringOutput { return o.ApplyT(func(v HttpRouteRuleMatchResponse) string { return v.PrefixMatch }).(pulumi.StringOutput) } // Specifies a list of query parameter match criteria, all of which must match corresponding query parameters in the request. Not supported when the URL map is bound to a target gRPC proxy. func (o HttpRouteRuleMatchResponseOutput) QueryParameterMatches() HttpQueryParameterMatchResponseArrayOutput { return o.ApplyT(func(v HttpRouteRuleMatchResponse) []HttpQueryParameterMatchResponse { return v.QueryParameterMatches }).(HttpQueryParameterMatchResponseArrayOutput) } // For satisfying the matchRule condition, the path of the request must satisfy the regular expression specified in regexMatch after removing any query parameters and anchor supplied with the original URL. For more information about regular expression syntax, see Syntax. Only one of prefixMatch, fullPathMatch or regexMatch must be specified. regexMatch only applies to load balancers that have loadBalancingScheme set to INTERNAL_SELF_MANAGED. func (o HttpRouteRuleMatchResponseOutput) RegexMatch() pulumi.StringOutput { return o.ApplyT(func(v HttpRouteRuleMatchResponse) string { return v.RegexMatch }).(pulumi.StringOutput) } type HttpRouteRuleMatchResponseArrayOutput struct{ *pulumi.OutputState } func (HttpRouteRuleMatchResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]HttpRouteRuleMatchResponse)(nil)).Elem() } func (o HttpRouteRuleMatchResponseArrayOutput) ToHttpRouteRuleMatchResponseArrayOutput() HttpRouteRuleMatchResponseArrayOutput { return o } func (o HttpRouteRuleMatchResponseArrayOutput) ToHttpRouteRuleMatchResponseArrayOutputWithContext(ctx context.Context) HttpRouteRuleMatchResponseArrayOutput { return o } func (o HttpRouteRuleMatchResponseArrayOutput) Index(i pulumi.IntInput) HttpRouteRuleMatchResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) HttpRouteRuleMatchResponse { return vs[0].([]HttpRouteRuleMatchResponse)[vs[1].(int)] }).(HttpRouteRuleMatchResponseOutput) } // The HttpRouteRule setting specifies how to match an HTTP request and the corresponding routing action that load balancing proxies perform. type HttpRouteRuleResponse struct { // The short description conveying the intent of this routeRule. The description can have a maximum length of 1024 characters. Description string `pulumi:"description"` // Specifies changes to request and response headers that need to take effect for the selected backendService. The headerAction value specified here is applied before the matching pathMatchers[].headerAction and after pathMatchers[].routeRules[].routeAction.weightedBackendService.backendServiceWeightAction[].headerAction HeaderAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. HeaderAction HttpHeaderActionResponse `pulumi:"headerAction"` // The list of criteria for matching attributes of a request to this routeRule. This list has OR semantics: the request matches this routeRule when any of the matchRules are satisfied. However predicates within a given matchRule have AND semantics. All predicates within a matchRule must match for the request to match the rule. MatchRules []HttpRouteRuleMatchResponse `pulumi:"matchRules"` // For routeRules within a given pathMatcher, priority determines the order in which a load balancer interprets routeRules. RouteRules are evaluated in order of priority, from the lowest to highest number. The priority of a rule decreases as its number increases (1, 2, 3, N+1). The first rule that matches the request is applied. You cannot configure two or more routeRules with the same priority. Priority for each rule must be set to a number from 0 to 2147483647 inclusive. Priority numbers can have gaps, which enable you to add or remove rules in the future without affecting the rest of the rules. For example, 1, 2, 3, 4, 5, 9, 12, 16 is a valid series of priority numbers to which you could add rules numbered from 6 to 8, 10 to 11, and 13 to 15 in the future without any impact on existing rules. Priority int `pulumi:"priority"` // In response to a matching matchRule, the load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If routeAction specifies any weightedBackendServices, service must not be set. Conversely if service is set, routeAction cannot contain any weightedBackendServices. Only one of urlRedirect, service or routeAction.weightedBackendService must be set. UrlMaps for external HTTP(S) load balancers support only the urlRewrite action within a route rule's routeAction. RouteAction HttpRouteActionResponse `pulumi:"routeAction"` // The full or partial URL of the backend service resource to which traffic is directed if this rule is matched. If routeAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if service is specified, routeAction cannot contain any weightedBackendServices. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. Only one of urlRedirect, service or routeAction.weightedBackendService must be set. Service string `pulumi:"service"` // When this rule is matched, the request is redirected to a URL specified by urlRedirect. If urlRedirect is specified, service or routeAction must not be set. Not supported when the URL map is bound to a target gRPC proxy. UrlRedirect HttpRedirectActionResponse `pulumi:"urlRedirect"` } // The HttpRouteRule setting specifies how to match an HTTP request and the corresponding routing action that load balancing proxies perform. type HttpRouteRuleResponseOutput struct{ *pulumi.OutputState } func (HttpRouteRuleResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*HttpRouteRuleResponse)(nil)).Elem() } func (o HttpRouteRuleResponseOutput) ToHttpRouteRuleResponseOutput() HttpRouteRuleResponseOutput { return o } func (o HttpRouteRuleResponseOutput) ToHttpRouteRuleResponseOutputWithContext(ctx context.Context) HttpRouteRuleResponseOutput { return o } // The short description conveying the intent of this routeRule. The description can have a maximum length of 1024 characters. func (o HttpRouteRuleResponseOutput) Description() pulumi.StringOutput { return o.ApplyT(func(v HttpRouteRuleResponse) string { return v.Description }).(pulumi.StringOutput) } // Specifies changes to request and response headers that need to take effect for the selected backendService. The headerAction value specified here is applied before the matching pathMatchers[].headerAction and after pathMatchers[].routeRules[].routeAction.weightedBackendService.backendServiceWeightAction[].headerAction HeaderAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. func (o HttpRouteRuleResponseOutput) HeaderAction() HttpHeaderActionResponseOutput { return o.ApplyT(func(v HttpRouteRuleResponse) HttpHeaderActionResponse { return v.HeaderAction }).(HttpHeaderActionResponseOutput) } // The list of criteria for matching attributes of a request to this routeRule. This list has OR semantics: the request matches this routeRule when any of the matchRules are satisfied. However predicates within a given matchRule have AND semantics. All predicates within a matchRule must match for the request to match the rule. func (o HttpRouteRuleResponseOutput) MatchRules() HttpRouteRuleMatchResponseArrayOutput { return o.ApplyT(func(v HttpRouteRuleResponse) []HttpRouteRuleMatchResponse { return v.MatchRules }).(HttpRouteRuleMatchResponseArrayOutput) } // For routeRules within a given pathMatcher, priority determines the order in which a load balancer interprets routeRules. RouteRules are evaluated in order of priority, from the lowest to highest number. The priority of a rule decreases as its number increases (1, 2, 3, N+1). The first rule that matches the request is applied. You cannot configure two or more routeRules with the same priority. Priority for each rule must be set to a number from 0 to 2147483647 inclusive. Priority numbers can have gaps, which enable you to add or remove rules in the future without affecting the rest of the rules. For example, 1, 2, 3, 4, 5, 9, 12, 16 is a valid series of priority numbers to which you could add rules numbered from 6 to 8, 10 to 11, and 13 to 15 in the future without any impact on existing rules. func (o HttpRouteRuleResponseOutput) Priority() pulumi.IntOutput { return o.ApplyT(func(v HttpRouteRuleResponse) int { return v.Priority }).(pulumi.IntOutput) } // In response to a matching matchRule, the load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If routeAction specifies any weightedBackendServices, service must not be set. Conversely if service is set, routeAction cannot contain any weightedBackendServices. Only one of urlRedirect, service or routeAction.weightedBackendService must be set. UrlMaps for external HTTP(S) load balancers support only the urlRewrite action within a route rule's routeAction. func (o HttpRouteRuleResponseOutput) RouteAction() HttpRouteActionResponseOutput { return o.ApplyT(func(v HttpRouteRuleResponse) HttpRouteActionResponse { return v.RouteAction }).(HttpRouteActionResponseOutput) } // The full or partial URL of the backend service resource to which traffic is directed if this rule is matched. If routeAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if service is specified, routeAction cannot contain any weightedBackendServices. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. Only one of urlRedirect, service or routeAction.weightedBackendService must be set. func (o HttpRouteRuleResponseOutput) Service() pulumi.StringOutput { return o.ApplyT(func(v HttpRouteRuleResponse) string { return v.Service }).(pulumi.StringOutput) } // When this rule is matched, the request is redirected to a URL specified by urlRedirect. If urlRedirect is specified, service or routeAction must not be set. Not supported when the URL map is bound to a target gRPC proxy. func (o HttpRouteRuleResponseOutput) UrlRedirect() HttpRedirectActionResponseOutput { return o.ApplyT(func(v HttpRouteRuleResponse) HttpRedirectActionResponse { return v.UrlRedirect }).(HttpRedirectActionResponseOutput) } type HttpRouteRuleResponseArrayOutput struct{ *pulumi.OutputState } func (HttpRouteRuleResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]HttpRouteRuleResponse)(nil)).Elem() } func (o HttpRouteRuleResponseArrayOutput) ToHttpRouteRuleResponseArrayOutput() HttpRouteRuleResponseArrayOutput { return o } func (o HttpRouteRuleResponseArrayOutput) ToHttpRouteRuleResponseArrayOutputWithContext(ctx context.Context) HttpRouteRuleResponseArrayOutput { return o } func (o HttpRouteRuleResponseArrayOutput) Index(i pulumi.IntInput) HttpRouteRuleResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) HttpRouteRuleResponse { return vs[0].([]HttpRouteRuleResponse)[vs[1].(int)] }).(HttpRouteRuleResponseOutput) } // The parameters of the raw disk image. type ImageRawDisk struct { // The format used to encode and transmit the block device, which should be TAR. This is just a container and transmission format and not a runtime format. Provided by the client when the disk image is created. ContainerType *ImageRawDiskContainerType `pulumi:"containerType"` // The full Google Cloud Storage URL where the raw disk image archive is stored. The following are valid formats for the URL: - https://storage.googleapis.com/bucket_name/image_archive_name - https://storage.googleapis.com/bucket_name/folder_name/ image_archive_name In order to create an image, you must provide the full or partial URL of one of the following: - The rawDisk.source URL - The sourceDisk URL - The sourceImage URL - The sourceSnapshot URL Source *string `pulumi:"source"` } // ImageRawDiskInput is an input type that accepts ImageRawDiskArgs and ImageRawDiskOutput values. // You can construct a concrete instance of `ImageRawDiskInput` via: // // ImageRawDiskArgs{...} type ImageRawDiskInput interface { pulumi.Input ToImageRawDiskOutput() ImageRawDiskOutput ToImageRawDiskOutputWithContext(context.Context) ImageRawDiskOutput } // The parameters of the raw disk image. type ImageRawDiskArgs struct { // The format used to encode and transmit the block device, which should be TAR. This is just a container and transmission format and not a runtime format. Provided by the client when the disk image is created. ContainerType ImageRawDiskContainerTypePtrInput `pulumi:"containerType"` // The full Google Cloud Storage URL where the raw disk image archive is stored. The following are valid formats for the URL: - https://storage.googleapis.com/bucket_name/image_archive_name - https://storage.googleapis.com/bucket_name/folder_name/ image_archive_name In order to create an image, you must provide the full or partial URL of one of the following: - The rawDisk.source URL - The sourceDisk URL - The sourceImage URL - The sourceSnapshot URL Source pulumi.StringPtrInput `pulumi:"source"` } func (ImageRawDiskArgs) ElementType() reflect.Type { return reflect.TypeOf((*ImageRawDisk)(nil)).Elem() } func (i ImageRawDiskArgs) ToImageRawDiskOutput() ImageRawDiskOutput { return i.ToImageRawDiskOutputWithContext(context.Background()) } func (i ImageRawDiskArgs) ToImageRawDiskOutputWithContext(ctx context.Context) ImageRawDiskOutput { return pulumi.ToOutputWithContext(ctx, i).(ImageRawDiskOutput) } func (i ImageRawDiskArgs) ToImageRawDiskPtrOutput() ImageRawDiskPtrOutput { return i.ToImageRawDiskPtrOutputWithContext(context.Background()) } func (i ImageRawDiskArgs) ToImageRawDiskPtrOutputWithContext(ctx context.Context) ImageRawDiskPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(ImageRawDiskOutput).ToImageRawDiskPtrOutputWithContext(ctx) } // ImageRawDiskPtrInput is an input type that accepts ImageRawDiskArgs, ImageRawDiskPtr and ImageRawDiskPtrOutput values. // You can construct a concrete instance of `ImageRawDiskPtrInput` via: // // ImageRawDiskArgs{...} // // or: // // nil type ImageRawDiskPtrInput interface { pulumi.Input ToImageRawDiskPtrOutput() ImageRawDiskPtrOutput ToImageRawDiskPtrOutputWithContext(context.Context) ImageRawDiskPtrOutput } type imageRawDiskPtrType ImageRawDiskArgs func ImageRawDiskPtr(v *ImageRawDiskArgs) ImageRawDiskPtrInput { return (*imageRawDiskPtrType)(v) } func (*imageRawDiskPtrType) ElementType() reflect.Type { return reflect.TypeOf((**ImageRawDisk)(nil)).Elem() } func (i *imageRawDiskPtrType) ToImageRawDiskPtrOutput() ImageRawDiskPtrOutput { return i.ToImageRawDiskPtrOutputWithContext(context.Background()) } func (i *imageRawDiskPtrType) ToImageRawDiskPtrOutputWithContext(ctx context.Context) ImageRawDiskPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(ImageRawDiskPtrOutput) } // The parameters of the raw disk image. type ImageRawDiskOutput struct{ *pulumi.OutputState } func (ImageRawDiskOutput) ElementType() reflect.Type { return reflect.TypeOf((*ImageRawDisk)(nil)).Elem() } func (o ImageRawDiskOutput) ToImageRawDiskOutput() ImageRawDiskOutput { return o } func (o ImageRawDiskOutput) ToImageRawDiskOutputWithContext(ctx context.Context) ImageRawDiskOutput { return o } func (o ImageRawDiskOutput) ToImageRawDiskPtrOutput() ImageRawDiskPtrOutput { return o.ToImageRawDiskPtrOutputWithContext(context.Background()) } func (o ImageRawDiskOutput) ToImageRawDiskPtrOutputWithContext(ctx context.Context) ImageRawDiskPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v ImageRawDisk) *ImageRawDisk { return &v }).(ImageRawDiskPtrOutput) } // The format used to encode and transmit the block device, which should be TAR. This is just a container and transmission format and not a runtime format. Provided by the client when the disk image is created. func (o ImageRawDiskOutput) ContainerType() ImageRawDiskContainerTypePtrOutput { return o.ApplyT(func(v ImageRawDisk) *ImageRawDiskContainerType { return v.ContainerType }).(ImageRawDiskContainerTypePtrOutput) } // The full Google Cloud Storage URL where the raw disk image archive is stored. The following are valid formats for the URL: - https://storage.googleapis.com/bucket_name/image_archive_name - https://storage.googleapis.com/bucket_name/folder_name/ image_archive_name In order to create an image, you must provide the full or partial URL of one of the following: - The rawDisk.source URL - The sourceDisk URL - The sourceImage URL - The sourceSnapshot URL func (o ImageRawDiskOutput) Source() pulumi.StringPtrOutput { return o.ApplyT(func(v ImageRawDisk) *string { return v.Source }).(pulumi.StringPtrOutput) } type ImageRawDiskPtrOutput struct{ *pulumi.OutputState } func (ImageRawDiskPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**ImageRawDisk)(nil)).Elem() } func (o ImageRawDiskPtrOutput) ToImageRawDiskPtrOutput() ImageRawDiskPtrOutput { return o } func (o ImageRawDiskPtrOutput) ToImageRawDiskPtrOutputWithContext(ctx context.Context) ImageRawDiskPtrOutput { return o } func (o ImageRawDiskPtrOutput) Elem() ImageRawDiskOutput { return o.ApplyT(func(v *ImageRawDisk) ImageRawDisk { if v != nil { return *v } var ret ImageRawDisk return ret }).(ImageRawDiskOutput) } // The format used to encode and transmit the block device, which should be TAR. This is just a container and transmission format and not a runtime format. Provided by the client when the disk image is created. func (o ImageRawDiskPtrOutput) ContainerType() ImageRawDiskContainerTypePtrOutput { return o.ApplyT(func(v *ImageRawDisk) *ImageRawDiskContainerType { if v == nil { return nil } return v.ContainerType }).(ImageRawDiskContainerTypePtrOutput) } // The full Google Cloud Storage URL where the raw disk image archive is stored. The following are valid formats for the URL: - https://storage.googleapis.com/bucket_name/image_archive_name - https://storage.googleapis.com/bucket_name/folder_name/ image_archive_name In order to create an image, you must provide the full or partial URL of one of the following: - The rawDisk.source URL - The sourceDisk URL - The sourceImage URL - The sourceSnapshot URL func (o ImageRawDiskPtrOutput) Source() pulumi.StringPtrOutput { return o.ApplyT(func(v *ImageRawDisk) *string { if v == nil { return nil } return v.Source }).(pulumi.StringPtrOutput) } // The parameters of the raw disk image. type ImageRawDiskResponse struct { // The format used to encode and transmit the block device, which should be TAR. This is just a container and transmission format and not a runtime format. Provided by the client when the disk image is created. ContainerType string `pulumi:"containerType"` // The full Google Cloud Storage URL where the raw disk image archive is stored. The following are valid formats for the URL: - https://storage.googleapis.com/bucket_name/image_archive_name - https://storage.googleapis.com/bucket_name/folder_name/ image_archive_name In order to create an image, you must provide the full or partial URL of one of the following: - The rawDisk.source URL - The sourceDisk URL - The sourceImage URL - The sourceSnapshot URL Source string `pulumi:"source"` } // The parameters of the raw disk image. type ImageRawDiskResponseOutput struct{ *pulumi.OutputState } func (ImageRawDiskResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*ImageRawDiskResponse)(nil)).Elem() } func (o ImageRawDiskResponseOutput) ToImageRawDiskResponseOutput() ImageRawDiskResponseOutput { return o } func (o ImageRawDiskResponseOutput) ToImageRawDiskResponseOutputWithContext(ctx context.Context) ImageRawDiskResponseOutput { return o } // The format used to encode and transmit the block device, which should be TAR. This is just a container and transmission format and not a runtime format. Provided by the client when the disk image is created. func (o ImageRawDiskResponseOutput) ContainerType() pulumi.StringOutput { return o.ApplyT(func(v ImageRawDiskResponse) string { return v.ContainerType }).(pulumi.StringOutput) } // The full Google Cloud Storage URL where the raw disk image archive is stored. The following are valid formats for the URL: - https://storage.googleapis.com/bucket_name/image_archive_name - https://storage.googleapis.com/bucket_name/folder_name/ image_archive_name In order to create an image, you must provide the full or partial URL of one of the following: - The rawDisk.source URL - The sourceDisk URL - The sourceImage URL - The sourceSnapshot URL func (o ImageRawDiskResponseOutput) Source() pulumi.StringOutput { return o.ApplyT(func(v ImageRawDiskResponse) string { return v.Source }).(pulumi.StringOutput) } // Initial State for shielded instance, these are public keys which are safe to store in public type InitialStateConfig struct { // The Key Database (db). Dbs []FileContentBuffer `pulumi:"dbs"` // The forbidden key database (dbx). Dbxs []FileContentBuffer `pulumi:"dbxs"` // The Key Exchange Key (KEK). Keks []FileContentBuffer `pulumi:"keks"` // The Platform Key (PK). Pk *FileContentBuffer `pulumi:"pk"` } // InitialStateConfigInput is an input type that accepts InitialStateConfigArgs and InitialStateConfigOutput values. // You can construct a concrete instance of `InitialStateConfigInput` via: // // InitialStateConfigArgs{...} type InitialStateConfigInput interface { pulumi.Input ToInitialStateConfigOutput() InitialStateConfigOutput ToInitialStateConfigOutputWithContext(context.Context) InitialStateConfigOutput } // Initial State for shielded instance, these are public keys which are safe to store in public type InitialStateConfigArgs struct { // The Key Database (db). Dbs FileContentBufferArrayInput `pulumi:"dbs"` // The forbidden key database (dbx). Dbxs FileContentBufferArrayInput `pulumi:"dbxs"` // The Key Exchange Key (KEK). Keks FileContentBufferArrayInput `pulumi:"keks"` // The Platform Key (PK). Pk FileContentBufferPtrInput `pulumi:"pk"` } func (InitialStateConfigArgs) ElementType() reflect.Type { return reflect.TypeOf((*InitialStateConfig)(nil)).Elem() } func (i InitialStateConfigArgs) ToInitialStateConfigOutput() InitialStateConfigOutput { return i.ToInitialStateConfigOutputWithContext(context.Background()) } func (i InitialStateConfigArgs) ToInitialStateConfigOutputWithContext(ctx context.Context) InitialStateConfigOutput { return pulumi.ToOutputWithContext(ctx, i).(InitialStateConfigOutput) } func (i InitialStateConfigArgs) ToInitialStateConfigPtrOutput() InitialStateConfigPtrOutput { return i.ToInitialStateConfigPtrOutputWithContext(context.Background()) } func (i InitialStateConfigArgs) ToInitialStateConfigPtrOutputWithContext(ctx context.Context) InitialStateConfigPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(InitialStateConfigOutput).ToInitialStateConfigPtrOutputWithContext(ctx) } // InitialStateConfigPtrInput is an input type that accepts InitialStateConfigArgs, InitialStateConfigPtr and InitialStateConfigPtrOutput values. // You can construct a concrete instance of `InitialStateConfigPtrInput` via: // // InitialStateConfigArgs{...} // // or: // // nil type InitialStateConfigPtrInput interface { pulumi.Input ToInitialStateConfigPtrOutput() InitialStateConfigPtrOutput ToInitialStateConfigPtrOutputWithContext(context.Context) InitialStateConfigPtrOutput } type initialStateConfigPtrType InitialStateConfigArgs func InitialStateConfigPtr(v *InitialStateConfigArgs) InitialStateConfigPtrInput { return (*initialStateConfigPtrType)(v) } func (*initialStateConfigPtrType) ElementType() reflect.Type { return reflect.TypeOf((**InitialStateConfig)(nil)).Elem() } func (i *initialStateConfigPtrType) ToInitialStateConfigPtrOutput() InitialStateConfigPtrOutput { return i.ToInitialStateConfigPtrOutputWithContext(context.Background()) } func (i *initialStateConfigPtrType) ToInitialStateConfigPtrOutputWithContext(ctx context.Context) InitialStateConfigPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(InitialStateConfigPtrOutput) } // Initial State for shielded instance, these are public keys which are safe to store in public type InitialStateConfigOutput struct{ *pulumi.OutputState } func (InitialStateConfigOutput) ElementType() reflect.Type { return reflect.TypeOf((*InitialStateConfig)(nil)).Elem() } func (o InitialStateConfigOutput) ToInitialStateConfigOutput() InitialStateConfigOutput { return o } func (o InitialStateConfigOutput) ToInitialStateConfigOutputWithContext(ctx context.Context) InitialStateConfigOutput { return o } func (o InitialStateConfigOutput) ToInitialStateConfigPtrOutput() InitialStateConfigPtrOutput { return o.ToInitialStateConfigPtrOutputWithContext(context.Background()) } func (o InitialStateConfigOutput) ToInitialStateConfigPtrOutputWithContext(ctx context.Context) InitialStateConfigPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v InitialStateConfig) *InitialStateConfig { return &v }).(InitialStateConfigPtrOutput) } // The Key Database (db). func (o InitialStateConfigOutput) Dbs() FileContentBufferArrayOutput { return o.ApplyT(func(v InitialStateConfig) []FileContentBuffer { return v.Dbs }).(FileContentBufferArrayOutput) } // The forbidden key database (dbx). func (o InitialStateConfigOutput) Dbxs() FileContentBufferArrayOutput { return o.ApplyT(func(v InitialStateConfig) []FileContentBuffer { return v.Dbxs }).(FileContentBufferArrayOutput) } // The Key Exchange Key (KEK). func (o InitialStateConfigOutput) Keks() FileContentBufferArrayOutput { return o.ApplyT(func(v InitialStateConfig) []FileContentBuffer { return v.Keks }).(FileContentBufferArrayOutput) } // The Platform Key (PK). func (o InitialStateConfigOutput) Pk() FileContentBufferPtrOutput { return o.ApplyT(func(v InitialStateConfig) *FileContentBuffer { return v.Pk }).(FileContentBufferPtrOutput) } type InitialStateConfigPtrOutput struct{ *pulumi.OutputState } func (InitialStateConfigPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**InitialStateConfig)(nil)).Elem() } func (o InitialStateConfigPtrOutput) ToInitialStateConfigPtrOutput() InitialStateConfigPtrOutput { return o } func (o InitialStateConfigPtrOutput) ToInitialStateConfigPtrOutputWithContext(ctx context.Context) InitialStateConfigPtrOutput { return o } func (o InitialStateConfigPtrOutput) Elem() InitialStateConfigOutput { return o.ApplyT(func(v *InitialStateConfig) InitialStateConfig { if v != nil { return *v } var ret InitialStateConfig return ret }).(InitialStateConfigOutput) } // The Key Database (db). func (o InitialStateConfigPtrOutput) Dbs() FileContentBufferArrayOutput { return o.ApplyT(func(v *InitialStateConfig) []FileContentBuffer { if v == nil { return nil } return v.Dbs }).(FileContentBufferArrayOutput) } // The forbidden key database (dbx). func (o InitialStateConfigPtrOutput) Dbxs() FileContentBufferArrayOutput { return o.ApplyT(func(v *InitialStateConfig) []FileContentBuffer { if v == nil { return nil } return v.Dbxs }).(FileContentBufferArrayOutput) } // The Key Exchange Key (KEK). func (o InitialStateConfigPtrOutput) Keks() FileContentBufferArrayOutput { return o.ApplyT(func(v *InitialStateConfig) []FileContentBuffer { if v == nil { return nil } return v.Keks }).(FileContentBufferArrayOutput) } // The Platform Key (PK). func (o InitialStateConfigPtrOutput) Pk() FileContentBufferPtrOutput { return o.ApplyT(func(v *InitialStateConfig) *FileContentBuffer { if v == nil { return nil } return v.Pk }).(FileContentBufferPtrOutput) } // Initial State for shielded instance, these are public keys which are safe to store in public type InitialStateConfigResponse struct { // The Key Database (db). Dbs []FileContentBufferResponse `pulumi:"dbs"` // The forbidden key database (dbx). Dbxs []FileContentBufferResponse `pulumi:"dbxs"` // The Key Exchange Key (KEK). Keks []FileContentBufferResponse `pulumi:"keks"` // The Platform Key (PK). Pk FileContentBufferResponse `pulumi:"pk"` } // Initial State for shielded instance, these are public keys which are safe to store in public type InitialStateConfigResponseOutput struct{ *pulumi.OutputState } func (InitialStateConfigResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*InitialStateConfigResponse)(nil)).Elem() } func (o InitialStateConfigResponseOutput) ToInitialStateConfigResponseOutput() InitialStateConfigResponseOutput { return o } func (o InitialStateConfigResponseOutput) ToInitialStateConfigResponseOutputWithContext(ctx context.Context) InitialStateConfigResponseOutput { return o } // The Key Database (db). func (o InitialStateConfigResponseOutput) Dbs() FileContentBufferResponseArrayOutput { return o.ApplyT(func(v InitialStateConfigResponse) []FileContentBufferResponse { return v.Dbs }).(FileContentBufferResponseArrayOutput) } // The forbidden key database (dbx). func (o InitialStateConfigResponseOutput) Dbxs() FileContentBufferResponseArrayOutput { return o.ApplyT(func(v InitialStateConfigResponse) []FileContentBufferResponse { return v.Dbxs }).(FileContentBufferResponseArrayOutput) } // The Key Exchange Key (KEK). func (o InitialStateConfigResponseOutput) Keks() FileContentBufferResponseArrayOutput { return o.ApplyT(func(v InitialStateConfigResponse) []FileContentBufferResponse { return v.Keks }).(FileContentBufferResponseArrayOutput) } // The Platform Key (PK). func (o InitialStateConfigResponseOutput) Pk() FileContentBufferResponseOutput { return o.ApplyT(func(v InitialStateConfigResponse) FileContentBufferResponse { return v.Pk }).(FileContentBufferResponseOutput) } type InstanceGroupManagerActionsSummaryResponse struct { // The total number of instances in the managed instance group that are scheduled to be abandoned. Abandoning an instance removes it from the managed instance group without deleting it. Abandoning int `pulumi:"abandoning"` // The number of instances in the managed instance group that are scheduled to be created or are currently being created. If the group fails to create any of these instances, it tries again until it creates the instance successfully. If you have disabled creation retries, this field will not be populated; instead, the creatingWithoutRetries field will be populated. Creating int `pulumi:"creating"` // The number of instances that the managed instance group will attempt to create. The group attempts to create each instance only once. If the group fails to create any of these instances, it decreases the group's targetSize value accordingly. CreatingWithoutRetries int `pulumi:"creatingWithoutRetries"` // The number of instances in the managed instance group that are scheduled to be deleted or are currently being deleted. Deleting int `pulumi:"deleting"` // The number of instances in the managed instance group that are running and have no scheduled actions. None int `pulumi:"none"` // The number of instances in the managed instance group that are scheduled to be recreated or are currently being being recreated. Recreating an instance deletes the existing root persistent disk and creates a new disk from the image that is defined in the instance template. Recreating int `pulumi:"recreating"` // The number of instances in the managed instance group that are being reconfigured with properties that do not require a restart or a recreate action. For example, setting or removing target pools for the instance. Refreshing int `pulumi:"refreshing"` // The number of instances in the managed instance group that are scheduled to be restarted or are currently being restarted. Restarting int `pulumi:"restarting"` // The number of instances in the managed instance group that are scheduled to be resumed or are currently being resumed. Resuming int `pulumi:"resuming"` // The number of instances in the managed instance group that are scheduled to be started or are currently being started. Starting int `pulumi:"starting"` // The number of instances in the managed instance group that are scheduled to be stopped or are currently being stopped. Stopping int `pulumi:"stopping"` // The number of instances in the managed instance group that are scheduled to be suspended or are currently being suspended. Suspending int `pulumi:"suspending"` // The number of instances in the managed instance group that are being verified. See the managedInstances[].currentAction property in the listManagedInstances method documentation. Verifying int `pulumi:"verifying"` } type InstanceGroupManagerActionsSummaryResponseOutput struct{ *pulumi.OutputState } func (InstanceGroupManagerActionsSummaryResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*InstanceGroupManagerActionsSummaryResponse)(nil)).Elem() } func (o InstanceGroupManagerActionsSummaryResponseOutput) ToInstanceGroupManagerActionsSummaryResponseOutput() InstanceGroupManagerActionsSummaryResponseOutput { return o } func (o InstanceGroupManagerActionsSummaryResponseOutput) ToInstanceGroupManagerActionsSummaryResponseOutputWithContext(ctx context.Context) InstanceGroupManagerActionsSummaryResponseOutput { return o } // The total number of instances in the managed instance group that are scheduled to be abandoned. Abandoning an instance removes it from the managed instance group without deleting it. func (o InstanceGroupManagerActionsSummaryResponseOutput) Abandoning() pulumi.IntOutput { return o.ApplyT(func(v InstanceGroupManagerActionsSummaryResponse) int { return v.Abandoning }).(pulumi.IntOutput) } // The number of instances in the managed instance group that are scheduled to be created or are currently being created. If the group fails to create any of these instances, it tries again until it creates the instance successfully. If you have disabled creation retries, this field will not be populated; instead, the creatingWithoutRetries field will be populated. func (o InstanceGroupManagerActionsSummaryResponseOutput) Creating() pulumi.IntOutput { return o.ApplyT(func(v InstanceGroupManagerActionsSummaryResponse) int { return v.Creating }).(pulumi.IntOutput) } // The number of instances that the managed instance group will attempt to create. The group attempts to create each instance only once. If the group fails to create any of these instances, it decreases the group's targetSize value accordingly. func (o InstanceGroupManagerActionsSummaryResponseOutput) CreatingWithoutRetries() pulumi.IntOutput { return o.ApplyT(func(v InstanceGroupManagerActionsSummaryResponse) int { return v.CreatingWithoutRetries }).(pulumi.IntOutput) } // The number of instances in the managed instance group that are scheduled to be deleted or are currently being deleted. func (o InstanceGroupManagerActionsSummaryResponseOutput) Deleting() pulumi.IntOutput { return o.ApplyT(func(v InstanceGroupManagerActionsSummaryResponse) int { return v.Deleting }).(pulumi.IntOutput) } // The number of instances in the managed instance group that are running and have no scheduled actions. func (o InstanceGroupManagerActionsSummaryResponseOutput) None() pulumi.IntOutput { return o.ApplyT(func(v InstanceGroupManagerActionsSummaryResponse) int { return v.None }).(pulumi.IntOutput) } // The number of instances in the managed instance group that are scheduled to be recreated or are currently being being recreated. Recreating an instance deletes the existing root persistent disk and creates a new disk from the image that is defined in the instance template. func (o InstanceGroupManagerActionsSummaryResponseOutput) Recreating() pulumi.IntOutput { return o.ApplyT(func(v InstanceGroupManagerActionsSummaryResponse) int { return v.Recreating }).(pulumi.IntOutput) } // The number of instances in the managed instance group that are being reconfigured with properties that do not require a restart or a recreate action. For example, setting or removing target pools for the instance. func (o InstanceGroupManagerActionsSummaryResponseOutput) Refreshing() pulumi.IntOutput { return o.ApplyT(func(v InstanceGroupManagerActionsSummaryResponse) int { return v.Refreshing }).(pulumi.IntOutput) } // The number of instances in the managed instance group that are scheduled to be restarted or are currently being restarted. func (o InstanceGroupManagerActionsSummaryResponseOutput) Restarting() pulumi.IntOutput { return o.ApplyT(func(v InstanceGroupManagerActionsSummaryResponse) int { return v.Restarting }).(pulumi.IntOutput) } // The number of instances in the managed instance group that are scheduled to be resumed or are currently being resumed. func (o InstanceGroupManagerActionsSummaryResponseOutput) Resuming() pulumi.IntOutput { return o.ApplyT(func(v InstanceGroupManagerActionsSummaryResponse) int { return v.Resuming }).(pulumi.IntOutput) } // The number of instances in the managed instance group that are scheduled to be started or are currently being started. func (o InstanceGroupManagerActionsSummaryResponseOutput) Starting() pulumi.IntOutput { return o.ApplyT(func(v InstanceGroupManagerActionsSummaryResponse) int { return v.Starting }).(pulumi.IntOutput) } // The number of instances in the managed instance group that are scheduled to be stopped or are currently being stopped. func (o InstanceGroupManagerActionsSummaryResponseOutput) Stopping() pulumi.IntOutput { return o.ApplyT(func(v InstanceGroupManagerActionsSummaryResponse) int { return v.Stopping }).(pulumi.IntOutput) } // The number of instances in the managed instance group that are scheduled to be suspended or are currently being suspended. func (o InstanceGroupManagerActionsSummaryResponseOutput) Suspending() pulumi.IntOutput { return o.ApplyT(func(v InstanceGroupManagerActionsSummaryResponse) int { return v.Suspending }).(pulumi.IntOutput) } // The number of instances in the managed instance group that are being verified. See the managedInstances[].currentAction property in the listManagedInstances method documentation. func (o InstanceGroupManagerActionsSummaryResponseOutput) Verifying() pulumi.IntOutput { return o.ApplyT(func(v InstanceGroupManagerActionsSummaryResponse) int { return v.Verifying }).(pulumi.IntOutput) } type InstanceGroupManagerAutoHealingPolicy struct { // The URL for the health check that signals autohealing. HealthCheck *string `pulumi:"healthCheck"` // The number of seconds that the managed instance group waits before it applies autohealing policies to new instances or recently recreated instances. This initial delay allows instances to initialize and run their startup scripts before the instance group determines that they are UNHEALTHY. This prevents the managed instance group from recreating its instances prematurely. This value must be from range [0, 3600]. InitialDelaySec *int `pulumi:"initialDelaySec"` } // InstanceGroupManagerAutoHealingPolicyInput is an input type that accepts InstanceGroupManagerAutoHealingPolicyArgs and InstanceGroupManagerAutoHealingPolicyOutput values. // You can construct a concrete instance of `InstanceGroupManagerAutoHealingPolicyInput` via: // // InstanceGroupManagerAutoHealingPolicyArgs{...} type InstanceGroupManagerAutoHealingPolicyInput interface { pulumi.Input ToInstanceGroupManagerAutoHealingPolicyOutput() InstanceGroupManagerAutoHealingPolicyOutput ToInstanceGroupManagerAutoHealingPolicyOutputWithContext(context.Context) InstanceGroupManagerAutoHealingPolicyOutput } type InstanceGroupManagerAutoHealingPolicyArgs struct { // The URL for the health check that signals autohealing. HealthCheck pulumi.StringPtrInput `pulumi:"healthCheck"` // The number of seconds that the managed instance group waits before it applies autohealing policies to new instances or recently recreated instances. This initial delay allows instances to initialize and run their startup scripts before the instance group determines that they are UNHEALTHY. This prevents the managed instance group from recreating its instances prematurely. This value must be from range [0, 3600]. InitialDelaySec pulumi.IntPtrInput `pulumi:"initialDelaySec"` } func (InstanceGroupManagerAutoHealingPolicyArgs) ElementType() reflect.Type { return reflect.TypeOf((*InstanceGroupManagerAutoHealingPolicy)(nil)).Elem() } func (i InstanceGroupManagerAutoHealingPolicyArgs) ToInstanceGroupManagerAutoHealingPolicyOutput() InstanceGroupManagerAutoHealingPolicyOutput { return i.ToInstanceGroupManagerAutoHealingPolicyOutputWithContext(context.Background()) } func (i InstanceGroupManagerAutoHealingPolicyArgs) ToInstanceGroupManagerAutoHealingPolicyOutputWithContext(ctx context.Context) InstanceGroupManagerAutoHealingPolicyOutput { return pulumi.ToOutputWithContext(ctx, i).(InstanceGroupManagerAutoHealingPolicyOutput) } // InstanceGroupManagerAutoHealingPolicyArrayInput is an input type that accepts InstanceGroupManagerAutoHealingPolicyArray and InstanceGroupManagerAutoHealingPolicyArrayOutput values. // You can construct a concrete instance of `InstanceGroupManagerAutoHealingPolicyArrayInput` via: // // InstanceGroupManagerAutoHealingPolicyArray{ InstanceGroupManagerAutoHealingPolicyArgs{...} } type InstanceGroupManagerAutoHealingPolicyArrayInput interface { pulumi.Input ToInstanceGroupManagerAutoHealingPolicyArrayOutput() InstanceGroupManagerAutoHealingPolicyArrayOutput ToInstanceGroupManagerAutoHealingPolicyArrayOutputWithContext(context.Context) InstanceGroupManagerAutoHealingPolicyArrayOutput } type InstanceGroupManagerAutoHealingPolicyArray []InstanceGroupManagerAutoHealingPolicyInput func (InstanceGroupManagerAutoHealingPolicyArray) ElementType() reflect.Type { return reflect.TypeOf((*[]InstanceGroupManagerAutoHealingPolicy)(nil)).Elem() } func (i InstanceGroupManagerAutoHealingPolicyArray) ToInstanceGroupManagerAutoHealingPolicyArrayOutput() InstanceGroupManagerAutoHealingPolicyArrayOutput { return i.ToInstanceGroupManagerAutoHealingPolicyArrayOutputWithContext(context.Background()) } func (i InstanceGroupManagerAutoHealingPolicyArray) ToInstanceGroupManagerAutoHealingPolicyArrayOutputWithContext(ctx context.Context) InstanceGroupManagerAutoHealingPolicyArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(InstanceGroupManagerAutoHealingPolicyArrayOutput) } type InstanceGroupManagerAutoHealingPolicyOutput struct{ *pulumi.OutputState } func (InstanceGroupManagerAutoHealingPolicyOutput) ElementType() reflect.Type { return reflect.TypeOf((*InstanceGroupManagerAutoHealingPolicy)(nil)).Elem() } func (o InstanceGroupManagerAutoHealingPolicyOutput) ToInstanceGroupManagerAutoHealingPolicyOutput() InstanceGroupManagerAutoHealingPolicyOutput { return o } func (o InstanceGroupManagerAutoHealingPolicyOutput) ToInstanceGroupManagerAutoHealingPolicyOutputWithContext(ctx context.Context) InstanceGroupManagerAutoHealingPolicyOutput { return o } // The URL for the health check that signals autohealing. func (o InstanceGroupManagerAutoHealingPolicyOutput) HealthCheck() pulumi.StringPtrOutput { return o.ApplyT(func(v InstanceGroupManagerAutoHealingPolicy) *string { return v.HealthCheck }).(pulumi.StringPtrOutput) } // The number of seconds that the managed instance group waits before it applies autohealing policies to new instances or recently recreated instances. This initial delay allows instances to initialize and run their startup scripts before the instance group determines that they are UNHEALTHY. This prevents the managed instance group from recreating its instances prematurely. This value must be from range [0, 3600]. func (o InstanceGroupManagerAutoHealingPolicyOutput) InitialDelaySec() pulumi.IntPtrOutput { return o.ApplyT(func(v InstanceGroupManagerAutoHealingPolicy) *int { return v.InitialDelaySec }).(pulumi.IntPtrOutput) } type InstanceGroupManagerAutoHealingPolicyArrayOutput struct{ *pulumi.OutputState } func (InstanceGroupManagerAutoHealingPolicyArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]InstanceGroupManagerAutoHealingPolicy)(nil)).Elem() } func (o InstanceGroupManagerAutoHealingPolicyArrayOutput) ToInstanceGroupManagerAutoHealingPolicyArrayOutput() InstanceGroupManagerAutoHealingPolicyArrayOutput { return o } func (o InstanceGroupManagerAutoHealingPolicyArrayOutput) ToInstanceGroupManagerAutoHealingPolicyArrayOutputWithContext(ctx context.Context) InstanceGroupManagerAutoHealingPolicyArrayOutput { return o } func (o InstanceGroupManagerAutoHealingPolicyArrayOutput) Index(i pulumi.IntInput) InstanceGroupManagerAutoHealingPolicyOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) InstanceGroupManagerAutoHealingPolicy { return vs[0].([]InstanceGroupManagerAutoHealingPolicy)[vs[1].(int)] }).(InstanceGroupManagerAutoHealingPolicyOutput) } type InstanceGroupManagerAutoHealingPolicyResponse struct { // The URL for the health check that signals autohealing. HealthCheck string `pulumi:"healthCheck"` // The number of seconds that the managed instance group waits before it applies autohealing policies to new instances or recently recreated instances. This initial delay allows instances to initialize and run their startup scripts before the instance group determines that they are UNHEALTHY. This prevents the managed instance group from recreating its instances prematurely. This value must be from range [0, 3600]. InitialDelaySec int `pulumi:"initialDelaySec"` } type InstanceGroupManagerAutoHealingPolicyResponseOutput struct{ *pulumi.OutputState } func (InstanceGroupManagerAutoHealingPolicyResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*InstanceGroupManagerAutoHealingPolicyResponse)(nil)).Elem() } func (o InstanceGroupManagerAutoHealingPolicyResponseOutput) ToInstanceGroupManagerAutoHealingPolicyResponseOutput() InstanceGroupManagerAutoHealingPolicyResponseOutput { return o } func (o InstanceGroupManagerAutoHealingPolicyResponseOutput) ToInstanceGroupManagerAutoHealingPolicyResponseOutputWithContext(ctx context.Context) InstanceGroupManagerAutoHealingPolicyResponseOutput { return o } // The URL for the health check that signals autohealing. func (o InstanceGroupManagerAutoHealingPolicyResponseOutput) HealthCheck() pulumi.StringOutput { return o.ApplyT(func(v InstanceGroupManagerAutoHealingPolicyResponse) string { return v.HealthCheck }).(pulumi.StringOutput) } // The number of seconds that the managed instance group waits before it applies autohealing policies to new instances or recently recreated instances. This initial delay allows instances to initialize and run their startup scripts before the instance group determines that they are UNHEALTHY. This prevents the managed instance group from recreating its instances prematurely. This value must be from range [0, 3600]. func (o InstanceGroupManagerAutoHealingPolicyResponseOutput) InitialDelaySec() pulumi.IntOutput { return o.ApplyT(func(v InstanceGroupManagerAutoHealingPolicyResponse) int { return v.InitialDelaySec }).(pulumi.IntOutput) } type InstanceGroupManagerAutoHealingPolicyResponseArrayOutput struct{ *pulumi.OutputState } func (InstanceGroupManagerAutoHealingPolicyResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]InstanceGroupManagerAutoHealingPolicyResponse)(nil)).Elem() } func (o InstanceGroupManagerAutoHealingPolicyResponseArrayOutput) ToInstanceGroupManagerAutoHealingPolicyResponseArrayOutput() InstanceGroupManagerAutoHealingPolicyResponseArrayOutput { return o } func (o InstanceGroupManagerAutoHealingPolicyResponseArrayOutput) ToInstanceGroupManagerAutoHealingPolicyResponseArrayOutputWithContext(ctx context.Context) InstanceGroupManagerAutoHealingPolicyResponseArrayOutput { return o } func (o InstanceGroupManagerAutoHealingPolicyResponseArrayOutput) Index(i pulumi.IntInput) InstanceGroupManagerAutoHealingPolicyResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) InstanceGroupManagerAutoHealingPolicyResponse { return vs[0].([]InstanceGroupManagerAutoHealingPolicyResponse)[vs[1].(int)] }).(InstanceGroupManagerAutoHealingPolicyResponseOutput) } type InstanceGroupManagerStatusResponse struct { // The URL of the Autoscaler that targets this instance group manager. Autoscaler string `pulumi:"autoscaler"` // A bit indicating whether the managed instance group is in a stable state. A stable state means that: none of the instances in the managed instance group is currently undergoing any type of change (for example, creation, restart, or deletion); no future changes are scheduled for instances in the managed instance group; and the managed instance group itself is not being modified. IsStable bool `pulumi:"isStable"` // Stateful status of the given Instance Group Manager. Stateful InstanceGroupManagerStatusStatefulResponse `pulumi:"stateful"` // A status of consistency of Instances' versions with their target version specified by version field on Instance Group Manager. VersionTarget InstanceGroupManagerStatusVersionTargetResponse `pulumi:"versionTarget"` } type InstanceGroupManagerStatusResponseOutput struct{ *pulumi.OutputState } func (InstanceGroupManagerStatusResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*InstanceGroupManagerStatusResponse)(nil)).Elem() } func (o InstanceGroupManagerStatusResponseOutput) ToInstanceGroupManagerStatusResponseOutput() InstanceGroupManagerStatusResponseOutput { return o } func (o InstanceGroupManagerStatusResponseOutput) ToInstanceGroupManagerStatusResponseOutputWithContext(ctx context.Context) InstanceGroupManagerStatusResponseOutput { return o } // The URL of the Autoscaler that targets this instance group manager. func (o InstanceGroupManagerStatusResponseOutput) Autoscaler() pulumi.StringOutput { return o.ApplyT(func(v InstanceGroupManagerStatusResponse) string { return v.Autoscaler }).(pulumi.StringOutput) } // A bit indicating whether the managed instance group is in a stable state. A stable state means that: none of the instances in the managed instance group is currently undergoing any type of change (for example, creation, restart, or deletion); no future changes are scheduled for instances in the managed instance group; and the managed instance group itself is not being modified. func (o InstanceGroupManagerStatusResponseOutput) IsStable() pulumi.BoolOutput { return o.ApplyT(func(v InstanceGroupManagerStatusResponse) bool { return v.IsStable }).(pulumi.BoolOutput) } // Stateful status of the given Instance Group Manager. func (o InstanceGroupManagerStatusResponseOutput) Stateful() InstanceGroupManagerStatusStatefulResponseOutput { return o.ApplyT(func(v InstanceGroupManagerStatusResponse) InstanceGroupManagerStatusStatefulResponse { return v.Stateful }).(InstanceGroupManagerStatusStatefulResponseOutput) } // A status of consistency of Instances' versions with their target version specified by version field on Instance Group Manager. func (o InstanceGroupManagerStatusResponseOutput) VersionTarget() InstanceGroupManagerStatusVersionTargetResponseOutput { return o.ApplyT(func(v InstanceGroupManagerStatusResponse) InstanceGroupManagerStatusVersionTargetResponse { return v.VersionTarget }).(InstanceGroupManagerStatusVersionTargetResponseOutput) } type InstanceGroupManagerStatusStatefulPerInstanceConfigsResponse struct { // A bit indicating if all of the group's per-instance configs (listed in the output of a listPerInstanceConfigs API call) have status EFFECTIVE or there are no per-instance-configs. AllEffective bool `pulumi:"allEffective"` } type InstanceGroupManagerStatusStatefulPerInstanceConfigsResponseOutput struct{ *pulumi.OutputState } func (InstanceGroupManagerStatusStatefulPerInstanceConfigsResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*InstanceGroupManagerStatusStatefulPerInstanceConfigsResponse)(nil)).Elem() } func (o InstanceGroupManagerStatusStatefulPerInstanceConfigsResponseOutput) ToInstanceGroupManagerStatusStatefulPerInstanceConfigsResponseOutput() InstanceGroupManagerStatusStatefulPerInstanceConfigsResponseOutput { return o } func (o InstanceGroupManagerStatusStatefulPerInstanceConfigsResponseOutput) ToInstanceGroupManagerStatusStatefulPerInstanceConfigsResponseOutputWithContext(ctx context.Context) InstanceGroupManagerStatusStatefulPerInstanceConfigsResponseOutput { return o } // A bit indicating if all of the group's per-instance configs (listed in the output of a listPerInstanceConfigs API call) have status EFFECTIVE or there are no per-instance-configs. func (o InstanceGroupManagerStatusStatefulPerInstanceConfigsResponseOutput) AllEffective() pulumi.BoolOutput { return o.ApplyT(func(v InstanceGroupManagerStatusStatefulPerInstanceConfigsResponse) bool { return v.AllEffective }).(pulumi.BoolOutput) } type InstanceGroupManagerStatusStatefulResponse struct { // A bit indicating whether the managed instance group has stateful configuration, that is, if you have configured any items in a stateful policy or in per-instance configs. The group might report that it has no stateful config even when there is still some preserved state on a managed instance, for example, if you have deleted all PICs but not yet applied those deletions. HasStatefulConfig bool `pulumi:"hasStatefulConfig"` // Status of per-instance configs on the instance. PerInstanceConfigs InstanceGroupManagerStatusStatefulPerInstanceConfigsResponse `pulumi:"perInstanceConfigs"` } type InstanceGroupManagerStatusStatefulResponseOutput struct{ *pulumi.OutputState } func (InstanceGroupManagerStatusStatefulResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*InstanceGroupManagerStatusStatefulResponse)(nil)).Elem() } func (o InstanceGroupManagerStatusStatefulResponseOutput) ToInstanceGroupManagerStatusStatefulResponseOutput() InstanceGroupManagerStatusStatefulResponseOutput { return o } func (o InstanceGroupManagerStatusStatefulResponseOutput) ToInstanceGroupManagerStatusStatefulResponseOutputWithContext(ctx context.Context) InstanceGroupManagerStatusStatefulResponseOutput { return o } // A bit indicating whether the managed instance group has stateful configuration, that is, if you have configured any items in a stateful policy or in per-instance configs. The group might report that it has no stateful config even when there is still some preserved state on a managed instance, for example, if you have deleted all PICs but not yet applied those deletions. func (o InstanceGroupManagerStatusStatefulResponseOutput) HasStatefulConfig() pulumi.BoolOutput { return o.ApplyT(func(v InstanceGroupManagerStatusStatefulResponse) bool { return v.HasStatefulConfig }).(pulumi.BoolOutput) } // Status of per-instance configs on the instance. func (o InstanceGroupManagerStatusStatefulResponseOutput) PerInstanceConfigs() InstanceGroupManagerStatusStatefulPerInstanceConfigsResponseOutput { return o.ApplyT(func(v InstanceGroupManagerStatusStatefulResponse) InstanceGroupManagerStatusStatefulPerInstanceConfigsResponse { return v.PerInstanceConfigs }).(InstanceGroupManagerStatusStatefulPerInstanceConfigsResponseOutput) } type InstanceGroupManagerStatusVersionTargetResponse struct { // A bit indicating whether version target has been reached in this managed instance group, i.e. all instances are in their target version. Instances' target version are specified by version field on Instance Group Manager. IsReached bool `pulumi:"isReached"` } type InstanceGroupManagerStatusVersionTargetResponseOutput struct{ *pulumi.OutputState } func (InstanceGroupManagerStatusVersionTargetResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*InstanceGroupManagerStatusVersionTargetResponse)(nil)).Elem() } func (o InstanceGroupManagerStatusVersionTargetResponseOutput) ToInstanceGroupManagerStatusVersionTargetResponseOutput() InstanceGroupManagerStatusVersionTargetResponseOutput { return o } func (o InstanceGroupManagerStatusVersionTargetResponseOutput) ToInstanceGroupManagerStatusVersionTargetResponseOutputWithContext(ctx context.Context) InstanceGroupManagerStatusVersionTargetResponseOutput { return o } // A bit indicating whether version target has been reached in this managed instance group, i.e. all instances are in their target version. Instances' target version are specified by version field on Instance Group Manager. func (o InstanceGroupManagerStatusVersionTargetResponseOutput) IsReached() pulumi.BoolOutput { return o.ApplyT(func(v InstanceGroupManagerStatusVersionTargetResponse) bool { return v.IsReached }).(pulumi.BoolOutput) } type InstanceGroupManagerUpdatePolicy struct { // The instance redistribution policy for regional managed instance groups. Valid values are: - PROACTIVE (default): The group attempts to maintain an even distribution of VM instances across zones in the region. - NONE: For non-autoscaled groups, proactive redistribution is disabled. InstanceRedistributionType *InstanceGroupManagerUpdatePolicyInstanceRedistributionType `pulumi:"instanceRedistributionType"` // The maximum number of instances that can be created above the specified targetSize during the update process. This value can be either a fixed number or, if the group has 10 or more instances, a percentage. If you set a percentage, the number of instances is rounded if necessary. The default value for maxSurge is a fixed value equal to the number of zones in which the managed instance group operates. At least one of either maxSurge or maxUnavailable must be greater than 0. Learn more about maxSurge. MaxSurge *FixedOrPercent `pulumi:"maxSurge"` // The maximum number of instances that can be unavailable during the update process. An instance is considered available if all of the following conditions are satisfied: - The instance's status is RUNNING. - If there is a health check on the instance group, the instance's health check status must be HEALTHY at least once. If there is no health check on the group, then the instance only needs to have a status of RUNNING to be considered available. This value can be either a fixed number or, if the group has 10 or more instances, a percentage. If you set a percentage, the number of instances is rounded if necessary. The default value for maxUnavailable is a fixed value equal to the number of zones in which the managed instance group operates. At least one of either maxSurge or maxUnavailable must be greater than 0. Learn more about maxUnavailable. MaxUnavailable *FixedOrPercent `pulumi:"maxUnavailable"` // Minimal action to be taken on an instance. You can specify either RESTART to restart existing instances or REPLACE to delete and create new instances from the target template. If you specify a RESTART, the Updater will attempt to perform that action only. However, if the Updater determines that the minimal action you specify is not enough to perform the update, it might perform a more disruptive action. MinimalAction *InstanceGroupManagerUpdatePolicyMinimalAction `pulumi:"minimalAction"` // Most disruptive action that is allowed to be taken on an instance. You can specify either NONE to forbid any actions, REFRESH to allow actions that do not need instance restart, RESTART to allow actions that can be applied without instance replacing or REPLACE to allow all possible actions. If the Updater determines that the minimal update action needed is more disruptive than most disruptive allowed action you specify it will not perform the update at all. MostDisruptiveAllowedAction *InstanceGroupManagerUpdatePolicyMostDisruptiveAllowedAction `pulumi:"mostDisruptiveAllowedAction"` // What action should be used to replace instances. See minimal_action.REPLACE ReplacementMethod *InstanceGroupManagerUpdatePolicyReplacementMethod `pulumi:"replacementMethod"` // The type of update process. You can specify either PROACTIVE so that the instance group manager proactively executes actions in order to bring instances to their target versions or OPPORTUNISTIC so that no action is proactively executed but the update will be performed as part of other actions (for example, resizes or recreateInstances calls). Type *InstanceGroupManagerUpdatePolicyType `pulumi:"type"` } // InstanceGroupManagerUpdatePolicyInput is an input type that accepts InstanceGroupManagerUpdatePolicyArgs and InstanceGroupManagerUpdatePolicyOutput values. // You can construct a concrete instance of `InstanceGroupManagerUpdatePolicyInput` via: // // InstanceGroupManagerUpdatePolicyArgs{...} type InstanceGroupManagerUpdatePolicyInput interface { pulumi.Input ToInstanceGroupManagerUpdatePolicyOutput() InstanceGroupManagerUpdatePolicyOutput ToInstanceGroupManagerUpdatePolicyOutputWithContext(context.Context) InstanceGroupManagerUpdatePolicyOutput } type InstanceGroupManagerUpdatePolicyArgs struct { // The instance redistribution policy for regional managed instance groups. Valid values are: - PROACTIVE (default): The group attempts to maintain an even distribution of VM instances across zones in the region. - NONE: For non-autoscaled groups, proactive redistribution is disabled. InstanceRedistributionType InstanceGroupManagerUpdatePolicyInstanceRedistributionTypePtrInput `pulumi:"instanceRedistributionType"` // The maximum number of instances that can be created above the specified targetSize during the update process. This value can be either a fixed number or, if the group has 10 or more instances, a percentage. If you set a percentage, the number of instances is rounded if necessary. The default value for maxSurge is a fixed value equal to the number of zones in which the managed instance group operates. At least one of either maxSurge or maxUnavailable must be greater than 0. Learn more about maxSurge. MaxSurge FixedOrPercentPtrInput `pulumi:"maxSurge"` // The maximum number of instances that can be unavailable during the update process. An instance is considered available if all of the following conditions are satisfied: - The instance's status is RUNNING. - If there is a health check on the instance group, the instance's health check status must be HEALTHY at least once. If there is no health check on the group, then the instance only needs to have a status of RUNNING to be considered available. This value can be either a fixed number or, if the group has 10 or more instances, a percentage. If you set a percentage, the number of instances is rounded if necessary. The default value for maxUnavailable is a fixed value equal to the number of zones in which the managed instance group operates. At least one of either maxSurge or maxUnavailable must be greater than 0. Learn more about maxUnavailable. MaxUnavailable FixedOrPercentPtrInput `pulumi:"maxUnavailable"` // Minimal action to be taken on an instance. You can specify either RESTART to restart existing instances or REPLACE to delete and create new instances from the target template. If you specify a RESTART, the Updater will attempt to perform that action only. However, if the Updater determines that the minimal action you specify is not enough to perform the update, it might perform a more disruptive action. MinimalAction InstanceGroupManagerUpdatePolicyMinimalActionPtrInput `pulumi:"minimalAction"` // Most disruptive action that is allowed to be taken on an instance. You can specify either NONE to forbid any actions, REFRESH to allow actions that do not need instance restart, RESTART to allow actions that can be applied without instance replacing or REPLACE to allow all possible actions. If the Updater determines that the minimal update action needed is more disruptive than most disruptive allowed action you specify it will not perform the update at all. MostDisruptiveAllowedAction InstanceGroupManagerUpdatePolicyMostDisruptiveAllowedActionPtrInput `pulumi:"mostDisruptiveAllowedAction"` // What action should be used to replace instances. See minimal_action.REPLACE ReplacementMethod InstanceGroupManagerUpdatePolicyReplacementMethodPtrInput `pulumi:"replacementMethod"` // The type of update process. You can specify either PROACTIVE so that the instance group manager proactively executes actions in order to bring instances to their target versions or OPPORTUNISTIC so that no action is proactively executed but the update will be performed as part of other actions (for example, resizes or recreateInstances calls). Type InstanceGroupManagerUpdatePolicyTypePtrInput `pulumi:"type"` } func (InstanceGroupManagerUpdatePolicyArgs) ElementType() reflect.Type { return reflect.TypeOf((*InstanceGroupManagerUpdatePolicy)(nil)).Elem() } func (i InstanceGroupManagerUpdatePolicyArgs) ToInstanceGroupManagerUpdatePolicyOutput() InstanceGroupManagerUpdatePolicyOutput { return i.ToInstanceGroupManagerUpdatePolicyOutputWithContext(context.Background()) } func (i InstanceGroupManagerUpdatePolicyArgs) ToInstanceGroupManagerUpdatePolicyOutputWithContext(ctx context.Context) InstanceGroupManagerUpdatePolicyOutput { return pulumi.ToOutputWithContext(ctx, i).(InstanceGroupManagerUpdatePolicyOutput) } func (i InstanceGroupManagerUpdatePolicyArgs) ToInstanceGroupManagerUpdatePolicyPtrOutput() InstanceGroupManagerUpdatePolicyPtrOutput { return i.ToInstanceGroupManagerUpdatePolicyPtrOutputWithContext(context.Background()) } func (i InstanceGroupManagerUpdatePolicyArgs) ToInstanceGroupManagerUpdatePolicyPtrOutputWithContext(ctx context.Context) InstanceGroupManagerUpdatePolicyPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(InstanceGroupManagerUpdatePolicyOutput).ToInstanceGroupManagerUpdatePolicyPtrOutputWithContext(ctx) } // InstanceGroupManagerUpdatePolicyPtrInput is an input type that accepts InstanceGroupManagerUpdatePolicyArgs, InstanceGroupManagerUpdatePolicyPtr and InstanceGroupManagerUpdatePolicyPtrOutput values. // You can construct a concrete instance of `InstanceGroupManagerUpdatePolicyPtrInput` via: // // InstanceGroupManagerUpdatePolicyArgs{...} // // or: // // nil type InstanceGroupManagerUpdatePolicyPtrInput interface { pulumi.Input ToInstanceGroupManagerUpdatePolicyPtrOutput() InstanceGroupManagerUpdatePolicyPtrOutput ToInstanceGroupManagerUpdatePolicyPtrOutputWithContext(context.Context) InstanceGroupManagerUpdatePolicyPtrOutput } type instanceGroupManagerUpdatePolicyPtrType InstanceGroupManagerUpdatePolicyArgs func InstanceGroupManagerUpdatePolicyPtr(v *InstanceGroupManagerUpdatePolicyArgs) InstanceGroupManagerUpdatePolicyPtrInput { return (*instanceGroupManagerUpdatePolicyPtrType)(v) } func (*instanceGroupManagerUpdatePolicyPtrType) ElementType() reflect.Type { return reflect.TypeOf((**InstanceGroupManagerUpdatePolicy)(nil)).Elem() } func (i *instanceGroupManagerUpdatePolicyPtrType) ToInstanceGroupManagerUpdatePolicyPtrOutput() InstanceGroupManagerUpdatePolicyPtrOutput { return i.ToInstanceGroupManagerUpdatePolicyPtrOutputWithContext(context.Background()) } func (i *instanceGroupManagerUpdatePolicyPtrType) ToInstanceGroupManagerUpdatePolicyPtrOutputWithContext(ctx context.Context) InstanceGroupManagerUpdatePolicyPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(InstanceGroupManagerUpdatePolicyPtrOutput) } type InstanceGroupManagerUpdatePolicyOutput struct{ *pulumi.OutputState } func (InstanceGroupManagerUpdatePolicyOutput) ElementType() reflect.Type { return reflect.TypeOf((*InstanceGroupManagerUpdatePolicy)(nil)).Elem() } func (o InstanceGroupManagerUpdatePolicyOutput) ToInstanceGroupManagerUpdatePolicyOutput() InstanceGroupManagerUpdatePolicyOutput { return o } func (o InstanceGroupManagerUpdatePolicyOutput) ToInstanceGroupManagerUpdatePolicyOutputWithContext(ctx context.Context) InstanceGroupManagerUpdatePolicyOutput { return o } func (o InstanceGroupManagerUpdatePolicyOutput) ToInstanceGroupManagerUpdatePolicyPtrOutput() InstanceGroupManagerUpdatePolicyPtrOutput { return o.ToInstanceGroupManagerUpdatePolicyPtrOutputWithContext(context.Background()) } func (o InstanceGroupManagerUpdatePolicyOutput) ToInstanceGroupManagerUpdatePolicyPtrOutputWithContext(ctx context.Context) InstanceGroupManagerUpdatePolicyPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v InstanceGroupManagerUpdatePolicy) *InstanceGroupManagerUpdatePolicy { return &v }).(InstanceGroupManagerUpdatePolicyPtrOutput) } // The instance redistribution policy for regional managed instance groups. Valid values are: - PROACTIVE (default): The group attempts to maintain an even distribution of VM instances across zones in the region. - NONE: For non-autoscaled groups, proactive redistribution is disabled. func (o InstanceGroupManagerUpdatePolicyOutput) InstanceRedistributionType() InstanceGroupManagerUpdatePolicyInstanceRedistributionTypePtrOutput { return o.ApplyT(func(v InstanceGroupManagerUpdatePolicy) *InstanceGroupManagerUpdatePolicyInstanceRedistributionType { return v.InstanceRedistributionType }).(InstanceGroupManagerUpdatePolicyInstanceRedistributionTypePtrOutput) } // The maximum number of instances that can be created above the specified targetSize during the update process. This value can be either a fixed number or, if the group has 10 or more instances, a percentage. If you set a percentage, the number of instances is rounded if necessary. The default value for maxSurge is a fixed value equal to the number of zones in which the managed instance group operates. At least one of either maxSurge or maxUnavailable must be greater than 0. Learn more about maxSurge. func (o InstanceGroupManagerUpdatePolicyOutput) MaxSurge() FixedOrPercentPtrOutput { return o.ApplyT(func(v InstanceGroupManagerUpdatePolicy) *FixedOrPercent { return v.MaxSurge }).(FixedOrPercentPtrOutput) } // The maximum number of instances that can be unavailable during the update process. An instance is considered available if all of the following conditions are satisfied: - The instance's status is RUNNING. - If there is a health check on the instance group, the instance's health check status must be HEALTHY at least once. If there is no health check on the group, then the instance only needs to have a status of RUNNING to be considered available. This value can be either a fixed number or, if the group has 10 or more instances, a percentage. If you set a percentage, the number of instances is rounded if necessary. The default value for maxUnavailable is a fixed value equal to the number of zones in which the managed instance group operates. At least one of either maxSurge or maxUnavailable must be greater than 0. Learn more about maxUnavailable. func (o InstanceGroupManagerUpdatePolicyOutput) MaxUnavailable() FixedOrPercentPtrOutput { return o.ApplyT(func(v InstanceGroupManagerUpdatePolicy) *FixedOrPercent { return v.MaxUnavailable }).(FixedOrPercentPtrOutput) } // Minimal action to be taken on an instance. You can specify either RESTART to restart existing instances or REPLACE to delete and create new instances from the target template. If you specify a RESTART, the Updater will attempt to perform that action only. However, if the Updater determines that the minimal action you specify is not enough to perform the update, it might perform a more disruptive action. func (o InstanceGroupManagerUpdatePolicyOutput) MinimalAction() InstanceGroupManagerUpdatePolicyMinimalActionPtrOutput { return o.ApplyT(func(v InstanceGroupManagerUpdatePolicy) *InstanceGroupManagerUpdatePolicyMinimalAction { return v.MinimalAction }).(InstanceGroupManagerUpdatePolicyMinimalActionPtrOutput) } // Most disruptive action that is allowed to be taken on an instance. You can specify either NONE to forbid any actions, REFRESH to allow actions that do not need instance restart, RESTART to allow actions that can be applied without instance replacing or REPLACE to allow all possible actions. If the Updater determines that the minimal update action needed is more disruptive than most disruptive allowed action you specify it will not perform the update at all. func (o InstanceGroupManagerUpdatePolicyOutput) MostDisruptiveAllowedAction() InstanceGroupManagerUpdatePolicyMostDisruptiveAllowedActionPtrOutput { return o.ApplyT(func(v InstanceGroupManagerUpdatePolicy) *InstanceGroupManagerUpdatePolicyMostDisruptiveAllowedAction { return v.MostDisruptiveAllowedAction }).(InstanceGroupManagerUpdatePolicyMostDisruptiveAllowedActionPtrOutput) } // What action should be used to replace instances. See minimal_action.REPLACE func (o InstanceGroupManagerUpdatePolicyOutput) ReplacementMethod() InstanceGroupManagerUpdatePolicyReplacementMethodPtrOutput { return o.ApplyT(func(v InstanceGroupManagerUpdatePolicy) *InstanceGroupManagerUpdatePolicyReplacementMethod { return v.ReplacementMethod }).(InstanceGroupManagerUpdatePolicyReplacementMethodPtrOutput) } // The type of update process. You can specify either PROACTIVE so that the instance group manager proactively executes actions in order to bring instances to their target versions or OPPORTUNISTIC so that no action is proactively executed but the update will be performed as part of other actions (for example, resizes or recreateInstances calls). func (o InstanceGroupManagerUpdatePolicyOutput) Type() InstanceGroupManagerUpdatePolicyTypePtrOutput { return o.ApplyT(func(v InstanceGroupManagerUpdatePolicy) *InstanceGroupManagerUpdatePolicyType { return v.Type }).(InstanceGroupManagerUpdatePolicyTypePtrOutput) } type InstanceGroupManagerUpdatePolicyPtrOutput struct{ *pulumi.OutputState } func (InstanceGroupManagerUpdatePolicyPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**InstanceGroupManagerUpdatePolicy)(nil)).Elem() } func (o InstanceGroupManagerUpdatePolicyPtrOutput) ToInstanceGroupManagerUpdatePolicyPtrOutput() InstanceGroupManagerUpdatePolicyPtrOutput { return o } func (o InstanceGroupManagerUpdatePolicyPtrOutput) ToInstanceGroupManagerUpdatePolicyPtrOutputWithContext(ctx context.Context) InstanceGroupManagerUpdatePolicyPtrOutput { return o } func (o InstanceGroupManagerUpdatePolicyPtrOutput) Elem() InstanceGroupManagerUpdatePolicyOutput { return o.ApplyT(func(v *InstanceGroupManagerUpdatePolicy) InstanceGroupManagerUpdatePolicy { if v != nil { return *v } var ret InstanceGroupManagerUpdatePolicy return ret }).(InstanceGroupManagerUpdatePolicyOutput) } // The instance redistribution policy for regional managed instance groups. Valid values are: - PROACTIVE (default): The group attempts to maintain an even distribution of VM instances across zones in the region. - NONE: For non-autoscaled groups, proactive redistribution is disabled. func (o InstanceGroupManagerUpdatePolicyPtrOutput) InstanceRedistributionType() InstanceGroupManagerUpdatePolicyInstanceRedistributionTypePtrOutput { return o.ApplyT(func(v *InstanceGroupManagerUpdatePolicy) *InstanceGroupManagerUpdatePolicyInstanceRedistributionType { if v == nil { return nil } return v.InstanceRedistributionType }).(InstanceGroupManagerUpdatePolicyInstanceRedistributionTypePtrOutput) } // The maximum number of instances that can be created above the specified targetSize during the update process. This value can be either a fixed number or, if the group has 10 or more instances, a percentage. If you set a percentage, the number of instances is rounded if necessary. The default value for maxSurge is a fixed value equal to the number of zones in which the managed instance group operates. At least one of either maxSurge or maxUnavailable must be greater than 0. Learn more about maxSurge. func (o InstanceGroupManagerUpdatePolicyPtrOutput) MaxSurge() FixedOrPercentPtrOutput { return o.ApplyT(func(v *InstanceGroupManagerUpdatePolicy) *FixedOrPercent { if v == nil { return nil } return v.MaxSurge }).(FixedOrPercentPtrOutput) } // The maximum number of instances that can be unavailable during the update process. An instance is considered available if all of the following conditions are satisfied: - The instance's status is RUNNING. - If there is a health check on the instance group, the instance's health check status must be HEALTHY at least once. If there is no health check on the group, then the instance only needs to have a status of RUNNING to be considered available. This value can be either a fixed number or, if the group has 10 or more instances, a percentage. If you set a percentage, the number of instances is rounded if necessary. The default value for maxUnavailable is a fixed value equal to the number of zones in which the managed instance group operates. At least one of either maxSurge or maxUnavailable must be greater than 0. Learn more about maxUnavailable. func (o InstanceGroupManagerUpdatePolicyPtrOutput) MaxUnavailable() FixedOrPercentPtrOutput { return o.ApplyT(func(v *InstanceGroupManagerUpdatePolicy) *FixedOrPercent { if v == nil { return nil } return v.MaxUnavailable }).(FixedOrPercentPtrOutput) } // Minimal action to be taken on an instance. You can specify either RESTART to restart existing instances or REPLACE to delete and create new instances from the target template. If you specify a RESTART, the Updater will attempt to perform that action only. However, if the Updater determines that the minimal action you specify is not enough to perform the update, it might perform a more disruptive action. func (o InstanceGroupManagerUpdatePolicyPtrOutput) MinimalAction() InstanceGroupManagerUpdatePolicyMinimalActionPtrOutput { return o.ApplyT(func(v *InstanceGroupManagerUpdatePolicy) *InstanceGroupManagerUpdatePolicyMinimalAction { if v == nil { return nil } return v.MinimalAction }).(InstanceGroupManagerUpdatePolicyMinimalActionPtrOutput) } // Most disruptive action that is allowed to be taken on an instance. You can specify either NONE to forbid any actions, REFRESH to allow actions that do not need instance restart, RESTART to allow actions that can be applied without instance replacing or REPLACE to allow all possible actions. If the Updater determines that the minimal update action needed is more disruptive than most disruptive allowed action you specify it will not perform the update at all. func (o InstanceGroupManagerUpdatePolicyPtrOutput) MostDisruptiveAllowedAction() InstanceGroupManagerUpdatePolicyMostDisruptiveAllowedActionPtrOutput { return o.ApplyT(func(v *InstanceGroupManagerUpdatePolicy) *InstanceGroupManagerUpdatePolicyMostDisruptiveAllowedAction { if v == nil { return nil } return v.MostDisruptiveAllowedAction }).(InstanceGroupManagerUpdatePolicyMostDisruptiveAllowedActionPtrOutput) } // What action should be used to replace instances. See minimal_action.REPLACE func (o InstanceGroupManagerUpdatePolicyPtrOutput) ReplacementMethod() InstanceGroupManagerUpdatePolicyReplacementMethodPtrOutput { return o.ApplyT(func(v *InstanceGroupManagerUpdatePolicy) *InstanceGroupManagerUpdatePolicyReplacementMethod { if v == nil { return nil } return v.ReplacementMethod }).(InstanceGroupManagerUpdatePolicyReplacementMethodPtrOutput) } // The type of update process. You can specify either PROACTIVE so that the instance group manager proactively executes actions in order to bring instances to their target versions or OPPORTUNISTIC so that no action is proactively executed but the update will be performed as part of other actions (for example, resizes or recreateInstances calls). func (o InstanceGroupManagerUpdatePolicyPtrOutput) Type() InstanceGroupManagerUpdatePolicyTypePtrOutput { return o.ApplyT(func(v *InstanceGroupManagerUpdatePolicy) *InstanceGroupManagerUpdatePolicyType { if v == nil { return nil } return v.Type }).(InstanceGroupManagerUpdatePolicyTypePtrOutput) } type InstanceGroupManagerUpdatePolicyResponse struct { // The instance redistribution policy for regional managed instance groups. Valid values are: - PROACTIVE (default): The group attempts to maintain an even distribution of VM instances across zones in the region. - NONE: For non-autoscaled groups, proactive redistribution is disabled. InstanceRedistributionType string `pulumi:"instanceRedistributionType"` // The maximum number of instances that can be created above the specified targetSize during the update process. This value can be either a fixed number or, if the group has 10 or more instances, a percentage. If you set a percentage, the number of instances is rounded if necessary. The default value for maxSurge is a fixed value equal to the number of zones in which the managed instance group operates. At least one of either maxSurge or maxUnavailable must be greater than 0. Learn more about maxSurge. MaxSurge FixedOrPercentResponse `pulumi:"maxSurge"` // The maximum number of instances that can be unavailable during the update process. An instance is considered available if all of the following conditions are satisfied: - The instance's status is RUNNING. - If there is a health check on the instance group, the instance's health check status must be HEALTHY at least once. If there is no health check on the group, then the instance only needs to have a status of RUNNING to be considered available. This value can be either a fixed number or, if the group has 10 or more instances, a percentage. If you set a percentage, the number of instances is rounded if necessary. The default value for maxUnavailable is a fixed value equal to the number of zones in which the managed instance group operates. At least one of either maxSurge or maxUnavailable must be greater than 0. Learn more about maxUnavailable. MaxUnavailable FixedOrPercentResponse `pulumi:"maxUnavailable"` // Minimal action to be taken on an instance. You can specify either RESTART to restart existing instances or REPLACE to delete and create new instances from the target template. If you specify a RESTART, the Updater will attempt to perform that action only. However, if the Updater determines that the minimal action you specify is not enough to perform the update, it might perform a more disruptive action. MinimalAction string `pulumi:"minimalAction"` // Most disruptive action that is allowed to be taken on an instance. You can specify either NONE to forbid any actions, REFRESH to allow actions that do not need instance restart, RESTART to allow actions that can be applied without instance replacing or REPLACE to allow all possible actions. If the Updater determines that the minimal update action needed is more disruptive than most disruptive allowed action you specify it will not perform the update at all. MostDisruptiveAllowedAction string `pulumi:"mostDisruptiveAllowedAction"` // What action should be used to replace instances. See minimal_action.REPLACE ReplacementMethod string `pulumi:"replacementMethod"` // The type of update process. You can specify either PROACTIVE so that the instance group manager proactively executes actions in order to bring instances to their target versions or OPPORTUNISTIC so that no action is proactively executed but the update will be performed as part of other actions (for example, resizes or recreateInstances calls). Type string `pulumi:"type"` } type InstanceGroupManagerUpdatePolicyResponseOutput struct{ *pulumi.OutputState } func (InstanceGroupManagerUpdatePolicyResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*InstanceGroupManagerUpdatePolicyResponse)(nil)).Elem() } func (o InstanceGroupManagerUpdatePolicyResponseOutput) ToInstanceGroupManagerUpdatePolicyResponseOutput() InstanceGroupManagerUpdatePolicyResponseOutput { return o } func (o InstanceGroupManagerUpdatePolicyResponseOutput) ToInstanceGroupManagerUpdatePolicyResponseOutputWithContext(ctx context.Context) InstanceGroupManagerUpdatePolicyResponseOutput { return o } // The instance redistribution policy for regional managed instance groups. Valid values are: - PROACTIVE (default): The group attempts to maintain an even distribution of VM instances across zones in the region. - NONE: For non-autoscaled groups, proactive redistribution is disabled. func (o InstanceGroupManagerUpdatePolicyResponseOutput) InstanceRedistributionType() pulumi.StringOutput { return o.ApplyT(func(v InstanceGroupManagerUpdatePolicyResponse) string { return v.InstanceRedistributionType }).(pulumi.StringOutput) } // The maximum number of instances that can be created above the specified targetSize during the update process. This value can be either a fixed number or, if the group has 10 or more instances, a percentage. If you set a percentage, the number of instances is rounded if necessary. The default value for maxSurge is a fixed value equal to the number of zones in which the managed instance group operates. At least one of either maxSurge or maxUnavailable must be greater than 0. Learn more about maxSurge. func (o InstanceGroupManagerUpdatePolicyResponseOutput) MaxSurge() FixedOrPercentResponseOutput { return o.ApplyT(func(v InstanceGroupManagerUpdatePolicyResponse) FixedOrPercentResponse { return v.MaxSurge }).(FixedOrPercentResponseOutput) } // The maximum number of instances that can be unavailable during the update process. An instance is considered available if all of the following conditions are satisfied: - The instance's status is RUNNING. - If there is a health check on the instance group, the instance's health check status must be HEALTHY at least once. If there is no health check on the group, then the instance only needs to have a status of RUNNING to be considered available. This value can be either a fixed number or, if the group has 10 or more instances, a percentage. If you set a percentage, the number of instances is rounded if necessary. The default value for maxUnavailable is a fixed value equal to the number of zones in which the managed instance group operates. At least one of either maxSurge or maxUnavailable must be greater than 0. Learn more about maxUnavailable. func (o InstanceGroupManagerUpdatePolicyResponseOutput) MaxUnavailable() FixedOrPercentResponseOutput { return o.ApplyT(func(v InstanceGroupManagerUpdatePolicyResponse) FixedOrPercentResponse { return v.MaxUnavailable }).(FixedOrPercentResponseOutput) } // Minimal action to be taken on an instance. You can specify either RESTART to restart existing instances or REPLACE to delete and create new instances from the target template. If you specify a RESTART, the Updater will attempt to perform that action only. However, if the Updater determines that the minimal action you specify is not enough to perform the update, it might perform a more disruptive action. func (o InstanceGroupManagerUpdatePolicyResponseOutput) MinimalAction() pulumi.StringOutput { return o.ApplyT(func(v InstanceGroupManagerUpdatePolicyResponse) string { return v.MinimalAction }).(pulumi.StringOutput) } // Most disruptive action that is allowed to be taken on an instance. You can specify either NONE to forbid any actions, REFRESH to allow actions that do not need instance restart, RESTART to allow actions that can be applied without instance replacing or REPLACE to allow all possible actions. If the Updater determines that the minimal update action needed is more disruptive than most disruptive allowed action you specify it will not perform the update at all. func (o InstanceGroupManagerUpdatePolicyResponseOutput) MostDisruptiveAllowedAction() pulumi.StringOutput { return o.ApplyT(func(v InstanceGroupManagerUpdatePolicyResponse) string { return v.MostDisruptiveAllowedAction }).(pulumi.StringOutput) } // What action should be used to replace instances. See minimal_action.REPLACE func (o InstanceGroupManagerUpdatePolicyResponseOutput) ReplacementMethod() pulumi.StringOutput { return o.ApplyT(func(v InstanceGroupManagerUpdatePolicyResponse) string { return v.ReplacementMethod }).(pulumi.StringOutput) } // The type of update process. You can specify either PROACTIVE so that the instance group manager proactively executes actions in order to bring instances to their target versions or OPPORTUNISTIC so that no action is proactively executed but the update will be performed as part of other actions (for example, resizes or recreateInstances calls). func (o InstanceGroupManagerUpdatePolicyResponseOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v InstanceGroupManagerUpdatePolicyResponse) string { return v.Type }).(pulumi.StringOutput) } type InstanceGroupManagerVersion struct { // The URL of the instance template that is specified for this managed instance group. The group uses this template to create new instances in the managed instance group until the `targetSize` for this version is reached. The templates for existing instances in the group do not change unless you run recreateInstances, run applyUpdatesToInstances, or set the group's updatePolicy.type to PROACTIVE; in those cases, existing instances are updated until the `targetSize` for this version is reached. InstanceTemplate *string `pulumi:"instanceTemplate"` // Name of the version. Unique among all versions in the scope of this managed instance group. Name *string `pulumi:"name"` // Specifies the intended number of instances to be created from the instanceTemplate. The final number of instances created from the template will be equal to: - If expressed as a fixed number, the minimum of either targetSize.fixed or instanceGroupManager.targetSize is used. - if expressed as a percent, the targetSize would be (targetSize.percent/100 * InstanceGroupManager.targetSize) If there is a remainder, the number is rounded. If unset, this version will update any remaining instances not updated by another version. Read Starting a canary update for more information. TargetSize *FixedOrPercent `pulumi:"targetSize"` } // InstanceGroupManagerVersionInput is an input type that accepts InstanceGroupManagerVersionArgs and InstanceGroupManagerVersionOutput values. // You can construct a concrete instance of `InstanceGroupManagerVersionInput` via: // // InstanceGroupManagerVersionArgs{...} type InstanceGroupManagerVersionInput interface { pulumi.Input ToInstanceGroupManagerVersionOutput() InstanceGroupManagerVersionOutput ToInstanceGroupManagerVersionOutputWithContext(context.Context) InstanceGroupManagerVersionOutput } type InstanceGroupManagerVersionArgs struct { // The URL of the instance template that is specified for this managed instance group. The group uses this template to create new instances in the managed instance group until the `targetSize` for this version is reached. The templates for existing instances in the group do not change unless you run recreateInstances, run applyUpdatesToInstances, or set the group's updatePolicy.type to PROACTIVE; in those cases, existing instances are updated until the `targetSize` for this version is reached. InstanceTemplate pulumi.StringPtrInput `pulumi:"instanceTemplate"` // Name of the version. Unique among all versions in the scope of this managed instance group. Name pulumi.StringPtrInput `pulumi:"name"` // Specifies the intended number of instances to be created from the instanceTemplate. The final number of instances created from the template will be equal to: - If expressed as a fixed number, the minimum of either targetSize.fixed or instanceGroupManager.targetSize is used. - if expressed as a percent, the targetSize would be (targetSize.percent/100 * InstanceGroupManager.targetSize) If there is a remainder, the number is rounded. If unset, this version will update any remaining instances not updated by another version. Read Starting a canary update for more information. TargetSize FixedOrPercentPtrInput `pulumi:"targetSize"` } func (InstanceGroupManagerVersionArgs) ElementType() reflect.Type { return reflect.TypeOf((*InstanceGroupManagerVersion)(nil)).Elem() } func (i InstanceGroupManagerVersionArgs) ToInstanceGroupManagerVersionOutput() InstanceGroupManagerVersionOutput { return i.ToInstanceGroupManagerVersionOutputWithContext(context.Background()) } func (i InstanceGroupManagerVersionArgs) ToInstanceGroupManagerVersionOutputWithContext(ctx context.Context) InstanceGroupManagerVersionOutput { return pulumi.ToOutputWithContext(ctx, i).(InstanceGroupManagerVersionOutput) } // InstanceGroupManagerVersionArrayInput is an input type that accepts InstanceGroupManagerVersionArray and InstanceGroupManagerVersionArrayOutput values. // You can construct a concrete instance of `InstanceGroupManagerVersionArrayInput` via: // // InstanceGroupManagerVersionArray{ InstanceGroupManagerVersionArgs{...} } type InstanceGroupManagerVersionArrayInput interface { pulumi.Input ToInstanceGroupManagerVersionArrayOutput() InstanceGroupManagerVersionArrayOutput ToInstanceGroupManagerVersionArrayOutputWithContext(context.Context) InstanceGroupManagerVersionArrayOutput } type InstanceGroupManagerVersionArray []InstanceGroupManagerVersionInput func (InstanceGroupManagerVersionArray) ElementType() reflect.Type { return reflect.TypeOf((*[]InstanceGroupManagerVersion)(nil)).Elem() } func (i InstanceGroupManagerVersionArray) ToInstanceGroupManagerVersionArrayOutput() InstanceGroupManagerVersionArrayOutput { return i.ToInstanceGroupManagerVersionArrayOutputWithContext(context.Background()) } func (i InstanceGroupManagerVersionArray) ToInstanceGroupManagerVersionArrayOutputWithContext(ctx context.Context) InstanceGroupManagerVersionArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(InstanceGroupManagerVersionArrayOutput) } type InstanceGroupManagerVersionOutput struct{ *pulumi.OutputState } func (InstanceGroupManagerVersionOutput) ElementType() reflect.Type { return reflect.TypeOf((*InstanceGroupManagerVersion)(nil)).Elem() } func (o InstanceGroupManagerVersionOutput) ToInstanceGroupManagerVersionOutput() InstanceGroupManagerVersionOutput { return o } func (o InstanceGroupManagerVersionOutput) ToInstanceGroupManagerVersionOutputWithContext(ctx context.Context) InstanceGroupManagerVersionOutput { return o } // The URL of the instance template that is specified for this managed instance group. The group uses this template to create new instances in the managed instance group until the `targetSize` for this version is reached. The templates for existing instances in the group do not change unless you run recreateInstances, run applyUpdatesToInstances, or set the group's updatePolicy.type to PROACTIVE; in those cases, existing instances are updated until the `targetSize` for this version is reached. func (o InstanceGroupManagerVersionOutput) InstanceTemplate() pulumi.StringPtrOutput { return o.ApplyT(func(v InstanceGroupManagerVersion) *string { return v.InstanceTemplate }).(pulumi.StringPtrOutput) } // Name of the version. Unique among all versions in the scope of this managed instance group. func (o InstanceGroupManagerVersionOutput) Name() pulumi.StringPtrOutput { return o.ApplyT(func(v InstanceGroupManagerVersion) *string { return v.Name }).(pulumi.StringPtrOutput) } // Specifies the intended number of instances to be created from the instanceTemplate. The final number of instances created from the template will be equal to: - If expressed as a fixed number, the minimum of either targetSize.fixed or instanceGroupManager.targetSize is used. - if expressed as a percent, the targetSize would be (targetSize.percent/100 * InstanceGroupManager.targetSize) If there is a remainder, the number is rounded. If unset, this version will update any remaining instances not updated by another version. Read Starting a canary update for more information. func (o InstanceGroupManagerVersionOutput) TargetSize() FixedOrPercentPtrOutput { return o.ApplyT(func(v InstanceGroupManagerVersion) *FixedOrPercent { return v.TargetSize }).(FixedOrPercentPtrOutput) } type InstanceGroupManagerVersionArrayOutput struct{ *pulumi.OutputState } func (InstanceGroupManagerVersionArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]InstanceGroupManagerVersion)(nil)).Elem() } func (o InstanceGroupManagerVersionArrayOutput) ToInstanceGroupManagerVersionArrayOutput() InstanceGroupManagerVersionArrayOutput { return o } func (o InstanceGroupManagerVersionArrayOutput) ToInstanceGroupManagerVersionArrayOutputWithContext(ctx context.Context) InstanceGroupManagerVersionArrayOutput { return o } func (o InstanceGroupManagerVersionArrayOutput) Index(i pulumi.IntInput) InstanceGroupManagerVersionOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) InstanceGroupManagerVersion { return vs[0].([]InstanceGroupManagerVersion)[vs[1].(int)] }).(InstanceGroupManagerVersionOutput) } type InstanceGroupManagerVersionResponse struct { // The URL of the instance template that is specified for this managed instance group. The group uses this template to create new instances in the managed instance group until the `targetSize` for this version is reached. The templates for existing instances in the group do not change unless you run recreateInstances, run applyUpdatesToInstances, or set the group's updatePolicy.type to PROACTIVE; in those cases, existing instances are updated until the `targetSize` for this version is reached. InstanceTemplate string `pulumi:"instanceTemplate"` // Name of the version. Unique among all versions in the scope of this managed instance group. Name string `pulumi:"name"` // Specifies the intended number of instances to be created from the instanceTemplate. The final number of instances created from the template will be equal to: - If expressed as a fixed number, the minimum of either targetSize.fixed or instanceGroupManager.targetSize is used. - if expressed as a percent, the targetSize would be (targetSize.percent/100 * InstanceGroupManager.targetSize) If there is a remainder, the number is rounded. If unset, this version will update any remaining instances not updated by another version. Read Starting a canary update for more information. TargetSize FixedOrPercentResponse `pulumi:"targetSize"` } type InstanceGroupManagerVersionResponseOutput struct{ *pulumi.OutputState } func (InstanceGroupManagerVersionResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*InstanceGroupManagerVersionResponse)(nil)).Elem() } func (o InstanceGroupManagerVersionResponseOutput) ToInstanceGroupManagerVersionResponseOutput() InstanceGroupManagerVersionResponseOutput { return o } func (o InstanceGroupManagerVersionResponseOutput) ToInstanceGroupManagerVersionResponseOutputWithContext(ctx context.Context) InstanceGroupManagerVersionResponseOutput { return o } // The URL of the instance template that is specified for this managed instance group. The group uses this template to create new instances in the managed instance group until the `targetSize` for this version is reached. The templates for existing instances in the group do not change unless you run recreateInstances, run applyUpdatesToInstances, or set the group's updatePolicy.type to PROACTIVE; in those cases, existing instances are updated until the `targetSize` for this version is reached. func (o InstanceGroupManagerVersionResponseOutput) InstanceTemplate() pulumi.StringOutput { return o.ApplyT(func(v InstanceGroupManagerVersionResponse) string { return v.InstanceTemplate }).(pulumi.StringOutput) } // Name of the version. Unique among all versions in the scope of this managed instance group. func (o InstanceGroupManagerVersionResponseOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v InstanceGroupManagerVersionResponse) string { return v.Name }).(pulumi.StringOutput) } // Specifies the intended number of instances to be created from the instanceTemplate. The final number of instances created from the template will be equal to: - If expressed as a fixed number, the minimum of either targetSize.fixed or instanceGroupManager.targetSize is used. - if expressed as a percent, the targetSize would be (targetSize.percent/100 * InstanceGroupManager.targetSize) If there is a remainder, the number is rounded. If unset, this version will update any remaining instances not updated by another version. Read Starting a canary update for more information. func (o InstanceGroupManagerVersionResponseOutput) TargetSize() FixedOrPercentResponseOutput { return o.ApplyT(func(v InstanceGroupManagerVersionResponse) FixedOrPercentResponse { return v.TargetSize }).(FixedOrPercentResponseOutput) } type InstanceGroupManagerVersionResponseArrayOutput struct{ *pulumi.OutputState } func (InstanceGroupManagerVersionResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]InstanceGroupManagerVersionResponse)(nil)).Elem() } func (o InstanceGroupManagerVersionResponseArrayOutput) ToInstanceGroupManagerVersionResponseArrayOutput() InstanceGroupManagerVersionResponseArrayOutput { return o } func (o InstanceGroupManagerVersionResponseArrayOutput) ToInstanceGroupManagerVersionResponseArrayOutputWithContext(ctx context.Context) InstanceGroupManagerVersionResponseArrayOutput { return o } func (o InstanceGroupManagerVersionResponseArrayOutput) Index(i pulumi.IntInput) InstanceGroupManagerVersionResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) InstanceGroupManagerVersionResponse { return vs[0].([]InstanceGroupManagerVersionResponse)[vs[1].(int)] }).(InstanceGroupManagerVersionResponseOutput) } type InstanceProperties struct { // Controls for advanced machine-related behavior features. Note that for MachineImage, this is not supported yet. AdvancedMachineFeatures *AdvancedMachineFeatures `pulumi:"advancedMachineFeatures"` // Enables instances created based on these properties to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding documentation for more information. CanIpForward *bool `pulumi:"canIpForward"` // Specifies the Confidential Instance options. Note that for MachineImage, this is not supported yet. ConfidentialInstanceConfig *ConfidentialInstanceConfig `pulumi:"confidentialInstanceConfig"` // An optional text description for the instances that are created from these properties. Description *string `pulumi:"description"` // An array of disks that are associated with the instances that are created from these properties. Disks []AttachedDisk `pulumi:"disks"` // A list of guest accelerator cards' type and count to use for instances created from these properties. GuestAccelerators []AcceleratorConfig `pulumi:"guestAccelerators"` // Labels to apply to instances that are created from these properties. Labels map[string]string `pulumi:"labels"` // The machine type to use for instances that are created from these properties. MachineType *string `pulumi:"machineType"` // The metadata key/value pairs to assign to instances that are created from these properties. These pairs can consist of custom metadata or predefined keys. See Project and instance metadata for more information. Metadata *Metadata `pulumi:"metadata"` // Minimum cpu/platform to be used by instances. The instance may be scheduled on the specified or newer cpu/platform. Applicable values are the friendly names of CPU platforms, such as minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy Bridge". For more information, read Specifying a Minimum CPU Platform. MinCpuPlatform *string `pulumi:"minCpuPlatform"` // An array of network access configurations for this interface. NetworkInterfaces []NetworkInterface `pulumi:"networkInterfaces"` // Note that for MachineImage, this is not supported yet. NetworkPerformanceConfig *NetworkPerformanceConfig `pulumi:"networkPerformanceConfig"` // The private IPv6 google access type for VMs. If not specified, use INHERIT_FROM_SUBNETWORK as default. Note that for MachineImage, this is not supported yet. PrivateIpv6GoogleAccess *InstancePropertiesPrivateIpv6GoogleAccess `pulumi:"privateIpv6GoogleAccess"` // Specifies the reservations that instances can consume from. Note that for MachineImage, this is not supported yet. ReservationAffinity *ReservationAffinity `pulumi:"reservationAffinity"` // Resource manager tags to be bound to the instance. Tag keys and values have the same definition as resource manager tags. Keys must be in the format `tagKeys/{tag_key_id}`, and values are in the format `tagValues/456`. The field is ignored (both PUT & PATCH) when empty. ResourceManagerTags map[string]string `pulumi:"resourceManagerTags"` // Resource policies (names, not URLs) applied to instances created from these properties. Note that for MachineImage, this is not supported yet. ResourcePolicies []string `pulumi:"resourcePolicies"` // Specifies the scheduling options for the instances that are created from these properties. Scheduling *Scheduling `pulumi:"scheduling"` // A list of service accounts with specified scopes. Access tokens for these service accounts are available to the instances that are created from these properties. Use metadata queries to obtain the access tokens for these instances. ServiceAccounts []ServiceAccount `pulumi:"serviceAccounts"` // Note that for MachineImage, this is not supported yet. ShieldedInstanceConfig *ShieldedInstanceConfig `pulumi:"shieldedInstanceConfig"` // A list of tags to apply to the instances that are created from these properties. The tags identify valid sources or targets for network firewalls. The setTags method can modify this list of tags. Each tag within the list must comply with RFC1035. Tags *Tags `pulumi:"tags"` } // InstancePropertiesInput is an input type that accepts InstancePropertiesArgs and InstancePropertiesOutput values. // You can construct a concrete instance of `InstancePropertiesInput` via: // // InstancePropertiesArgs{...} type InstancePropertiesInput interface { pulumi.Input ToInstancePropertiesOutput() InstancePropertiesOutput ToInstancePropertiesOutputWithContext(context.Context) InstancePropertiesOutput } type InstancePropertiesArgs struct { // Controls for advanced machine-related behavior features. Note that for MachineImage, this is not supported yet. AdvancedMachineFeatures AdvancedMachineFeaturesPtrInput `pulumi:"advancedMachineFeatures"` // Enables instances created based on these properties to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding documentation for more information. CanIpForward pulumi.BoolPtrInput `pulumi:"canIpForward"` // Specifies the Confidential Instance options. Note that for MachineImage, this is not supported yet. ConfidentialInstanceConfig ConfidentialInstanceConfigPtrInput `pulumi:"confidentialInstanceConfig"` // An optional text description for the instances that are created from these properties. Description pulumi.StringPtrInput `pulumi:"description"` // An array of disks that are associated with the instances that are created from these properties. Disks AttachedDiskArrayInput `pulumi:"disks"` // A list of guest accelerator cards' type and count to use for instances created from these properties. GuestAccelerators AcceleratorConfigArrayInput `pulumi:"guestAccelerators"` // Labels to apply to instances that are created from these properties. Labels pulumi.StringMapInput `pulumi:"labels"` // The machine type to use for instances that are created from these properties. MachineType pulumi.StringPtrInput `pulumi:"machineType"` // The metadata key/value pairs to assign to instances that are created from these properties. These pairs can consist of custom metadata or predefined keys. See Project and instance metadata for more information. Metadata MetadataPtrInput `pulumi:"metadata"` // Minimum cpu/platform to be used by instances. The instance may be scheduled on the specified or newer cpu/platform. Applicable values are the friendly names of CPU platforms, such as minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy Bridge". For more information, read Specifying a Minimum CPU Platform. MinCpuPlatform pulumi.StringPtrInput `pulumi:"minCpuPlatform"` // An array of network access configurations for this interface. NetworkInterfaces NetworkInterfaceArrayInput `pulumi:"networkInterfaces"` // Note that for MachineImage, this is not supported yet. NetworkPerformanceConfig NetworkPerformanceConfigPtrInput `pulumi:"networkPerformanceConfig"` // The private IPv6 google access type for VMs. If not specified, use INHERIT_FROM_SUBNETWORK as default. Note that for MachineImage, this is not supported yet. PrivateIpv6GoogleAccess InstancePropertiesPrivateIpv6GoogleAccessPtrInput `pulumi:"privateIpv6GoogleAccess"` // Specifies the reservations that instances can consume from. Note that for MachineImage, this is not supported yet. ReservationAffinity ReservationAffinityPtrInput `pulumi:"reservationAffinity"` // Resource manager tags to be bound to the instance. Tag keys and values have the same definition as resource manager tags. Keys must be in the format `tagKeys/{tag_key_id}`, and values are in the format `tagValues/456`. The field is ignored (both PUT & PATCH) when empty. ResourceManagerTags pulumi.StringMapInput `pulumi:"resourceManagerTags"` // Resource policies (names, not URLs) applied to instances created from these properties. Note that for MachineImage, this is not supported yet. ResourcePolicies pulumi.StringArrayInput `pulumi:"resourcePolicies"` // Specifies the scheduling options for the instances that are created from these properties. Scheduling SchedulingPtrInput `pulumi:"scheduling"` // A list of service accounts with specified scopes. Access tokens for these service accounts are available to the instances that are created from these properties. Use metadata queries to obtain the access tokens for these instances. ServiceAccounts ServiceAccountArrayInput `pulumi:"serviceAccounts"` // Note that for MachineImage, this is not supported yet. ShieldedInstanceConfig ShieldedInstanceConfigPtrInput `pulumi:"shieldedInstanceConfig"` // A list of tags to apply to the instances that are created from these properties. The tags identify valid sources or targets for network firewalls. The setTags method can modify this list of tags. Each tag within the list must comply with RFC1035. Tags TagsPtrInput `pulumi:"tags"` } func (InstancePropertiesArgs) ElementType() reflect.Type { return reflect.TypeOf((*InstanceProperties)(nil)).Elem() } func (i InstancePropertiesArgs) ToInstancePropertiesOutput() InstancePropertiesOutput { return i.ToInstancePropertiesOutputWithContext(context.Background()) } func (i InstancePropertiesArgs) ToInstancePropertiesOutputWithContext(ctx context.Context) InstancePropertiesOutput { return pulumi.ToOutputWithContext(ctx, i).(InstancePropertiesOutput) } func (i InstancePropertiesArgs) ToInstancePropertiesPtrOutput() InstancePropertiesPtrOutput { return i.ToInstancePropertiesPtrOutputWithContext(context.Background()) } func (i InstancePropertiesArgs) ToInstancePropertiesPtrOutputWithContext(ctx context.Context) InstancePropertiesPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(InstancePropertiesOutput).ToInstancePropertiesPtrOutputWithContext(ctx) } // InstancePropertiesPtrInput is an input type that accepts InstancePropertiesArgs, InstancePropertiesPtr and InstancePropertiesPtrOutput values. // You can construct a concrete instance of `InstancePropertiesPtrInput` via: // // InstancePropertiesArgs{...} // // or: // // nil type InstancePropertiesPtrInput interface { pulumi.Input ToInstancePropertiesPtrOutput() InstancePropertiesPtrOutput ToInstancePropertiesPtrOutputWithContext(context.Context) InstancePropertiesPtrOutput } type instancePropertiesPtrType InstancePropertiesArgs func InstancePropertiesPtr(v *InstancePropertiesArgs) InstancePropertiesPtrInput { return (*instancePropertiesPtrType)(v) } func (*instancePropertiesPtrType) ElementType() reflect.Type { return reflect.TypeOf((**InstanceProperties)(nil)).Elem() } func (i *instancePropertiesPtrType) ToInstancePropertiesPtrOutput() InstancePropertiesPtrOutput { return i.ToInstancePropertiesPtrOutputWithContext(context.Background()) } func (i *instancePropertiesPtrType) ToInstancePropertiesPtrOutputWithContext(ctx context.Context) InstancePropertiesPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(InstancePropertiesPtrOutput) } type InstancePropertiesOutput struct{ *pulumi.OutputState } func (InstancePropertiesOutput) ElementType() reflect.Type { return reflect.TypeOf((*InstanceProperties)(nil)).Elem() } func (o InstancePropertiesOutput) ToInstancePropertiesOutput() InstancePropertiesOutput { return o } func (o InstancePropertiesOutput) ToInstancePropertiesOutputWithContext(ctx context.Context) InstancePropertiesOutput { return o } func (o InstancePropertiesOutput) ToInstancePropertiesPtrOutput() InstancePropertiesPtrOutput { return o.ToInstancePropertiesPtrOutputWithContext(context.Background()) } func (o InstancePropertiesOutput) ToInstancePropertiesPtrOutputWithContext(ctx context.Context) InstancePropertiesPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v InstanceProperties) *InstanceProperties { return &v }).(InstancePropertiesPtrOutput) } // Controls for advanced machine-related behavior features. Note that for MachineImage, this is not supported yet. func (o InstancePropertiesOutput) AdvancedMachineFeatures() AdvancedMachineFeaturesPtrOutput { return o.ApplyT(func(v InstanceProperties) *AdvancedMachineFeatures { return v.AdvancedMachineFeatures }).(AdvancedMachineFeaturesPtrOutput) } // Enables instances created based on these properties to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding documentation for more information. func (o InstancePropertiesOutput) CanIpForward() pulumi.BoolPtrOutput { return o.ApplyT(func(v InstanceProperties) *bool { return v.CanIpForward }).(pulumi.BoolPtrOutput) } // Specifies the Confidential Instance options. Note that for MachineImage, this is not supported yet. func (o InstancePropertiesOutput) ConfidentialInstanceConfig() ConfidentialInstanceConfigPtrOutput { return o.ApplyT(func(v InstanceProperties) *ConfidentialInstanceConfig { return v.ConfidentialInstanceConfig }).(ConfidentialInstanceConfigPtrOutput) } // An optional text description for the instances that are created from these properties. func (o InstancePropertiesOutput) Description() pulumi.StringPtrOutput { return o.ApplyT(func(v InstanceProperties) *string { return v.Description }).(pulumi.StringPtrOutput) } // An array of disks that are associated with the instances that are created from these properties. func (o InstancePropertiesOutput) Disks() AttachedDiskArrayOutput { return o.ApplyT(func(v InstanceProperties) []AttachedDisk { return v.Disks }).(AttachedDiskArrayOutput) } // A list of guest accelerator cards' type and count to use for instances created from these properties. func (o InstancePropertiesOutput) GuestAccelerators() AcceleratorConfigArrayOutput { return o.ApplyT(func(v InstanceProperties) []AcceleratorConfig { return v.GuestAccelerators }).(AcceleratorConfigArrayOutput) } // Labels to apply to instances that are created from these properties. func (o InstancePropertiesOutput) Labels() pulumi.StringMapOutput { return o.ApplyT(func(v InstanceProperties) map[string]string { return v.Labels }).(pulumi.StringMapOutput) } // The machine type to use for instances that are created from these properties. func (o InstancePropertiesOutput) MachineType() pulumi.StringPtrOutput { return o.ApplyT(func(v InstanceProperties) *string { return v.MachineType }).(pulumi.StringPtrOutput) } // The metadata key/value pairs to assign to instances that are created from these properties. These pairs can consist of custom metadata or predefined keys. See Project and instance metadata for more information. func (o InstancePropertiesOutput) Metadata() MetadataPtrOutput { return o.ApplyT(func(v InstanceProperties) *Metadata { return v.Metadata }).(MetadataPtrOutput) } // Minimum cpu/platform to be used by instances. The instance may be scheduled on the specified or newer cpu/platform. Applicable values are the friendly names of CPU platforms, such as minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy Bridge". For more information, read Specifying a Minimum CPU Platform. func (o InstancePropertiesOutput) MinCpuPlatform() pulumi.StringPtrOutput { return o.ApplyT(func(v InstanceProperties) *string { return v.MinCpuPlatform }).(pulumi.StringPtrOutput) } // An array of network access configurations for this interface. func (o InstancePropertiesOutput) NetworkInterfaces() NetworkInterfaceArrayOutput { return o.ApplyT(func(v InstanceProperties) []NetworkInterface { return v.NetworkInterfaces }).(NetworkInterfaceArrayOutput) } // Note that for MachineImage, this is not supported yet. func (o InstancePropertiesOutput) NetworkPerformanceConfig() NetworkPerformanceConfigPtrOutput { return o.ApplyT(func(v InstanceProperties) *NetworkPerformanceConfig { return v.NetworkPerformanceConfig }).(NetworkPerformanceConfigPtrOutput) } // The private IPv6 google access type for VMs. If not specified, use INHERIT_FROM_SUBNETWORK as default. Note that for MachineImage, this is not supported yet. func (o InstancePropertiesOutput) PrivateIpv6GoogleAccess() InstancePropertiesPrivateIpv6GoogleAccessPtrOutput { return o.ApplyT(func(v InstanceProperties) *InstancePropertiesPrivateIpv6GoogleAccess { return v.PrivateIpv6GoogleAccess }).(InstancePropertiesPrivateIpv6GoogleAccessPtrOutput) } // Specifies the reservations that instances can consume from. Note that for MachineImage, this is not supported yet. func (o InstancePropertiesOutput) ReservationAffinity() ReservationAffinityPtrOutput { return o.ApplyT(func(v InstanceProperties) *ReservationAffinity { return v.ReservationAffinity }).(ReservationAffinityPtrOutput) } // Resource manager tags to be bound to the instance. Tag keys and values have the same definition as resource manager tags. Keys must be in the format `tagKeys/{tag_key_id}`, and values are in the format `tagValues/456`. The field is ignored (both PUT & PATCH) when empty. func (o InstancePropertiesOutput) ResourceManagerTags() pulumi.StringMapOutput { return o.ApplyT(func(v InstanceProperties) map[string]string { return v.ResourceManagerTags }).(pulumi.StringMapOutput) } // Resource policies (names, not URLs) applied to instances created from these properties. Note that for MachineImage, this is not supported yet. func (o InstancePropertiesOutput) ResourcePolicies() pulumi.StringArrayOutput { return o.ApplyT(func(v InstanceProperties) []string { return v.ResourcePolicies }).(pulumi.StringArrayOutput) } // Specifies the scheduling options for the instances that are created from these properties. func (o InstancePropertiesOutput) Scheduling() SchedulingPtrOutput { return o.ApplyT(func(v InstanceProperties) *Scheduling { return v.Scheduling }).(SchedulingPtrOutput) } // A list of service accounts with specified scopes. Access tokens for these service accounts are available to the instances that are created from these properties. Use metadata queries to obtain the access tokens for these instances. func (o InstancePropertiesOutput) ServiceAccounts() ServiceAccountArrayOutput { return o.ApplyT(func(v InstanceProperties) []ServiceAccount { return v.ServiceAccounts }).(ServiceAccountArrayOutput) } // Note that for MachineImage, this is not supported yet. func (o InstancePropertiesOutput) ShieldedInstanceConfig() ShieldedInstanceConfigPtrOutput { return o.ApplyT(func(v InstanceProperties) *ShieldedInstanceConfig { return v.ShieldedInstanceConfig }).(ShieldedInstanceConfigPtrOutput) } // A list of tags to apply to the instances that are created from these properties. The tags identify valid sources or targets for network firewalls. The setTags method can modify this list of tags. Each tag within the list must comply with RFC1035. func (o InstancePropertiesOutput) Tags() TagsPtrOutput { return o.ApplyT(func(v InstanceProperties) *Tags { return v.Tags }).(TagsPtrOutput) } type InstancePropertiesPtrOutput struct{ *pulumi.OutputState } func (InstancePropertiesPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**InstanceProperties)(nil)).Elem() } func (o InstancePropertiesPtrOutput) ToInstancePropertiesPtrOutput() InstancePropertiesPtrOutput { return o } func (o InstancePropertiesPtrOutput) ToInstancePropertiesPtrOutputWithContext(ctx context.Context) InstancePropertiesPtrOutput { return o } func (o InstancePropertiesPtrOutput) Elem() InstancePropertiesOutput { return o.ApplyT(func(v *InstanceProperties) InstanceProperties { if v != nil { return *v } var ret InstanceProperties return ret }).(InstancePropertiesOutput) } // Controls for advanced machine-related behavior features. Note that for MachineImage, this is not supported yet. func (o InstancePropertiesPtrOutput) AdvancedMachineFeatures() AdvancedMachineFeaturesPtrOutput { return o.ApplyT(func(v *InstanceProperties) *AdvancedMachineFeatures { if v == nil { return nil } return v.AdvancedMachineFeatures }).(AdvancedMachineFeaturesPtrOutput) } // Enables instances created based on these properties to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding documentation for more information. func (o InstancePropertiesPtrOutput) CanIpForward() pulumi.BoolPtrOutput { return o.ApplyT(func(v *InstanceProperties) *bool { if v == nil { return nil } return v.CanIpForward }).(pulumi.BoolPtrOutput) } // Specifies the Confidential Instance options. Note that for MachineImage, this is not supported yet. func (o InstancePropertiesPtrOutput) ConfidentialInstanceConfig() ConfidentialInstanceConfigPtrOutput { return o.ApplyT(func(v *InstanceProperties) *ConfidentialInstanceConfig { if v == nil { return nil } return v.ConfidentialInstanceConfig }).(ConfidentialInstanceConfigPtrOutput) } // An optional text description for the instances that are created from these properties. func (o InstancePropertiesPtrOutput) Description() pulumi.StringPtrOutput { return o.ApplyT(func(v *InstanceProperties) *string { if v == nil { return nil } return v.Description }).(pulumi.StringPtrOutput) } // An array of disks that are associated with the instances that are created from these properties. func (o InstancePropertiesPtrOutput) Disks() AttachedDiskArrayOutput { return o.ApplyT(func(v *InstanceProperties) []AttachedDisk { if v == nil { return nil } return v.Disks }).(AttachedDiskArrayOutput) } // A list of guest accelerator cards' type and count to use for instances created from these properties. func (o InstancePropertiesPtrOutput) GuestAccelerators() AcceleratorConfigArrayOutput { return o.ApplyT(func(v *InstanceProperties) []AcceleratorConfig { if v == nil { return nil } return v.GuestAccelerators }).(AcceleratorConfigArrayOutput) } // Labels to apply to instances that are created from these properties. func (o InstancePropertiesPtrOutput) Labels() pulumi.StringMapOutput { return o.ApplyT(func(v *InstanceProperties) map[string]string { if v == nil { return nil } return v.Labels }).(pulumi.StringMapOutput) } // The machine type to use for instances that are created from these properties. func (o InstancePropertiesPtrOutput) MachineType() pulumi.StringPtrOutput { return o.ApplyT(func(v *InstanceProperties) *string { if v == nil { return nil } return v.MachineType }).(pulumi.StringPtrOutput) } // The metadata key/value pairs to assign to instances that are created from these properties. These pairs can consist of custom metadata or predefined keys. See Project and instance metadata for more information. func (o InstancePropertiesPtrOutput) Metadata() MetadataPtrOutput { return o.ApplyT(func(v *InstanceProperties) *Metadata { if v == nil { return nil } return v.Metadata }).(MetadataPtrOutput) } // Minimum cpu/platform to be used by instances. The instance may be scheduled on the specified or newer cpu/platform. Applicable values are the friendly names of CPU platforms, such as minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy Bridge". For more information, read Specifying a Minimum CPU Platform. func (o InstancePropertiesPtrOutput) MinCpuPlatform() pulumi.StringPtrOutput { return o.ApplyT(func(v *InstanceProperties) *string { if v == nil { return nil } return v.MinCpuPlatform }).(pulumi.StringPtrOutput) } // An array of network access configurations for this interface. func (o InstancePropertiesPtrOutput) NetworkInterfaces() NetworkInterfaceArrayOutput { return o.ApplyT(func(v *InstanceProperties) []NetworkInterface { if v == nil { return nil } return v.NetworkInterfaces }).(NetworkInterfaceArrayOutput) } // Note that for MachineImage, this is not supported yet. func (o InstancePropertiesPtrOutput) NetworkPerformanceConfig() NetworkPerformanceConfigPtrOutput { return o.ApplyT(func(v *InstanceProperties) *NetworkPerformanceConfig { if v == nil { return nil } return v.NetworkPerformanceConfig }).(NetworkPerformanceConfigPtrOutput) } // The private IPv6 google access type for VMs. If not specified, use INHERIT_FROM_SUBNETWORK as default. Note that for MachineImage, this is not supported yet. func (o InstancePropertiesPtrOutput) PrivateIpv6GoogleAccess() InstancePropertiesPrivateIpv6GoogleAccessPtrOutput { return o.ApplyT(func(v *InstanceProperties) *InstancePropertiesPrivateIpv6GoogleAccess { if v == nil { return nil } return v.PrivateIpv6GoogleAccess }).(InstancePropertiesPrivateIpv6GoogleAccessPtrOutput) } // Specifies the reservations that instances can consume from. Note that for MachineImage, this is not supported yet. func (o InstancePropertiesPtrOutput) ReservationAffinity() ReservationAffinityPtrOutput { return o.ApplyT(func(v *InstanceProperties) *ReservationAffinity { if v == nil { return nil } return v.ReservationAffinity }).(ReservationAffinityPtrOutput) } // Resource manager tags to be bound to the instance. Tag keys and values have the same definition as resource manager tags. Keys must be in the format `tagKeys/{tag_key_id}`, and values are in the format `tagValues/456`. The field is ignored (both PUT & PATCH) when empty. func (o InstancePropertiesPtrOutput) ResourceManagerTags() pulumi.StringMapOutput { return o.ApplyT(func(v *InstanceProperties) map[string]string { if v == nil { return nil } return v.ResourceManagerTags }).(pulumi.StringMapOutput) } // Resource policies (names, not URLs) applied to instances created from these properties. Note that for MachineImage, this is not supported yet. func (o InstancePropertiesPtrOutput) ResourcePolicies() pulumi.StringArrayOutput { return o.ApplyT(func(v *InstanceProperties) []string { if v == nil { return nil } return v.ResourcePolicies }).(pulumi.StringArrayOutput) } // Specifies the scheduling options for the instances that are created from these properties. func (o InstancePropertiesPtrOutput) Scheduling() SchedulingPtrOutput { return o.ApplyT(func(v *InstanceProperties) *Scheduling { if v == nil { return nil } return v.Scheduling }).(SchedulingPtrOutput) } // A list of service accounts with specified scopes. Access tokens for these service accounts are available to the instances that are created from these properties. Use metadata queries to obtain the access tokens for these instances. func (o InstancePropertiesPtrOutput) ServiceAccounts() ServiceAccountArrayOutput { return o.ApplyT(func(v *InstanceProperties) []ServiceAccount { if v == nil { return nil } return v.ServiceAccounts }).(ServiceAccountArrayOutput) } // Note that for MachineImage, this is not supported yet. func (o InstancePropertiesPtrOutput) ShieldedInstanceConfig() ShieldedInstanceConfigPtrOutput { return o.ApplyT(func(v *InstanceProperties) *ShieldedInstanceConfig { if v == nil { return nil } return v.ShieldedInstanceConfig }).(ShieldedInstanceConfigPtrOutput) } // A list of tags to apply to the instances that are created from these properties. The tags identify valid sources or targets for network firewalls. The setTags method can modify this list of tags. Each tag within the list must comply with RFC1035. func (o InstancePropertiesPtrOutput) Tags() TagsPtrOutput { return o.ApplyT(func(v *InstanceProperties) *Tags { if v == nil { return nil } return v.Tags }).(TagsPtrOutput) } type InstancePropertiesResponse struct { // Controls for advanced machine-related behavior features. Note that for MachineImage, this is not supported yet. AdvancedMachineFeatures AdvancedMachineFeaturesResponse `pulumi:"advancedMachineFeatures"` // Enables instances created based on these properties to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding documentation for more information. CanIpForward bool `pulumi:"canIpForward"` // Specifies the Confidential Instance options. Note that for MachineImage, this is not supported yet. ConfidentialInstanceConfig ConfidentialInstanceConfigResponse `pulumi:"confidentialInstanceConfig"` // An optional text description for the instances that are created from these properties. Description string `pulumi:"description"` // An array of disks that are associated with the instances that are created from these properties. Disks []AttachedDiskResponse `pulumi:"disks"` // A list of guest accelerator cards' type and count to use for instances created from these properties. GuestAccelerators []AcceleratorConfigResponse `pulumi:"guestAccelerators"` // Labels to apply to instances that are created from these properties. Labels map[string]string `pulumi:"labels"` // The machine type to use for instances that are created from these properties. MachineType string `pulumi:"machineType"` // The metadata key/value pairs to assign to instances that are created from these properties. These pairs can consist of custom metadata or predefined keys. See Project and instance metadata for more information. Metadata MetadataResponse `pulumi:"metadata"` // Minimum cpu/platform to be used by instances. The instance may be scheduled on the specified or newer cpu/platform. Applicable values are the friendly names of CPU platforms, such as minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy Bridge". For more information, read Specifying a Minimum CPU Platform. MinCpuPlatform string `pulumi:"minCpuPlatform"` // An array of network access configurations for this interface. NetworkInterfaces []NetworkInterfaceResponse `pulumi:"networkInterfaces"` // Note that for MachineImage, this is not supported yet. NetworkPerformanceConfig NetworkPerformanceConfigResponse `pulumi:"networkPerformanceConfig"` // The private IPv6 google access type for VMs. If not specified, use INHERIT_FROM_SUBNETWORK as default. Note that for MachineImage, this is not supported yet. PrivateIpv6GoogleAccess string `pulumi:"privateIpv6GoogleAccess"` // Specifies the reservations that instances can consume from. Note that for MachineImage, this is not supported yet. ReservationAffinity ReservationAffinityResponse `pulumi:"reservationAffinity"` // Resource manager tags to be bound to the instance. Tag keys and values have the same definition as resource manager tags. Keys must be in the format `tagKeys/{tag_key_id}`, and values are in the format `tagValues/456`. The field is ignored (both PUT & PATCH) when empty. ResourceManagerTags map[string]string `pulumi:"resourceManagerTags"` // Resource policies (names, not URLs) applied to instances created from these properties. Note that for MachineImage, this is not supported yet. ResourcePolicies []string `pulumi:"resourcePolicies"` // Specifies the scheduling options for the instances that are created from these properties. Scheduling SchedulingResponse `pulumi:"scheduling"` // A list of service accounts with specified scopes. Access tokens for these service accounts are available to the instances that are created from these properties. Use metadata queries to obtain the access tokens for these instances. ServiceAccounts []ServiceAccountResponse `pulumi:"serviceAccounts"` // Note that for MachineImage, this is not supported yet. ShieldedInstanceConfig ShieldedInstanceConfigResponse `pulumi:"shieldedInstanceConfig"` // A list of tags to apply to the instances that are created from these properties. The tags identify valid sources or targets for network firewalls. The setTags method can modify this list of tags. Each tag within the list must comply with RFC1035. Tags TagsResponse `pulumi:"tags"` } type InstancePropertiesResponseOutput struct{ *pulumi.OutputState } func (InstancePropertiesResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*InstancePropertiesResponse)(nil)).Elem() } func (o InstancePropertiesResponseOutput) ToInstancePropertiesResponseOutput() InstancePropertiesResponseOutput { return o } func (o InstancePropertiesResponseOutput) ToInstancePropertiesResponseOutputWithContext(ctx context.Context) InstancePropertiesResponseOutput { return o } // Controls for advanced machine-related behavior features. Note that for MachineImage, this is not supported yet. func (o InstancePropertiesResponseOutput) AdvancedMachineFeatures() AdvancedMachineFeaturesResponseOutput { return o.ApplyT(func(v InstancePropertiesResponse) AdvancedMachineFeaturesResponse { return v.AdvancedMachineFeatures }).(AdvancedMachineFeaturesResponseOutput) } // Enables instances created based on these properties to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding documentation for more information. func (o InstancePropertiesResponseOutput) CanIpForward() pulumi.BoolOutput { return o.ApplyT(func(v InstancePropertiesResponse) bool { return v.CanIpForward }).(pulumi.BoolOutput) } // Specifies the Confidential Instance options. Note that for MachineImage, this is not supported yet. func (o InstancePropertiesResponseOutput) ConfidentialInstanceConfig() ConfidentialInstanceConfigResponseOutput { return o.ApplyT(func(v InstancePropertiesResponse) ConfidentialInstanceConfigResponse { return v.ConfidentialInstanceConfig }).(ConfidentialInstanceConfigResponseOutput) } // An optional text description for the instances that are created from these properties. func (o InstancePropertiesResponseOutput) Description() pulumi.StringOutput { return o.ApplyT(func(v InstancePropertiesResponse) string { return v.Description }).(pulumi.StringOutput) } // An array of disks that are associated with the instances that are created from these properties. func (o InstancePropertiesResponseOutput) Disks() AttachedDiskResponseArrayOutput { return o.ApplyT(func(v InstancePropertiesResponse) []AttachedDiskResponse { return v.Disks }).(AttachedDiskResponseArrayOutput) } // A list of guest accelerator cards' type and count to use for instances created from these properties. func (o InstancePropertiesResponseOutput) GuestAccelerators() AcceleratorConfigResponseArrayOutput { return o.ApplyT(func(v InstancePropertiesResponse) []AcceleratorConfigResponse { return v.GuestAccelerators }).(AcceleratorConfigResponseArrayOutput) } // Labels to apply to instances that are created from these properties. func (o InstancePropertiesResponseOutput) Labels() pulumi.StringMapOutput { return o.ApplyT(func(v InstancePropertiesResponse) map[string]string { return v.Labels }).(pulumi.StringMapOutput) } // The machine type to use for instances that are created from these properties. func (o InstancePropertiesResponseOutput) MachineType() pulumi.StringOutput { return o.ApplyT(func(v InstancePropertiesResponse) string { return v.MachineType }).(pulumi.StringOutput) } // The metadata key/value pairs to assign to instances that are created from these properties. These pairs can consist of custom metadata or predefined keys. See Project and instance metadata for more information. func (o InstancePropertiesResponseOutput) Metadata() MetadataResponseOutput { return o.ApplyT(func(v InstancePropertiesResponse) MetadataResponse { return v.Metadata }).(MetadataResponseOutput) } // Minimum cpu/platform to be used by instances. The instance may be scheduled on the specified or newer cpu/platform. Applicable values are the friendly names of CPU platforms, such as minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy Bridge". For more information, read Specifying a Minimum CPU Platform. func (o InstancePropertiesResponseOutput) MinCpuPlatform() pulumi.StringOutput { return o.ApplyT(func(v InstancePropertiesResponse) string { return v.MinCpuPlatform }).(pulumi.StringOutput) } // An array of network access configurations for this interface. func (o InstancePropertiesResponseOutput) NetworkInterfaces() NetworkInterfaceResponseArrayOutput { return o.ApplyT(func(v InstancePropertiesResponse) []NetworkInterfaceResponse { return v.NetworkInterfaces }).(NetworkInterfaceResponseArrayOutput) } // Note that for MachineImage, this is not supported yet. func (o InstancePropertiesResponseOutput) NetworkPerformanceConfig() NetworkPerformanceConfigResponseOutput { return o.ApplyT(func(v InstancePropertiesResponse) NetworkPerformanceConfigResponse { return v.NetworkPerformanceConfig }).(NetworkPerformanceConfigResponseOutput) } // The private IPv6 google access type for VMs. If not specified, use INHERIT_FROM_SUBNETWORK as default. Note that for MachineImage, this is not supported yet. func (o InstancePropertiesResponseOutput) PrivateIpv6GoogleAccess() pulumi.StringOutput { return o.ApplyT(func(v InstancePropertiesResponse) string { return v.PrivateIpv6GoogleAccess }).(pulumi.StringOutput) } // Specifies the reservations that instances can consume from. Note that for MachineImage, this is not supported yet. func (o InstancePropertiesResponseOutput) ReservationAffinity() ReservationAffinityResponseOutput { return o.ApplyT(func(v InstancePropertiesResponse) ReservationAffinityResponse { return v.ReservationAffinity }).(ReservationAffinityResponseOutput) } // Resource manager tags to be bound to the instance. Tag keys and values have the same definition as resource manager tags. Keys must be in the format `tagKeys/{tag_key_id}`, and values are in the format `tagValues/456`. The field is ignored (both PUT & PATCH) when empty. func (o InstancePropertiesResponseOutput) ResourceManagerTags() pulumi.StringMapOutput { return o.ApplyT(func(v InstancePropertiesResponse) map[string]string { return v.ResourceManagerTags }).(pulumi.StringMapOutput) } // Resource policies (names, not URLs) applied to instances created from these properties. Note that for MachineImage, this is not supported yet. func (o InstancePropertiesResponseOutput) ResourcePolicies() pulumi.StringArrayOutput { return o.ApplyT(func(v InstancePropertiesResponse) []string { return v.ResourcePolicies }).(pulumi.StringArrayOutput) } // Specifies the scheduling options for the instances that are created from these properties. func (o InstancePropertiesResponseOutput) Scheduling() SchedulingResponseOutput { return o.ApplyT(func(v InstancePropertiesResponse) SchedulingResponse { return v.Scheduling }).(SchedulingResponseOutput) } // A list of service accounts with specified scopes. Access tokens for these service accounts are available to the instances that are created from these properties. Use metadata queries to obtain the access tokens for these instances. func (o InstancePropertiesResponseOutput) ServiceAccounts() ServiceAccountResponseArrayOutput { return o.ApplyT(func(v InstancePropertiesResponse) []ServiceAccountResponse { return v.ServiceAccounts }).(ServiceAccountResponseArrayOutput) } // Note that for MachineImage, this is not supported yet. func (o InstancePropertiesResponseOutput) ShieldedInstanceConfig() ShieldedInstanceConfigResponseOutput { return o.ApplyT(func(v InstancePropertiesResponse) ShieldedInstanceConfigResponse { return v.ShieldedInstanceConfig }).(ShieldedInstanceConfigResponseOutput) } // A list of tags to apply to the instances that are created from these properties. The tags identify valid sources or targets for network firewalls. The setTags method can modify this list of tags. Each tag within the list must comply with RFC1035. func (o InstancePropertiesResponseOutput) Tags() TagsResponseOutput { return o.ApplyT(func(v InstancePropertiesResponse) TagsResponse { return v.Tags }).(TagsResponseOutput) } // HttpRouteRuleMatch criteria for field values that must stay within the specified integer range. type Int64RangeMatch struct { // The end of the range (exclusive) in signed long integer format. RangeEnd *string `pulumi:"rangeEnd"` // The start of the range (inclusive) in signed long integer format. RangeStart *string `pulumi:"rangeStart"` } // Int64RangeMatchInput is an input type that accepts Int64RangeMatchArgs and Int64RangeMatchOutput values. // You can construct a concrete instance of `Int64RangeMatchInput` via: // // Int64RangeMatchArgs{...} type Int64RangeMatchInput interface { pulumi.Input ToInt64RangeMatchOutput() Int64RangeMatchOutput ToInt64RangeMatchOutputWithContext(context.Context) Int64RangeMatchOutput } // HttpRouteRuleMatch criteria for field values that must stay within the specified integer range. type Int64RangeMatchArgs struct { // The end of the range (exclusive) in signed long integer format. RangeEnd pulumi.StringPtrInput `pulumi:"rangeEnd"` // The start of the range (inclusive) in signed long integer format. RangeStart pulumi.StringPtrInput `pulumi:"rangeStart"` } func (Int64RangeMatchArgs) ElementType() reflect.Type { return reflect.TypeOf((*Int64RangeMatch)(nil)).Elem() } func (i Int64RangeMatchArgs) ToInt64RangeMatchOutput() Int64RangeMatchOutput { return i.ToInt64RangeMatchOutputWithContext(context.Background()) } func (i Int64RangeMatchArgs) ToInt64RangeMatchOutputWithContext(ctx context.Context) Int64RangeMatchOutput { return pulumi.ToOutputWithContext(ctx, i).(Int64RangeMatchOutput) } func (i Int64RangeMatchArgs) ToInt64RangeMatchPtrOutput() Int64RangeMatchPtrOutput { return i.ToInt64RangeMatchPtrOutputWithContext(context.Background()) } func (i Int64RangeMatchArgs) ToInt64RangeMatchPtrOutputWithContext(ctx context.Context) Int64RangeMatchPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(Int64RangeMatchOutput).ToInt64RangeMatchPtrOutputWithContext(ctx) } // Int64RangeMatchPtrInput is an input type that accepts Int64RangeMatchArgs, Int64RangeMatchPtr and Int64RangeMatchPtrOutput values. // You can construct a concrete instance of `Int64RangeMatchPtrInput` via: // // Int64RangeMatchArgs{...} // // or: // // nil type Int64RangeMatchPtrInput interface { pulumi.Input ToInt64RangeMatchPtrOutput() Int64RangeMatchPtrOutput ToInt64RangeMatchPtrOutputWithContext(context.Context) Int64RangeMatchPtrOutput } type int64RangeMatchPtrType Int64RangeMatchArgs func Int64RangeMatchPtr(v *Int64RangeMatchArgs) Int64RangeMatchPtrInput { return (*int64RangeMatchPtrType)(v) } func (*int64RangeMatchPtrType) ElementType() reflect.Type { return reflect.TypeOf((**Int64RangeMatch)(nil)).Elem() } func (i *int64RangeMatchPtrType) ToInt64RangeMatchPtrOutput() Int64RangeMatchPtrOutput { return i.ToInt64RangeMatchPtrOutputWithContext(context.Background()) } func (i *int64RangeMatchPtrType) ToInt64RangeMatchPtrOutputWithContext(ctx context.Context) Int64RangeMatchPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(Int64RangeMatchPtrOutput) } // HttpRouteRuleMatch criteria for field values that must stay within the specified integer range. type Int64RangeMatchOutput struct{ *pulumi.OutputState } func (Int64RangeMatchOutput) ElementType() reflect.Type { return reflect.TypeOf((*Int64RangeMatch)(nil)).Elem() } func (o Int64RangeMatchOutput) ToInt64RangeMatchOutput() Int64RangeMatchOutput { return o } func (o Int64RangeMatchOutput) ToInt64RangeMatchOutputWithContext(ctx context.Context) Int64RangeMatchOutput { return o } func (o Int64RangeMatchOutput) ToInt64RangeMatchPtrOutput() Int64RangeMatchPtrOutput { return o.ToInt64RangeMatchPtrOutputWithContext(context.Background()) } func (o Int64RangeMatchOutput) ToInt64RangeMatchPtrOutputWithContext(ctx context.Context) Int64RangeMatchPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v Int64RangeMatch) *Int64RangeMatch { return &v }).(Int64RangeMatchPtrOutput) } // The end of the range (exclusive) in signed long integer format. func (o Int64RangeMatchOutput) RangeEnd() pulumi.StringPtrOutput { return o.ApplyT(func(v Int64RangeMatch) *string { return v.RangeEnd }).(pulumi.StringPtrOutput) } // The start of the range (inclusive) in signed long integer format. func (o Int64RangeMatchOutput) RangeStart() pulumi.StringPtrOutput { return o.ApplyT(func(v Int64RangeMatch) *string { return v.RangeStart }).(pulumi.StringPtrOutput) } type Int64RangeMatchPtrOutput struct{ *pulumi.OutputState } func (Int64RangeMatchPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**Int64RangeMatch)(nil)).Elem() } func (o Int64RangeMatchPtrOutput) ToInt64RangeMatchPtrOutput() Int64RangeMatchPtrOutput { return o } func (o Int64RangeMatchPtrOutput) ToInt64RangeMatchPtrOutputWithContext(ctx context.Context) Int64RangeMatchPtrOutput { return o } func (o Int64RangeMatchPtrOutput) Elem() Int64RangeMatchOutput { return o.ApplyT(func(v *Int64RangeMatch) Int64RangeMatch { if v != nil { return *v } var ret Int64RangeMatch return ret }).(Int64RangeMatchOutput) } // The end of the range (exclusive) in signed long integer format. func (o Int64RangeMatchPtrOutput) RangeEnd() pulumi.StringPtrOutput { return o.ApplyT(func(v *Int64RangeMatch) *string { if v == nil { return nil } return v.RangeEnd }).(pulumi.StringPtrOutput) } // The start of the range (inclusive) in signed long integer format. func (o Int64RangeMatchPtrOutput) RangeStart() pulumi.StringPtrOutput { return o.ApplyT(func(v *Int64RangeMatch) *string { if v == nil { return nil } return v.RangeStart }).(pulumi.StringPtrOutput) } // HttpRouteRuleMatch criteria for field values that must stay within the specified integer range. type Int64RangeMatchResponse struct { // The end of the range (exclusive) in signed long integer format. RangeEnd string `pulumi:"rangeEnd"` // The start of the range (inclusive) in signed long integer format. RangeStart string `pulumi:"rangeStart"` } // HttpRouteRuleMatch criteria for field values that must stay within the specified integer range. type Int64RangeMatchResponseOutput struct{ *pulumi.OutputState } func (Int64RangeMatchResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*Int64RangeMatchResponse)(nil)).Elem() } func (o Int64RangeMatchResponseOutput) ToInt64RangeMatchResponseOutput() Int64RangeMatchResponseOutput { return o } func (o Int64RangeMatchResponseOutput) ToInt64RangeMatchResponseOutputWithContext(ctx context.Context) Int64RangeMatchResponseOutput { return o } // The end of the range (exclusive) in signed long integer format. func (o Int64RangeMatchResponseOutput) RangeEnd() pulumi.StringOutput { return o.ApplyT(func(v Int64RangeMatchResponse) string { return v.RangeEnd }).(pulumi.StringOutput) } // The start of the range (inclusive) in signed long integer format. func (o Int64RangeMatchResponseOutput) RangeStart() pulumi.StringOutput { return o.ApplyT(func(v Int64RangeMatchResponse) string { return v.RangeStart }).(pulumi.StringOutput) } // Informational metadata about Partner attachments from Partners to display to customers. These fields are propagated from PARTNER_PROVIDER attachments to their corresponding PARTNER attachments. type InterconnectAttachmentPartnerMetadata struct { // Plain text name of the Interconnect this attachment is connected to, as displayed in the Partner's portal. For instance "Chicago 1". This value may be validated to match approved Partner values. InterconnectName *string `pulumi:"interconnectName"` // Plain text name of the Partner providing this attachment. This value may be validated to match approved Partner values. PartnerName *string `pulumi:"partnerName"` // URL of the Partner's portal for this Attachment. Partners may customise this to be a deep link to the specific resource on the Partner portal. This value may be validated to match approved Partner values. PortalUrl *string `pulumi:"portalUrl"` } // InterconnectAttachmentPartnerMetadataInput is an input type that accepts InterconnectAttachmentPartnerMetadataArgs and InterconnectAttachmentPartnerMetadataOutput values. // You can construct a concrete instance of `InterconnectAttachmentPartnerMetadataInput` via: // // InterconnectAttachmentPartnerMetadataArgs{...} type InterconnectAttachmentPartnerMetadataInput interface { pulumi.Input ToInterconnectAttachmentPartnerMetadataOutput() InterconnectAttachmentPartnerMetadataOutput ToInterconnectAttachmentPartnerMetadataOutputWithContext(context.Context) InterconnectAttachmentPartnerMetadataOutput } // Informational metadata about Partner attachments from Partners to display to customers. These fields are propagated from PARTNER_PROVIDER attachments to their corresponding PARTNER attachments. type InterconnectAttachmentPartnerMetadataArgs struct { // Plain text name of the Interconnect this attachment is connected to, as displayed in the Partner's portal. For instance "Chicago 1". This value may be validated to match approved Partner values. InterconnectName pulumi.StringPtrInput `pulumi:"interconnectName"` // Plain text name of the Partner providing this attachment. This value may be validated to match approved Partner values. PartnerName pulumi.StringPtrInput `pulumi:"partnerName"` // URL of the Partner's portal for this Attachment. Partners may customise this to be a deep link to the specific resource on the Partner portal. This value may be validated to match approved Partner values. PortalUrl pulumi.StringPtrInput `pulumi:"portalUrl"` } func (InterconnectAttachmentPartnerMetadataArgs) ElementType() reflect.Type { return reflect.TypeOf((*InterconnectAttachmentPartnerMetadata)(nil)).Elem() } func (i InterconnectAttachmentPartnerMetadataArgs) ToInterconnectAttachmentPartnerMetadataOutput() InterconnectAttachmentPartnerMetadataOutput { return i.ToInterconnectAttachmentPartnerMetadataOutputWithContext(context.Background()) } func (i InterconnectAttachmentPartnerMetadataArgs) ToInterconnectAttachmentPartnerMetadataOutputWithContext(ctx context.Context) InterconnectAttachmentPartnerMetadataOutput { return pulumi.ToOutputWithContext(ctx, i).(InterconnectAttachmentPartnerMetadataOutput) } func (i InterconnectAttachmentPartnerMetadataArgs) ToInterconnectAttachmentPartnerMetadataPtrOutput() InterconnectAttachmentPartnerMetadataPtrOutput { return i.ToInterconnectAttachmentPartnerMetadataPtrOutputWithContext(context.Background()) } func (i InterconnectAttachmentPartnerMetadataArgs) ToInterconnectAttachmentPartnerMetadataPtrOutputWithContext(ctx context.Context) InterconnectAttachmentPartnerMetadataPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(InterconnectAttachmentPartnerMetadataOutput).ToInterconnectAttachmentPartnerMetadataPtrOutputWithContext(ctx) } // InterconnectAttachmentPartnerMetadataPtrInput is an input type that accepts InterconnectAttachmentPartnerMetadataArgs, InterconnectAttachmentPartnerMetadataPtr and InterconnectAttachmentPartnerMetadataPtrOutput values. // You can construct a concrete instance of `InterconnectAttachmentPartnerMetadataPtrInput` via: // // InterconnectAttachmentPartnerMetadataArgs{...} // // or: // // nil type InterconnectAttachmentPartnerMetadataPtrInput interface { pulumi.Input ToInterconnectAttachmentPartnerMetadataPtrOutput() InterconnectAttachmentPartnerMetadataPtrOutput ToInterconnectAttachmentPartnerMetadataPtrOutputWithContext(context.Context) InterconnectAttachmentPartnerMetadataPtrOutput } type interconnectAttachmentPartnerMetadataPtrType InterconnectAttachmentPartnerMetadataArgs func InterconnectAttachmentPartnerMetadataPtr(v *InterconnectAttachmentPartnerMetadataArgs) InterconnectAttachmentPartnerMetadataPtrInput { return (*interconnectAttachmentPartnerMetadataPtrType)(v) } func (*interconnectAttachmentPartnerMetadataPtrType) ElementType() reflect.Type { return reflect.TypeOf((**InterconnectAttachmentPartnerMetadata)(nil)).Elem() } func (i *interconnectAttachmentPartnerMetadataPtrType) ToInterconnectAttachmentPartnerMetadataPtrOutput() InterconnectAttachmentPartnerMetadataPtrOutput { return i.ToInterconnectAttachmentPartnerMetadataPtrOutputWithContext(context.Background()) } func (i *interconnectAttachmentPartnerMetadataPtrType) ToInterconnectAttachmentPartnerMetadataPtrOutputWithContext(ctx context.Context) InterconnectAttachmentPartnerMetadataPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(InterconnectAttachmentPartnerMetadataPtrOutput) } // Informational metadata about Partner attachments from Partners to display to customers. These fields are propagated from PARTNER_PROVIDER attachments to their corresponding PARTNER attachments. type InterconnectAttachmentPartnerMetadataOutput struct{ *pulumi.OutputState } func (InterconnectAttachmentPartnerMetadataOutput) ElementType() reflect.Type { return reflect.TypeOf((*InterconnectAttachmentPartnerMetadata)(nil)).Elem() } func (o InterconnectAttachmentPartnerMetadataOutput) ToInterconnectAttachmentPartnerMetadataOutput() InterconnectAttachmentPartnerMetadataOutput { return o } func (o InterconnectAttachmentPartnerMetadataOutput) ToInterconnectAttachmentPartnerMetadataOutputWithContext(ctx context.Context) InterconnectAttachmentPartnerMetadataOutput { return o } func (o InterconnectAttachmentPartnerMetadataOutput) ToInterconnectAttachmentPartnerMetadataPtrOutput() InterconnectAttachmentPartnerMetadataPtrOutput { return o.ToInterconnectAttachmentPartnerMetadataPtrOutputWithContext(context.Background()) } func (o InterconnectAttachmentPartnerMetadataOutput) ToInterconnectAttachmentPartnerMetadataPtrOutputWithContext(ctx context.Context) InterconnectAttachmentPartnerMetadataPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v InterconnectAttachmentPartnerMetadata) *InterconnectAttachmentPartnerMetadata { return &v }).(InterconnectAttachmentPartnerMetadataPtrOutput) } // Plain text name of the Interconnect this attachment is connected to, as displayed in the Partner's portal. For instance "Chicago 1". This value may be validated to match approved Partner values. func (o InterconnectAttachmentPartnerMetadataOutput) InterconnectName() pulumi.StringPtrOutput { return o.ApplyT(func(v InterconnectAttachmentPartnerMetadata) *string { return v.InterconnectName }).(pulumi.StringPtrOutput) } // Plain text name of the Partner providing this attachment. This value may be validated to match approved Partner values. func (o InterconnectAttachmentPartnerMetadataOutput) PartnerName() pulumi.StringPtrOutput { return o.ApplyT(func(v InterconnectAttachmentPartnerMetadata) *string { return v.PartnerName }).(pulumi.StringPtrOutput) } // URL of the Partner's portal for this Attachment. Partners may customise this to be a deep link to the specific resource on the Partner portal. This value may be validated to match approved Partner values. func (o InterconnectAttachmentPartnerMetadataOutput) PortalUrl() pulumi.StringPtrOutput { return o.ApplyT(func(v InterconnectAttachmentPartnerMetadata) *string { return v.PortalUrl }).(pulumi.StringPtrOutput) } type InterconnectAttachmentPartnerMetadataPtrOutput struct{ *pulumi.OutputState } func (InterconnectAttachmentPartnerMetadataPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**InterconnectAttachmentPartnerMetadata)(nil)).Elem() } func (o InterconnectAttachmentPartnerMetadataPtrOutput) ToInterconnectAttachmentPartnerMetadataPtrOutput() InterconnectAttachmentPartnerMetadataPtrOutput { return o } func (o InterconnectAttachmentPartnerMetadataPtrOutput) ToInterconnectAttachmentPartnerMetadataPtrOutputWithContext(ctx context.Context) InterconnectAttachmentPartnerMetadataPtrOutput { return o } func (o InterconnectAttachmentPartnerMetadataPtrOutput) Elem() InterconnectAttachmentPartnerMetadataOutput { return o.ApplyT(func(v *InterconnectAttachmentPartnerMetadata) InterconnectAttachmentPartnerMetadata { if v != nil { return *v } var ret InterconnectAttachmentPartnerMetadata return ret }).(InterconnectAttachmentPartnerMetadataOutput) } // Plain text name of the Interconnect this attachment is connected to, as displayed in the Partner's portal. For instance "Chicago 1". This value may be validated to match approved Partner values. func (o InterconnectAttachmentPartnerMetadataPtrOutput) InterconnectName() pulumi.StringPtrOutput { return o.ApplyT(func(v *InterconnectAttachmentPartnerMetadata) *string { if v == nil { return nil } return v.InterconnectName }).(pulumi.StringPtrOutput) } // Plain text name of the Partner providing this attachment. This value may be validated to match approved Partner values. func (o InterconnectAttachmentPartnerMetadataPtrOutput) PartnerName() pulumi.StringPtrOutput { return o.ApplyT(func(v *InterconnectAttachmentPartnerMetadata) *string { if v == nil { return nil } return v.PartnerName }).(pulumi.StringPtrOutput) } // URL of the Partner's portal for this Attachment. Partners may customise this to be a deep link to the specific resource on the Partner portal. This value may be validated to match approved Partner values. func (o InterconnectAttachmentPartnerMetadataPtrOutput) PortalUrl() pulumi.StringPtrOutput { return o.ApplyT(func(v *InterconnectAttachmentPartnerMetadata) *string { if v == nil { return nil } return v.PortalUrl }).(pulumi.StringPtrOutput) } // Informational metadata about Partner attachments from Partners to display to customers. These fields are propagated from PARTNER_PROVIDER attachments to their corresponding PARTNER attachments. type InterconnectAttachmentPartnerMetadataResponse struct { // Plain text name of the Interconnect this attachment is connected to, as displayed in the Partner's portal. For instance "Chicago 1". This value may be validated to match approved Partner values. InterconnectName string `pulumi:"interconnectName"` // Plain text name of the Partner providing this attachment. This value may be validated to match approved Partner values. PartnerName string `pulumi:"partnerName"` // URL of the Partner's portal for this Attachment. Partners may customise this to be a deep link to the specific resource on the Partner portal. This value may be validated to match approved Partner values. PortalUrl string `pulumi:"portalUrl"` } // Informational metadata about Partner attachments from Partners to display to customers. These fields are propagated from PARTNER_PROVIDER attachments to their corresponding PARTNER attachments. type InterconnectAttachmentPartnerMetadataResponseOutput struct{ *pulumi.OutputState } func (InterconnectAttachmentPartnerMetadataResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*InterconnectAttachmentPartnerMetadataResponse)(nil)).Elem() } func (o InterconnectAttachmentPartnerMetadataResponseOutput) ToInterconnectAttachmentPartnerMetadataResponseOutput() InterconnectAttachmentPartnerMetadataResponseOutput { return o } func (o InterconnectAttachmentPartnerMetadataResponseOutput) ToInterconnectAttachmentPartnerMetadataResponseOutputWithContext(ctx context.Context) InterconnectAttachmentPartnerMetadataResponseOutput { return o } // Plain text name of the Interconnect this attachment is connected to, as displayed in the Partner's portal. For instance "Chicago 1". This value may be validated to match approved Partner values. func (o InterconnectAttachmentPartnerMetadataResponseOutput) InterconnectName() pulumi.StringOutput { return o.ApplyT(func(v InterconnectAttachmentPartnerMetadataResponse) string { return v.InterconnectName }).(pulumi.StringOutput) } // Plain text name of the Partner providing this attachment. This value may be validated to match approved Partner values. func (o InterconnectAttachmentPartnerMetadataResponseOutput) PartnerName() pulumi.StringOutput { return o.ApplyT(func(v InterconnectAttachmentPartnerMetadataResponse) string { return v.PartnerName }).(pulumi.StringOutput) } // URL of the Partner's portal for this Attachment. Partners may customise this to be a deep link to the specific resource on the Partner portal. This value may be validated to match approved Partner values. func (o InterconnectAttachmentPartnerMetadataResponseOutput) PortalUrl() pulumi.StringOutput { return o.ApplyT(func(v InterconnectAttachmentPartnerMetadataResponse) string { return v.PortalUrl }).(pulumi.StringOutput) } // Information for an interconnect attachment when this belongs to an interconnect of type DEDICATED. type InterconnectAttachmentPrivateInfoResponse struct { // 802.1q encapsulation tag to be used for traffic between Google and the customer, going to and from this network and region. Tag8021q int `pulumi:"tag8021q"` } // Information for an interconnect attachment when this belongs to an interconnect of type DEDICATED. type InterconnectAttachmentPrivateInfoResponseOutput struct{ *pulumi.OutputState } func (InterconnectAttachmentPrivateInfoResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*InterconnectAttachmentPrivateInfoResponse)(nil)).Elem() } func (o InterconnectAttachmentPrivateInfoResponseOutput) ToInterconnectAttachmentPrivateInfoResponseOutput() InterconnectAttachmentPrivateInfoResponseOutput { return o } func (o InterconnectAttachmentPrivateInfoResponseOutput) ToInterconnectAttachmentPrivateInfoResponseOutputWithContext(ctx context.Context) InterconnectAttachmentPrivateInfoResponseOutput { return o } // 802.1q encapsulation tag to be used for traffic between Google and the customer, going to and from this network and region. func (o InterconnectAttachmentPrivateInfoResponseOutput) Tag8021q() pulumi.IntOutput { return o.ApplyT(func(v InterconnectAttachmentPrivateInfoResponse) int { return v.Tag8021q }).(pulumi.IntOutput) } // Describes a single physical circuit between the Customer and Google. CircuitInfo objects are created by Google, so all fields are output only. type InterconnectCircuitInfoResponse struct { // Customer-side demarc ID for this circuit. CustomerDemarcId string `pulumi:"customerDemarcId"` // Google-assigned unique ID for this circuit. Assigned at circuit turn-up. GoogleCircuitId string `pulumi:"googleCircuitId"` // Google-side demarc ID for this circuit. Assigned at circuit turn-up and provided by Google to the customer in the LOA. GoogleDemarcId string `pulumi:"googleDemarcId"` } // Describes a single physical circuit between the Customer and Google. CircuitInfo objects are created by Google, so all fields are output only. type InterconnectCircuitInfoResponseOutput struct{ *pulumi.OutputState } func (InterconnectCircuitInfoResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*InterconnectCircuitInfoResponse)(nil)).Elem() } func (o InterconnectCircuitInfoResponseOutput) ToInterconnectCircuitInfoResponseOutput() InterconnectCircuitInfoResponseOutput { return o } func (o InterconnectCircuitInfoResponseOutput) ToInterconnectCircuitInfoResponseOutputWithContext(ctx context.Context) InterconnectCircuitInfoResponseOutput { return o } // Customer-side demarc ID for this circuit. func (o InterconnectCircuitInfoResponseOutput) CustomerDemarcId() pulumi.StringOutput { return o.ApplyT(func(v InterconnectCircuitInfoResponse) string { return v.CustomerDemarcId }).(pulumi.StringOutput) } // Google-assigned unique ID for this circuit. Assigned at circuit turn-up. func (o InterconnectCircuitInfoResponseOutput) GoogleCircuitId() pulumi.StringOutput { return o.ApplyT(func(v InterconnectCircuitInfoResponse) string { return v.GoogleCircuitId }).(pulumi.StringOutput) } // Google-side demarc ID for this circuit. Assigned at circuit turn-up and provided by Google to the customer in the LOA. func (o InterconnectCircuitInfoResponseOutput) GoogleDemarcId() pulumi.StringOutput { return o.ApplyT(func(v InterconnectCircuitInfoResponse) string { return v.GoogleDemarcId }).(pulumi.StringOutput) } type InterconnectCircuitInfoResponseArrayOutput struct{ *pulumi.OutputState } func (InterconnectCircuitInfoResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]InterconnectCircuitInfoResponse)(nil)).Elem() } func (o InterconnectCircuitInfoResponseArrayOutput) ToInterconnectCircuitInfoResponseArrayOutput() InterconnectCircuitInfoResponseArrayOutput { return o } func (o InterconnectCircuitInfoResponseArrayOutput) ToInterconnectCircuitInfoResponseArrayOutputWithContext(ctx context.Context) InterconnectCircuitInfoResponseArrayOutput { return o } func (o InterconnectCircuitInfoResponseArrayOutput) Index(i pulumi.IntInput) InterconnectCircuitInfoResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) InterconnectCircuitInfoResponse { return vs[0].([]InterconnectCircuitInfoResponse)[vs[1].(int)] }).(InterconnectCircuitInfoResponseOutput) } // Description of a planned outage on this Interconnect. type InterconnectOutageNotificationResponse struct { // If issue_type is IT_PARTIAL_OUTAGE, a list of the Google-side circuit IDs that will be affected. AffectedCircuits []string `pulumi:"affectedCircuits"` // A description about the purpose of the outage. Description string `pulumi:"description"` // Scheduled end time for the outage (milliseconds since Unix epoch). EndTime string `pulumi:"endTime"` // Form this outage is expected to take, which can take one of the following values: - OUTAGE: The Interconnect may be completely out of service for some or all of the specified window. - PARTIAL_OUTAGE: Some circuits comprising the Interconnect as a whole should remain up, but with reduced bandwidth. Note that the versions of this enum prefixed with "IT_" have been deprecated in favor of the unprefixed values. IssueType string `pulumi:"issueType"` // Unique identifier for this outage notification. Name string `pulumi:"name"` // The party that generated this notification, which can take the following value: - GOOGLE: this notification as generated by Google. Note that the value of NSRC_GOOGLE has been deprecated in favor of GOOGLE. Source string `pulumi:"source"` // Scheduled start time for the outage (milliseconds since Unix epoch). StartTime string `pulumi:"startTime"` // State of this notification, which can take one of the following values: - ACTIVE: This outage notification is active. The event could be in the past, present, or future. See start_time and end_time for scheduling. - CANCELLED: The outage associated with this notification was cancelled before the outage was due to start. - COMPLETED: The outage associated with this notification is complete. Note that the versions of this enum prefixed with "NS_" have been deprecated in favor of the unprefixed values. State string `pulumi:"state"` } // Description of a planned outage on this Interconnect. type InterconnectOutageNotificationResponseOutput struct{ *pulumi.OutputState } func (InterconnectOutageNotificationResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*InterconnectOutageNotificationResponse)(nil)).Elem() } func (o InterconnectOutageNotificationResponseOutput) ToInterconnectOutageNotificationResponseOutput() InterconnectOutageNotificationResponseOutput { return o } func (o InterconnectOutageNotificationResponseOutput) ToInterconnectOutageNotificationResponseOutputWithContext(ctx context.Context) InterconnectOutageNotificationResponseOutput { return o } // If issue_type is IT_PARTIAL_OUTAGE, a list of the Google-side circuit IDs that will be affected. func (o InterconnectOutageNotificationResponseOutput) AffectedCircuits() pulumi.StringArrayOutput { return o.ApplyT(func(v InterconnectOutageNotificationResponse) []string { return v.AffectedCircuits }).(pulumi.StringArrayOutput) } // A description about the purpose of the outage. func (o InterconnectOutageNotificationResponseOutput) Description() pulumi.StringOutput { return o.ApplyT(func(v InterconnectOutageNotificationResponse) string { return v.Description }).(pulumi.StringOutput) } // Scheduled end time for the outage (milliseconds since Unix epoch). func (o InterconnectOutageNotificationResponseOutput) EndTime() pulumi.StringOutput { return o.ApplyT(func(v InterconnectOutageNotificationResponse) string { return v.EndTime }).(pulumi.StringOutput) } // Form this outage is expected to take, which can take one of the following values: - OUTAGE: The Interconnect may be completely out of service for some or all of the specified window. - PARTIAL_OUTAGE: Some circuits comprising the Interconnect as a whole should remain up, but with reduced bandwidth. Note that the versions of this enum prefixed with "IT_" have been deprecated in favor of the unprefixed values. func (o InterconnectOutageNotificationResponseOutput) IssueType() pulumi.StringOutput { return o.ApplyT(func(v InterconnectOutageNotificationResponse) string { return v.IssueType }).(pulumi.StringOutput) } // Unique identifier for this outage notification. func (o InterconnectOutageNotificationResponseOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v InterconnectOutageNotificationResponse) string { return v.Name }).(pulumi.StringOutput) } // The party that generated this notification, which can take the following value: - GOOGLE: this notification as generated by Google. Note that the value of NSRC_GOOGLE has been deprecated in favor of GOOGLE. func (o InterconnectOutageNotificationResponseOutput) Source() pulumi.StringOutput { return o.ApplyT(func(v InterconnectOutageNotificationResponse) string { return v.Source }).(pulumi.StringOutput) } // Scheduled start time for the outage (milliseconds since Unix epoch). func (o InterconnectOutageNotificationResponseOutput) StartTime() pulumi.StringOutput { return o.ApplyT(func(v InterconnectOutageNotificationResponse) string { return v.StartTime }).(pulumi.StringOutput) } // State of this notification, which can take one of the following values: - ACTIVE: This outage notification is active. The event could be in the past, present, or future. See start_time and end_time for scheduling. - CANCELLED: The outage associated with this notification was cancelled before the outage was due to start. - COMPLETED: The outage associated with this notification is complete. Note that the versions of this enum prefixed with "NS_" have been deprecated in favor of the unprefixed values. func (o InterconnectOutageNotificationResponseOutput) State() pulumi.StringOutput { return o.ApplyT(func(v InterconnectOutageNotificationResponse) string { return v.State }).(pulumi.StringOutput) } type InterconnectOutageNotificationResponseArrayOutput struct{ *pulumi.OutputState } func (InterconnectOutageNotificationResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]InterconnectOutageNotificationResponse)(nil)).Elem() } func (o InterconnectOutageNotificationResponseArrayOutput) ToInterconnectOutageNotificationResponseArrayOutput() InterconnectOutageNotificationResponseArrayOutput { return o } func (o InterconnectOutageNotificationResponseArrayOutput) ToInterconnectOutageNotificationResponseArrayOutputWithContext(ctx context.Context) InterconnectOutageNotificationResponseArrayOutput { return o } func (o InterconnectOutageNotificationResponseArrayOutput) Index(i pulumi.IntInput) InterconnectOutageNotificationResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) InterconnectOutageNotificationResponse { return vs[0].([]InterconnectOutageNotificationResponse)[vs[1].(int)] }).(InterconnectOutageNotificationResponseOutput) } // Commitment for a particular license resource. type LicenseResourceCommitment struct { // The number of licenses purchased. Amount *string `pulumi:"amount"` // Specifies the core range of the instance for which this license applies. CoresPerLicense *string `pulumi:"coresPerLicense"` // Any applicable license URI. License *string `pulumi:"license"` } // LicenseResourceCommitmentInput is an input type that accepts LicenseResourceCommitmentArgs and LicenseResourceCommitmentOutput values. // You can construct a concrete instance of `LicenseResourceCommitmentInput` via: // // LicenseResourceCommitmentArgs{...} type LicenseResourceCommitmentInput interface { pulumi.Input ToLicenseResourceCommitmentOutput() LicenseResourceCommitmentOutput ToLicenseResourceCommitmentOutputWithContext(context.Context) LicenseResourceCommitmentOutput } // Commitment for a particular license resource. type LicenseResourceCommitmentArgs struct { // The number of licenses purchased. Amount pulumi.StringPtrInput `pulumi:"amount"` // Specifies the core range of the instance for which this license applies. CoresPerLicense pulumi.StringPtrInput `pulumi:"coresPerLicense"` // Any applicable license URI. License pulumi.StringPtrInput `pulumi:"license"` } func (LicenseResourceCommitmentArgs) ElementType() reflect.Type { return reflect.TypeOf((*LicenseResourceCommitment)(nil)).Elem() } func (i LicenseResourceCommitmentArgs) ToLicenseResourceCommitmentOutput() LicenseResourceCommitmentOutput { return i.ToLicenseResourceCommitmentOutputWithContext(context.Background()) } func (i LicenseResourceCommitmentArgs) ToLicenseResourceCommitmentOutputWithContext(ctx context.Context) LicenseResourceCommitmentOutput { return pulumi.ToOutputWithContext(ctx, i).(LicenseResourceCommitmentOutput) } func (i LicenseResourceCommitmentArgs) ToLicenseResourceCommitmentPtrOutput() LicenseResourceCommitmentPtrOutput { return i.ToLicenseResourceCommitmentPtrOutputWithContext(context.Background()) } func (i LicenseResourceCommitmentArgs) ToLicenseResourceCommitmentPtrOutputWithContext(ctx context.Context) LicenseResourceCommitmentPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(LicenseResourceCommitmentOutput).ToLicenseResourceCommitmentPtrOutputWithContext(ctx) } // LicenseResourceCommitmentPtrInput is an input type that accepts LicenseResourceCommitmentArgs, LicenseResourceCommitmentPtr and LicenseResourceCommitmentPtrOutput values. // You can construct a concrete instance of `LicenseResourceCommitmentPtrInput` via: // // LicenseResourceCommitmentArgs{...} // // or: // // nil type LicenseResourceCommitmentPtrInput interface { pulumi.Input ToLicenseResourceCommitmentPtrOutput() LicenseResourceCommitmentPtrOutput ToLicenseResourceCommitmentPtrOutputWithContext(context.Context) LicenseResourceCommitmentPtrOutput } type licenseResourceCommitmentPtrType LicenseResourceCommitmentArgs func LicenseResourceCommitmentPtr(v *LicenseResourceCommitmentArgs) LicenseResourceCommitmentPtrInput { return (*licenseResourceCommitmentPtrType)(v) } func (*licenseResourceCommitmentPtrType) ElementType() reflect.Type { return reflect.TypeOf((**LicenseResourceCommitment)(nil)).Elem() } func (i *licenseResourceCommitmentPtrType) ToLicenseResourceCommitmentPtrOutput() LicenseResourceCommitmentPtrOutput { return i.ToLicenseResourceCommitmentPtrOutputWithContext(context.Background()) } func (i *licenseResourceCommitmentPtrType) ToLicenseResourceCommitmentPtrOutputWithContext(ctx context.Context) LicenseResourceCommitmentPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(LicenseResourceCommitmentPtrOutput) } // Commitment for a particular license resource. type LicenseResourceCommitmentOutput struct{ *pulumi.OutputState } func (LicenseResourceCommitmentOutput) ElementType() reflect.Type { return reflect.TypeOf((*LicenseResourceCommitment)(nil)).Elem() } func (o LicenseResourceCommitmentOutput) ToLicenseResourceCommitmentOutput() LicenseResourceCommitmentOutput { return o } func (o LicenseResourceCommitmentOutput) ToLicenseResourceCommitmentOutputWithContext(ctx context.Context) LicenseResourceCommitmentOutput { return o } func (o LicenseResourceCommitmentOutput) ToLicenseResourceCommitmentPtrOutput() LicenseResourceCommitmentPtrOutput { return o.ToLicenseResourceCommitmentPtrOutputWithContext(context.Background()) } func (o LicenseResourceCommitmentOutput) ToLicenseResourceCommitmentPtrOutputWithContext(ctx context.Context) LicenseResourceCommitmentPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v LicenseResourceCommitment) *LicenseResourceCommitment { return &v }).(LicenseResourceCommitmentPtrOutput) } // The number of licenses purchased. func (o LicenseResourceCommitmentOutput) Amount() pulumi.StringPtrOutput { return o.ApplyT(func(v LicenseResourceCommitment) *string { return v.Amount }).(pulumi.StringPtrOutput) } // Specifies the core range of the instance for which this license applies. func (o LicenseResourceCommitmentOutput) CoresPerLicense() pulumi.StringPtrOutput { return o.ApplyT(func(v LicenseResourceCommitment) *string { return v.CoresPerLicense }).(pulumi.StringPtrOutput) } // Any applicable license URI. func (o LicenseResourceCommitmentOutput) License() pulumi.StringPtrOutput { return o.ApplyT(func(v LicenseResourceCommitment) *string { return v.License }).(pulumi.StringPtrOutput) } type LicenseResourceCommitmentPtrOutput struct{ *pulumi.OutputState } func (LicenseResourceCommitmentPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**LicenseResourceCommitment)(nil)).Elem() } func (o LicenseResourceCommitmentPtrOutput) ToLicenseResourceCommitmentPtrOutput() LicenseResourceCommitmentPtrOutput { return o } func (o LicenseResourceCommitmentPtrOutput) ToLicenseResourceCommitmentPtrOutputWithContext(ctx context.Context) LicenseResourceCommitmentPtrOutput { return o } func (o LicenseResourceCommitmentPtrOutput) Elem() LicenseResourceCommitmentOutput { return o.ApplyT(func(v *LicenseResourceCommitment) LicenseResourceCommitment { if v != nil { return *v } var ret LicenseResourceCommitment return ret }).(LicenseResourceCommitmentOutput) } // The number of licenses purchased. func (o LicenseResourceCommitmentPtrOutput) Amount() pulumi.StringPtrOutput { return o.ApplyT(func(v *LicenseResourceCommitment) *string { if v == nil { return nil } return v.Amount }).(pulumi.StringPtrOutput) } // Specifies the core range of the instance for which this license applies. func (o LicenseResourceCommitmentPtrOutput) CoresPerLicense() pulumi.StringPtrOutput { return o.ApplyT(func(v *LicenseResourceCommitment) *string { if v == nil { return nil } return v.CoresPerLicense }).(pulumi.StringPtrOutput) } // Any applicable license URI. func (o LicenseResourceCommitmentPtrOutput) License() pulumi.StringPtrOutput { return o.ApplyT(func(v *LicenseResourceCommitment) *string { if v == nil { return nil } return v.License }).(pulumi.StringPtrOutput) } // Commitment for a particular license resource. type LicenseResourceCommitmentResponse struct { // The number of licenses purchased. Amount string `pulumi:"amount"` // Specifies the core range of the instance for which this license applies. CoresPerLicense string `pulumi:"coresPerLicense"` // Any applicable license URI. License string `pulumi:"license"` } // Commitment for a particular license resource. type LicenseResourceCommitmentResponseOutput struct{ *pulumi.OutputState } func (LicenseResourceCommitmentResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*LicenseResourceCommitmentResponse)(nil)).Elem() } func (o LicenseResourceCommitmentResponseOutput) ToLicenseResourceCommitmentResponseOutput() LicenseResourceCommitmentResponseOutput { return o } func (o LicenseResourceCommitmentResponseOutput) ToLicenseResourceCommitmentResponseOutputWithContext(ctx context.Context) LicenseResourceCommitmentResponseOutput { return o } // The number of licenses purchased. func (o LicenseResourceCommitmentResponseOutput) Amount() pulumi.StringOutput { return o.ApplyT(func(v LicenseResourceCommitmentResponse) string { return v.Amount }).(pulumi.StringOutput) } // Specifies the core range of the instance for which this license applies. func (o LicenseResourceCommitmentResponseOutput) CoresPerLicense() pulumi.StringOutput { return o.ApplyT(func(v LicenseResourceCommitmentResponse) string { return v.CoresPerLicense }).(pulumi.StringOutput) } // Any applicable license URI. func (o LicenseResourceCommitmentResponseOutput) License() pulumi.StringOutput { return o.ApplyT(func(v LicenseResourceCommitmentResponse) string { return v.License }).(pulumi.StringOutput) } type LicenseResourceRequirements struct { // Minimum number of guest cpus required to use the Instance. Enforced at Instance creation and Instance start. MinGuestCpuCount *int `pulumi:"minGuestCpuCount"` // Minimum memory required to use the Instance. Enforced at Instance creation and Instance start. MinMemoryMb *int `pulumi:"minMemoryMb"` } // LicenseResourceRequirementsInput is an input type that accepts LicenseResourceRequirementsArgs and LicenseResourceRequirementsOutput values. // You can construct a concrete instance of `LicenseResourceRequirementsInput` via: // // LicenseResourceRequirementsArgs{...} type LicenseResourceRequirementsInput interface { pulumi.Input ToLicenseResourceRequirementsOutput() LicenseResourceRequirementsOutput ToLicenseResourceRequirementsOutputWithContext(context.Context) LicenseResourceRequirementsOutput } type LicenseResourceRequirementsArgs struct { // Minimum number of guest cpus required to use the Instance. Enforced at Instance creation and Instance start. MinGuestCpuCount pulumi.IntPtrInput `pulumi:"minGuestCpuCount"` // Minimum memory required to use the Instance. Enforced at Instance creation and Instance start. MinMemoryMb pulumi.IntPtrInput `pulumi:"minMemoryMb"` } func (LicenseResourceRequirementsArgs) ElementType() reflect.Type { return reflect.TypeOf((*LicenseResourceRequirements)(nil)).Elem() } func (i LicenseResourceRequirementsArgs) ToLicenseResourceRequirementsOutput() LicenseResourceRequirementsOutput { return i.ToLicenseResourceRequirementsOutputWithContext(context.Background()) } func (i LicenseResourceRequirementsArgs) ToLicenseResourceRequirementsOutputWithContext(ctx context.Context) LicenseResourceRequirementsOutput { return pulumi.ToOutputWithContext(ctx, i).(LicenseResourceRequirementsOutput) } func (i LicenseResourceRequirementsArgs) ToLicenseResourceRequirementsPtrOutput() LicenseResourceRequirementsPtrOutput { return i.ToLicenseResourceRequirementsPtrOutputWithContext(context.Background()) } func (i LicenseResourceRequirementsArgs) ToLicenseResourceRequirementsPtrOutputWithContext(ctx context.Context) LicenseResourceRequirementsPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(LicenseResourceRequirementsOutput).ToLicenseResourceRequirementsPtrOutputWithContext(ctx) } // LicenseResourceRequirementsPtrInput is an input type that accepts LicenseResourceRequirementsArgs, LicenseResourceRequirementsPtr and LicenseResourceRequirementsPtrOutput values. // You can construct a concrete instance of `LicenseResourceRequirementsPtrInput` via: // // LicenseResourceRequirementsArgs{...} // // or: // // nil type LicenseResourceRequirementsPtrInput interface { pulumi.Input ToLicenseResourceRequirementsPtrOutput() LicenseResourceRequirementsPtrOutput ToLicenseResourceRequirementsPtrOutputWithContext(context.Context) LicenseResourceRequirementsPtrOutput } type licenseResourceRequirementsPtrType LicenseResourceRequirementsArgs func LicenseResourceRequirementsPtr(v *LicenseResourceRequirementsArgs) LicenseResourceRequirementsPtrInput { return (*licenseResourceRequirementsPtrType)(v) } func (*licenseResourceRequirementsPtrType) ElementType() reflect.Type { return reflect.TypeOf((**LicenseResourceRequirements)(nil)).Elem() } func (i *licenseResourceRequirementsPtrType) ToLicenseResourceRequirementsPtrOutput() LicenseResourceRequirementsPtrOutput { return i.ToLicenseResourceRequirementsPtrOutputWithContext(context.Background()) } func (i *licenseResourceRequirementsPtrType) ToLicenseResourceRequirementsPtrOutputWithContext(ctx context.Context) LicenseResourceRequirementsPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(LicenseResourceRequirementsPtrOutput) } type LicenseResourceRequirementsOutput struct{ *pulumi.OutputState } func (LicenseResourceRequirementsOutput) ElementType() reflect.Type { return reflect.TypeOf((*LicenseResourceRequirements)(nil)).Elem() } func (o LicenseResourceRequirementsOutput) ToLicenseResourceRequirementsOutput() LicenseResourceRequirementsOutput { return o } func (o LicenseResourceRequirementsOutput) ToLicenseResourceRequirementsOutputWithContext(ctx context.Context) LicenseResourceRequirementsOutput { return o } func (o LicenseResourceRequirementsOutput) ToLicenseResourceRequirementsPtrOutput() LicenseResourceRequirementsPtrOutput { return o.ToLicenseResourceRequirementsPtrOutputWithContext(context.Background()) } func (o LicenseResourceRequirementsOutput) ToLicenseResourceRequirementsPtrOutputWithContext(ctx context.Context) LicenseResourceRequirementsPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v LicenseResourceRequirements) *LicenseResourceRequirements { return &v }).(LicenseResourceRequirementsPtrOutput) } // Minimum number of guest cpus required to use the Instance. Enforced at Instance creation and Instance start. func (o LicenseResourceRequirementsOutput) MinGuestCpuCount() pulumi.IntPtrOutput { return o.ApplyT(func(v LicenseResourceRequirements) *int { return v.MinGuestCpuCount }).(pulumi.IntPtrOutput) } // Minimum memory required to use the Instance. Enforced at Instance creation and Instance start. func (o LicenseResourceRequirementsOutput) MinMemoryMb() pulumi.IntPtrOutput { return o.ApplyT(func(v LicenseResourceRequirements) *int { return v.MinMemoryMb }).(pulumi.IntPtrOutput) } type LicenseResourceRequirementsPtrOutput struct{ *pulumi.OutputState } func (LicenseResourceRequirementsPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**LicenseResourceRequirements)(nil)).Elem() } func (o LicenseResourceRequirementsPtrOutput) ToLicenseResourceRequirementsPtrOutput() LicenseResourceRequirementsPtrOutput { return o } func (o LicenseResourceRequirementsPtrOutput) ToLicenseResourceRequirementsPtrOutputWithContext(ctx context.Context) LicenseResourceRequirementsPtrOutput { return o } func (o LicenseResourceRequirementsPtrOutput) Elem() LicenseResourceRequirementsOutput { return o.ApplyT(func(v *LicenseResourceRequirements) LicenseResourceRequirements { if v != nil { return *v } var ret LicenseResourceRequirements return ret }).(LicenseResourceRequirementsOutput) } // Minimum number of guest cpus required to use the Instance. Enforced at Instance creation and Instance start. func (o LicenseResourceRequirementsPtrOutput) MinGuestCpuCount() pulumi.IntPtrOutput { return o.ApplyT(func(v *LicenseResourceRequirements) *int { if v == nil { return nil } return v.MinGuestCpuCount }).(pulumi.IntPtrOutput) } // Minimum memory required to use the Instance. Enforced at Instance creation and Instance start. func (o LicenseResourceRequirementsPtrOutput) MinMemoryMb() pulumi.IntPtrOutput { return o.ApplyT(func(v *LicenseResourceRequirements) *int { if v == nil { return nil } return v.MinMemoryMb }).(pulumi.IntPtrOutput) } type LicenseResourceRequirementsResponse struct { // Minimum number of guest cpus required to use the Instance. Enforced at Instance creation and Instance start. MinGuestCpuCount int `pulumi:"minGuestCpuCount"` // Minimum memory required to use the Instance. Enforced at Instance creation and Instance start. MinMemoryMb int `pulumi:"minMemoryMb"` } type LicenseResourceRequirementsResponseOutput struct{ *pulumi.OutputState } func (LicenseResourceRequirementsResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*LicenseResourceRequirementsResponse)(nil)).Elem() } func (o LicenseResourceRequirementsResponseOutput) ToLicenseResourceRequirementsResponseOutput() LicenseResourceRequirementsResponseOutput { return o } func (o LicenseResourceRequirementsResponseOutput) ToLicenseResourceRequirementsResponseOutputWithContext(ctx context.Context) LicenseResourceRequirementsResponseOutput { return o } // Minimum number of guest cpus required to use the Instance. Enforced at Instance creation and Instance start. func (o LicenseResourceRequirementsResponseOutput) MinGuestCpuCount() pulumi.IntOutput { return o.ApplyT(func(v LicenseResourceRequirementsResponse) int { return v.MinGuestCpuCount }).(pulumi.IntOutput) } // Minimum memory required to use the Instance. Enforced at Instance creation and Instance start. func (o LicenseResourceRequirementsResponseOutput) MinMemoryMb() pulumi.IntOutput { return o.ApplyT(func(v LicenseResourceRequirementsResponse) int { return v.MinMemoryMb }).(pulumi.IntOutput) } type LocalDisk struct { // Specifies the number of such disks. DiskCount *int `pulumi:"diskCount"` // Specifies the size of the disk in base-2 GB. DiskSizeGb *int `pulumi:"diskSizeGb"` // Specifies the desired disk type on the node. This disk type must be a local storage type (e.g.: local-ssd). Note that for nodeTemplates, this should be the name of the disk type and not its URL. DiskType *string `pulumi:"diskType"` } // LocalDiskInput is an input type that accepts LocalDiskArgs and LocalDiskOutput values. // You can construct a concrete instance of `LocalDiskInput` via: // // LocalDiskArgs{...} type LocalDiskInput interface { pulumi.Input ToLocalDiskOutput() LocalDiskOutput ToLocalDiskOutputWithContext(context.Context) LocalDiskOutput } type LocalDiskArgs struct { // Specifies the number of such disks. DiskCount pulumi.IntPtrInput `pulumi:"diskCount"` // Specifies the size of the disk in base-2 GB. DiskSizeGb pulumi.IntPtrInput `pulumi:"diskSizeGb"` // Specifies the desired disk type on the node. This disk type must be a local storage type (e.g.: local-ssd). Note that for nodeTemplates, this should be the name of the disk type and not its URL. DiskType pulumi.StringPtrInput `pulumi:"diskType"` } func (LocalDiskArgs) ElementType() reflect.Type { return reflect.TypeOf((*LocalDisk)(nil)).Elem() } func (i LocalDiskArgs) ToLocalDiskOutput() LocalDiskOutput { return i.ToLocalDiskOutputWithContext(context.Background()) } func (i LocalDiskArgs) ToLocalDiskOutputWithContext(ctx context.Context) LocalDiskOutput { return pulumi.ToOutputWithContext(ctx, i).(LocalDiskOutput) } // LocalDiskArrayInput is an input type that accepts LocalDiskArray and LocalDiskArrayOutput values. // You can construct a concrete instance of `LocalDiskArrayInput` via: // // LocalDiskArray{ LocalDiskArgs{...} } type LocalDiskArrayInput interface { pulumi.Input ToLocalDiskArrayOutput() LocalDiskArrayOutput ToLocalDiskArrayOutputWithContext(context.Context) LocalDiskArrayOutput } type LocalDiskArray []LocalDiskInput func (LocalDiskArray) ElementType() reflect.Type { return reflect.TypeOf((*[]LocalDisk)(nil)).Elem() } func (i LocalDiskArray) ToLocalDiskArrayOutput() LocalDiskArrayOutput { return i.ToLocalDiskArrayOutputWithContext(context.Background()) } func (i LocalDiskArray) ToLocalDiskArrayOutputWithContext(ctx context.Context) LocalDiskArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(LocalDiskArrayOutput) } type LocalDiskOutput struct{ *pulumi.OutputState } func (LocalDiskOutput) ElementType() reflect.Type { return reflect.TypeOf((*LocalDisk)(nil)).Elem() } func (o LocalDiskOutput) ToLocalDiskOutput() LocalDiskOutput { return o } func (o LocalDiskOutput) ToLocalDiskOutputWithContext(ctx context.Context) LocalDiskOutput { return o } // Specifies the number of such disks. func (o LocalDiskOutput) DiskCount() pulumi.IntPtrOutput { return o.ApplyT(func(v LocalDisk) *int { return v.DiskCount }).(pulumi.IntPtrOutput) } // Specifies the size of the disk in base-2 GB. func (o LocalDiskOutput) DiskSizeGb() pulumi.IntPtrOutput { return o.ApplyT(func(v LocalDisk) *int { return v.DiskSizeGb }).(pulumi.IntPtrOutput) } // Specifies the desired disk type on the node. This disk type must be a local storage type (e.g.: local-ssd). Note that for nodeTemplates, this should be the name of the disk type and not its URL. func (o LocalDiskOutput) DiskType() pulumi.StringPtrOutput { return o.ApplyT(func(v LocalDisk) *string { return v.DiskType }).(pulumi.StringPtrOutput) } type LocalDiskArrayOutput struct{ *pulumi.OutputState } func (LocalDiskArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]LocalDisk)(nil)).Elem() } func (o LocalDiskArrayOutput) ToLocalDiskArrayOutput() LocalDiskArrayOutput { return o } func (o LocalDiskArrayOutput) ToLocalDiskArrayOutputWithContext(ctx context.Context) LocalDiskArrayOutput { return o } func (o LocalDiskArrayOutput) Index(i pulumi.IntInput) LocalDiskOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) LocalDisk { return vs[0].([]LocalDisk)[vs[1].(int)] }).(LocalDiskOutput) } type LocalDiskResponse struct { // Specifies the number of such disks. DiskCount int `pulumi:"diskCount"` // Specifies the size of the disk in base-2 GB. DiskSizeGb int `pulumi:"diskSizeGb"` // Specifies the desired disk type on the node. This disk type must be a local storage type (e.g.: local-ssd). Note that for nodeTemplates, this should be the name of the disk type and not its URL. DiskType string `pulumi:"diskType"` } type LocalDiskResponseOutput struct{ *pulumi.OutputState } func (LocalDiskResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*LocalDiskResponse)(nil)).Elem() } func (o LocalDiskResponseOutput) ToLocalDiskResponseOutput() LocalDiskResponseOutput { return o } func (o LocalDiskResponseOutput) ToLocalDiskResponseOutputWithContext(ctx context.Context) LocalDiskResponseOutput { return o } // Specifies the number of such disks. func (o LocalDiskResponseOutput) DiskCount() pulumi.IntOutput { return o.ApplyT(func(v LocalDiskResponse) int { return v.DiskCount }).(pulumi.IntOutput) } // Specifies the size of the disk in base-2 GB. func (o LocalDiskResponseOutput) DiskSizeGb() pulumi.IntOutput { return o.ApplyT(func(v LocalDiskResponse) int { return v.DiskSizeGb }).(pulumi.IntOutput) } // Specifies the desired disk type on the node. This disk type must be a local storage type (e.g.: local-ssd). Note that for nodeTemplates, this should be the name of the disk type and not its URL. func (o LocalDiskResponseOutput) DiskType() pulumi.StringOutput { return o.ApplyT(func(v LocalDiskResponse) string { return v.DiskType }).(pulumi.StringOutput) } type LocalDiskResponseArrayOutput struct{ *pulumi.OutputState } func (LocalDiskResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]LocalDiskResponse)(nil)).Elem() } func (o LocalDiskResponseArrayOutput) ToLocalDiskResponseArrayOutput() LocalDiskResponseArrayOutput { return o } func (o LocalDiskResponseArrayOutput) ToLocalDiskResponseArrayOutputWithContext(ctx context.Context) LocalDiskResponseArrayOutput { return o } func (o LocalDiskResponseArrayOutput) Index(i pulumi.IntInput) LocalDiskResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) LocalDiskResponse { return vs[0].([]LocalDiskResponse)[vs[1].(int)] }).(LocalDiskResponseOutput) } // This is deprecated and has no effect. Do not use. type LogConfig struct { // This is deprecated and has no effect. Do not use. CloudAudit *LogConfigCloudAuditOptions `pulumi:"cloudAudit"` // This is deprecated and has no effect. Do not use. Counter *LogConfigCounterOptions `pulumi:"counter"` // This is deprecated and has no effect. Do not use. DataAccess *LogConfigDataAccessOptions `pulumi:"dataAccess"` } // LogConfigInput is an input type that accepts LogConfigArgs and LogConfigOutput values. // You can construct a concrete instance of `LogConfigInput` via: // // LogConfigArgs{...} type LogConfigInput interface { pulumi.Input ToLogConfigOutput() LogConfigOutput ToLogConfigOutputWithContext(context.Context) LogConfigOutput } // This is deprecated and has no effect. Do not use. type LogConfigArgs struct { // This is deprecated and has no effect. Do not use. CloudAudit LogConfigCloudAuditOptionsPtrInput `pulumi:"cloudAudit"` // This is deprecated and has no effect. Do not use. Counter LogConfigCounterOptionsPtrInput `pulumi:"counter"` // This is deprecated and has no effect. Do not use. DataAccess LogConfigDataAccessOptionsPtrInput `pulumi:"dataAccess"` } func (LogConfigArgs) ElementType() reflect.Type { return reflect.TypeOf((*LogConfig)(nil)).Elem() } func (i LogConfigArgs) ToLogConfigOutput() LogConfigOutput { return i.ToLogConfigOutputWithContext(context.Background()) } func (i LogConfigArgs) ToLogConfigOutputWithContext(ctx context.Context) LogConfigOutput { return pulumi.ToOutputWithContext(ctx, i).(LogConfigOutput) } // LogConfigArrayInput is an input type that accepts LogConfigArray and LogConfigArrayOutput values. // You can construct a concrete instance of `LogConfigArrayInput` via: // // LogConfigArray{ LogConfigArgs{...} } type LogConfigArrayInput interface { pulumi.Input ToLogConfigArrayOutput() LogConfigArrayOutput ToLogConfigArrayOutputWithContext(context.Context) LogConfigArrayOutput } type LogConfigArray []LogConfigInput func (LogConfigArray) ElementType() reflect.Type { return reflect.TypeOf((*[]LogConfig)(nil)).Elem() } func (i LogConfigArray) ToLogConfigArrayOutput() LogConfigArrayOutput { return i.ToLogConfigArrayOutputWithContext(context.Background()) } func (i LogConfigArray) ToLogConfigArrayOutputWithContext(ctx context.Context) LogConfigArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(LogConfigArrayOutput) } // This is deprecated and has no effect. Do not use. type LogConfigOutput struct{ *pulumi.OutputState } func (LogConfigOutput) ElementType() reflect.Type { return reflect.TypeOf((*LogConfig)(nil)).Elem() } func (o LogConfigOutput) ToLogConfigOutput() LogConfigOutput { return o } func (o LogConfigOutput) ToLogConfigOutputWithContext(ctx context.Context) LogConfigOutput { return o } // This is deprecated and has no effect. Do not use. func (o LogConfigOutput) CloudAudit() LogConfigCloudAuditOptionsPtrOutput { return o.ApplyT(func(v LogConfig) *LogConfigCloudAuditOptions { return v.CloudAudit }).(LogConfigCloudAuditOptionsPtrOutput) } // This is deprecated and has no effect. Do not use. func (o LogConfigOutput) Counter() LogConfigCounterOptionsPtrOutput { return o.ApplyT(func(v LogConfig) *LogConfigCounterOptions { return v.Counter }).(LogConfigCounterOptionsPtrOutput) } // This is deprecated and has no effect. Do not use. func (o LogConfigOutput) DataAccess() LogConfigDataAccessOptionsPtrOutput { return o.ApplyT(func(v LogConfig) *LogConfigDataAccessOptions { return v.DataAccess }).(LogConfigDataAccessOptionsPtrOutput) } type LogConfigArrayOutput struct{ *pulumi.OutputState } func (LogConfigArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]LogConfig)(nil)).Elem() } func (o LogConfigArrayOutput) ToLogConfigArrayOutput() LogConfigArrayOutput { return o } func (o LogConfigArrayOutput) ToLogConfigArrayOutputWithContext(ctx context.Context) LogConfigArrayOutput { return o } func (o LogConfigArrayOutput) Index(i pulumi.IntInput) LogConfigOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) LogConfig { return vs[0].([]LogConfig)[vs[1].(int)] }).(LogConfigOutput) } // This is deprecated and has no effect. Do not use. type LogConfigCloudAuditOptions struct { // This is deprecated and has no effect. Do not use. AuthorizationLoggingOptions *AuthorizationLoggingOptions `pulumi:"authorizationLoggingOptions"` // This is deprecated and has no effect. Do not use. LogName *LogConfigCloudAuditOptionsLogName `pulumi:"logName"` } // LogConfigCloudAuditOptionsInput is an input type that accepts LogConfigCloudAuditOptionsArgs and LogConfigCloudAuditOptionsOutput values. // You can construct a concrete instance of `LogConfigCloudAuditOptionsInput` via: // // LogConfigCloudAuditOptionsArgs{...} type LogConfigCloudAuditOptionsInput interface { pulumi.Input ToLogConfigCloudAuditOptionsOutput() LogConfigCloudAuditOptionsOutput ToLogConfigCloudAuditOptionsOutputWithContext(context.Context) LogConfigCloudAuditOptionsOutput } // This is deprecated and has no effect. Do not use. type LogConfigCloudAuditOptionsArgs struct { // This is deprecated and has no effect. Do not use. AuthorizationLoggingOptions AuthorizationLoggingOptionsPtrInput `pulumi:"authorizationLoggingOptions"` // This is deprecated and has no effect. Do not use. LogName LogConfigCloudAuditOptionsLogNamePtrInput `pulumi:"logName"` } func (LogConfigCloudAuditOptionsArgs) ElementType() reflect.Type { return reflect.TypeOf((*LogConfigCloudAuditOptions)(nil)).Elem() } func (i LogConfigCloudAuditOptionsArgs) ToLogConfigCloudAuditOptionsOutput() LogConfigCloudAuditOptionsOutput { return i.ToLogConfigCloudAuditOptionsOutputWithContext(context.Background()) } func (i LogConfigCloudAuditOptionsArgs) ToLogConfigCloudAuditOptionsOutputWithContext(ctx context.Context) LogConfigCloudAuditOptionsOutput { return pulumi.ToOutputWithContext(ctx, i).(LogConfigCloudAuditOptionsOutput) } func (i LogConfigCloudAuditOptionsArgs) ToLogConfigCloudAuditOptionsPtrOutput() LogConfigCloudAuditOptionsPtrOutput { return i.ToLogConfigCloudAuditOptionsPtrOutputWithContext(context.Background()) } func (i LogConfigCloudAuditOptionsArgs) ToLogConfigCloudAuditOptionsPtrOutputWithContext(ctx context.Context) LogConfigCloudAuditOptionsPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(LogConfigCloudAuditOptionsOutput).ToLogConfigCloudAuditOptionsPtrOutputWithContext(ctx) } // LogConfigCloudAuditOptionsPtrInput is an input type that accepts LogConfigCloudAuditOptionsArgs, LogConfigCloudAuditOptionsPtr and LogConfigCloudAuditOptionsPtrOutput values. // You can construct a concrete instance of `LogConfigCloudAuditOptionsPtrInput` via: // // LogConfigCloudAuditOptionsArgs{...} // // or: // // nil type LogConfigCloudAuditOptionsPtrInput interface { pulumi.Input ToLogConfigCloudAuditOptionsPtrOutput() LogConfigCloudAuditOptionsPtrOutput ToLogConfigCloudAuditOptionsPtrOutputWithContext(context.Context) LogConfigCloudAuditOptionsPtrOutput } type logConfigCloudAuditOptionsPtrType LogConfigCloudAuditOptionsArgs func LogConfigCloudAuditOptionsPtr(v *LogConfigCloudAuditOptionsArgs) LogConfigCloudAuditOptionsPtrInput { return (*logConfigCloudAuditOptionsPtrType)(v) } func (*logConfigCloudAuditOptionsPtrType) ElementType() reflect.Type { return reflect.TypeOf((**LogConfigCloudAuditOptions)(nil)).Elem() } func (i *logConfigCloudAuditOptionsPtrType) ToLogConfigCloudAuditOptionsPtrOutput() LogConfigCloudAuditOptionsPtrOutput { return i.ToLogConfigCloudAuditOptionsPtrOutputWithContext(context.Background()) } func (i *logConfigCloudAuditOptionsPtrType) ToLogConfigCloudAuditOptionsPtrOutputWithContext(ctx context.Context) LogConfigCloudAuditOptionsPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(LogConfigCloudAuditOptionsPtrOutput) } // This is deprecated and has no effect. Do not use. type LogConfigCloudAuditOptionsOutput struct{ *pulumi.OutputState } func (LogConfigCloudAuditOptionsOutput) ElementType() reflect.Type { return reflect.TypeOf((*LogConfigCloudAuditOptions)(nil)).Elem() } func (o LogConfigCloudAuditOptionsOutput) ToLogConfigCloudAuditOptionsOutput() LogConfigCloudAuditOptionsOutput { return o } func (o LogConfigCloudAuditOptionsOutput) ToLogConfigCloudAuditOptionsOutputWithContext(ctx context.Context) LogConfigCloudAuditOptionsOutput { return o } func (o LogConfigCloudAuditOptionsOutput) ToLogConfigCloudAuditOptionsPtrOutput() LogConfigCloudAuditOptionsPtrOutput { return o.ToLogConfigCloudAuditOptionsPtrOutputWithContext(context.Background()) } func (o LogConfigCloudAuditOptionsOutput) ToLogConfigCloudAuditOptionsPtrOutputWithContext(ctx context.Context) LogConfigCloudAuditOptionsPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v LogConfigCloudAuditOptions) *LogConfigCloudAuditOptions { return &v }).(LogConfigCloudAuditOptionsPtrOutput) } // This is deprecated and has no effect. Do not use. func (o LogConfigCloudAuditOptionsOutput) AuthorizationLoggingOptions() AuthorizationLoggingOptionsPtrOutput { return o.ApplyT(func(v LogConfigCloudAuditOptions) *AuthorizationLoggingOptions { return v.AuthorizationLoggingOptions }).(AuthorizationLoggingOptionsPtrOutput) } // This is deprecated and has no effect. Do not use. func (o LogConfigCloudAuditOptionsOutput) LogName() LogConfigCloudAuditOptionsLogNamePtrOutput { return o.ApplyT(func(v LogConfigCloudAuditOptions) *LogConfigCloudAuditOptionsLogName { return v.LogName }).(LogConfigCloudAuditOptionsLogNamePtrOutput) } type LogConfigCloudAuditOptionsPtrOutput struct{ *pulumi.OutputState } func (LogConfigCloudAuditOptionsPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**LogConfigCloudAuditOptions)(nil)).Elem() } func (o LogConfigCloudAuditOptionsPtrOutput) ToLogConfigCloudAuditOptionsPtrOutput() LogConfigCloudAuditOptionsPtrOutput { return o } func (o LogConfigCloudAuditOptionsPtrOutput) ToLogConfigCloudAuditOptionsPtrOutputWithContext(ctx context.Context) LogConfigCloudAuditOptionsPtrOutput { return o } func (o LogConfigCloudAuditOptionsPtrOutput) Elem() LogConfigCloudAuditOptionsOutput { return o.ApplyT(func(v *LogConfigCloudAuditOptions) LogConfigCloudAuditOptions { if v != nil { return *v } var ret LogConfigCloudAuditOptions return ret }).(LogConfigCloudAuditOptionsOutput) } // This is deprecated and has no effect. Do not use. func (o LogConfigCloudAuditOptionsPtrOutput) AuthorizationLoggingOptions() AuthorizationLoggingOptionsPtrOutput { return o.ApplyT(func(v *LogConfigCloudAuditOptions) *AuthorizationLoggingOptions { if v == nil { return nil } return v.AuthorizationLoggingOptions }).(AuthorizationLoggingOptionsPtrOutput) } // This is deprecated and has no effect. Do not use. func (o LogConfigCloudAuditOptionsPtrOutput) LogName() LogConfigCloudAuditOptionsLogNamePtrOutput { return o.ApplyT(func(v *LogConfigCloudAuditOptions) *LogConfigCloudAuditOptionsLogName { if v == nil { return nil } return v.LogName }).(LogConfigCloudAuditOptionsLogNamePtrOutput) } // This is deprecated and has no effect. Do not use. type LogConfigCloudAuditOptionsResponse struct { // This is deprecated and has no effect. Do not use. AuthorizationLoggingOptions AuthorizationLoggingOptionsResponse `pulumi:"authorizationLoggingOptions"` // This is deprecated and has no effect. Do not use. LogName string `pulumi:"logName"` } // This is deprecated and has no effect. Do not use. type LogConfigCloudAuditOptionsResponseOutput struct{ *pulumi.OutputState } func (LogConfigCloudAuditOptionsResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*LogConfigCloudAuditOptionsResponse)(nil)).Elem() } func (o LogConfigCloudAuditOptionsResponseOutput) ToLogConfigCloudAuditOptionsResponseOutput() LogConfigCloudAuditOptionsResponseOutput { return o } func (o LogConfigCloudAuditOptionsResponseOutput) ToLogConfigCloudAuditOptionsResponseOutputWithContext(ctx context.Context) LogConfigCloudAuditOptionsResponseOutput { return o } // This is deprecated and has no effect. Do not use. func (o LogConfigCloudAuditOptionsResponseOutput) AuthorizationLoggingOptions() AuthorizationLoggingOptionsResponseOutput { return o.ApplyT(func(v LogConfigCloudAuditOptionsResponse) AuthorizationLoggingOptionsResponse { return v.AuthorizationLoggingOptions }).(AuthorizationLoggingOptionsResponseOutput) } // This is deprecated and has no effect. Do not use. func (o LogConfigCloudAuditOptionsResponseOutput) LogName() pulumi.StringOutput { return o.ApplyT(func(v LogConfigCloudAuditOptionsResponse) string { return v.LogName }).(pulumi.StringOutput) } // This is deprecated and has no effect. Do not use. type LogConfigCounterOptions struct { // This is deprecated and has no effect. Do not use. CustomFields []LogConfigCounterOptionsCustomField `pulumi:"customFields"` // This is deprecated and has no effect. Do not use. Field *string `pulumi:"field"` // This is deprecated and has no effect. Do not use. Metric *string `pulumi:"metric"` } // LogConfigCounterOptionsInput is an input type that accepts LogConfigCounterOptionsArgs and LogConfigCounterOptionsOutput values. // You can construct a concrete instance of `LogConfigCounterOptionsInput` via: // // LogConfigCounterOptionsArgs{...} type LogConfigCounterOptionsInput interface { pulumi.Input ToLogConfigCounterOptionsOutput() LogConfigCounterOptionsOutput ToLogConfigCounterOptionsOutputWithContext(context.Context) LogConfigCounterOptionsOutput } // This is deprecated and has no effect. Do not use. type LogConfigCounterOptionsArgs struct { // This is deprecated and has no effect. Do not use. CustomFields LogConfigCounterOptionsCustomFieldArrayInput `pulumi:"customFields"` // This is deprecated and has no effect. Do not use. Field pulumi.StringPtrInput `pulumi:"field"` // This is deprecated and has no effect. Do not use. Metric pulumi.StringPtrInput `pulumi:"metric"` } func (LogConfigCounterOptionsArgs) ElementType() reflect.Type { return reflect.TypeOf((*LogConfigCounterOptions)(nil)).Elem() } func (i LogConfigCounterOptionsArgs) ToLogConfigCounterOptionsOutput() LogConfigCounterOptionsOutput { return i.ToLogConfigCounterOptionsOutputWithContext(context.Background()) } func (i LogConfigCounterOptionsArgs) ToLogConfigCounterOptionsOutputWithContext(ctx context.Context) LogConfigCounterOptionsOutput { return pulumi.ToOutputWithContext(ctx, i).(LogConfigCounterOptionsOutput) } func (i LogConfigCounterOptionsArgs) ToLogConfigCounterOptionsPtrOutput() LogConfigCounterOptionsPtrOutput { return i.ToLogConfigCounterOptionsPtrOutputWithContext(context.Background()) } func (i LogConfigCounterOptionsArgs) ToLogConfigCounterOptionsPtrOutputWithContext(ctx context.Context) LogConfigCounterOptionsPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(LogConfigCounterOptionsOutput).ToLogConfigCounterOptionsPtrOutputWithContext(ctx) } // LogConfigCounterOptionsPtrInput is an input type that accepts LogConfigCounterOptionsArgs, LogConfigCounterOptionsPtr and LogConfigCounterOptionsPtrOutput values. // You can construct a concrete instance of `LogConfigCounterOptionsPtrInput` via: // // LogConfigCounterOptionsArgs{...} // // or: // // nil type LogConfigCounterOptionsPtrInput interface { pulumi.Input ToLogConfigCounterOptionsPtrOutput() LogConfigCounterOptionsPtrOutput ToLogConfigCounterOptionsPtrOutputWithContext(context.Context) LogConfigCounterOptionsPtrOutput } type logConfigCounterOptionsPtrType LogConfigCounterOptionsArgs func LogConfigCounterOptionsPtr(v *LogConfigCounterOptionsArgs) LogConfigCounterOptionsPtrInput { return (*logConfigCounterOptionsPtrType)(v) } func (*logConfigCounterOptionsPtrType) ElementType() reflect.Type { return reflect.TypeOf((**LogConfigCounterOptions)(nil)).Elem() } func (i *logConfigCounterOptionsPtrType) ToLogConfigCounterOptionsPtrOutput() LogConfigCounterOptionsPtrOutput { return i.ToLogConfigCounterOptionsPtrOutputWithContext(context.Background()) } func (i *logConfigCounterOptionsPtrType) ToLogConfigCounterOptionsPtrOutputWithContext(ctx context.Context) LogConfigCounterOptionsPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(LogConfigCounterOptionsPtrOutput) } // This is deprecated and has no effect. Do not use. type LogConfigCounterOptionsOutput struct{ *pulumi.OutputState } func (LogConfigCounterOptionsOutput) ElementType() reflect.Type { return reflect.TypeOf((*LogConfigCounterOptions)(nil)).Elem() } func (o LogConfigCounterOptionsOutput) ToLogConfigCounterOptionsOutput() LogConfigCounterOptionsOutput { return o } func (o LogConfigCounterOptionsOutput) ToLogConfigCounterOptionsOutputWithContext(ctx context.Context) LogConfigCounterOptionsOutput { return o } func (o LogConfigCounterOptionsOutput) ToLogConfigCounterOptionsPtrOutput() LogConfigCounterOptionsPtrOutput { return o.ToLogConfigCounterOptionsPtrOutputWithContext(context.Background()) } func (o LogConfigCounterOptionsOutput) ToLogConfigCounterOptionsPtrOutputWithContext(ctx context.Context) LogConfigCounterOptionsPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v LogConfigCounterOptions) *LogConfigCounterOptions { return &v }).(LogConfigCounterOptionsPtrOutput) } // This is deprecated and has no effect. Do not use. func (o LogConfigCounterOptionsOutput) CustomFields() LogConfigCounterOptionsCustomFieldArrayOutput { return o.ApplyT(func(v LogConfigCounterOptions) []LogConfigCounterOptionsCustomField { return v.CustomFields }).(LogConfigCounterOptionsCustomFieldArrayOutput) } // This is deprecated and has no effect. Do not use. func (o LogConfigCounterOptionsOutput) Field() pulumi.StringPtrOutput { return o.ApplyT(func(v LogConfigCounterOptions) *string { return v.Field }).(pulumi.StringPtrOutput) } // This is deprecated and has no effect. Do not use. func (o LogConfigCounterOptionsOutput) Metric() pulumi.StringPtrOutput { return o.ApplyT(func(v LogConfigCounterOptions) *string { return v.Metric }).(pulumi.StringPtrOutput) } type LogConfigCounterOptionsPtrOutput struct{ *pulumi.OutputState } func (LogConfigCounterOptionsPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**LogConfigCounterOptions)(nil)).Elem() } func (o LogConfigCounterOptionsPtrOutput) ToLogConfigCounterOptionsPtrOutput() LogConfigCounterOptionsPtrOutput { return o } func (o LogConfigCounterOptionsPtrOutput) ToLogConfigCounterOptionsPtrOutputWithContext(ctx context.Context) LogConfigCounterOptionsPtrOutput { return o } func (o LogConfigCounterOptionsPtrOutput) Elem() LogConfigCounterOptionsOutput { return o.ApplyT(func(v *LogConfigCounterOptions) LogConfigCounterOptions { if v != nil { return *v } var ret LogConfigCounterOptions return ret }).(LogConfigCounterOptionsOutput) } // This is deprecated and has no effect. Do not use. func (o LogConfigCounterOptionsPtrOutput) CustomFields() LogConfigCounterOptionsCustomFieldArrayOutput { return o.ApplyT(func(v *LogConfigCounterOptions) []LogConfigCounterOptionsCustomField { if v == nil { return nil } return v.CustomFields }).(LogConfigCounterOptionsCustomFieldArrayOutput) } // This is deprecated and has no effect. Do not use. func (o LogConfigCounterOptionsPtrOutput) Field() pulumi.StringPtrOutput { return o.ApplyT(func(v *LogConfigCounterOptions) *string { if v == nil { return nil } return v.Field }).(pulumi.StringPtrOutput) } // This is deprecated and has no effect. Do not use. func (o LogConfigCounterOptionsPtrOutput) Metric() pulumi.StringPtrOutput { return o.ApplyT(func(v *LogConfigCounterOptions) *string { if v == nil { return nil } return v.Metric }).(pulumi.StringPtrOutput) } // This is deprecated and has no effect. Do not use. type LogConfigCounterOptionsCustomField struct { // This is deprecated and has no effect. Do not use. Name *string `pulumi:"name"` // This is deprecated and has no effect. Do not use. Value *string `pulumi:"value"` } // LogConfigCounterOptionsCustomFieldInput is an input type that accepts LogConfigCounterOptionsCustomFieldArgs and LogConfigCounterOptionsCustomFieldOutput values. // You can construct a concrete instance of `LogConfigCounterOptionsCustomFieldInput` via: // // LogConfigCounterOptionsCustomFieldArgs{...} type LogConfigCounterOptionsCustomFieldInput interface { pulumi.Input ToLogConfigCounterOptionsCustomFieldOutput() LogConfigCounterOptionsCustomFieldOutput ToLogConfigCounterOptionsCustomFieldOutputWithContext(context.Context) LogConfigCounterOptionsCustomFieldOutput } // This is deprecated and has no effect. Do not use. type LogConfigCounterOptionsCustomFieldArgs struct { // This is deprecated and has no effect. Do not use. Name pulumi.StringPtrInput `pulumi:"name"` // This is deprecated and has no effect. Do not use. Value pulumi.StringPtrInput `pulumi:"value"` } func (LogConfigCounterOptionsCustomFieldArgs) ElementType() reflect.Type { return reflect.TypeOf((*LogConfigCounterOptionsCustomField)(nil)).Elem() } func (i LogConfigCounterOptionsCustomFieldArgs) ToLogConfigCounterOptionsCustomFieldOutput() LogConfigCounterOptionsCustomFieldOutput { return i.ToLogConfigCounterOptionsCustomFieldOutputWithContext(context.Background()) } func (i LogConfigCounterOptionsCustomFieldArgs) ToLogConfigCounterOptionsCustomFieldOutputWithContext(ctx context.Context) LogConfigCounterOptionsCustomFieldOutput { return pulumi.ToOutputWithContext(ctx, i).(LogConfigCounterOptionsCustomFieldOutput) } // LogConfigCounterOptionsCustomFieldArrayInput is an input type that accepts LogConfigCounterOptionsCustomFieldArray and LogConfigCounterOptionsCustomFieldArrayOutput values. // You can construct a concrete instance of `LogConfigCounterOptionsCustomFieldArrayInput` via: // // LogConfigCounterOptionsCustomFieldArray{ LogConfigCounterOptionsCustomFieldArgs{...} } type LogConfigCounterOptionsCustomFieldArrayInput interface { pulumi.Input ToLogConfigCounterOptionsCustomFieldArrayOutput() LogConfigCounterOptionsCustomFieldArrayOutput ToLogConfigCounterOptionsCustomFieldArrayOutputWithContext(context.Context) LogConfigCounterOptionsCustomFieldArrayOutput } type LogConfigCounterOptionsCustomFieldArray []LogConfigCounterOptionsCustomFieldInput func (LogConfigCounterOptionsCustomFieldArray) ElementType() reflect.Type { return reflect.TypeOf((*[]LogConfigCounterOptionsCustomField)(nil)).Elem() } func (i LogConfigCounterOptionsCustomFieldArray) ToLogConfigCounterOptionsCustomFieldArrayOutput() LogConfigCounterOptionsCustomFieldArrayOutput { return i.ToLogConfigCounterOptionsCustomFieldArrayOutputWithContext(context.Background()) } func (i LogConfigCounterOptionsCustomFieldArray) ToLogConfigCounterOptionsCustomFieldArrayOutputWithContext(ctx context.Context) LogConfigCounterOptionsCustomFieldArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(LogConfigCounterOptionsCustomFieldArrayOutput) } // This is deprecated and has no effect. Do not use. type LogConfigCounterOptionsCustomFieldOutput struct{ *pulumi.OutputState } func (LogConfigCounterOptionsCustomFieldOutput) ElementType() reflect.Type { return reflect.TypeOf((*LogConfigCounterOptionsCustomField)(nil)).Elem() } func (o LogConfigCounterOptionsCustomFieldOutput) ToLogConfigCounterOptionsCustomFieldOutput() LogConfigCounterOptionsCustomFieldOutput { return o } func (o LogConfigCounterOptionsCustomFieldOutput) ToLogConfigCounterOptionsCustomFieldOutputWithContext(ctx context.Context) LogConfigCounterOptionsCustomFieldOutput { return o } // This is deprecated and has no effect. Do not use. func (o LogConfigCounterOptionsCustomFieldOutput) Name() pulumi.StringPtrOutput { return o.ApplyT(func(v LogConfigCounterOptionsCustomField) *string { return v.Name }).(pulumi.StringPtrOutput) } // This is deprecated and has no effect. Do not use. func (o LogConfigCounterOptionsCustomFieldOutput) Value() pulumi.StringPtrOutput { return o.ApplyT(func(v LogConfigCounterOptionsCustomField) *string { return v.Value }).(pulumi.StringPtrOutput) } type LogConfigCounterOptionsCustomFieldArrayOutput struct{ *pulumi.OutputState } func (LogConfigCounterOptionsCustomFieldArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]LogConfigCounterOptionsCustomField)(nil)).Elem() } func (o LogConfigCounterOptionsCustomFieldArrayOutput) ToLogConfigCounterOptionsCustomFieldArrayOutput() LogConfigCounterOptionsCustomFieldArrayOutput { return o } func (o LogConfigCounterOptionsCustomFieldArrayOutput) ToLogConfigCounterOptionsCustomFieldArrayOutputWithContext(ctx context.Context) LogConfigCounterOptionsCustomFieldArrayOutput { return o } func (o LogConfigCounterOptionsCustomFieldArrayOutput) Index(i pulumi.IntInput) LogConfigCounterOptionsCustomFieldOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) LogConfigCounterOptionsCustomField { return vs[0].([]LogConfigCounterOptionsCustomField)[vs[1].(int)] }).(LogConfigCounterOptionsCustomFieldOutput) } // This is deprecated and has no effect. Do not use. type LogConfigCounterOptionsCustomFieldResponse struct { // This is deprecated and has no effect. Do not use. Name string `pulumi:"name"` // This is deprecated and has no effect. Do not use. Value string `pulumi:"value"` } // This is deprecated and has no effect. Do not use. type LogConfigCounterOptionsCustomFieldResponseOutput struct{ *pulumi.OutputState } func (LogConfigCounterOptionsCustomFieldResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*LogConfigCounterOptionsCustomFieldResponse)(nil)).Elem() } func (o LogConfigCounterOptionsCustomFieldResponseOutput) ToLogConfigCounterOptionsCustomFieldResponseOutput() LogConfigCounterOptionsCustomFieldResponseOutput { return o } func (o LogConfigCounterOptionsCustomFieldResponseOutput) ToLogConfigCounterOptionsCustomFieldResponseOutputWithContext(ctx context.Context) LogConfigCounterOptionsCustomFieldResponseOutput { return o } // This is deprecated and has no effect. Do not use. func (o LogConfigCounterOptionsCustomFieldResponseOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v LogConfigCounterOptionsCustomFieldResponse) string { return v.Name }).(pulumi.StringOutput) } // This is deprecated and has no effect. Do not use. func (o LogConfigCounterOptionsCustomFieldResponseOutput) Value() pulumi.StringOutput { return o.ApplyT(func(v LogConfigCounterOptionsCustomFieldResponse) string { return v.Value }).(pulumi.StringOutput) } type LogConfigCounterOptionsCustomFieldResponseArrayOutput struct{ *pulumi.OutputState } func (LogConfigCounterOptionsCustomFieldResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]LogConfigCounterOptionsCustomFieldResponse)(nil)).Elem() } func (o LogConfigCounterOptionsCustomFieldResponseArrayOutput) ToLogConfigCounterOptionsCustomFieldResponseArrayOutput() LogConfigCounterOptionsCustomFieldResponseArrayOutput { return o } func (o LogConfigCounterOptionsCustomFieldResponseArrayOutput) ToLogConfigCounterOptionsCustomFieldResponseArrayOutputWithContext(ctx context.Context) LogConfigCounterOptionsCustomFieldResponseArrayOutput { return o } func (o LogConfigCounterOptionsCustomFieldResponseArrayOutput) Index(i pulumi.IntInput) LogConfigCounterOptionsCustomFieldResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) LogConfigCounterOptionsCustomFieldResponse { return vs[0].([]LogConfigCounterOptionsCustomFieldResponse)[vs[1].(int)] }).(LogConfigCounterOptionsCustomFieldResponseOutput) } // This is deprecated and has no effect. Do not use. type LogConfigCounterOptionsResponse struct { // This is deprecated and has no effect. Do not use. CustomFields []LogConfigCounterOptionsCustomFieldResponse `pulumi:"customFields"` // This is deprecated and has no effect. Do not use. Field string `pulumi:"field"` // This is deprecated and has no effect. Do not use. Metric string `pulumi:"metric"` } // This is deprecated and has no effect. Do not use. type LogConfigCounterOptionsResponseOutput struct{ *pulumi.OutputState } func (LogConfigCounterOptionsResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*LogConfigCounterOptionsResponse)(nil)).Elem() } func (o LogConfigCounterOptionsResponseOutput) ToLogConfigCounterOptionsResponseOutput() LogConfigCounterOptionsResponseOutput { return o } func (o LogConfigCounterOptionsResponseOutput) ToLogConfigCounterOptionsResponseOutputWithContext(ctx context.Context) LogConfigCounterOptionsResponseOutput { return o } // This is deprecated and has no effect. Do not use. func (o LogConfigCounterOptionsResponseOutput) CustomFields() LogConfigCounterOptionsCustomFieldResponseArrayOutput { return o.ApplyT(func(v LogConfigCounterOptionsResponse) []LogConfigCounterOptionsCustomFieldResponse { return v.CustomFields }).(LogConfigCounterOptionsCustomFieldResponseArrayOutput) } // This is deprecated and has no effect. Do not use. func (o LogConfigCounterOptionsResponseOutput) Field() pulumi.StringOutput { return o.ApplyT(func(v LogConfigCounterOptionsResponse) string { return v.Field }).(pulumi.StringOutput) } // This is deprecated and has no effect. Do not use. func (o LogConfigCounterOptionsResponseOutput) Metric() pulumi.StringOutput { return o.ApplyT(func(v LogConfigCounterOptionsResponse) string { return v.Metric }).(pulumi.StringOutput) } // This is deprecated and has no effect. Do not use. type LogConfigDataAccessOptions struct { // This is deprecated and has no effect. Do not use. LogMode *LogConfigDataAccessOptionsLogMode `pulumi:"logMode"` } // LogConfigDataAccessOptionsInput is an input type that accepts LogConfigDataAccessOptionsArgs and LogConfigDataAccessOptionsOutput values. // You can construct a concrete instance of `LogConfigDataAccessOptionsInput` via: // // LogConfigDataAccessOptionsArgs{...} type LogConfigDataAccessOptionsInput interface { pulumi.Input ToLogConfigDataAccessOptionsOutput() LogConfigDataAccessOptionsOutput ToLogConfigDataAccessOptionsOutputWithContext(context.Context) LogConfigDataAccessOptionsOutput } // This is deprecated and has no effect. Do not use. type LogConfigDataAccessOptionsArgs struct { // This is deprecated and has no effect. Do not use. LogMode LogConfigDataAccessOptionsLogModePtrInput `pulumi:"logMode"` } func (LogConfigDataAccessOptionsArgs) ElementType() reflect.Type { return reflect.TypeOf((*LogConfigDataAccessOptions)(nil)).Elem() } func (i LogConfigDataAccessOptionsArgs) ToLogConfigDataAccessOptionsOutput() LogConfigDataAccessOptionsOutput { return i.ToLogConfigDataAccessOptionsOutputWithContext(context.Background()) } func (i LogConfigDataAccessOptionsArgs) ToLogConfigDataAccessOptionsOutputWithContext(ctx context.Context) LogConfigDataAccessOptionsOutput { return pulumi.ToOutputWithContext(ctx, i).(LogConfigDataAccessOptionsOutput) } func (i LogConfigDataAccessOptionsArgs) ToLogConfigDataAccessOptionsPtrOutput() LogConfigDataAccessOptionsPtrOutput { return i.ToLogConfigDataAccessOptionsPtrOutputWithContext(context.Background()) } func (i LogConfigDataAccessOptionsArgs) ToLogConfigDataAccessOptionsPtrOutputWithContext(ctx context.Context) LogConfigDataAccessOptionsPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(LogConfigDataAccessOptionsOutput).ToLogConfigDataAccessOptionsPtrOutputWithContext(ctx) } // LogConfigDataAccessOptionsPtrInput is an input type that accepts LogConfigDataAccessOptionsArgs, LogConfigDataAccessOptionsPtr and LogConfigDataAccessOptionsPtrOutput values. // You can construct a concrete instance of `LogConfigDataAccessOptionsPtrInput` via: // // LogConfigDataAccessOptionsArgs{...} // // or: // // nil type LogConfigDataAccessOptionsPtrInput interface { pulumi.Input ToLogConfigDataAccessOptionsPtrOutput() LogConfigDataAccessOptionsPtrOutput ToLogConfigDataAccessOptionsPtrOutputWithContext(context.Context) LogConfigDataAccessOptionsPtrOutput } type logConfigDataAccessOptionsPtrType LogConfigDataAccessOptionsArgs func LogConfigDataAccessOptionsPtr(v *LogConfigDataAccessOptionsArgs) LogConfigDataAccessOptionsPtrInput { return (*logConfigDataAccessOptionsPtrType)(v) } func (*logConfigDataAccessOptionsPtrType) ElementType() reflect.Type { return reflect.TypeOf((**LogConfigDataAccessOptions)(nil)).Elem() } func (i *logConfigDataAccessOptionsPtrType) ToLogConfigDataAccessOptionsPtrOutput() LogConfigDataAccessOptionsPtrOutput { return i.ToLogConfigDataAccessOptionsPtrOutputWithContext(context.Background()) } func (i *logConfigDataAccessOptionsPtrType) ToLogConfigDataAccessOptionsPtrOutputWithContext(ctx context.Context) LogConfigDataAccessOptionsPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(LogConfigDataAccessOptionsPtrOutput) } // This is deprecated and has no effect. Do not use. type LogConfigDataAccessOptionsOutput struct{ *pulumi.OutputState } func (LogConfigDataAccessOptionsOutput) ElementType() reflect.Type { return reflect.TypeOf((*LogConfigDataAccessOptions)(nil)).Elem() } func (o LogConfigDataAccessOptionsOutput) ToLogConfigDataAccessOptionsOutput() LogConfigDataAccessOptionsOutput { return o } func (o LogConfigDataAccessOptionsOutput) ToLogConfigDataAccessOptionsOutputWithContext(ctx context.Context) LogConfigDataAccessOptionsOutput { return o } func (o LogConfigDataAccessOptionsOutput) ToLogConfigDataAccessOptionsPtrOutput() LogConfigDataAccessOptionsPtrOutput { return o.ToLogConfigDataAccessOptionsPtrOutputWithContext(context.Background()) } func (o LogConfigDataAccessOptionsOutput) ToLogConfigDataAccessOptionsPtrOutputWithContext(ctx context.Context) LogConfigDataAccessOptionsPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v LogConfigDataAccessOptions) *LogConfigDataAccessOptions { return &v }).(LogConfigDataAccessOptionsPtrOutput) } // This is deprecated and has no effect. Do not use. func (o LogConfigDataAccessOptionsOutput) LogMode() LogConfigDataAccessOptionsLogModePtrOutput { return o.ApplyT(func(v LogConfigDataAccessOptions) *LogConfigDataAccessOptionsLogMode { return v.LogMode }).(LogConfigDataAccessOptionsLogModePtrOutput) } type LogConfigDataAccessOptionsPtrOutput struct{ *pulumi.OutputState } func (LogConfigDataAccessOptionsPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**LogConfigDataAccessOptions)(nil)).Elem() } func (o LogConfigDataAccessOptionsPtrOutput) ToLogConfigDataAccessOptionsPtrOutput() LogConfigDataAccessOptionsPtrOutput { return o } func (o LogConfigDataAccessOptionsPtrOutput) ToLogConfigDataAccessOptionsPtrOutputWithContext(ctx context.Context) LogConfigDataAccessOptionsPtrOutput { return o } func (o LogConfigDataAccessOptionsPtrOutput) Elem() LogConfigDataAccessOptionsOutput { return o.ApplyT(func(v *LogConfigDataAccessOptions) LogConfigDataAccessOptions { if v != nil { return *v } var ret LogConfigDataAccessOptions return ret }).(LogConfigDataAccessOptionsOutput) } // This is deprecated and has no effect. Do not use. func (o LogConfigDataAccessOptionsPtrOutput) LogMode() LogConfigDataAccessOptionsLogModePtrOutput { return o.ApplyT(func(v *LogConfigDataAccessOptions) *LogConfigDataAccessOptionsLogMode { if v == nil { return nil } return v.LogMode }).(LogConfigDataAccessOptionsLogModePtrOutput) } // This is deprecated and has no effect. Do not use. type LogConfigDataAccessOptionsResponse struct { // This is deprecated and has no effect. Do not use. LogMode string `pulumi:"logMode"` } // This is deprecated and has no effect. Do not use. type LogConfigDataAccessOptionsResponseOutput struct{ *pulumi.OutputState } func (LogConfigDataAccessOptionsResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*LogConfigDataAccessOptionsResponse)(nil)).Elem() } func (o LogConfigDataAccessOptionsResponseOutput) ToLogConfigDataAccessOptionsResponseOutput() LogConfigDataAccessOptionsResponseOutput { return o } func (o LogConfigDataAccessOptionsResponseOutput) ToLogConfigDataAccessOptionsResponseOutputWithContext(ctx context.Context) LogConfigDataAccessOptionsResponseOutput { return o } // This is deprecated and has no effect. Do not use. func (o LogConfigDataAccessOptionsResponseOutput) LogMode() pulumi.StringOutput { return o.ApplyT(func(v LogConfigDataAccessOptionsResponse) string { return v.LogMode }).(pulumi.StringOutput) } // This is deprecated and has no effect. Do not use. type LogConfigResponse struct { // This is deprecated and has no effect. Do not use. CloudAudit LogConfigCloudAuditOptionsResponse `pulumi:"cloudAudit"` // This is deprecated and has no effect. Do not use. Counter LogConfigCounterOptionsResponse `pulumi:"counter"` // This is deprecated and has no effect. Do not use. DataAccess LogConfigDataAccessOptionsResponse `pulumi:"dataAccess"` } // This is deprecated and has no effect. Do not use. type LogConfigResponseOutput struct{ *pulumi.OutputState } func (LogConfigResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*LogConfigResponse)(nil)).Elem() } func (o LogConfigResponseOutput) ToLogConfigResponseOutput() LogConfigResponseOutput { return o } func (o LogConfigResponseOutput) ToLogConfigResponseOutputWithContext(ctx context.Context) LogConfigResponseOutput { return o } // This is deprecated and has no effect. Do not use. func (o LogConfigResponseOutput) CloudAudit() LogConfigCloudAuditOptionsResponseOutput { return o.ApplyT(func(v LogConfigResponse) LogConfigCloudAuditOptionsResponse { return v.CloudAudit }).(LogConfigCloudAuditOptionsResponseOutput) } // This is deprecated and has no effect. Do not use. func (o LogConfigResponseOutput) Counter() LogConfigCounterOptionsResponseOutput { return o.ApplyT(func(v LogConfigResponse) LogConfigCounterOptionsResponse { return v.Counter }).(LogConfigCounterOptionsResponseOutput) } // This is deprecated and has no effect. Do not use. func (o LogConfigResponseOutput) DataAccess() LogConfigDataAccessOptionsResponseOutput { return o.ApplyT(func(v LogConfigResponse) LogConfigDataAccessOptionsResponse { return v.DataAccess }).(LogConfigDataAccessOptionsResponseOutput) } type LogConfigResponseArrayOutput struct{ *pulumi.OutputState } func (LogConfigResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]LogConfigResponse)(nil)).Elem() } func (o LogConfigResponseArrayOutput) ToLogConfigResponseArrayOutput() LogConfigResponseArrayOutput { return o } func (o LogConfigResponseArrayOutput) ToLogConfigResponseArrayOutputWithContext(ctx context.Context) LogConfigResponseArrayOutput { return o } func (o LogConfigResponseArrayOutput) Index(i pulumi.IntInput) LogConfigResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) LogConfigResponse { return vs[0].([]LogConfigResponse)[vs[1].(int)] }).(LogConfigResponseOutput) } // A metadata key/value entry. type Metadata struct { // Array of key/value pairs. The total size of all keys and values must be less than 512 KB. Items []MetadataItemsItem `pulumi:"items"` } // MetadataInput is an input type that accepts MetadataArgs and MetadataOutput values. // You can construct a concrete instance of `MetadataInput` via: // // MetadataArgs{...} type MetadataInput interface { pulumi.Input ToMetadataOutput() MetadataOutput ToMetadataOutputWithContext(context.Context) MetadataOutput } // A metadata key/value entry. type MetadataArgs struct { // Array of key/value pairs. The total size of all keys and values must be less than 512 KB. Items MetadataItemsItemArrayInput `pulumi:"items"` } func (MetadataArgs) ElementType() reflect.Type { return reflect.TypeOf((*Metadata)(nil)).Elem() } func (i MetadataArgs) ToMetadataOutput() MetadataOutput { return i.ToMetadataOutputWithContext(context.Background()) } func (i MetadataArgs) ToMetadataOutputWithContext(ctx context.Context) MetadataOutput { return pulumi.ToOutputWithContext(ctx, i).(MetadataOutput) } func (i MetadataArgs) ToMetadataPtrOutput() MetadataPtrOutput { return i.ToMetadataPtrOutputWithContext(context.Background()) } func (i MetadataArgs) ToMetadataPtrOutputWithContext(ctx context.Context) MetadataPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(MetadataOutput).ToMetadataPtrOutputWithContext(ctx) } // MetadataPtrInput is an input type that accepts MetadataArgs, MetadataPtr and MetadataPtrOutput values. // You can construct a concrete instance of `MetadataPtrInput` via: // // MetadataArgs{...} // // or: // // nil type MetadataPtrInput interface { pulumi.Input ToMetadataPtrOutput() MetadataPtrOutput ToMetadataPtrOutputWithContext(context.Context) MetadataPtrOutput } type metadataPtrType MetadataArgs func MetadataPtr(v *MetadataArgs) MetadataPtrInput { return (*metadataPtrType)(v) } func (*metadataPtrType) ElementType() reflect.Type { return reflect.TypeOf((**Metadata)(nil)).Elem() } func (i *metadataPtrType) ToMetadataPtrOutput() MetadataPtrOutput { return i.ToMetadataPtrOutputWithContext(context.Background()) } func (i *metadataPtrType) ToMetadataPtrOutputWithContext(ctx context.Context) MetadataPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(MetadataPtrOutput) } // A metadata key/value entry. type MetadataOutput struct{ *pulumi.OutputState } func (MetadataOutput) ElementType() reflect.Type { return reflect.TypeOf((*Metadata)(nil)).Elem() } func (o MetadataOutput) ToMetadataOutput() MetadataOutput { return o } func (o MetadataOutput) ToMetadataOutputWithContext(ctx context.Context) MetadataOutput { return o } func (o MetadataOutput) ToMetadataPtrOutput() MetadataPtrOutput { return o.ToMetadataPtrOutputWithContext(context.Background()) } func (o MetadataOutput) ToMetadataPtrOutputWithContext(ctx context.Context) MetadataPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v Metadata) *Metadata { return &v }).(MetadataPtrOutput) } // Array of key/value pairs. The total size of all keys and values must be less than 512 KB. func (o MetadataOutput) Items() MetadataItemsItemArrayOutput { return o.ApplyT(func(v Metadata) []MetadataItemsItem { return v.Items }).(MetadataItemsItemArrayOutput) } type MetadataPtrOutput struct{ *pulumi.OutputState } func (MetadataPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**Metadata)(nil)).Elem() } func (o MetadataPtrOutput) ToMetadataPtrOutput() MetadataPtrOutput { return o } func (o MetadataPtrOutput) ToMetadataPtrOutputWithContext(ctx context.Context) MetadataPtrOutput { return o } func (o MetadataPtrOutput) Elem() MetadataOutput { return o.ApplyT(func(v *Metadata) Metadata { if v != nil { return *v } var ret Metadata return ret }).(MetadataOutput) } // Array of key/value pairs. The total size of all keys and values must be less than 512 KB. func (o MetadataPtrOutput) Items() MetadataItemsItemArrayOutput { return o.ApplyT(func(v *Metadata) []MetadataItemsItem { if v == nil { return nil } return v.Items }).(MetadataItemsItemArrayOutput) } // Opaque filter criteria used by load balancers to restrict routing configuration to a limited set of load balancing proxies. Proxies and sidecars involved in load balancing would typically present metadata to the load balancers that need to match criteria specified here. If a match takes place, the relevant configuration is made available to those proxies. For each metadataFilter in this list, if its filterMatchCriteria is set to MATCH_ANY, at least one of the filterLabels must match the corresponding label provided in the metadata. If its filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels must match with corresponding labels provided in the metadata. An example for using metadataFilters would be: if load balancing involves Envoys, they receive routing configuration when values in metadataFilters match values supplied in of their XDS requests to loadbalancers. type MetadataFilter struct { // The list of label value pairs that must match labels in the provided metadata based on filterMatchCriteria This list must not be empty and can have at the most 64 entries. FilterLabels []MetadataFilterLabelMatch `pulumi:"filterLabels"` // Specifies how individual filter label matches within the list of filterLabels and contributes toward the overall metadataFilter match. Supported values are: - MATCH_ANY: at least one of the filterLabels must have a matching label in the provided metadata. - MATCH_ALL: all filterLabels must have matching labels in the provided metadata. FilterMatchCriteria *MetadataFilterFilterMatchCriteria `pulumi:"filterMatchCriteria"` } // MetadataFilterInput is an input type that accepts MetadataFilterArgs and MetadataFilterOutput values. // You can construct a concrete instance of `MetadataFilterInput` via: // // MetadataFilterArgs{...} type MetadataFilterInput interface { pulumi.Input ToMetadataFilterOutput() MetadataFilterOutput ToMetadataFilterOutputWithContext(context.Context) MetadataFilterOutput } // Opaque filter criteria used by load balancers to restrict routing configuration to a limited set of load balancing proxies. Proxies and sidecars involved in load balancing would typically present metadata to the load balancers that need to match criteria specified here. If a match takes place, the relevant configuration is made available to those proxies. For each metadataFilter in this list, if its filterMatchCriteria is set to MATCH_ANY, at least one of the filterLabels must match the corresponding label provided in the metadata. If its filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels must match with corresponding labels provided in the metadata. An example for using metadataFilters would be: if load balancing involves Envoys, they receive routing configuration when values in metadataFilters match values supplied in of their XDS requests to loadbalancers. type MetadataFilterArgs struct { // The list of label value pairs that must match labels in the provided metadata based on filterMatchCriteria This list must not be empty and can have at the most 64 entries. FilterLabels MetadataFilterLabelMatchArrayInput `pulumi:"filterLabels"` // Specifies how individual filter label matches within the list of filterLabels and contributes toward the overall metadataFilter match. Supported values are: - MATCH_ANY: at least one of the filterLabels must have a matching label in the provided metadata. - MATCH_ALL: all filterLabels must have matching labels in the provided metadata. FilterMatchCriteria MetadataFilterFilterMatchCriteriaPtrInput `pulumi:"filterMatchCriteria"` } func (MetadataFilterArgs) ElementType() reflect.Type { return reflect.TypeOf((*MetadataFilter)(nil)).Elem() } func (i MetadataFilterArgs) ToMetadataFilterOutput() MetadataFilterOutput { return i.ToMetadataFilterOutputWithContext(context.Background()) } func (i MetadataFilterArgs) ToMetadataFilterOutputWithContext(ctx context.Context) MetadataFilterOutput { return pulumi.ToOutputWithContext(ctx, i).(MetadataFilterOutput) } // MetadataFilterArrayInput is an input type that accepts MetadataFilterArray and MetadataFilterArrayOutput values. // You can construct a concrete instance of `MetadataFilterArrayInput` via: // // MetadataFilterArray{ MetadataFilterArgs{...} } type MetadataFilterArrayInput interface { pulumi.Input ToMetadataFilterArrayOutput() MetadataFilterArrayOutput ToMetadataFilterArrayOutputWithContext(context.Context) MetadataFilterArrayOutput } type MetadataFilterArray []MetadataFilterInput func (MetadataFilterArray) ElementType() reflect.Type { return reflect.TypeOf((*[]MetadataFilter)(nil)).Elem() } func (i MetadataFilterArray) ToMetadataFilterArrayOutput() MetadataFilterArrayOutput { return i.ToMetadataFilterArrayOutputWithContext(context.Background()) } func (i MetadataFilterArray) ToMetadataFilterArrayOutputWithContext(ctx context.Context) MetadataFilterArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(MetadataFilterArrayOutput) } // Opaque filter criteria used by load balancers to restrict routing configuration to a limited set of load balancing proxies. Proxies and sidecars involved in load balancing would typically present metadata to the load balancers that need to match criteria specified here. If a match takes place, the relevant configuration is made available to those proxies. For each metadataFilter in this list, if its filterMatchCriteria is set to MATCH_ANY, at least one of the filterLabels must match the corresponding label provided in the metadata. If its filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels must match with corresponding labels provided in the metadata. An example for using metadataFilters would be: if load balancing involves Envoys, they receive routing configuration when values in metadataFilters match values supplied in of their XDS requests to loadbalancers. type MetadataFilterOutput struct{ *pulumi.OutputState } func (MetadataFilterOutput) ElementType() reflect.Type { return reflect.TypeOf((*MetadataFilter)(nil)).Elem() } func (o MetadataFilterOutput) ToMetadataFilterOutput() MetadataFilterOutput { return o } func (o MetadataFilterOutput) ToMetadataFilterOutputWithContext(ctx context.Context) MetadataFilterOutput { return o } // The list of label value pairs that must match labels in the provided metadata based on filterMatchCriteria This list must not be empty and can have at the most 64 entries. func (o MetadataFilterOutput) FilterLabels() MetadataFilterLabelMatchArrayOutput { return o.ApplyT(func(v MetadataFilter) []MetadataFilterLabelMatch { return v.FilterLabels }).(MetadataFilterLabelMatchArrayOutput) } // Specifies how individual filter label matches within the list of filterLabels and contributes toward the overall metadataFilter match. Supported values are: - MATCH_ANY: at least one of the filterLabels must have a matching label in the provided metadata. - MATCH_ALL: all filterLabels must have matching labels in the provided metadata. func (o MetadataFilterOutput) FilterMatchCriteria() MetadataFilterFilterMatchCriteriaPtrOutput { return o.ApplyT(func(v MetadataFilter) *MetadataFilterFilterMatchCriteria { return v.FilterMatchCriteria }).(MetadataFilterFilterMatchCriteriaPtrOutput) } type MetadataFilterArrayOutput struct{ *pulumi.OutputState } func (MetadataFilterArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]MetadataFilter)(nil)).Elem() } func (o MetadataFilterArrayOutput) ToMetadataFilterArrayOutput() MetadataFilterArrayOutput { return o } func (o MetadataFilterArrayOutput) ToMetadataFilterArrayOutputWithContext(ctx context.Context) MetadataFilterArrayOutput { return o } func (o MetadataFilterArrayOutput) Index(i pulumi.IntInput) MetadataFilterOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) MetadataFilter { return vs[0].([]MetadataFilter)[vs[1].(int)] }).(MetadataFilterOutput) } // MetadataFilter label name value pairs that are expected to match corresponding labels presented as metadata to the load balancer. type MetadataFilterLabelMatch struct { // Name of metadata label. The name can have a maximum length of 1024 characters and must be at least 1 character long. Name *string `pulumi:"name"` // The value of the label must match the specified value. value can have a maximum length of 1024 characters. Value *string `pulumi:"value"` } // MetadataFilterLabelMatchInput is an input type that accepts MetadataFilterLabelMatchArgs and MetadataFilterLabelMatchOutput values. // You can construct a concrete instance of `MetadataFilterLabelMatchInput` via: // // MetadataFilterLabelMatchArgs{...} type MetadataFilterLabelMatchInput interface { pulumi.Input ToMetadataFilterLabelMatchOutput() MetadataFilterLabelMatchOutput ToMetadataFilterLabelMatchOutputWithContext(context.Context) MetadataFilterLabelMatchOutput } // MetadataFilter label name value pairs that are expected to match corresponding labels presented as metadata to the load balancer. type MetadataFilterLabelMatchArgs struct { // Name of metadata label. The name can have a maximum length of 1024 characters and must be at least 1 character long. Name pulumi.StringPtrInput `pulumi:"name"` // The value of the label must match the specified value. value can have a maximum length of 1024 characters. Value pulumi.StringPtrInput `pulumi:"value"` } func (MetadataFilterLabelMatchArgs) ElementType() reflect.Type { return reflect.TypeOf((*MetadataFilterLabelMatch)(nil)).Elem() } func (i MetadataFilterLabelMatchArgs) ToMetadataFilterLabelMatchOutput() MetadataFilterLabelMatchOutput { return i.ToMetadataFilterLabelMatchOutputWithContext(context.Background()) } func (i MetadataFilterLabelMatchArgs) ToMetadataFilterLabelMatchOutputWithContext(ctx context.Context) MetadataFilterLabelMatchOutput { return pulumi.ToOutputWithContext(ctx, i).(MetadataFilterLabelMatchOutput) } // MetadataFilterLabelMatchArrayInput is an input type that accepts MetadataFilterLabelMatchArray and MetadataFilterLabelMatchArrayOutput values. // You can construct a concrete instance of `MetadataFilterLabelMatchArrayInput` via: // // MetadataFilterLabelMatchArray{ MetadataFilterLabelMatchArgs{...} } type MetadataFilterLabelMatchArrayInput interface { pulumi.Input ToMetadataFilterLabelMatchArrayOutput() MetadataFilterLabelMatchArrayOutput ToMetadataFilterLabelMatchArrayOutputWithContext(context.Context) MetadataFilterLabelMatchArrayOutput } type MetadataFilterLabelMatchArray []MetadataFilterLabelMatchInput func (MetadataFilterLabelMatchArray) ElementType() reflect.Type { return reflect.TypeOf((*[]MetadataFilterLabelMatch)(nil)).Elem() } func (i MetadataFilterLabelMatchArray) ToMetadataFilterLabelMatchArrayOutput() MetadataFilterLabelMatchArrayOutput { return i.ToMetadataFilterLabelMatchArrayOutputWithContext(context.Background()) } func (i MetadataFilterLabelMatchArray) ToMetadataFilterLabelMatchArrayOutputWithContext(ctx context.Context) MetadataFilterLabelMatchArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(MetadataFilterLabelMatchArrayOutput) } // MetadataFilter label name value pairs that are expected to match corresponding labels presented as metadata to the load balancer. type MetadataFilterLabelMatchOutput struct{ *pulumi.OutputState } func (MetadataFilterLabelMatchOutput) ElementType() reflect.Type { return reflect.TypeOf((*MetadataFilterLabelMatch)(nil)).Elem() } func (o MetadataFilterLabelMatchOutput) ToMetadataFilterLabelMatchOutput() MetadataFilterLabelMatchOutput { return o } func (o MetadataFilterLabelMatchOutput) ToMetadataFilterLabelMatchOutputWithContext(ctx context.Context) MetadataFilterLabelMatchOutput { return o } // Name of metadata label. The name can have a maximum length of 1024 characters and must be at least 1 character long. func (o MetadataFilterLabelMatchOutput) Name() pulumi.StringPtrOutput { return o.ApplyT(func(v MetadataFilterLabelMatch) *string { return v.Name }).(pulumi.StringPtrOutput) } // The value of the label must match the specified value. value can have a maximum length of 1024 characters. func (o MetadataFilterLabelMatchOutput) Value() pulumi.StringPtrOutput { return o.ApplyT(func(v MetadataFilterLabelMatch) *string { return v.Value }).(pulumi.StringPtrOutput) } type MetadataFilterLabelMatchArrayOutput struct{ *pulumi.OutputState } func (MetadataFilterLabelMatchArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]MetadataFilterLabelMatch)(nil)).Elem() } func (o MetadataFilterLabelMatchArrayOutput) ToMetadataFilterLabelMatchArrayOutput() MetadataFilterLabelMatchArrayOutput { return o } func (o MetadataFilterLabelMatchArrayOutput) ToMetadataFilterLabelMatchArrayOutputWithContext(ctx context.Context) MetadataFilterLabelMatchArrayOutput { return o } func (o MetadataFilterLabelMatchArrayOutput) Index(i pulumi.IntInput) MetadataFilterLabelMatchOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) MetadataFilterLabelMatch { return vs[0].([]MetadataFilterLabelMatch)[vs[1].(int)] }).(MetadataFilterLabelMatchOutput) } // MetadataFilter label name value pairs that are expected to match corresponding labels presented as metadata to the load balancer. type MetadataFilterLabelMatchResponse struct { // Name of metadata label. The name can have a maximum length of 1024 characters and must be at least 1 character long. Name string `pulumi:"name"` // The value of the label must match the specified value. value can have a maximum length of 1024 characters. Value string `pulumi:"value"` } // MetadataFilter label name value pairs that are expected to match corresponding labels presented as metadata to the load balancer. type MetadataFilterLabelMatchResponseOutput struct{ *pulumi.OutputState } func (MetadataFilterLabelMatchResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*MetadataFilterLabelMatchResponse)(nil)).Elem() } func (o MetadataFilterLabelMatchResponseOutput) ToMetadataFilterLabelMatchResponseOutput() MetadataFilterLabelMatchResponseOutput { return o } func (o MetadataFilterLabelMatchResponseOutput) ToMetadataFilterLabelMatchResponseOutputWithContext(ctx context.Context) MetadataFilterLabelMatchResponseOutput { return o } // Name of metadata label. The name can have a maximum length of 1024 characters and must be at least 1 character long. func (o MetadataFilterLabelMatchResponseOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v MetadataFilterLabelMatchResponse) string { return v.Name }).(pulumi.StringOutput) } // The value of the label must match the specified value. value can have a maximum length of 1024 characters. func (o MetadataFilterLabelMatchResponseOutput) Value() pulumi.StringOutput { return o.ApplyT(func(v MetadataFilterLabelMatchResponse) string { return v.Value }).(pulumi.StringOutput) } type MetadataFilterLabelMatchResponseArrayOutput struct{ *pulumi.OutputState } func (MetadataFilterLabelMatchResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]MetadataFilterLabelMatchResponse)(nil)).Elem() } func (o MetadataFilterLabelMatchResponseArrayOutput) ToMetadataFilterLabelMatchResponseArrayOutput() MetadataFilterLabelMatchResponseArrayOutput { return o } func (o MetadataFilterLabelMatchResponseArrayOutput) ToMetadataFilterLabelMatchResponseArrayOutputWithContext(ctx context.Context) MetadataFilterLabelMatchResponseArrayOutput { return o } func (o MetadataFilterLabelMatchResponseArrayOutput) Index(i pulumi.IntInput) MetadataFilterLabelMatchResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) MetadataFilterLabelMatchResponse { return vs[0].([]MetadataFilterLabelMatchResponse)[vs[1].(int)] }).(MetadataFilterLabelMatchResponseOutput) } // Opaque filter criteria used by load balancers to restrict routing configuration to a limited set of load balancing proxies. Proxies and sidecars involved in load balancing would typically present metadata to the load balancers that need to match criteria specified here. If a match takes place, the relevant configuration is made available to those proxies. For each metadataFilter in this list, if its filterMatchCriteria is set to MATCH_ANY, at least one of the filterLabels must match the corresponding label provided in the metadata. If its filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels must match with corresponding labels provided in the metadata. An example for using metadataFilters would be: if load balancing involves Envoys, they receive routing configuration when values in metadataFilters match values supplied in of their XDS requests to loadbalancers. type MetadataFilterResponse struct { // The list of label value pairs that must match labels in the provided metadata based on filterMatchCriteria This list must not be empty and can have at the most 64 entries. FilterLabels []MetadataFilterLabelMatchResponse `pulumi:"filterLabels"` // Specifies how individual filter label matches within the list of filterLabels and contributes toward the overall metadataFilter match. Supported values are: - MATCH_ANY: at least one of the filterLabels must have a matching label in the provided metadata. - MATCH_ALL: all filterLabels must have matching labels in the provided metadata. FilterMatchCriteria string `pulumi:"filterMatchCriteria"` } // Opaque filter criteria used by load balancers to restrict routing configuration to a limited set of load balancing proxies. Proxies and sidecars involved in load balancing would typically present metadata to the load balancers that need to match criteria specified here. If a match takes place, the relevant configuration is made available to those proxies. For each metadataFilter in this list, if its filterMatchCriteria is set to MATCH_ANY, at least one of the filterLabels must match the corresponding label provided in the metadata. If its filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels must match with corresponding labels provided in the metadata. An example for using metadataFilters would be: if load balancing involves Envoys, they receive routing configuration when values in metadataFilters match values supplied in of their XDS requests to loadbalancers. type MetadataFilterResponseOutput struct{ *pulumi.OutputState } func (MetadataFilterResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*MetadataFilterResponse)(nil)).Elem() } func (o MetadataFilterResponseOutput) ToMetadataFilterResponseOutput() MetadataFilterResponseOutput { return o } func (o MetadataFilterResponseOutput) ToMetadataFilterResponseOutputWithContext(ctx context.Context) MetadataFilterResponseOutput { return o } // The list of label value pairs that must match labels in the provided metadata based on filterMatchCriteria This list must not be empty and can have at the most 64 entries. func (o MetadataFilterResponseOutput) FilterLabels() MetadataFilterLabelMatchResponseArrayOutput { return o.ApplyT(func(v MetadataFilterResponse) []MetadataFilterLabelMatchResponse { return v.FilterLabels }).(MetadataFilterLabelMatchResponseArrayOutput) } // Specifies how individual filter label matches within the list of filterLabels and contributes toward the overall metadataFilter match. Supported values are: - MATCH_ANY: at least one of the filterLabels must have a matching label in the provided metadata. - MATCH_ALL: all filterLabels must have matching labels in the provided metadata. func (o MetadataFilterResponseOutput) FilterMatchCriteria() pulumi.StringOutput { return o.ApplyT(func(v MetadataFilterResponse) string { return v.FilterMatchCriteria }).(pulumi.StringOutput) } type MetadataFilterResponseArrayOutput struct{ *pulumi.OutputState } func (MetadataFilterResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]MetadataFilterResponse)(nil)).Elem() } func (o MetadataFilterResponseArrayOutput) ToMetadataFilterResponseArrayOutput() MetadataFilterResponseArrayOutput { return o } func (o MetadataFilterResponseArrayOutput) ToMetadataFilterResponseArrayOutputWithContext(ctx context.Context) MetadataFilterResponseArrayOutput { return o } func (o MetadataFilterResponseArrayOutput) Index(i pulumi.IntInput) MetadataFilterResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) MetadataFilterResponse { return vs[0].([]MetadataFilterResponse)[vs[1].(int)] }).(MetadataFilterResponseOutput) } // Metadata type MetadataItemsItem struct { // Key for the metadata entry. Keys must conform to the following regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project. Key *string `pulumi:"key"` // Value for the metadata entry. These are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on values is that their size must be less than or equal to 262144 bytes (256 KiB). Value *string `pulumi:"value"` } // MetadataItemsItemInput is an input type that accepts MetadataItemsItemArgs and MetadataItemsItemOutput values. // You can construct a concrete instance of `MetadataItemsItemInput` via: // // MetadataItemsItemArgs{...} type MetadataItemsItemInput interface { pulumi.Input ToMetadataItemsItemOutput() MetadataItemsItemOutput ToMetadataItemsItemOutputWithContext(context.Context) MetadataItemsItemOutput } // Metadata type MetadataItemsItemArgs struct { // Key for the metadata entry. Keys must conform to the following regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project. Key pulumi.StringPtrInput `pulumi:"key"` // Value for the metadata entry. These are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on values is that their size must be less than or equal to 262144 bytes (256 KiB). Value pulumi.StringPtrInput `pulumi:"value"` } func (MetadataItemsItemArgs) ElementType() reflect.Type { return reflect.TypeOf((*MetadataItemsItem)(nil)).Elem() } func (i MetadataItemsItemArgs) ToMetadataItemsItemOutput() MetadataItemsItemOutput { return i.ToMetadataItemsItemOutputWithContext(context.Background()) } func (i MetadataItemsItemArgs) ToMetadataItemsItemOutputWithContext(ctx context.Context) MetadataItemsItemOutput { return pulumi.ToOutputWithContext(ctx, i).(MetadataItemsItemOutput) } // MetadataItemsItemArrayInput is an input type that accepts MetadataItemsItemArray and MetadataItemsItemArrayOutput values. // You can construct a concrete instance of `MetadataItemsItemArrayInput` via: // // MetadataItemsItemArray{ MetadataItemsItemArgs{...} } type MetadataItemsItemArrayInput interface { pulumi.Input ToMetadataItemsItemArrayOutput() MetadataItemsItemArrayOutput ToMetadataItemsItemArrayOutputWithContext(context.Context) MetadataItemsItemArrayOutput } type MetadataItemsItemArray []MetadataItemsItemInput func (MetadataItemsItemArray) ElementType() reflect.Type { return reflect.TypeOf((*[]MetadataItemsItem)(nil)).Elem() } func (i MetadataItemsItemArray) ToMetadataItemsItemArrayOutput() MetadataItemsItemArrayOutput { return i.ToMetadataItemsItemArrayOutputWithContext(context.Background()) } func (i MetadataItemsItemArray) ToMetadataItemsItemArrayOutputWithContext(ctx context.Context) MetadataItemsItemArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(MetadataItemsItemArrayOutput) } // Metadata type MetadataItemsItemOutput struct{ *pulumi.OutputState } func (MetadataItemsItemOutput) ElementType() reflect.Type { return reflect.TypeOf((*MetadataItemsItem)(nil)).Elem() } func (o MetadataItemsItemOutput) ToMetadataItemsItemOutput() MetadataItemsItemOutput { return o } func (o MetadataItemsItemOutput) ToMetadataItemsItemOutputWithContext(ctx context.Context) MetadataItemsItemOutput { return o } // Key for the metadata entry. Keys must conform to the following regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project. func (o MetadataItemsItemOutput) Key() pulumi.StringPtrOutput { return o.ApplyT(func(v MetadataItemsItem) *string { return v.Key }).(pulumi.StringPtrOutput) } // Value for the metadata entry. These are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on values is that their size must be less than or equal to 262144 bytes (256 KiB). func (o MetadataItemsItemOutput) Value() pulumi.StringPtrOutput { return o.ApplyT(func(v MetadataItemsItem) *string { return v.Value }).(pulumi.StringPtrOutput) } type MetadataItemsItemArrayOutput struct{ *pulumi.OutputState } func (MetadataItemsItemArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]MetadataItemsItem)(nil)).Elem() } func (o MetadataItemsItemArrayOutput) ToMetadataItemsItemArrayOutput() MetadataItemsItemArrayOutput { return o } func (o MetadataItemsItemArrayOutput) ToMetadataItemsItemArrayOutputWithContext(ctx context.Context) MetadataItemsItemArrayOutput { return o } func (o MetadataItemsItemArrayOutput) Index(i pulumi.IntInput) MetadataItemsItemOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) MetadataItemsItem { return vs[0].([]MetadataItemsItem)[vs[1].(int)] }).(MetadataItemsItemOutput) } // Metadata type MetadataItemsItemResponse struct { // Key for the metadata entry. Keys must conform to the following regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project. Key string `pulumi:"key"` // Value for the metadata entry. These are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on values is that their size must be less than or equal to 262144 bytes (256 KiB). Value string `pulumi:"value"` } // Metadata type MetadataItemsItemResponseOutput struct{ *pulumi.OutputState } func (MetadataItemsItemResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*MetadataItemsItemResponse)(nil)).Elem() } func (o MetadataItemsItemResponseOutput) ToMetadataItemsItemResponseOutput() MetadataItemsItemResponseOutput { return o } func (o MetadataItemsItemResponseOutput) ToMetadataItemsItemResponseOutputWithContext(ctx context.Context) MetadataItemsItemResponseOutput { return o } // Key for the metadata entry. Keys must conform to the following regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project. func (o MetadataItemsItemResponseOutput) Key() pulumi.StringOutput { return o.ApplyT(func(v MetadataItemsItemResponse) string { return v.Key }).(pulumi.StringOutput) } // Value for the metadata entry. These are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on values is that their size must be less than or equal to 262144 bytes (256 KiB). func (o MetadataItemsItemResponseOutput) Value() pulumi.StringOutput { return o.ApplyT(func(v MetadataItemsItemResponse) string { return v.Value }).(pulumi.StringOutput) } type MetadataItemsItemResponseArrayOutput struct{ *pulumi.OutputState } func (MetadataItemsItemResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]MetadataItemsItemResponse)(nil)).Elem() } func (o MetadataItemsItemResponseArrayOutput) ToMetadataItemsItemResponseArrayOutput() MetadataItemsItemResponseArrayOutput { return o } func (o MetadataItemsItemResponseArrayOutput) ToMetadataItemsItemResponseArrayOutputWithContext(ctx context.Context) MetadataItemsItemResponseArrayOutput { return o } func (o MetadataItemsItemResponseArrayOutput) Index(i pulumi.IntInput) MetadataItemsItemResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) MetadataItemsItemResponse { return vs[0].([]MetadataItemsItemResponse)[vs[1].(int)] }).(MetadataItemsItemResponseOutput) } // A metadata key/value entry. type MetadataResponse struct { // Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve the resource. Fingerprint string `pulumi:"fingerprint"` // Array of key/value pairs. The total size of all keys and values must be less than 512 KB. Items []MetadataItemsItemResponse `pulumi:"items"` // Type of the resource. Always compute#metadata for metadata. Kind string `pulumi:"kind"` } // A metadata key/value entry. type MetadataResponseOutput struct{ *pulumi.OutputState } func (MetadataResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*MetadataResponse)(nil)).Elem() } func (o MetadataResponseOutput) ToMetadataResponseOutput() MetadataResponseOutput { return o } func (o MetadataResponseOutput) ToMetadataResponseOutputWithContext(ctx context.Context) MetadataResponseOutput { return o } // Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve the resource. func (o MetadataResponseOutput) Fingerprint() pulumi.StringOutput { return o.ApplyT(func(v MetadataResponse) string { return v.Fingerprint }).(pulumi.StringOutput) } // Array of key/value pairs. The total size of all keys and values must be less than 512 KB. func (o MetadataResponseOutput) Items() MetadataItemsItemResponseArrayOutput { return o.ApplyT(func(v MetadataResponse) []MetadataItemsItemResponse { return v.Items }).(MetadataItemsItemResponseArrayOutput) } // Type of the resource. Always compute#metadata for metadata. func (o MetadataResponseOutput) Kind() pulumi.StringOutput { return o.ApplyT(func(v MetadataResponse) string { return v.Kind }).(pulumi.StringOutput) } // The named port. For example: <"http", 80>. type NamedPort struct { // The name for this named port. The name must be 1-63 characters long, and comply with RFC1035. Name *string `pulumi:"name"` // The port number, which can be a value between 1 and 65535. Port *int `pulumi:"port"` } // NamedPortInput is an input type that accepts NamedPortArgs and NamedPortOutput values. // You can construct a concrete instance of `NamedPortInput` via: // // NamedPortArgs{...} type NamedPortInput interface { pulumi.Input ToNamedPortOutput() NamedPortOutput ToNamedPortOutputWithContext(context.Context) NamedPortOutput } // The named port. For example: <"http", 80>. type NamedPortArgs struct { // The name for this named port. The name must be 1-63 characters long, and comply with RFC1035. Name pulumi.StringPtrInput `pulumi:"name"` // The port number, which can be a value between 1 and 65535. Port pulumi.IntPtrInput `pulumi:"port"` } func (NamedPortArgs) ElementType() reflect.Type { return reflect.TypeOf((*NamedPort)(nil)).Elem() } func (i NamedPortArgs) ToNamedPortOutput() NamedPortOutput { return i.ToNamedPortOutputWithContext(context.Background()) } func (i NamedPortArgs) ToNamedPortOutputWithContext(ctx context.Context) NamedPortOutput { return pulumi.ToOutputWithContext(ctx, i).(NamedPortOutput) } // NamedPortArrayInput is an input type that accepts NamedPortArray and NamedPortArrayOutput values. // You can construct a concrete instance of `NamedPortArrayInput` via: // // NamedPortArray{ NamedPortArgs{...} } type NamedPortArrayInput interface { pulumi.Input ToNamedPortArrayOutput() NamedPortArrayOutput ToNamedPortArrayOutputWithContext(context.Context) NamedPortArrayOutput } type NamedPortArray []NamedPortInput func (NamedPortArray) ElementType() reflect.Type { return reflect.TypeOf((*[]NamedPort)(nil)).Elem() } func (i NamedPortArray) ToNamedPortArrayOutput() NamedPortArrayOutput { return i.ToNamedPortArrayOutputWithContext(context.Background()) } func (i NamedPortArray) ToNamedPortArrayOutputWithContext(ctx context.Context) NamedPortArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(NamedPortArrayOutput) } // The named port. For example: <"http", 80>. type NamedPortOutput struct{ *pulumi.OutputState } func (NamedPortOutput) ElementType() reflect.Type { return reflect.TypeOf((*NamedPort)(nil)).Elem() } func (o NamedPortOutput) ToNamedPortOutput() NamedPortOutput { return o } func (o NamedPortOutput) ToNamedPortOutputWithContext(ctx context.Context) NamedPortOutput { return o } // The name for this named port. The name must be 1-63 characters long, and comply with RFC1035. func (o NamedPortOutput) Name() pulumi.StringPtrOutput { return o.ApplyT(func(v NamedPort) *string { return v.Name }).(pulumi.StringPtrOutput) } // The port number, which can be a value between 1 and 65535. func (o NamedPortOutput) Port() pulumi.IntPtrOutput { return o.ApplyT(func(v NamedPort) *int { return v.Port }).(pulumi.IntPtrOutput) } type NamedPortArrayOutput struct{ *pulumi.OutputState } func (NamedPortArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]NamedPort)(nil)).Elem() } func (o NamedPortArrayOutput) ToNamedPortArrayOutput() NamedPortArrayOutput { return o } func (o NamedPortArrayOutput) ToNamedPortArrayOutputWithContext(ctx context.Context) NamedPortArrayOutput { return o } func (o NamedPortArrayOutput) Index(i pulumi.IntInput) NamedPortOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) NamedPort { return vs[0].([]NamedPort)[vs[1].(int)] }).(NamedPortOutput) } // The named port. For example: <"http", 80>. type NamedPortResponse struct { // The name for this named port. The name must be 1-63 characters long, and comply with RFC1035. Name string `pulumi:"name"` // The port number, which can be a value between 1 and 65535. Port int `pulumi:"port"` } // The named port. For example: <"http", 80>. type NamedPortResponseOutput struct{ *pulumi.OutputState } func (NamedPortResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*NamedPortResponse)(nil)).Elem() } func (o NamedPortResponseOutput) ToNamedPortResponseOutput() NamedPortResponseOutput { return o } func (o NamedPortResponseOutput) ToNamedPortResponseOutputWithContext(ctx context.Context) NamedPortResponseOutput { return o } // The name for this named port. The name must be 1-63 characters long, and comply with RFC1035. func (o NamedPortResponseOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v NamedPortResponse) string { return v.Name }).(pulumi.StringOutput) } // The port number, which can be a value between 1 and 65535. func (o NamedPortResponseOutput) Port() pulumi.IntOutput { return o.ApplyT(func(v NamedPortResponse) int { return v.Port }).(pulumi.IntOutput) } type NamedPortResponseArrayOutput struct{ *pulumi.OutputState } func (NamedPortResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]NamedPortResponse)(nil)).Elem() } func (o NamedPortResponseArrayOutput) ToNamedPortResponseArrayOutput() NamedPortResponseArrayOutput { return o } func (o NamedPortResponseArrayOutput) ToNamedPortResponseArrayOutputWithContext(ctx context.Context) NamedPortResponseArrayOutput { return o } func (o NamedPortResponseArrayOutput) Index(i pulumi.IntInput) NamedPortResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) NamedPortResponse { return vs[0].([]NamedPortResponse)[vs[1].(int)] }).(NamedPortResponseOutput) } // Configuration for an App Engine network endpoint group (NEG). The service is optional, may be provided explicitly or in the URL mask. The version is optional and can only be provided explicitly or in the URL mask when service is present. Note: App Engine service must be in the same project and located in the same region as the Serverless NEG. type NetworkEndpointGroupAppEngine struct { // Optional serving service. The service name is case-sensitive and must be 1-63 characters long. Example value: "default", "my-service". Service *string `pulumi:"service"` // A template to parse service and version fields from a request URL. URL mask allows for routing to multiple App Engine services without having to create multiple Network Endpoint Groups and backend services. For example, the request URLs "foo1-dot-appname.appspot.com/v1" and "foo1-dot-appname.appspot.com/v2" can be backed by the same Serverless NEG with URL mask "-dot-appname.appspot.com/". The URL mask will parse them to { service = "foo1", version = "v1" } and { service = "foo1", version = "v2" } respectively. UrlMask *string `pulumi:"urlMask"` // Optional serving version. The version name is case-sensitive and must be 1-100 characters long. Example value: "v1", "v2". Version *string `pulumi:"version"` } // NetworkEndpointGroupAppEngineInput is an input type that accepts NetworkEndpointGroupAppEngineArgs and NetworkEndpointGroupAppEngineOutput values. // You can construct a concrete instance of `NetworkEndpointGroupAppEngineInput` via: // // NetworkEndpointGroupAppEngineArgs{...} type NetworkEndpointGroupAppEngineInput interface { pulumi.Input ToNetworkEndpointGroupAppEngineOutput() NetworkEndpointGroupAppEngineOutput ToNetworkEndpointGroupAppEngineOutputWithContext(context.Context) NetworkEndpointGroupAppEngineOutput } // Configuration for an App Engine network endpoint group (NEG). The service is optional, may be provided explicitly or in the URL mask. The version is optional and can only be provided explicitly or in the URL mask when service is present. Note: App Engine service must be in the same project and located in the same region as the Serverless NEG. type NetworkEndpointGroupAppEngineArgs struct { // Optional serving service. The service name is case-sensitive and must be 1-63 characters long. Example value: "default", "my-service". Service pulumi.StringPtrInput `pulumi:"service"` // A template to parse service and version fields from a request URL. URL mask allows for routing to multiple App Engine services without having to create multiple Network Endpoint Groups and backend services. For example, the request URLs "foo1-dot-appname.appspot.com/v1" and "foo1-dot-appname.appspot.com/v2" can be backed by the same Serverless NEG with URL mask "-dot-appname.appspot.com/". The URL mask will parse them to { service = "foo1", version = "v1" } and { service = "foo1", version = "v2" } respectively. UrlMask pulumi.StringPtrInput `pulumi:"urlMask"` // Optional serving version. The version name is case-sensitive and must be 1-100 characters long. Example value: "v1", "v2". Version pulumi.StringPtrInput `pulumi:"version"` } func (NetworkEndpointGroupAppEngineArgs) ElementType() reflect.Type { return reflect.TypeOf((*NetworkEndpointGroupAppEngine)(nil)).Elem() } func (i NetworkEndpointGroupAppEngineArgs) ToNetworkEndpointGroupAppEngineOutput() NetworkEndpointGroupAppEngineOutput { return i.ToNetworkEndpointGroupAppEngineOutputWithContext(context.Background()) } func (i NetworkEndpointGroupAppEngineArgs) ToNetworkEndpointGroupAppEngineOutputWithContext(ctx context.Context) NetworkEndpointGroupAppEngineOutput { return pulumi.ToOutputWithContext(ctx, i).(NetworkEndpointGroupAppEngineOutput) } func (i NetworkEndpointGroupAppEngineArgs) ToNetworkEndpointGroupAppEnginePtrOutput() NetworkEndpointGroupAppEnginePtrOutput { return i.ToNetworkEndpointGroupAppEnginePtrOutputWithContext(context.Background()) } func (i NetworkEndpointGroupAppEngineArgs) ToNetworkEndpointGroupAppEnginePtrOutputWithContext(ctx context.Context) NetworkEndpointGroupAppEnginePtrOutput { return pulumi.ToOutputWithContext(ctx, i).(NetworkEndpointGroupAppEngineOutput).ToNetworkEndpointGroupAppEnginePtrOutputWithContext(ctx) } // NetworkEndpointGroupAppEnginePtrInput is an input type that accepts NetworkEndpointGroupAppEngineArgs, NetworkEndpointGroupAppEnginePtr and NetworkEndpointGroupAppEnginePtrOutput values. // You can construct a concrete instance of `NetworkEndpointGroupAppEnginePtrInput` via: // // NetworkEndpointGroupAppEngineArgs{...} // // or: // // nil type NetworkEndpointGroupAppEnginePtrInput interface { pulumi.Input ToNetworkEndpointGroupAppEnginePtrOutput() NetworkEndpointGroupAppEnginePtrOutput ToNetworkEndpointGroupAppEnginePtrOutputWithContext(context.Context) NetworkEndpointGroupAppEnginePtrOutput } type networkEndpointGroupAppEnginePtrType NetworkEndpointGroupAppEngineArgs func NetworkEndpointGroupAppEnginePtr(v *NetworkEndpointGroupAppEngineArgs) NetworkEndpointGroupAppEnginePtrInput { return (*networkEndpointGroupAppEnginePtrType)(v) } func (*networkEndpointGroupAppEnginePtrType) ElementType() reflect.Type { return reflect.TypeOf((**NetworkEndpointGroupAppEngine)(nil)).Elem() } func (i *networkEndpointGroupAppEnginePtrType) ToNetworkEndpointGroupAppEnginePtrOutput() NetworkEndpointGroupAppEnginePtrOutput { return i.ToNetworkEndpointGroupAppEnginePtrOutputWithContext(context.Background()) } func (i *networkEndpointGroupAppEnginePtrType) ToNetworkEndpointGroupAppEnginePtrOutputWithContext(ctx context.Context) NetworkEndpointGroupAppEnginePtrOutput { return pulumi.ToOutputWithContext(ctx, i).(NetworkEndpointGroupAppEnginePtrOutput) } // Configuration for an App Engine network endpoint group (NEG). The service is optional, may be provided explicitly or in the URL mask. The version is optional and can only be provided explicitly or in the URL mask when service is present. Note: App Engine service must be in the same project and located in the same region as the Serverless NEG. type NetworkEndpointGroupAppEngineOutput struct{ *pulumi.OutputState } func (NetworkEndpointGroupAppEngineOutput) ElementType() reflect.Type { return reflect.TypeOf((*NetworkEndpointGroupAppEngine)(nil)).Elem() } func (o NetworkEndpointGroupAppEngineOutput) ToNetworkEndpointGroupAppEngineOutput() NetworkEndpointGroupAppEngineOutput { return o } func (o NetworkEndpointGroupAppEngineOutput) ToNetworkEndpointGroupAppEngineOutputWithContext(ctx context.Context) NetworkEndpointGroupAppEngineOutput { return o } func (o NetworkEndpointGroupAppEngineOutput) ToNetworkEndpointGroupAppEnginePtrOutput() NetworkEndpointGroupAppEnginePtrOutput { return o.ToNetworkEndpointGroupAppEnginePtrOutputWithContext(context.Background()) } func (o NetworkEndpointGroupAppEngineOutput) ToNetworkEndpointGroupAppEnginePtrOutputWithContext(ctx context.Context) NetworkEndpointGroupAppEnginePtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v NetworkEndpointGroupAppEngine) *NetworkEndpointGroupAppEngine { return &v }).(NetworkEndpointGroupAppEnginePtrOutput) } // Optional serving service. The service name is case-sensitive and must be 1-63 characters long. Example value: "default", "my-service". func (o NetworkEndpointGroupAppEngineOutput) Service() pulumi.StringPtrOutput { return o.ApplyT(func(v NetworkEndpointGroupAppEngine) *string { return v.Service }).(pulumi.StringPtrOutput) } // A template to parse service and version fields from a request URL. URL mask allows for routing to multiple App Engine services without having to create multiple Network Endpoint Groups and backend services. For example, the request URLs "foo1-dot-appname.appspot.com/v1" and "foo1-dot-appname.appspot.com/v2" can be backed by the same Serverless NEG with URL mask "-dot-appname.appspot.com/". The URL mask will parse them to { service = "foo1", version = "v1" } and { service = "foo1", version = "v2" } respectively. func (o NetworkEndpointGroupAppEngineOutput) UrlMask() pulumi.StringPtrOutput { return o.ApplyT(func(v NetworkEndpointGroupAppEngine) *string { return v.UrlMask }).(pulumi.StringPtrOutput) } // Optional serving version. The version name is case-sensitive and must be 1-100 characters long. Example value: "v1", "v2". func (o NetworkEndpointGroupAppEngineOutput) Version() pulumi.StringPtrOutput { return o.ApplyT(func(v NetworkEndpointGroupAppEngine) *string { return v.Version }).(pulumi.StringPtrOutput) } type NetworkEndpointGroupAppEnginePtrOutput struct{ *pulumi.OutputState } func (NetworkEndpointGroupAppEnginePtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**NetworkEndpointGroupAppEngine)(nil)).Elem() } func (o NetworkEndpointGroupAppEnginePtrOutput) ToNetworkEndpointGroupAppEnginePtrOutput() NetworkEndpointGroupAppEnginePtrOutput { return o } func (o NetworkEndpointGroupAppEnginePtrOutput) ToNetworkEndpointGroupAppEnginePtrOutputWithContext(ctx context.Context) NetworkEndpointGroupAppEnginePtrOutput { return o } func (o NetworkEndpointGroupAppEnginePtrOutput) Elem() NetworkEndpointGroupAppEngineOutput { return o.ApplyT(func(v *NetworkEndpointGroupAppEngine) NetworkEndpointGroupAppEngine { if v != nil { return *v } var ret NetworkEndpointGroupAppEngine return ret }).(NetworkEndpointGroupAppEngineOutput) } // Optional serving service. The service name is case-sensitive and must be 1-63 characters long. Example value: "default", "my-service". func (o NetworkEndpointGroupAppEnginePtrOutput) Service() pulumi.StringPtrOutput { return o.ApplyT(func(v *NetworkEndpointGroupAppEngine) *string { if v == nil { return nil } return v.Service }).(pulumi.StringPtrOutput) } // A template to parse service and version fields from a request URL. URL mask allows for routing to multiple App Engine services without having to create multiple Network Endpoint Groups and backend services. For example, the request URLs "foo1-dot-appname.appspot.com/v1" and "foo1-dot-appname.appspot.com/v2" can be backed by the same Serverless NEG with URL mask "-dot-appname.appspot.com/". The URL mask will parse them to { service = "foo1", version = "v1" } and { service = "foo1", version = "v2" } respectively. func (o NetworkEndpointGroupAppEnginePtrOutput) UrlMask() pulumi.StringPtrOutput { return o.ApplyT(func(v *NetworkEndpointGroupAppEngine) *string { if v == nil { return nil } return v.UrlMask }).(pulumi.StringPtrOutput) } // Optional serving version. The version name is case-sensitive and must be 1-100 characters long. Example value: "v1", "v2". func (o NetworkEndpointGroupAppEnginePtrOutput) Version() pulumi.StringPtrOutput { return o.ApplyT(func(v *NetworkEndpointGroupAppEngine) *string { if v == nil { return nil } return v.Version }).(pulumi.StringPtrOutput) } // Configuration for an App Engine network endpoint group (NEG). The service is optional, may be provided explicitly or in the URL mask. The version is optional and can only be provided explicitly or in the URL mask when service is present. Note: App Engine service must be in the same project and located in the same region as the Serverless NEG. type NetworkEndpointGroupAppEngineResponse struct { // Optional serving service. The service name is case-sensitive and must be 1-63 characters long. Example value: "default", "my-service". Service string `pulumi:"service"` // A template to parse service and version fields from a request URL. URL mask allows for routing to multiple App Engine services without having to create multiple Network Endpoint Groups and backend services. For example, the request URLs "foo1-dot-appname.appspot.com/v1" and "foo1-dot-appname.appspot.com/v2" can be backed by the same Serverless NEG with URL mask "-dot-appname.appspot.com/". The URL mask will parse them to { service = "foo1", version = "v1" } and { service = "foo1", version = "v2" } respectively. UrlMask string `pulumi:"urlMask"` // Optional serving version. The version name is case-sensitive and must be 1-100 characters long. Example value: "v1", "v2". Version string `pulumi:"version"` } // Configuration for an App Engine network endpoint group (NEG). The service is optional, may be provided explicitly or in the URL mask. The version is optional and can only be provided explicitly or in the URL mask when service is present. Note: App Engine service must be in the same project and located in the same region as the Serverless NEG. type NetworkEndpointGroupAppEngineResponseOutput struct{ *pulumi.OutputState } func (NetworkEndpointGroupAppEngineResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*NetworkEndpointGroupAppEngineResponse)(nil)).Elem() } func (o NetworkEndpointGroupAppEngineResponseOutput) ToNetworkEndpointGroupAppEngineResponseOutput() NetworkEndpointGroupAppEngineResponseOutput { return o } func (o NetworkEndpointGroupAppEngineResponseOutput) ToNetworkEndpointGroupAppEngineResponseOutputWithContext(ctx context.Context) NetworkEndpointGroupAppEngineResponseOutput { return o } // Optional serving service. The service name is case-sensitive and must be 1-63 characters long. Example value: "default", "my-service". func (o NetworkEndpointGroupAppEngineResponseOutput) Service() pulumi.StringOutput { return o.ApplyT(func(v NetworkEndpointGroupAppEngineResponse) string { return v.Service }).(pulumi.StringOutput) } // A template to parse service and version fields from a request URL. URL mask allows for routing to multiple App Engine services without having to create multiple Network Endpoint Groups and backend services. For example, the request URLs "foo1-dot-appname.appspot.com/v1" and "foo1-dot-appname.appspot.com/v2" can be backed by the same Serverless NEG with URL mask "-dot-appname.appspot.com/". The URL mask will parse them to { service = "foo1", version = "v1" } and { service = "foo1", version = "v2" } respectively. func (o NetworkEndpointGroupAppEngineResponseOutput) UrlMask() pulumi.StringOutput { return o.ApplyT(func(v NetworkEndpointGroupAppEngineResponse) string { return v.UrlMask }).(pulumi.StringOutput) } // Optional serving version. The version name is case-sensitive and must be 1-100 characters long. Example value: "v1", "v2". func (o NetworkEndpointGroupAppEngineResponseOutput) Version() pulumi.StringOutput { return o.ApplyT(func(v NetworkEndpointGroupAppEngineResponse) string { return v.Version }).(pulumi.StringOutput) } // Configuration for a Cloud Function network endpoint group (NEG). The function must be provided explicitly or in the URL mask. Note: Cloud Function must be in the same project and located in the same region as the Serverless NEG. type NetworkEndpointGroupCloudFunction struct { // A user-defined name of the Cloud Function. The function name is case-sensitive and must be 1-63 characters long. Example value: "func1". Function *string `pulumi:"function"` // A template to parse function field from a request URL. URL mask allows for routing to multiple Cloud Functions without having to create multiple Network Endpoint Groups and backend services. For example, request URLs " mydomain.com/function1" and "mydomain.com/function2" can be backed by the same Serverless NEG with URL mask "/". The URL mask will parse them to { function = "function1" } and { function = "function2" } respectively. UrlMask *string `pulumi:"urlMask"` } // NetworkEndpointGroupCloudFunctionInput is an input type that accepts NetworkEndpointGroupCloudFunctionArgs and NetworkEndpointGroupCloudFunctionOutput values. // You can construct a concrete instance of `NetworkEndpointGroupCloudFunctionInput` via: // // NetworkEndpointGroupCloudFunctionArgs{...} type NetworkEndpointGroupCloudFunctionInput interface { pulumi.Input ToNetworkEndpointGroupCloudFunctionOutput() NetworkEndpointGroupCloudFunctionOutput ToNetworkEndpointGroupCloudFunctionOutputWithContext(context.Context) NetworkEndpointGroupCloudFunctionOutput } // Configuration for a Cloud Function network endpoint group (NEG). The function must be provided explicitly or in the URL mask. Note: Cloud Function must be in the same project and located in the same region as the Serverless NEG. type NetworkEndpointGroupCloudFunctionArgs struct { // A user-defined name of the Cloud Function. The function name is case-sensitive and must be 1-63 characters long. Example value: "func1". Function pulumi.StringPtrInput `pulumi:"function"` // A template to parse function field from a request URL. URL mask allows for routing to multiple Cloud Functions without having to create multiple Network Endpoint Groups and backend services. For example, request URLs " mydomain.com/function1" and "mydomain.com/function2" can be backed by the same Serverless NEG with URL mask "/". The URL mask will parse them to { function = "function1" } and { function = "function2" } respectively. UrlMask pulumi.StringPtrInput `pulumi:"urlMask"` } func (NetworkEndpointGroupCloudFunctionArgs) ElementType() reflect.Type { return reflect.TypeOf((*NetworkEndpointGroupCloudFunction)(nil)).Elem() } func (i NetworkEndpointGroupCloudFunctionArgs) ToNetworkEndpointGroupCloudFunctionOutput() NetworkEndpointGroupCloudFunctionOutput { return i.ToNetworkEndpointGroupCloudFunctionOutputWithContext(context.Background()) } func (i NetworkEndpointGroupCloudFunctionArgs) ToNetworkEndpointGroupCloudFunctionOutputWithContext(ctx context.Context) NetworkEndpointGroupCloudFunctionOutput { return pulumi.ToOutputWithContext(ctx, i).(NetworkEndpointGroupCloudFunctionOutput) } func (i NetworkEndpointGroupCloudFunctionArgs) ToNetworkEndpointGroupCloudFunctionPtrOutput() NetworkEndpointGroupCloudFunctionPtrOutput { return i.ToNetworkEndpointGroupCloudFunctionPtrOutputWithContext(context.Background()) } func (i NetworkEndpointGroupCloudFunctionArgs) ToNetworkEndpointGroupCloudFunctionPtrOutputWithContext(ctx context.Context) NetworkEndpointGroupCloudFunctionPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(NetworkEndpointGroupCloudFunctionOutput).ToNetworkEndpointGroupCloudFunctionPtrOutputWithContext(ctx) } // NetworkEndpointGroupCloudFunctionPtrInput is an input type that accepts NetworkEndpointGroupCloudFunctionArgs, NetworkEndpointGroupCloudFunctionPtr and NetworkEndpointGroupCloudFunctionPtrOutput values. // You can construct a concrete instance of `NetworkEndpointGroupCloudFunctionPtrInput` via: // // NetworkEndpointGroupCloudFunctionArgs{...} // // or: // // nil type NetworkEndpointGroupCloudFunctionPtrInput interface { pulumi.Input ToNetworkEndpointGroupCloudFunctionPtrOutput() NetworkEndpointGroupCloudFunctionPtrOutput ToNetworkEndpointGroupCloudFunctionPtrOutputWithContext(context.Context) NetworkEndpointGroupCloudFunctionPtrOutput } type networkEndpointGroupCloudFunctionPtrType NetworkEndpointGroupCloudFunctionArgs func NetworkEndpointGroupCloudFunctionPtr(v *NetworkEndpointGroupCloudFunctionArgs) NetworkEndpointGroupCloudFunctionPtrInput { return (*networkEndpointGroupCloudFunctionPtrType)(v) } func (*networkEndpointGroupCloudFunctionPtrType) ElementType() reflect.Type { return reflect.TypeOf((**NetworkEndpointGroupCloudFunction)(nil)).Elem() } func (i *networkEndpointGroupCloudFunctionPtrType) ToNetworkEndpointGroupCloudFunctionPtrOutput() NetworkEndpointGroupCloudFunctionPtrOutput { return i.ToNetworkEndpointGroupCloudFunctionPtrOutputWithContext(context.Background()) } func (i *networkEndpointGroupCloudFunctionPtrType) ToNetworkEndpointGroupCloudFunctionPtrOutputWithContext(ctx context.Context) NetworkEndpointGroupCloudFunctionPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(NetworkEndpointGroupCloudFunctionPtrOutput) } // Configuration for a Cloud Function network endpoint group (NEG). The function must be provided explicitly or in the URL mask. Note: Cloud Function must be in the same project and located in the same region as the Serverless NEG. type NetworkEndpointGroupCloudFunctionOutput struct{ *pulumi.OutputState } func (NetworkEndpointGroupCloudFunctionOutput) ElementType() reflect.Type { return reflect.TypeOf((*NetworkEndpointGroupCloudFunction)(nil)).Elem() } func (o NetworkEndpointGroupCloudFunctionOutput) ToNetworkEndpointGroupCloudFunctionOutput() NetworkEndpointGroupCloudFunctionOutput { return o } func (o NetworkEndpointGroupCloudFunctionOutput) ToNetworkEndpointGroupCloudFunctionOutputWithContext(ctx context.Context) NetworkEndpointGroupCloudFunctionOutput { return o } func (o NetworkEndpointGroupCloudFunctionOutput) ToNetworkEndpointGroupCloudFunctionPtrOutput() NetworkEndpointGroupCloudFunctionPtrOutput { return o.ToNetworkEndpointGroupCloudFunctionPtrOutputWithContext(context.Background()) } func (o NetworkEndpointGroupCloudFunctionOutput) ToNetworkEndpointGroupCloudFunctionPtrOutputWithContext(ctx context.Context) NetworkEndpointGroupCloudFunctionPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v NetworkEndpointGroupCloudFunction) *NetworkEndpointGroupCloudFunction { return &v }).(NetworkEndpointGroupCloudFunctionPtrOutput) } // A user-defined name of the Cloud Function. The function name is case-sensitive and must be 1-63 characters long. Example value: "func1". func (o NetworkEndpointGroupCloudFunctionOutput) Function() pulumi.StringPtrOutput { return o.ApplyT(func(v NetworkEndpointGroupCloudFunction) *string { return v.Function }).(pulumi.StringPtrOutput) } // A template to parse function field from a request URL. URL mask allows for routing to multiple Cloud Functions without having to create multiple Network Endpoint Groups and backend services. For example, request URLs " mydomain.com/function1" and "mydomain.com/function2" can be backed by the same Serverless NEG with URL mask "/". The URL mask will parse them to { function = "function1" } and { function = "function2" } respectively. func (o NetworkEndpointGroupCloudFunctionOutput) UrlMask() pulumi.StringPtrOutput { return o.ApplyT(func(v NetworkEndpointGroupCloudFunction) *string { return v.UrlMask }).(pulumi.StringPtrOutput) } type NetworkEndpointGroupCloudFunctionPtrOutput struct{ *pulumi.OutputState } func (NetworkEndpointGroupCloudFunctionPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**NetworkEndpointGroupCloudFunction)(nil)).Elem() } func (o NetworkEndpointGroupCloudFunctionPtrOutput) ToNetworkEndpointGroupCloudFunctionPtrOutput() NetworkEndpointGroupCloudFunctionPtrOutput { return o } func (o NetworkEndpointGroupCloudFunctionPtrOutput) ToNetworkEndpointGroupCloudFunctionPtrOutputWithContext(ctx context.Context) NetworkEndpointGroupCloudFunctionPtrOutput { return o } func (o NetworkEndpointGroupCloudFunctionPtrOutput) Elem() NetworkEndpointGroupCloudFunctionOutput { return o.ApplyT(func(v *NetworkEndpointGroupCloudFunction) NetworkEndpointGroupCloudFunction { if v != nil { return *v } var ret NetworkEndpointGroupCloudFunction return ret }).(NetworkEndpointGroupCloudFunctionOutput) } // A user-defined name of the Cloud Function. The function name is case-sensitive and must be 1-63 characters long. Example value: "func1". func (o NetworkEndpointGroupCloudFunctionPtrOutput) Function() pulumi.StringPtrOutput { return o.ApplyT(func(v *NetworkEndpointGroupCloudFunction) *string { if v == nil { return nil } return v.Function }).(pulumi.StringPtrOutput) } // A template to parse function field from a request URL. URL mask allows for routing to multiple Cloud Functions without having to create multiple Network Endpoint Groups and backend services. For example, request URLs " mydomain.com/function1" and "mydomain.com/function2" can be backed by the same Serverless NEG with URL mask "/". The URL mask will parse them to { function = "function1" } and { function = "function2" } respectively. func (o NetworkEndpointGroupCloudFunctionPtrOutput) UrlMask() pulumi.StringPtrOutput { return o.ApplyT(func(v *NetworkEndpointGroupCloudFunction) *string { if v == nil { return nil } return v.UrlMask }).(pulumi.StringPtrOutput) } // Configuration for a Cloud Function network endpoint group (NEG). The function must be provided explicitly or in the URL mask. Note: Cloud Function must be in the same project and located in the same region as the Serverless NEG. type NetworkEndpointGroupCloudFunctionResponse struct { // A user-defined name of the Cloud Function. The function name is case-sensitive and must be 1-63 characters long. Example value: "func1". Function string `pulumi:"function"` // A template to parse function field from a request URL. URL mask allows for routing to multiple Cloud Functions without having to create multiple Network Endpoint Groups and backend services. For example, request URLs " mydomain.com/function1" and "mydomain.com/function2" can be backed by the same Serverless NEG with URL mask "/". The URL mask will parse them to { function = "function1" } and { function = "function2" } respectively. UrlMask string `pulumi:"urlMask"` } // Configuration for a Cloud Function network endpoint group (NEG). The function must be provided explicitly or in the URL mask. Note: Cloud Function must be in the same project and located in the same region as the Serverless NEG. type NetworkEndpointGroupCloudFunctionResponseOutput struct{ *pulumi.OutputState } func (NetworkEndpointGroupCloudFunctionResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*NetworkEndpointGroupCloudFunctionResponse)(nil)).Elem() } func (o NetworkEndpointGroupCloudFunctionResponseOutput) ToNetworkEndpointGroupCloudFunctionResponseOutput() NetworkEndpointGroupCloudFunctionResponseOutput { return o } func (o NetworkEndpointGroupCloudFunctionResponseOutput) ToNetworkEndpointGroupCloudFunctionResponseOutputWithContext(ctx context.Context) NetworkEndpointGroupCloudFunctionResponseOutput { return o } // A user-defined name of the Cloud Function. The function name is case-sensitive and must be 1-63 characters long. Example value: "func1". func (o NetworkEndpointGroupCloudFunctionResponseOutput) Function() pulumi.StringOutput { return o.ApplyT(func(v NetworkEndpointGroupCloudFunctionResponse) string { return v.Function }).(pulumi.StringOutput) } // A template to parse function field from a request URL. URL mask allows for routing to multiple Cloud Functions without having to create multiple Network Endpoint Groups and backend services. For example, request URLs " mydomain.com/function1" and "mydomain.com/function2" can be backed by the same Serverless NEG with URL mask "/". The URL mask will parse them to { function = "function1" } and { function = "function2" } respectively. func (o NetworkEndpointGroupCloudFunctionResponseOutput) UrlMask() pulumi.StringOutput { return o.ApplyT(func(v NetworkEndpointGroupCloudFunctionResponse) string { return v.UrlMask }).(pulumi.StringOutput) } // Configuration for a Cloud Run network endpoint group (NEG). The service must be provided explicitly or in the URL mask. The tag is optional, may be provided explicitly or in the URL mask. Note: Cloud Run service must be in the same project and located in the same region as the Serverless NEG. type NetworkEndpointGroupCloudRun struct { // Cloud Run service is the main resource of Cloud Run. The service must be 1-63 characters long, and comply with RFC1035. Example value: "run-service". Service *string `pulumi:"service"` // Optional Cloud Run tag represents the "named-revision" to provide additional fine-grained traffic routing information. The tag must be 1-63 characters long, and comply with RFC1035. Example value: "revision-0010". Tag *string `pulumi:"tag"` // A template to parse service and tag fields from a request URL. URL mask allows for routing to multiple Run services without having to create multiple network endpoint groups and backend services. For example, request URLs "foo1.domain.com/bar1" and "foo1.domain.com/bar2" can be backed by the same Serverless Network Endpoint Group (NEG) with URL mask ".domain.com/". The URL mask will parse them to { service="bar1", tag="foo1" } and { service="bar2", tag="foo2" } respectively. UrlMask *string `pulumi:"urlMask"` } // NetworkEndpointGroupCloudRunInput is an input type that accepts NetworkEndpointGroupCloudRunArgs and NetworkEndpointGroupCloudRunOutput values. // You can construct a concrete instance of `NetworkEndpointGroupCloudRunInput` via: // // NetworkEndpointGroupCloudRunArgs{...} type NetworkEndpointGroupCloudRunInput interface { pulumi.Input ToNetworkEndpointGroupCloudRunOutput() NetworkEndpointGroupCloudRunOutput ToNetworkEndpointGroupCloudRunOutputWithContext(context.Context) NetworkEndpointGroupCloudRunOutput } // Configuration for a Cloud Run network endpoint group (NEG). The service must be provided explicitly or in the URL mask. The tag is optional, may be provided explicitly or in the URL mask. Note: Cloud Run service must be in the same project and located in the same region as the Serverless NEG. type NetworkEndpointGroupCloudRunArgs struct { // Cloud Run service is the main resource of Cloud Run. The service must be 1-63 characters long, and comply with RFC1035. Example value: "run-service". Service pulumi.StringPtrInput `pulumi:"service"` // Optional Cloud Run tag represents the "named-revision" to provide additional fine-grained traffic routing information. The tag must be 1-63 characters long, and comply with RFC1035. Example value: "revision-0010". Tag pulumi.StringPtrInput `pulumi:"tag"` // A template to parse service and tag fields from a request URL. URL mask allows for routing to multiple Run services without having to create multiple network endpoint groups and backend services. For example, request URLs "foo1.domain.com/bar1" and "foo1.domain.com/bar2" can be backed by the same Serverless Network Endpoint Group (NEG) with URL mask ".domain.com/". The URL mask will parse them to { service="bar1", tag="foo1" } and { service="bar2", tag="foo2" } respectively. UrlMask pulumi.StringPtrInput `pulumi:"urlMask"` } func (NetworkEndpointGroupCloudRunArgs) ElementType() reflect.Type { return reflect.TypeOf((*NetworkEndpointGroupCloudRun)(nil)).Elem() } func (i NetworkEndpointGroupCloudRunArgs) ToNetworkEndpointGroupCloudRunOutput() NetworkEndpointGroupCloudRunOutput { return i.ToNetworkEndpointGroupCloudRunOutputWithContext(context.Background()) } func (i NetworkEndpointGroupCloudRunArgs) ToNetworkEndpointGroupCloudRunOutputWithContext(ctx context.Context) NetworkEndpointGroupCloudRunOutput { return pulumi.ToOutputWithContext(ctx, i).(NetworkEndpointGroupCloudRunOutput) } func (i NetworkEndpointGroupCloudRunArgs) ToNetworkEndpointGroupCloudRunPtrOutput() NetworkEndpointGroupCloudRunPtrOutput { return i.ToNetworkEndpointGroupCloudRunPtrOutputWithContext(context.Background()) } func (i NetworkEndpointGroupCloudRunArgs) ToNetworkEndpointGroupCloudRunPtrOutputWithContext(ctx context.Context) NetworkEndpointGroupCloudRunPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(NetworkEndpointGroupCloudRunOutput).ToNetworkEndpointGroupCloudRunPtrOutputWithContext(ctx) } // NetworkEndpointGroupCloudRunPtrInput is an input type that accepts NetworkEndpointGroupCloudRunArgs, NetworkEndpointGroupCloudRunPtr and NetworkEndpointGroupCloudRunPtrOutput values. // You can construct a concrete instance of `NetworkEndpointGroupCloudRunPtrInput` via: // // NetworkEndpointGroupCloudRunArgs{...} // // or: // // nil type NetworkEndpointGroupCloudRunPtrInput interface { pulumi.Input ToNetworkEndpointGroupCloudRunPtrOutput() NetworkEndpointGroupCloudRunPtrOutput ToNetworkEndpointGroupCloudRunPtrOutputWithContext(context.Context) NetworkEndpointGroupCloudRunPtrOutput } type networkEndpointGroupCloudRunPtrType NetworkEndpointGroupCloudRunArgs func NetworkEndpointGroupCloudRunPtr(v *NetworkEndpointGroupCloudRunArgs) NetworkEndpointGroupCloudRunPtrInput { return (*networkEndpointGroupCloudRunPtrType)(v) } func (*networkEndpointGroupCloudRunPtrType) ElementType() reflect.Type { return reflect.TypeOf((**NetworkEndpointGroupCloudRun)(nil)).Elem() } func (i *networkEndpointGroupCloudRunPtrType) ToNetworkEndpointGroupCloudRunPtrOutput() NetworkEndpointGroupCloudRunPtrOutput { return i.ToNetworkEndpointGroupCloudRunPtrOutputWithContext(context.Background()) } func (i *networkEndpointGroupCloudRunPtrType) ToNetworkEndpointGroupCloudRunPtrOutputWithContext(ctx context.Context) NetworkEndpointGroupCloudRunPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(NetworkEndpointGroupCloudRunPtrOutput) } // Configuration for a Cloud Run network endpoint group (NEG). The service must be provided explicitly or in the URL mask. The tag is optional, may be provided explicitly or in the URL mask. Note: Cloud Run service must be in the same project and located in the same region as the Serverless NEG. type NetworkEndpointGroupCloudRunOutput struct{ *pulumi.OutputState } func (NetworkEndpointGroupCloudRunOutput) ElementType() reflect.Type { return reflect.TypeOf((*NetworkEndpointGroupCloudRun)(nil)).Elem() } func (o NetworkEndpointGroupCloudRunOutput) ToNetworkEndpointGroupCloudRunOutput() NetworkEndpointGroupCloudRunOutput { return o } func (o NetworkEndpointGroupCloudRunOutput) ToNetworkEndpointGroupCloudRunOutputWithContext(ctx context.Context) NetworkEndpointGroupCloudRunOutput { return o } func (o NetworkEndpointGroupCloudRunOutput) ToNetworkEndpointGroupCloudRunPtrOutput() NetworkEndpointGroupCloudRunPtrOutput { return o.ToNetworkEndpointGroupCloudRunPtrOutputWithContext(context.Background()) } func (o NetworkEndpointGroupCloudRunOutput) ToNetworkEndpointGroupCloudRunPtrOutputWithContext(ctx context.Context) NetworkEndpointGroupCloudRunPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v NetworkEndpointGroupCloudRun) *NetworkEndpointGroupCloudRun { return &v }).(NetworkEndpointGroupCloudRunPtrOutput) } // Cloud Run service is the main resource of Cloud Run. The service must be 1-63 characters long, and comply with RFC1035. Example value: "run-service". func (o NetworkEndpointGroupCloudRunOutput) Service() pulumi.StringPtrOutput { return o.ApplyT(func(v NetworkEndpointGroupCloudRun) *string { return v.Service }).(pulumi.StringPtrOutput) } // Optional Cloud Run tag represents the "named-revision" to provide additional fine-grained traffic routing information. The tag must be 1-63 characters long, and comply with RFC1035. Example value: "revision-0010". func (o NetworkEndpointGroupCloudRunOutput) Tag() pulumi.StringPtrOutput { return o.ApplyT(func(v NetworkEndpointGroupCloudRun) *string { return v.Tag }).(pulumi.StringPtrOutput) } // A template to parse service and tag fields from a request URL. URL mask allows for routing to multiple Run services without having to create multiple network endpoint groups and backend services. For example, request URLs "foo1.domain.com/bar1" and "foo1.domain.com/bar2" can be backed by the same Serverless Network Endpoint Group (NEG) with URL mask ".domain.com/". The URL mask will parse them to { service="bar1", tag="foo1" } and { service="bar2", tag="foo2" } respectively. func (o NetworkEndpointGroupCloudRunOutput) UrlMask() pulumi.StringPtrOutput { return o.ApplyT(func(v NetworkEndpointGroupCloudRun) *string { return v.UrlMask }).(pulumi.StringPtrOutput) } type NetworkEndpointGroupCloudRunPtrOutput struct{ *pulumi.OutputState } func (NetworkEndpointGroupCloudRunPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**NetworkEndpointGroupCloudRun)(nil)).Elem() } func (o NetworkEndpointGroupCloudRunPtrOutput) ToNetworkEndpointGroupCloudRunPtrOutput() NetworkEndpointGroupCloudRunPtrOutput { return o } func (o NetworkEndpointGroupCloudRunPtrOutput) ToNetworkEndpointGroupCloudRunPtrOutputWithContext(ctx context.Context) NetworkEndpointGroupCloudRunPtrOutput { return o } func (o NetworkEndpointGroupCloudRunPtrOutput) Elem() NetworkEndpointGroupCloudRunOutput { return o.ApplyT(func(v *NetworkEndpointGroupCloudRun) NetworkEndpointGroupCloudRun { if v != nil { return *v } var ret NetworkEndpointGroupCloudRun return ret }).(NetworkEndpointGroupCloudRunOutput) } // Cloud Run service is the main resource of Cloud Run. The service must be 1-63 characters long, and comply with RFC1035. Example value: "run-service". func (o NetworkEndpointGroupCloudRunPtrOutput) Service() pulumi.StringPtrOutput { return o.ApplyT(func(v *NetworkEndpointGroupCloudRun) *string { if v == nil { return nil } return v.Service }).(pulumi.StringPtrOutput) } // Optional Cloud Run tag represents the "named-revision" to provide additional fine-grained traffic routing information. The tag must be 1-63 characters long, and comply with RFC1035. Example value: "revision-0010". func (o NetworkEndpointGroupCloudRunPtrOutput) Tag() pulumi.StringPtrOutput { return o.ApplyT(func(v *NetworkEndpointGroupCloudRun) *string { if v == nil { return nil } return v.Tag }).(pulumi.StringPtrOutput) } // A template to parse service and tag fields from a request URL. URL mask allows for routing to multiple Run services without having to create multiple network endpoint groups and backend services. For example, request URLs "foo1.domain.com/bar1" and "foo1.domain.com/bar2" can be backed by the same Serverless Network Endpoint Group (NEG) with URL mask ".domain.com/". The URL mask will parse them to { service="bar1", tag="foo1" } and { service="bar2", tag="foo2" } respectively. func (o NetworkEndpointGroupCloudRunPtrOutput) UrlMask() pulumi.StringPtrOutput { return o.ApplyT(func(v *NetworkEndpointGroupCloudRun) *string { if v == nil { return nil } return v.UrlMask }).(pulumi.StringPtrOutput) } // Configuration for a Cloud Run network endpoint group (NEG). The service must be provided explicitly or in the URL mask. The tag is optional, may be provided explicitly or in the URL mask. Note: Cloud Run service must be in the same project and located in the same region as the Serverless NEG. type NetworkEndpointGroupCloudRunResponse struct { // Cloud Run service is the main resource of Cloud Run. The service must be 1-63 characters long, and comply with RFC1035. Example value: "run-service". Service string `pulumi:"service"` // Optional Cloud Run tag represents the "named-revision" to provide additional fine-grained traffic routing information. The tag must be 1-63 characters long, and comply with RFC1035. Example value: "revision-0010". Tag string `pulumi:"tag"` // A template to parse service and tag fields from a request URL. URL mask allows for routing to multiple Run services without having to create multiple network endpoint groups and backend services. For example, request URLs "foo1.domain.com/bar1" and "foo1.domain.com/bar2" can be backed by the same Serverless Network Endpoint Group (NEG) with URL mask ".domain.com/". The URL mask will parse them to { service="bar1", tag="foo1" } and { service="bar2", tag="foo2" } respectively. UrlMask string `pulumi:"urlMask"` } // Configuration for a Cloud Run network endpoint group (NEG). The service must be provided explicitly or in the URL mask. The tag is optional, may be provided explicitly or in the URL mask. Note: Cloud Run service must be in the same project and located in the same region as the Serverless NEG. type NetworkEndpointGroupCloudRunResponseOutput struct{ *pulumi.OutputState } func (NetworkEndpointGroupCloudRunResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*NetworkEndpointGroupCloudRunResponse)(nil)).Elem() } func (o NetworkEndpointGroupCloudRunResponseOutput) ToNetworkEndpointGroupCloudRunResponseOutput() NetworkEndpointGroupCloudRunResponseOutput { return o } func (o NetworkEndpointGroupCloudRunResponseOutput) ToNetworkEndpointGroupCloudRunResponseOutputWithContext(ctx context.Context) NetworkEndpointGroupCloudRunResponseOutput { return o } // Cloud Run service is the main resource of Cloud Run. The service must be 1-63 characters long, and comply with RFC1035. Example value: "run-service". func (o NetworkEndpointGroupCloudRunResponseOutput) Service() pulumi.StringOutput { return o.ApplyT(func(v NetworkEndpointGroupCloudRunResponse) string { return v.Service }).(pulumi.StringOutput) } // Optional Cloud Run tag represents the "named-revision" to provide additional fine-grained traffic routing information. The tag must be 1-63 characters long, and comply with RFC1035. Example value: "revision-0010". func (o NetworkEndpointGroupCloudRunResponseOutput) Tag() pulumi.StringOutput { return o.ApplyT(func(v NetworkEndpointGroupCloudRunResponse) string { return v.Tag }).(pulumi.StringOutput) } // A template to parse service and tag fields from a request URL. URL mask allows for routing to multiple Run services without having to create multiple network endpoint groups and backend services. For example, request URLs "foo1.domain.com/bar1" and "foo1.domain.com/bar2" can be backed by the same Serverless Network Endpoint Group (NEG) with URL mask ".domain.com/". The URL mask will parse them to { service="bar1", tag="foo1" } and { service="bar2", tag="foo2" } respectively. func (o NetworkEndpointGroupCloudRunResponseOutput) UrlMask() pulumi.StringOutput { return o.ApplyT(func(v NetworkEndpointGroupCloudRunResponse) string { return v.UrlMask }).(pulumi.StringOutput) } // A network interface resource attached to an instance. type NetworkInterface struct { // An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is supported. If there are no accessConfigs specified, then this instance will have no external internet access. AccessConfigs []AccessConfig `pulumi:"accessConfigs"` // An array of alias IP ranges for this network interface. You can only specify this field for network interfaces in VPC networks. AliasIpRanges []AliasIpRange `pulumi:"aliasIpRanges"` // An array of IPv6 access configurations for this interface. Currently, only one IPv6 access config, DIRECT_IPV6, is supported. If there is no ipv6AccessConfig specified, then this instance will have no external IPv6 Internet access. Ipv6AccessConfigs []AccessConfig `pulumi:"ipv6AccessConfigs"` // An IPv6 internal network address for this network interface. Ipv6Address *string `pulumi:"ipv6Address"` // URL of the VPC network resource for this instance. When creating an instance, if neither the network nor the subnetwork is specified, the default network global/networks/default is used. If the selected project doesn't have the default network, you must specify a network or subnet. If the network is not specified but the subnetwork is specified, the network is inferred. If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs: - https://www.googleapis.com/compute/v1/projects/project/global/networks/ network - projects/project/global/networks/network - global/networks/default Network *string `pulumi:"network"` // An IPv4 internal IP address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system. NetworkIP *string `pulumi:"networkIP"` // The type of vNIC to be used on this interface. This may be gVNIC or VirtioNet. NicType *NetworkInterfaceNicType `pulumi:"nicType"` // The networking queue count that's specified by users for the network interface. Both Rx and Tx queues will be set to this number. It'll be empty if not specified by the users. QueueCount *int `pulumi:"queueCount"` // The stack type for this network interface to identify whether the IPv6 feature is enabled or not. If not specified, IPV4_ONLY will be used. This field can be both set at instance creation and update network interface operations. StackType *NetworkInterfaceStackType `pulumi:"stackType"` // The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not specify this field. If the network is in auto subnet mode, specifying the subnetwork is optional. If the network is in custom subnet mode, specifying the subnetwork is required. If you specify this field, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs: - https://www.googleapis.com/compute/v1/projects/project/regions/region /subnetworks/subnetwork - regions/region/subnetworks/subnetwork Subnetwork *string `pulumi:"subnetwork"` } // NetworkInterfaceInput is an input type that accepts NetworkInterfaceArgs and NetworkInterfaceOutput values. // You can construct a concrete instance of `NetworkInterfaceInput` via: // // NetworkInterfaceArgs{...} type NetworkInterfaceInput interface { pulumi.Input ToNetworkInterfaceOutput() NetworkInterfaceOutput ToNetworkInterfaceOutputWithContext(context.Context) NetworkInterfaceOutput } // A network interface resource attached to an instance. type NetworkInterfaceArgs struct { // An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is supported. If there are no accessConfigs specified, then this instance will have no external internet access. AccessConfigs AccessConfigArrayInput `pulumi:"accessConfigs"` // An array of alias IP ranges for this network interface. You can only specify this field for network interfaces in VPC networks. AliasIpRanges AliasIpRangeArrayInput `pulumi:"aliasIpRanges"` // An array of IPv6 access configurations for this interface. Currently, only one IPv6 access config, DIRECT_IPV6, is supported. If there is no ipv6AccessConfig specified, then this instance will have no external IPv6 Internet access. Ipv6AccessConfigs AccessConfigArrayInput `pulumi:"ipv6AccessConfigs"` // An IPv6 internal network address for this network interface. Ipv6Address pulumi.StringPtrInput `pulumi:"ipv6Address"` // URL of the VPC network resource for this instance. When creating an instance, if neither the network nor the subnetwork is specified, the default network global/networks/default is used. If the selected project doesn't have the default network, you must specify a network or subnet. If the network is not specified but the subnetwork is specified, the network is inferred. If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs: - https://www.googleapis.com/compute/v1/projects/project/global/networks/ network - projects/project/global/networks/network - global/networks/default Network pulumi.StringPtrInput `pulumi:"network"` // An IPv4 internal IP address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system. NetworkIP pulumi.StringPtrInput `pulumi:"networkIP"` // The type of vNIC to be used on this interface. This may be gVNIC or VirtioNet. NicType NetworkInterfaceNicTypePtrInput `pulumi:"nicType"` // The networking queue count that's specified by users for the network interface. Both Rx and Tx queues will be set to this number. It'll be empty if not specified by the users. QueueCount pulumi.IntPtrInput `pulumi:"queueCount"` // The stack type for this network interface to identify whether the IPv6 feature is enabled or not. If not specified, IPV4_ONLY will be used. This field can be both set at instance creation and update network interface operations. StackType NetworkInterfaceStackTypePtrInput `pulumi:"stackType"` // The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not specify this field. If the network is in auto subnet mode, specifying the subnetwork is optional. If the network is in custom subnet mode, specifying the subnetwork is required. If you specify this field, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs: - https://www.googleapis.com/compute/v1/projects/project/regions/region /subnetworks/subnetwork - regions/region/subnetworks/subnetwork Subnetwork pulumi.StringPtrInput `pulumi:"subnetwork"` } func (NetworkInterfaceArgs) ElementType() reflect.Type { return reflect.TypeOf((*NetworkInterface)(nil)).Elem() } func (i NetworkInterfaceArgs) ToNetworkInterfaceOutput() NetworkInterfaceOutput { return i.ToNetworkInterfaceOutputWithContext(context.Background()) } func (i NetworkInterfaceArgs) ToNetworkInterfaceOutputWithContext(ctx context.Context) NetworkInterfaceOutput { return pulumi.ToOutputWithContext(ctx, i).(NetworkInterfaceOutput) } // NetworkInterfaceArrayInput is an input type that accepts NetworkInterfaceArray and NetworkInterfaceArrayOutput values. // You can construct a concrete instance of `NetworkInterfaceArrayInput` via: // // NetworkInterfaceArray{ NetworkInterfaceArgs{...} } type NetworkInterfaceArrayInput interface { pulumi.Input ToNetworkInterfaceArrayOutput() NetworkInterfaceArrayOutput ToNetworkInterfaceArrayOutputWithContext(context.Context) NetworkInterfaceArrayOutput } type NetworkInterfaceArray []NetworkInterfaceInput func (NetworkInterfaceArray) ElementType() reflect.Type { return reflect.TypeOf((*[]NetworkInterface)(nil)).Elem() } func (i NetworkInterfaceArray) ToNetworkInterfaceArrayOutput() NetworkInterfaceArrayOutput { return i.ToNetworkInterfaceArrayOutputWithContext(context.Background()) } func (i NetworkInterfaceArray) ToNetworkInterfaceArrayOutputWithContext(ctx context.Context) NetworkInterfaceArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(NetworkInterfaceArrayOutput) } // A network interface resource attached to an instance. type NetworkInterfaceOutput struct{ *pulumi.OutputState } func (NetworkInterfaceOutput) ElementType() reflect.Type { return reflect.TypeOf((*NetworkInterface)(nil)).Elem() } func (o NetworkInterfaceOutput) ToNetworkInterfaceOutput() NetworkInterfaceOutput { return o } func (o NetworkInterfaceOutput) ToNetworkInterfaceOutputWithContext(ctx context.Context) NetworkInterfaceOutput { return o } // An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is supported. If there are no accessConfigs specified, then this instance will have no external internet access. func (o NetworkInterfaceOutput) AccessConfigs() AccessConfigArrayOutput { return o.ApplyT(func(v NetworkInterface) []AccessConfig { return v.AccessConfigs }).(AccessConfigArrayOutput) } // An array of alias IP ranges for this network interface. You can only specify this field for network interfaces in VPC networks. func (o NetworkInterfaceOutput) AliasIpRanges() AliasIpRangeArrayOutput { return o.ApplyT(func(v NetworkInterface) []AliasIpRange { return v.AliasIpRanges }).(AliasIpRangeArrayOutput) } // An array of IPv6 access configurations for this interface. Currently, only one IPv6 access config, DIRECT_IPV6, is supported. If there is no ipv6AccessConfig specified, then this instance will have no external IPv6 Internet access. func (o NetworkInterfaceOutput) Ipv6AccessConfigs() AccessConfigArrayOutput { return o.ApplyT(func(v NetworkInterface) []AccessConfig { return v.Ipv6AccessConfigs }).(AccessConfigArrayOutput) } // An IPv6 internal network address for this network interface. func (o NetworkInterfaceOutput) Ipv6Address() pulumi.StringPtrOutput { return o.ApplyT(func(v NetworkInterface) *string { return v.Ipv6Address }).(pulumi.StringPtrOutput) } // URL of the VPC network resource for this instance. When creating an instance, if neither the network nor the subnetwork is specified, the default network global/networks/default is used. If the selected project doesn't have the default network, you must specify a network or subnet. If the network is not specified but the subnetwork is specified, the network is inferred. If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs: - https://www.googleapis.com/compute/v1/projects/project/global/networks/ network - projects/project/global/networks/network - global/networks/default func (o NetworkInterfaceOutput) Network() pulumi.StringPtrOutput { return o.ApplyT(func(v NetworkInterface) *string { return v.Network }).(pulumi.StringPtrOutput) } // An IPv4 internal IP address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system. func (o NetworkInterfaceOutput) NetworkIP() pulumi.StringPtrOutput { return o.ApplyT(func(v NetworkInterface) *string { return v.NetworkIP }).(pulumi.StringPtrOutput) } // The type of vNIC to be used on this interface. This may be gVNIC or VirtioNet. func (o NetworkInterfaceOutput) NicType() NetworkInterfaceNicTypePtrOutput { return o.ApplyT(func(v NetworkInterface) *NetworkInterfaceNicType { return v.NicType }).(NetworkInterfaceNicTypePtrOutput) } // The networking queue count that's specified by users for the network interface. Both Rx and Tx queues will be set to this number. It'll be empty if not specified by the users. func (o NetworkInterfaceOutput) QueueCount() pulumi.IntPtrOutput { return o.ApplyT(func(v NetworkInterface) *int { return v.QueueCount }).(pulumi.IntPtrOutput) } // The stack type for this network interface to identify whether the IPv6 feature is enabled or not. If not specified, IPV4_ONLY will be used. This field can be both set at instance creation and update network interface operations. func (o NetworkInterfaceOutput) StackType() NetworkInterfaceStackTypePtrOutput { return o.ApplyT(func(v NetworkInterface) *NetworkInterfaceStackType { return v.StackType }).(NetworkInterfaceStackTypePtrOutput) } // The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not specify this field. If the network is in auto subnet mode, specifying the subnetwork is optional. If the network is in custom subnet mode, specifying the subnetwork is required. If you specify this field, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs: - https://www.googleapis.com/compute/v1/projects/project/regions/region /subnetworks/subnetwork - regions/region/subnetworks/subnetwork func (o NetworkInterfaceOutput) Subnetwork() pulumi.StringPtrOutput { return o.ApplyT(func(v NetworkInterface) *string { return v.Subnetwork }).(pulumi.StringPtrOutput) } type NetworkInterfaceArrayOutput struct{ *pulumi.OutputState } func (NetworkInterfaceArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]NetworkInterface)(nil)).Elem() } func (o NetworkInterfaceArrayOutput) ToNetworkInterfaceArrayOutput() NetworkInterfaceArrayOutput { return o } func (o NetworkInterfaceArrayOutput) ToNetworkInterfaceArrayOutputWithContext(ctx context.Context) NetworkInterfaceArrayOutput { return o } func (o NetworkInterfaceArrayOutput) Index(i pulumi.IntInput) NetworkInterfaceOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) NetworkInterface { return vs[0].([]NetworkInterface)[vs[1].(int)] }).(NetworkInterfaceOutput) } // A network interface resource attached to an instance. type NetworkInterfaceResponse struct { // An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is supported. If there are no accessConfigs specified, then this instance will have no external internet access. AccessConfigs []AccessConfigResponse `pulumi:"accessConfigs"` // An array of alias IP ranges for this network interface. You can only specify this field for network interfaces in VPC networks. AliasIpRanges []AliasIpRangeResponse `pulumi:"aliasIpRanges"` // Fingerprint hash of contents stored in this network interface. This field will be ignored when inserting an Instance or adding a NetworkInterface. An up-to-date fingerprint must be provided in order to update the NetworkInterface. The request will fail with error 400 Bad Request if the fingerprint is not provided, or 412 Precondition Failed if the fingerprint is out of date. Fingerprint string `pulumi:"fingerprint"` // An array of IPv6 access configurations for this interface. Currently, only one IPv6 access config, DIRECT_IPV6, is supported. If there is no ipv6AccessConfig specified, then this instance will have no external IPv6 Internet access. Ipv6AccessConfigs []AccessConfigResponse `pulumi:"ipv6AccessConfigs"` // One of EXTERNAL, INTERNAL to indicate whether the IP can be accessed from the Internet. This field is always inherited from its subnetwork. Valid only if stackType is IPV4_IPV6. Ipv6AccessType string `pulumi:"ipv6AccessType"` // An IPv6 internal network address for this network interface. Ipv6Address string `pulumi:"ipv6Address"` // Type of the resource. Always compute#networkInterface for network interfaces. Kind string `pulumi:"kind"` // The name of the network interface, which is generated by the server. For network devices, these are eth0, eth1, etc. Name string `pulumi:"name"` // URL of the VPC network resource for this instance. When creating an instance, if neither the network nor the subnetwork is specified, the default network global/networks/default is used. If the selected project doesn't have the default network, you must specify a network or subnet. If the network is not specified but the subnetwork is specified, the network is inferred. If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs: - https://www.googleapis.com/compute/v1/projects/project/global/networks/ network - projects/project/global/networks/network - global/networks/default Network string `pulumi:"network"` // An IPv4 internal IP address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system. NetworkIP string `pulumi:"networkIP"` // The type of vNIC to be used on this interface. This may be gVNIC or VirtioNet. NicType string `pulumi:"nicType"` // The networking queue count that's specified by users for the network interface. Both Rx and Tx queues will be set to this number. It'll be empty if not specified by the users. QueueCount int `pulumi:"queueCount"` // The stack type for this network interface to identify whether the IPv6 feature is enabled or not. If not specified, IPV4_ONLY will be used. This field can be both set at instance creation and update network interface operations. StackType string `pulumi:"stackType"` // The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not specify this field. If the network is in auto subnet mode, specifying the subnetwork is optional. If the network is in custom subnet mode, specifying the subnetwork is required. If you specify this field, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs: - https://www.googleapis.com/compute/v1/projects/project/regions/region /subnetworks/subnetwork - regions/region/subnetworks/subnetwork Subnetwork string `pulumi:"subnetwork"` } // A network interface resource attached to an instance. type NetworkInterfaceResponseOutput struct{ *pulumi.OutputState } func (NetworkInterfaceResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*NetworkInterfaceResponse)(nil)).Elem() } func (o NetworkInterfaceResponseOutput) ToNetworkInterfaceResponseOutput() NetworkInterfaceResponseOutput { return o } func (o NetworkInterfaceResponseOutput) ToNetworkInterfaceResponseOutputWithContext(ctx context.Context) NetworkInterfaceResponseOutput { return o } // An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is supported. If there are no accessConfigs specified, then this instance will have no external internet access. func (o NetworkInterfaceResponseOutput) AccessConfigs() AccessConfigResponseArrayOutput { return o.ApplyT(func(v NetworkInterfaceResponse) []AccessConfigResponse { return v.AccessConfigs }).(AccessConfigResponseArrayOutput) } // An array of alias IP ranges for this network interface. You can only specify this field for network interfaces in VPC networks. func (o NetworkInterfaceResponseOutput) AliasIpRanges() AliasIpRangeResponseArrayOutput { return o.ApplyT(func(v NetworkInterfaceResponse) []AliasIpRangeResponse { return v.AliasIpRanges }).(AliasIpRangeResponseArrayOutput) } // Fingerprint hash of contents stored in this network interface. This field will be ignored when inserting an Instance or adding a NetworkInterface. An up-to-date fingerprint must be provided in order to update the NetworkInterface. The request will fail with error 400 Bad Request if the fingerprint is not provided, or 412 Precondition Failed if the fingerprint is out of date. func (o NetworkInterfaceResponseOutput) Fingerprint() pulumi.StringOutput { return o.ApplyT(func(v NetworkInterfaceResponse) string { return v.Fingerprint }).(pulumi.StringOutput) } // An array of IPv6 access configurations for this interface. Currently, only one IPv6 access config, DIRECT_IPV6, is supported. If there is no ipv6AccessConfig specified, then this instance will have no external IPv6 Internet access. func (o NetworkInterfaceResponseOutput) Ipv6AccessConfigs() AccessConfigResponseArrayOutput { return o.ApplyT(func(v NetworkInterfaceResponse) []AccessConfigResponse { return v.Ipv6AccessConfigs }).(AccessConfigResponseArrayOutput) } // One of EXTERNAL, INTERNAL to indicate whether the IP can be accessed from the Internet. This field is always inherited from its subnetwork. Valid only if stackType is IPV4_IPV6. func (o NetworkInterfaceResponseOutput) Ipv6AccessType() pulumi.StringOutput { return o.ApplyT(func(v NetworkInterfaceResponse) string { return v.Ipv6AccessType }).(pulumi.StringOutput) } // An IPv6 internal network address for this network interface. func (o NetworkInterfaceResponseOutput) Ipv6Address() pulumi.StringOutput { return o.ApplyT(func(v NetworkInterfaceResponse) string { return v.Ipv6Address }).(pulumi.StringOutput) } // Type of the resource. Always compute#networkInterface for network interfaces. func (o NetworkInterfaceResponseOutput) Kind() pulumi.StringOutput { return o.ApplyT(func(v NetworkInterfaceResponse) string { return v.Kind }).(pulumi.StringOutput) } // The name of the network interface, which is generated by the server. For network devices, these are eth0, eth1, etc. func (o NetworkInterfaceResponseOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v NetworkInterfaceResponse) string { return v.Name }).(pulumi.StringOutput) } // URL of the VPC network resource for this instance. When creating an instance, if neither the network nor the subnetwork is specified, the default network global/networks/default is used. If the selected project doesn't have the default network, you must specify a network or subnet. If the network is not specified but the subnetwork is specified, the network is inferred. If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs: - https://www.googleapis.com/compute/v1/projects/project/global/networks/ network - projects/project/global/networks/network - global/networks/default func (o NetworkInterfaceResponseOutput) Network() pulumi.StringOutput { return o.ApplyT(func(v NetworkInterfaceResponse) string { return v.Network }).(pulumi.StringOutput) } // An IPv4 internal IP address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system. func (o NetworkInterfaceResponseOutput) NetworkIP() pulumi.StringOutput { return o.ApplyT(func(v NetworkInterfaceResponse) string { return v.NetworkIP }).(pulumi.StringOutput) } // The type of vNIC to be used on this interface. This may be gVNIC or VirtioNet. func (o NetworkInterfaceResponseOutput) NicType() pulumi.StringOutput { return o.ApplyT(func(v NetworkInterfaceResponse) string { return v.NicType }).(pulumi.StringOutput) } // The networking queue count that's specified by users for the network interface. Both Rx and Tx queues will be set to this number. It'll be empty if not specified by the users. func (o NetworkInterfaceResponseOutput) QueueCount() pulumi.IntOutput { return o.ApplyT(func(v NetworkInterfaceResponse) int { return v.QueueCount }).(pulumi.IntOutput) } // The stack type for this network interface to identify whether the IPv6 feature is enabled or not. If not specified, IPV4_ONLY will be used. This field can be both set at instance creation and update network interface operations. func (o NetworkInterfaceResponseOutput) StackType() pulumi.StringOutput { return o.ApplyT(func(v NetworkInterfaceResponse) string { return v.StackType }).(pulumi.StringOutput) } // The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not specify this field. If the network is in auto subnet mode, specifying the subnetwork is optional. If the network is in custom subnet mode, specifying the subnetwork is required. If you specify this field, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs: - https://www.googleapis.com/compute/v1/projects/project/regions/region /subnetworks/subnetwork - regions/region/subnetworks/subnetwork func (o NetworkInterfaceResponseOutput) Subnetwork() pulumi.StringOutput { return o.ApplyT(func(v NetworkInterfaceResponse) string { return v.Subnetwork }).(pulumi.StringOutput) } type NetworkInterfaceResponseArrayOutput struct{ *pulumi.OutputState } func (NetworkInterfaceResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]NetworkInterfaceResponse)(nil)).Elem() } func (o NetworkInterfaceResponseArrayOutput) ToNetworkInterfaceResponseArrayOutput() NetworkInterfaceResponseArrayOutput { return o } func (o NetworkInterfaceResponseArrayOutput) ToNetworkInterfaceResponseArrayOutputWithContext(ctx context.Context) NetworkInterfaceResponseArrayOutput { return o } func (o NetworkInterfaceResponseArrayOutput) Index(i pulumi.IntInput) NetworkInterfaceResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) NetworkInterfaceResponse { return vs[0].([]NetworkInterfaceResponse)[vs[1].(int)] }).(NetworkInterfaceResponseOutput) } // A network peering attached to a network resource. The message includes the peering name, peer network, peering state, and a flag indicating whether Google Compute Engine should automatically create routes for the peering. type NetworkPeeringResponse struct { // This field will be deprecated soon. Use the exchange_subnet_routes field instead. Indicates whether full mesh connectivity is created and managed automatically between peered networks. Currently this field should always be true since Google Compute Engine will automatically create and manage subnetwork routes between two networks when peering state is ACTIVE. AutoCreateRoutes bool `pulumi:"autoCreateRoutes"` // Indicates whether full mesh connectivity is created and managed automatically between peered networks. Currently this field should always be true since Google Compute Engine will automatically create and manage subnetwork routes between two networks when peering state is ACTIVE. ExchangeSubnetRoutes bool `pulumi:"exchangeSubnetRoutes"` // Whether to export the custom routes to peer network. The default value is false. ExportCustomRoutes bool `pulumi:"exportCustomRoutes"` // Whether subnet routes with public IP range are exported. The default value is true, all subnet routes are exported. IPv4 special-use ranges are always exported to peers and are not controlled by this field. ExportSubnetRoutesWithPublicIp bool `pulumi:"exportSubnetRoutesWithPublicIp"` // Whether to import the custom routes from peer network. The default value is false. ImportCustomRoutes bool `pulumi:"importCustomRoutes"` // Whether subnet routes with public IP range are imported. The default value is false. IPv4 special-use ranges are always imported from peers and are not controlled by this field. ImportSubnetRoutesWithPublicIp bool `pulumi:"importSubnetRoutesWithPublicIp"` // Name of this peering. Provided by the client when the peering is created. The name must comply with RFC1035. Specifically, the name must be 1-63 characters long and match regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character must be a lowercase letter, and all the following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. Name string `pulumi:"name"` // The URL of the peer network. It can be either full URL or partial URL. The peer network may belong to a different project. If the partial URL does not contain project, it is assumed that the peer network is in the same project as the current network. Network string `pulumi:"network"` // Maximum Transmission Unit in bytes. PeerMtu int `pulumi:"peerMtu"` // State for the peering, either `ACTIVE` or `INACTIVE`. The peering is `ACTIVE` when there's a matching configuration in the peer network. State string `pulumi:"state"` // Details about the current state of the peering. StateDetails string `pulumi:"stateDetails"` } // A network peering attached to a network resource. The message includes the peering name, peer network, peering state, and a flag indicating whether Google Compute Engine should automatically create routes for the peering. type NetworkPeeringResponseOutput struct{ *pulumi.OutputState } func (NetworkPeeringResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*NetworkPeeringResponse)(nil)).Elem() } func (o NetworkPeeringResponseOutput) ToNetworkPeeringResponseOutput() NetworkPeeringResponseOutput { return o } func (o NetworkPeeringResponseOutput) ToNetworkPeeringResponseOutputWithContext(ctx context.Context) NetworkPeeringResponseOutput { return o } // This field will be deprecated soon. Use the exchange_subnet_routes field instead. Indicates whether full mesh connectivity is created and managed automatically between peered networks. Currently this field should always be true since Google Compute Engine will automatically create and manage subnetwork routes between two networks when peering state is ACTIVE. func (o NetworkPeeringResponseOutput) AutoCreateRoutes() pulumi.BoolOutput { return o.ApplyT(func(v NetworkPeeringResponse) bool { return v.AutoCreateRoutes }).(pulumi.BoolOutput) } // Indicates whether full mesh connectivity is created and managed automatically between peered networks. Currently this field should always be true since Google Compute Engine will automatically create and manage subnetwork routes between two networks when peering state is ACTIVE. func (o NetworkPeeringResponseOutput) ExchangeSubnetRoutes() pulumi.BoolOutput { return o.ApplyT(func(v NetworkPeeringResponse) bool { return v.ExchangeSubnetRoutes }).(pulumi.BoolOutput) } // Whether to export the custom routes to peer network. The default value is false. func (o NetworkPeeringResponseOutput) ExportCustomRoutes() pulumi.BoolOutput { return o.ApplyT(func(v NetworkPeeringResponse) bool { return v.ExportCustomRoutes }).(pulumi.BoolOutput) } // Whether subnet routes with public IP range are exported. The default value is true, all subnet routes are exported. IPv4 special-use ranges are always exported to peers and are not controlled by this field. func (o NetworkPeeringResponseOutput) ExportSubnetRoutesWithPublicIp() pulumi.BoolOutput { return o.ApplyT(func(v NetworkPeeringResponse) bool { return v.ExportSubnetRoutesWithPublicIp }).(pulumi.BoolOutput) } // Whether to import the custom routes from peer network. The default value is false. func (o NetworkPeeringResponseOutput) ImportCustomRoutes() pulumi.BoolOutput { return o.ApplyT(func(v NetworkPeeringResponse) bool { return v.ImportCustomRoutes }).(pulumi.BoolOutput) } // Whether subnet routes with public IP range are imported. The default value is false. IPv4 special-use ranges are always imported from peers and are not controlled by this field. func (o NetworkPeeringResponseOutput) ImportSubnetRoutesWithPublicIp() pulumi.BoolOutput { return o.ApplyT(func(v NetworkPeeringResponse) bool { return v.ImportSubnetRoutesWithPublicIp }).(pulumi.BoolOutput) } // Name of this peering. Provided by the client when the peering is created. The name must comply with RFC1035. Specifically, the name must be 1-63 characters long and match regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character must be a lowercase letter, and all the following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. func (o NetworkPeeringResponseOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v NetworkPeeringResponse) string { return v.Name }).(pulumi.StringOutput) } // The URL of the peer network. It can be either full URL or partial URL. The peer network may belong to a different project. If the partial URL does not contain project, it is assumed that the peer network is in the same project as the current network. func (o NetworkPeeringResponseOutput) Network() pulumi.StringOutput { return o.ApplyT(func(v NetworkPeeringResponse) string { return v.Network }).(pulumi.StringOutput) } // Maximum Transmission Unit in bytes. func (o NetworkPeeringResponseOutput) PeerMtu() pulumi.IntOutput { return o.ApplyT(func(v NetworkPeeringResponse) int { return v.PeerMtu }).(pulumi.IntOutput) } // State for the peering, either `ACTIVE` or `INACTIVE`. The peering is `ACTIVE` when there's a matching configuration in the peer network. func (o NetworkPeeringResponseOutput) State() pulumi.StringOutput { return o.ApplyT(func(v NetworkPeeringResponse) string { return v.State }).(pulumi.StringOutput) } // Details about the current state of the peering. func (o NetworkPeeringResponseOutput) StateDetails() pulumi.StringOutput { return o.ApplyT(func(v NetworkPeeringResponse) string { return v.StateDetails }).(pulumi.StringOutput) } type NetworkPeeringResponseArrayOutput struct{ *pulumi.OutputState } func (NetworkPeeringResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]NetworkPeeringResponse)(nil)).Elem() } func (o NetworkPeeringResponseArrayOutput) ToNetworkPeeringResponseArrayOutput() NetworkPeeringResponseArrayOutput { return o } func (o NetworkPeeringResponseArrayOutput) ToNetworkPeeringResponseArrayOutputWithContext(ctx context.Context) NetworkPeeringResponseArrayOutput { return o } func (o NetworkPeeringResponseArrayOutput) Index(i pulumi.IntInput) NetworkPeeringResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) NetworkPeeringResponse { return vs[0].([]NetworkPeeringResponse)[vs[1].(int)] }).(NetworkPeeringResponseOutput) } type NetworkPerformanceConfig struct { TotalEgressBandwidthTier *NetworkPerformanceConfigTotalEgressBandwidthTier `pulumi:"totalEgressBandwidthTier"` } // NetworkPerformanceConfigInput is an input type that accepts NetworkPerformanceConfigArgs and NetworkPerformanceConfigOutput values. // You can construct a concrete instance of `NetworkPerformanceConfigInput` via: // // NetworkPerformanceConfigArgs{...} type NetworkPerformanceConfigInput interface { pulumi.Input ToNetworkPerformanceConfigOutput() NetworkPerformanceConfigOutput ToNetworkPerformanceConfigOutputWithContext(context.Context) NetworkPerformanceConfigOutput } type NetworkPerformanceConfigArgs struct { TotalEgressBandwidthTier NetworkPerformanceConfigTotalEgressBandwidthTierPtrInput `pulumi:"totalEgressBandwidthTier"` } func (NetworkPerformanceConfigArgs) ElementType() reflect.Type { return reflect.TypeOf((*NetworkPerformanceConfig)(nil)).Elem() } func (i NetworkPerformanceConfigArgs) ToNetworkPerformanceConfigOutput() NetworkPerformanceConfigOutput { return i.ToNetworkPerformanceConfigOutputWithContext(context.Background()) } func (i NetworkPerformanceConfigArgs) ToNetworkPerformanceConfigOutputWithContext(ctx context.Context) NetworkPerformanceConfigOutput { return pulumi.ToOutputWithContext(ctx, i).(NetworkPerformanceConfigOutput) } func (i NetworkPerformanceConfigArgs) ToNetworkPerformanceConfigPtrOutput() NetworkPerformanceConfigPtrOutput { return i.ToNetworkPerformanceConfigPtrOutputWithContext(context.Background()) } func (i NetworkPerformanceConfigArgs) ToNetworkPerformanceConfigPtrOutputWithContext(ctx context.Context) NetworkPerformanceConfigPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(NetworkPerformanceConfigOutput).ToNetworkPerformanceConfigPtrOutputWithContext(ctx) } // NetworkPerformanceConfigPtrInput is an input type that accepts NetworkPerformanceConfigArgs, NetworkPerformanceConfigPtr and NetworkPerformanceConfigPtrOutput values. // You can construct a concrete instance of `NetworkPerformanceConfigPtrInput` via: // // NetworkPerformanceConfigArgs{...} // // or: // // nil type NetworkPerformanceConfigPtrInput interface { pulumi.Input ToNetworkPerformanceConfigPtrOutput() NetworkPerformanceConfigPtrOutput ToNetworkPerformanceConfigPtrOutputWithContext(context.Context) NetworkPerformanceConfigPtrOutput } type networkPerformanceConfigPtrType NetworkPerformanceConfigArgs func NetworkPerformanceConfigPtr(v *NetworkPerformanceConfigArgs) NetworkPerformanceConfigPtrInput { return (*networkPerformanceConfigPtrType)(v) } func (*networkPerformanceConfigPtrType) ElementType() reflect.Type { return reflect.TypeOf((**NetworkPerformanceConfig)(nil)).Elem() } func (i *networkPerformanceConfigPtrType) ToNetworkPerformanceConfigPtrOutput() NetworkPerformanceConfigPtrOutput { return i.ToNetworkPerformanceConfigPtrOutputWithContext(context.Background()) } func (i *networkPerformanceConfigPtrType) ToNetworkPerformanceConfigPtrOutputWithContext(ctx context.Context) NetworkPerformanceConfigPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(NetworkPerformanceConfigPtrOutput) } type NetworkPerformanceConfigOutput struct{ *pulumi.OutputState } func (NetworkPerformanceConfigOutput) ElementType() reflect.Type { return reflect.TypeOf((*NetworkPerformanceConfig)(nil)).Elem() } func (o NetworkPerformanceConfigOutput) ToNetworkPerformanceConfigOutput() NetworkPerformanceConfigOutput { return o } func (o NetworkPerformanceConfigOutput) ToNetworkPerformanceConfigOutputWithContext(ctx context.Context) NetworkPerformanceConfigOutput { return o } func (o NetworkPerformanceConfigOutput) ToNetworkPerformanceConfigPtrOutput() NetworkPerformanceConfigPtrOutput { return o.ToNetworkPerformanceConfigPtrOutputWithContext(context.Background()) } func (o NetworkPerformanceConfigOutput) ToNetworkPerformanceConfigPtrOutputWithContext(ctx context.Context) NetworkPerformanceConfigPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v NetworkPerformanceConfig) *NetworkPerformanceConfig { return &v }).(NetworkPerformanceConfigPtrOutput) } func (o NetworkPerformanceConfigOutput) TotalEgressBandwidthTier() NetworkPerformanceConfigTotalEgressBandwidthTierPtrOutput { return o.ApplyT(func(v NetworkPerformanceConfig) *NetworkPerformanceConfigTotalEgressBandwidthTier { return v.TotalEgressBandwidthTier }).(NetworkPerformanceConfigTotalEgressBandwidthTierPtrOutput) } type NetworkPerformanceConfigPtrOutput struct{ *pulumi.OutputState } func (NetworkPerformanceConfigPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**NetworkPerformanceConfig)(nil)).Elem() } func (o NetworkPerformanceConfigPtrOutput) ToNetworkPerformanceConfigPtrOutput() NetworkPerformanceConfigPtrOutput { return o } func (o NetworkPerformanceConfigPtrOutput) ToNetworkPerformanceConfigPtrOutputWithContext(ctx context.Context) NetworkPerformanceConfigPtrOutput { return o } func (o NetworkPerformanceConfigPtrOutput) Elem() NetworkPerformanceConfigOutput { return o.ApplyT(func(v *NetworkPerformanceConfig) NetworkPerformanceConfig { if v != nil { return *v } var ret NetworkPerformanceConfig return ret }).(NetworkPerformanceConfigOutput) } func (o NetworkPerformanceConfigPtrOutput) TotalEgressBandwidthTier() NetworkPerformanceConfigTotalEgressBandwidthTierPtrOutput { return o.ApplyT(func(v *NetworkPerformanceConfig) *NetworkPerformanceConfigTotalEgressBandwidthTier { if v == nil { return nil } return v.TotalEgressBandwidthTier }).(NetworkPerformanceConfigTotalEgressBandwidthTierPtrOutput) } type NetworkPerformanceConfigResponse struct { TotalEgressBandwidthTier string `pulumi:"totalEgressBandwidthTier"` } type NetworkPerformanceConfigResponseOutput struct{ *pulumi.OutputState } func (NetworkPerformanceConfigResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*NetworkPerformanceConfigResponse)(nil)).Elem() } func (o NetworkPerformanceConfigResponseOutput) ToNetworkPerformanceConfigResponseOutput() NetworkPerformanceConfigResponseOutput { return o } func (o NetworkPerformanceConfigResponseOutput) ToNetworkPerformanceConfigResponseOutputWithContext(ctx context.Context) NetworkPerformanceConfigResponseOutput { return o } func (o NetworkPerformanceConfigResponseOutput) TotalEgressBandwidthTier() pulumi.StringOutput { return o.ApplyT(func(v NetworkPerformanceConfigResponse) string { return v.TotalEgressBandwidthTier }).(pulumi.StringOutput) } // A routing configuration attached to a network resource. The message includes the list of routers associated with the network, and a flag indicating the type of routing behavior to enforce network-wide. type NetworkRoutingConfig struct { // The network-wide routing mode to use. If set to REGIONAL, this network's Cloud Routers will only advertise routes with subnets of this network in the same region as the router. If set to GLOBAL, this network's Cloud Routers will advertise routes with all subnets of this network, across regions. RoutingMode *NetworkRoutingConfigRoutingMode `pulumi:"routingMode"` } // NetworkRoutingConfigInput is an input type that accepts NetworkRoutingConfigArgs and NetworkRoutingConfigOutput values. // You can construct a concrete instance of `NetworkRoutingConfigInput` via: // // NetworkRoutingConfigArgs{...} type NetworkRoutingConfigInput interface { pulumi.Input ToNetworkRoutingConfigOutput() NetworkRoutingConfigOutput ToNetworkRoutingConfigOutputWithContext(context.Context) NetworkRoutingConfigOutput } // A routing configuration attached to a network resource. The message includes the list of routers associated with the network, and a flag indicating the type of routing behavior to enforce network-wide. type NetworkRoutingConfigArgs struct { // The network-wide routing mode to use. If set to REGIONAL, this network's Cloud Routers will only advertise routes with subnets of this network in the same region as the router. If set to GLOBAL, this network's Cloud Routers will advertise routes with all subnets of this network, across regions. RoutingMode NetworkRoutingConfigRoutingModePtrInput `pulumi:"routingMode"` } func (NetworkRoutingConfigArgs) ElementType() reflect.Type { return reflect.TypeOf((*NetworkRoutingConfig)(nil)).Elem() } func (i NetworkRoutingConfigArgs) ToNetworkRoutingConfigOutput() NetworkRoutingConfigOutput { return i.ToNetworkRoutingConfigOutputWithContext(context.Background()) } func (i NetworkRoutingConfigArgs) ToNetworkRoutingConfigOutputWithContext(ctx context.Context) NetworkRoutingConfigOutput { return pulumi.ToOutputWithContext(ctx, i).(NetworkRoutingConfigOutput) } func (i NetworkRoutingConfigArgs) ToNetworkRoutingConfigPtrOutput() NetworkRoutingConfigPtrOutput { return i.ToNetworkRoutingConfigPtrOutputWithContext(context.Background()) } func (i NetworkRoutingConfigArgs) ToNetworkRoutingConfigPtrOutputWithContext(ctx context.Context) NetworkRoutingConfigPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(NetworkRoutingConfigOutput).ToNetworkRoutingConfigPtrOutputWithContext(ctx) } // NetworkRoutingConfigPtrInput is an input type that accepts NetworkRoutingConfigArgs, NetworkRoutingConfigPtr and NetworkRoutingConfigPtrOutput values. // You can construct a concrete instance of `NetworkRoutingConfigPtrInput` via: // // NetworkRoutingConfigArgs{...} // // or: // // nil type NetworkRoutingConfigPtrInput interface { pulumi.Input ToNetworkRoutingConfigPtrOutput() NetworkRoutingConfigPtrOutput ToNetworkRoutingConfigPtrOutputWithContext(context.Context) NetworkRoutingConfigPtrOutput } type networkRoutingConfigPtrType NetworkRoutingConfigArgs func NetworkRoutingConfigPtr(v *NetworkRoutingConfigArgs) NetworkRoutingConfigPtrInput { return (*networkRoutingConfigPtrType)(v) } func (*networkRoutingConfigPtrType) ElementType() reflect.Type { return reflect.TypeOf((**NetworkRoutingConfig)(nil)).Elem() } func (i *networkRoutingConfigPtrType) ToNetworkRoutingConfigPtrOutput() NetworkRoutingConfigPtrOutput { return i.ToNetworkRoutingConfigPtrOutputWithContext(context.Background()) } func (i *networkRoutingConfigPtrType) ToNetworkRoutingConfigPtrOutputWithContext(ctx context.Context) NetworkRoutingConfigPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(NetworkRoutingConfigPtrOutput) } // A routing configuration attached to a network resource. The message includes the list of routers associated with the network, and a flag indicating the type of routing behavior to enforce network-wide. type NetworkRoutingConfigOutput struct{ *pulumi.OutputState } func (NetworkRoutingConfigOutput) ElementType() reflect.Type { return reflect.TypeOf((*NetworkRoutingConfig)(nil)).Elem() } func (o NetworkRoutingConfigOutput) ToNetworkRoutingConfigOutput() NetworkRoutingConfigOutput { return o } func (o NetworkRoutingConfigOutput) ToNetworkRoutingConfigOutputWithContext(ctx context.Context) NetworkRoutingConfigOutput { return o } func (o NetworkRoutingConfigOutput) ToNetworkRoutingConfigPtrOutput() NetworkRoutingConfigPtrOutput { return o.ToNetworkRoutingConfigPtrOutputWithContext(context.Background()) } func (o NetworkRoutingConfigOutput) ToNetworkRoutingConfigPtrOutputWithContext(ctx context.Context) NetworkRoutingConfigPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v NetworkRoutingConfig) *NetworkRoutingConfig { return &v }).(NetworkRoutingConfigPtrOutput) } // The network-wide routing mode to use. If set to REGIONAL, this network's Cloud Routers will only advertise routes with subnets of this network in the same region as the router. If set to GLOBAL, this network's Cloud Routers will advertise routes with all subnets of this network, across regions. func (o NetworkRoutingConfigOutput) RoutingMode() NetworkRoutingConfigRoutingModePtrOutput { return o.ApplyT(func(v NetworkRoutingConfig) *NetworkRoutingConfigRoutingMode { return v.RoutingMode }).(NetworkRoutingConfigRoutingModePtrOutput) } type NetworkRoutingConfigPtrOutput struct{ *pulumi.OutputState } func (NetworkRoutingConfigPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**NetworkRoutingConfig)(nil)).Elem() } func (o NetworkRoutingConfigPtrOutput) ToNetworkRoutingConfigPtrOutput() NetworkRoutingConfigPtrOutput { return o } func (o NetworkRoutingConfigPtrOutput) ToNetworkRoutingConfigPtrOutputWithContext(ctx context.Context) NetworkRoutingConfigPtrOutput { return o } func (o NetworkRoutingConfigPtrOutput) Elem() NetworkRoutingConfigOutput { return o.ApplyT(func(v *NetworkRoutingConfig) NetworkRoutingConfig { if v != nil { return *v } var ret NetworkRoutingConfig return ret }).(NetworkRoutingConfigOutput) } // The network-wide routing mode to use. If set to REGIONAL, this network's Cloud Routers will only advertise routes with subnets of this network in the same region as the router. If set to GLOBAL, this network's Cloud Routers will advertise routes with all subnets of this network, across regions. func (o NetworkRoutingConfigPtrOutput) RoutingMode() NetworkRoutingConfigRoutingModePtrOutput { return o.ApplyT(func(v *NetworkRoutingConfig) *NetworkRoutingConfigRoutingMode { if v == nil { return nil } return v.RoutingMode }).(NetworkRoutingConfigRoutingModePtrOutput) } // A routing configuration attached to a network resource. The message includes the list of routers associated with the network, and a flag indicating the type of routing behavior to enforce network-wide. type NetworkRoutingConfigResponse struct { // The network-wide routing mode to use. If set to REGIONAL, this network's Cloud Routers will only advertise routes with subnets of this network in the same region as the router. If set to GLOBAL, this network's Cloud Routers will advertise routes with all subnets of this network, across regions. RoutingMode string `pulumi:"routingMode"` } // A routing configuration attached to a network resource. The message includes the list of routers associated with the network, and a flag indicating the type of routing behavior to enforce network-wide. type NetworkRoutingConfigResponseOutput struct{ *pulumi.OutputState } func (NetworkRoutingConfigResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*NetworkRoutingConfigResponse)(nil)).Elem() } func (o NetworkRoutingConfigResponseOutput) ToNetworkRoutingConfigResponseOutput() NetworkRoutingConfigResponseOutput { return o } func (o NetworkRoutingConfigResponseOutput) ToNetworkRoutingConfigResponseOutputWithContext(ctx context.Context) NetworkRoutingConfigResponseOutput { return o } // The network-wide routing mode to use. If set to REGIONAL, this network's Cloud Routers will only advertise routes with subnets of this network in the same region as the router. If set to GLOBAL, this network's Cloud Routers will advertise routes with all subnets of this network, across regions. func (o NetworkRoutingConfigResponseOutput) RoutingMode() pulumi.StringOutput { return o.ApplyT(func(v NetworkRoutingConfigResponse) string { return v.RoutingMode }).(pulumi.StringOutput) } type NodeGroupAutoscalingPolicy struct { // The maximum number of nodes that the group should have. Must be set if autoscaling is enabled. Maximum value allowed is 100. MaxNodes *int `pulumi:"maxNodes"` // The minimum number of nodes that the group should have. MinNodes *int `pulumi:"minNodes"` // The autoscaling mode. Set to one of: ON, OFF, or ONLY_SCALE_OUT. For more information, see Autoscaler modes. Mode *NodeGroupAutoscalingPolicyMode `pulumi:"mode"` } // NodeGroupAutoscalingPolicyInput is an input type that accepts NodeGroupAutoscalingPolicyArgs and NodeGroupAutoscalingPolicyOutput values. // You can construct a concrete instance of `NodeGroupAutoscalingPolicyInput` via: // // NodeGroupAutoscalingPolicyArgs{...} type NodeGroupAutoscalingPolicyInput interface { pulumi.Input ToNodeGroupAutoscalingPolicyOutput() NodeGroupAutoscalingPolicyOutput ToNodeGroupAutoscalingPolicyOutputWithContext(context.Context) NodeGroupAutoscalingPolicyOutput } type NodeGroupAutoscalingPolicyArgs struct { // The maximum number of nodes that the group should have. Must be set if autoscaling is enabled. Maximum value allowed is 100. MaxNodes pulumi.IntPtrInput `pulumi:"maxNodes"` // The minimum number of nodes that the group should have. MinNodes pulumi.IntPtrInput `pulumi:"minNodes"` // The autoscaling mode. Set to one of: ON, OFF, or ONLY_SCALE_OUT. For more information, see Autoscaler modes. Mode NodeGroupAutoscalingPolicyModePtrInput `pulumi:"mode"` } func (NodeGroupAutoscalingPolicyArgs) ElementType() reflect.Type { return reflect.TypeOf((*NodeGroupAutoscalingPolicy)(nil)).Elem() } func (i NodeGroupAutoscalingPolicyArgs) ToNodeGroupAutoscalingPolicyOutput() NodeGroupAutoscalingPolicyOutput { return i.ToNodeGroupAutoscalingPolicyOutputWithContext(context.Background()) } func (i NodeGroupAutoscalingPolicyArgs) ToNodeGroupAutoscalingPolicyOutputWithContext(ctx context.Context) NodeGroupAutoscalingPolicyOutput { return pulumi.ToOutputWithContext(ctx, i).(NodeGroupAutoscalingPolicyOutput) } func (i NodeGroupAutoscalingPolicyArgs) ToNodeGroupAutoscalingPolicyPtrOutput() NodeGroupAutoscalingPolicyPtrOutput { return i.ToNodeGroupAutoscalingPolicyPtrOutputWithContext(context.Background()) } func (i NodeGroupAutoscalingPolicyArgs) ToNodeGroupAutoscalingPolicyPtrOutputWithContext(ctx context.Context) NodeGroupAutoscalingPolicyPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(NodeGroupAutoscalingPolicyOutput).ToNodeGroupAutoscalingPolicyPtrOutputWithContext(ctx) } // NodeGroupAutoscalingPolicyPtrInput is an input type that accepts NodeGroupAutoscalingPolicyArgs, NodeGroupAutoscalingPolicyPtr and NodeGroupAutoscalingPolicyPtrOutput values. // You can construct a concrete instance of `NodeGroupAutoscalingPolicyPtrInput` via: // // NodeGroupAutoscalingPolicyArgs{...} // // or: // // nil type NodeGroupAutoscalingPolicyPtrInput interface { pulumi.Input ToNodeGroupAutoscalingPolicyPtrOutput() NodeGroupAutoscalingPolicyPtrOutput ToNodeGroupAutoscalingPolicyPtrOutputWithContext(context.Context) NodeGroupAutoscalingPolicyPtrOutput } type nodeGroupAutoscalingPolicyPtrType NodeGroupAutoscalingPolicyArgs func NodeGroupAutoscalingPolicyPtr(v *NodeGroupAutoscalingPolicyArgs) NodeGroupAutoscalingPolicyPtrInput { return (*nodeGroupAutoscalingPolicyPtrType)(v) } func (*nodeGroupAutoscalingPolicyPtrType) ElementType() reflect.Type { return reflect.TypeOf((**NodeGroupAutoscalingPolicy)(nil)).Elem() } func (i *nodeGroupAutoscalingPolicyPtrType) ToNodeGroupAutoscalingPolicyPtrOutput() NodeGroupAutoscalingPolicyPtrOutput { return i.ToNodeGroupAutoscalingPolicyPtrOutputWithContext(context.Background()) } func (i *nodeGroupAutoscalingPolicyPtrType) ToNodeGroupAutoscalingPolicyPtrOutputWithContext(ctx context.Context) NodeGroupAutoscalingPolicyPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(NodeGroupAutoscalingPolicyPtrOutput) } type NodeGroupAutoscalingPolicyOutput struct{ *pulumi.OutputState } func (NodeGroupAutoscalingPolicyOutput) ElementType() reflect.Type { return reflect.TypeOf((*NodeGroupAutoscalingPolicy)(nil)).Elem() } func (o NodeGroupAutoscalingPolicyOutput) ToNodeGroupAutoscalingPolicyOutput() NodeGroupAutoscalingPolicyOutput { return o } func (o NodeGroupAutoscalingPolicyOutput) ToNodeGroupAutoscalingPolicyOutputWithContext(ctx context.Context) NodeGroupAutoscalingPolicyOutput { return o } func (o NodeGroupAutoscalingPolicyOutput) ToNodeGroupAutoscalingPolicyPtrOutput() NodeGroupAutoscalingPolicyPtrOutput { return o.ToNodeGroupAutoscalingPolicyPtrOutputWithContext(context.Background()) } func (o NodeGroupAutoscalingPolicyOutput) ToNodeGroupAutoscalingPolicyPtrOutputWithContext(ctx context.Context) NodeGroupAutoscalingPolicyPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v NodeGroupAutoscalingPolicy) *NodeGroupAutoscalingPolicy { return &v }).(NodeGroupAutoscalingPolicyPtrOutput) } // The maximum number of nodes that the group should have. Must be set if autoscaling is enabled. Maximum value allowed is 100. func (o NodeGroupAutoscalingPolicyOutput) MaxNodes() pulumi.IntPtrOutput { return o.ApplyT(func(v NodeGroupAutoscalingPolicy) *int { return v.MaxNodes }).(pulumi.IntPtrOutput) } // The minimum number of nodes that the group should have. func (o NodeGroupAutoscalingPolicyOutput) MinNodes() pulumi.IntPtrOutput { return o.ApplyT(func(v NodeGroupAutoscalingPolicy) *int { return v.MinNodes }).(pulumi.IntPtrOutput) } // The autoscaling mode. Set to one of: ON, OFF, or ONLY_SCALE_OUT. For more information, see Autoscaler modes. func (o NodeGroupAutoscalingPolicyOutput) Mode() NodeGroupAutoscalingPolicyModePtrOutput { return o.ApplyT(func(v NodeGroupAutoscalingPolicy) *NodeGroupAutoscalingPolicyMode { return v.Mode }).(NodeGroupAutoscalingPolicyModePtrOutput) } type NodeGroupAutoscalingPolicyPtrOutput struct{ *pulumi.OutputState } func (NodeGroupAutoscalingPolicyPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**NodeGroupAutoscalingPolicy)(nil)).Elem() } func (o NodeGroupAutoscalingPolicyPtrOutput) ToNodeGroupAutoscalingPolicyPtrOutput() NodeGroupAutoscalingPolicyPtrOutput { return o } func (o NodeGroupAutoscalingPolicyPtrOutput) ToNodeGroupAutoscalingPolicyPtrOutputWithContext(ctx context.Context) NodeGroupAutoscalingPolicyPtrOutput { return o } func (o NodeGroupAutoscalingPolicyPtrOutput) Elem() NodeGroupAutoscalingPolicyOutput { return o.ApplyT(func(v *NodeGroupAutoscalingPolicy) NodeGroupAutoscalingPolicy { if v != nil { return *v } var ret NodeGroupAutoscalingPolicy return ret }).(NodeGroupAutoscalingPolicyOutput) } // The maximum number of nodes that the group should have. Must be set if autoscaling is enabled. Maximum value allowed is 100. func (o NodeGroupAutoscalingPolicyPtrOutput) MaxNodes() pulumi.IntPtrOutput { return o.ApplyT(func(v *NodeGroupAutoscalingPolicy) *int { if v == nil { return nil } return v.MaxNodes }).(pulumi.IntPtrOutput) } // The minimum number of nodes that the group should have. func (o NodeGroupAutoscalingPolicyPtrOutput) MinNodes() pulumi.IntPtrOutput { return o.ApplyT(func(v *NodeGroupAutoscalingPolicy) *int { if v == nil { return nil } return v.MinNodes }).(pulumi.IntPtrOutput) } // The autoscaling mode. Set to one of: ON, OFF, or ONLY_SCALE_OUT. For more information, see Autoscaler modes. func (o NodeGroupAutoscalingPolicyPtrOutput) Mode() NodeGroupAutoscalingPolicyModePtrOutput { return o.ApplyT(func(v *NodeGroupAutoscalingPolicy) *NodeGroupAutoscalingPolicyMode { if v == nil { return nil } return v.Mode }).(NodeGroupAutoscalingPolicyModePtrOutput) } type NodeGroupAutoscalingPolicyResponse struct { // The maximum number of nodes that the group should have. Must be set if autoscaling is enabled. Maximum value allowed is 100. MaxNodes int `pulumi:"maxNodes"` // The minimum number of nodes that the group should have. MinNodes int `pulumi:"minNodes"` // The autoscaling mode. Set to one of: ON, OFF, or ONLY_SCALE_OUT. For more information, see Autoscaler modes. Mode string `pulumi:"mode"` } type NodeGroupAutoscalingPolicyResponseOutput struct{ *pulumi.OutputState } func (NodeGroupAutoscalingPolicyResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*NodeGroupAutoscalingPolicyResponse)(nil)).Elem() } func (o NodeGroupAutoscalingPolicyResponseOutput) ToNodeGroupAutoscalingPolicyResponseOutput() NodeGroupAutoscalingPolicyResponseOutput { return o } func (o NodeGroupAutoscalingPolicyResponseOutput) ToNodeGroupAutoscalingPolicyResponseOutputWithContext(ctx context.Context) NodeGroupAutoscalingPolicyResponseOutput { return o } // The maximum number of nodes that the group should have. Must be set if autoscaling is enabled. Maximum value allowed is 100. func (o NodeGroupAutoscalingPolicyResponseOutput) MaxNodes() pulumi.IntOutput { return o.ApplyT(func(v NodeGroupAutoscalingPolicyResponse) int { return v.MaxNodes }).(pulumi.IntOutput) } // The minimum number of nodes that the group should have. func (o NodeGroupAutoscalingPolicyResponseOutput) MinNodes() pulumi.IntOutput { return o.ApplyT(func(v NodeGroupAutoscalingPolicyResponse) int { return v.MinNodes }).(pulumi.IntOutput) } // The autoscaling mode. Set to one of: ON, OFF, or ONLY_SCALE_OUT. For more information, see Autoscaler modes. func (o NodeGroupAutoscalingPolicyResponseOutput) Mode() pulumi.StringOutput { return o.ApplyT(func(v NodeGroupAutoscalingPolicyResponse) string { return v.Mode }).(pulumi.StringOutput) } // Time window specified for daily maintenance operations. GCE's internal maintenance will be performed within this window. type NodeGroupMaintenanceWindow struct { // Start time of the window. This must be in UTC format that resolves to one of 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For example, both 13:00-5 and 08:00 are valid. StartTime *string `pulumi:"startTime"` } // NodeGroupMaintenanceWindowInput is an input type that accepts NodeGroupMaintenanceWindowArgs and NodeGroupMaintenanceWindowOutput values. // You can construct a concrete instance of `NodeGroupMaintenanceWindowInput` via: // // NodeGroupMaintenanceWindowArgs{...} type NodeGroupMaintenanceWindowInput interface { pulumi.Input ToNodeGroupMaintenanceWindowOutput() NodeGroupMaintenanceWindowOutput ToNodeGroupMaintenanceWindowOutputWithContext(context.Context) NodeGroupMaintenanceWindowOutput } // Time window specified for daily maintenance operations. GCE's internal maintenance will be performed within this window. type NodeGroupMaintenanceWindowArgs struct { // Start time of the window. This must be in UTC format that resolves to one of 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For example, both 13:00-5 and 08:00 are valid. StartTime pulumi.StringPtrInput `pulumi:"startTime"` } func (NodeGroupMaintenanceWindowArgs) ElementType() reflect.Type { return reflect.TypeOf((*NodeGroupMaintenanceWindow)(nil)).Elem() } func (i NodeGroupMaintenanceWindowArgs) ToNodeGroupMaintenanceWindowOutput() NodeGroupMaintenanceWindowOutput { return i.ToNodeGroupMaintenanceWindowOutputWithContext(context.Background()) } func (i NodeGroupMaintenanceWindowArgs) ToNodeGroupMaintenanceWindowOutputWithContext(ctx context.Context) NodeGroupMaintenanceWindowOutput { return pulumi.ToOutputWithContext(ctx, i).(NodeGroupMaintenanceWindowOutput) } func (i NodeGroupMaintenanceWindowArgs) ToNodeGroupMaintenanceWindowPtrOutput() NodeGroupMaintenanceWindowPtrOutput { return i.ToNodeGroupMaintenanceWindowPtrOutputWithContext(context.Background()) } func (i NodeGroupMaintenanceWindowArgs) ToNodeGroupMaintenanceWindowPtrOutputWithContext(ctx context.Context) NodeGroupMaintenanceWindowPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(NodeGroupMaintenanceWindowOutput).ToNodeGroupMaintenanceWindowPtrOutputWithContext(ctx) } // NodeGroupMaintenanceWindowPtrInput is an input type that accepts NodeGroupMaintenanceWindowArgs, NodeGroupMaintenanceWindowPtr and NodeGroupMaintenanceWindowPtrOutput values. // You can construct a concrete instance of `NodeGroupMaintenanceWindowPtrInput` via: // // NodeGroupMaintenanceWindowArgs{...} // // or: // // nil type NodeGroupMaintenanceWindowPtrInput interface { pulumi.Input ToNodeGroupMaintenanceWindowPtrOutput() NodeGroupMaintenanceWindowPtrOutput ToNodeGroupMaintenanceWindowPtrOutputWithContext(context.Context) NodeGroupMaintenanceWindowPtrOutput } type nodeGroupMaintenanceWindowPtrType NodeGroupMaintenanceWindowArgs func NodeGroupMaintenanceWindowPtr(v *NodeGroupMaintenanceWindowArgs) NodeGroupMaintenanceWindowPtrInput { return (*nodeGroupMaintenanceWindowPtrType)(v) } func (*nodeGroupMaintenanceWindowPtrType) ElementType() reflect.Type { return reflect.TypeOf((**NodeGroupMaintenanceWindow)(nil)).Elem() } func (i *nodeGroupMaintenanceWindowPtrType) ToNodeGroupMaintenanceWindowPtrOutput() NodeGroupMaintenanceWindowPtrOutput { return i.ToNodeGroupMaintenanceWindowPtrOutputWithContext(context.Background()) } func (i *nodeGroupMaintenanceWindowPtrType) ToNodeGroupMaintenanceWindowPtrOutputWithContext(ctx context.Context) NodeGroupMaintenanceWindowPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(NodeGroupMaintenanceWindowPtrOutput) } // Time window specified for daily maintenance operations. GCE's internal maintenance will be performed within this window. type NodeGroupMaintenanceWindowOutput struct{ *pulumi.OutputState } func (NodeGroupMaintenanceWindowOutput) ElementType() reflect.Type { return reflect.TypeOf((*NodeGroupMaintenanceWindow)(nil)).Elem() } func (o NodeGroupMaintenanceWindowOutput) ToNodeGroupMaintenanceWindowOutput() NodeGroupMaintenanceWindowOutput { return o } func (o NodeGroupMaintenanceWindowOutput) ToNodeGroupMaintenanceWindowOutputWithContext(ctx context.Context) NodeGroupMaintenanceWindowOutput { return o } func (o NodeGroupMaintenanceWindowOutput) ToNodeGroupMaintenanceWindowPtrOutput() NodeGroupMaintenanceWindowPtrOutput { return o.ToNodeGroupMaintenanceWindowPtrOutputWithContext(context.Background()) } func (o NodeGroupMaintenanceWindowOutput) ToNodeGroupMaintenanceWindowPtrOutputWithContext(ctx context.Context) NodeGroupMaintenanceWindowPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v NodeGroupMaintenanceWindow) *NodeGroupMaintenanceWindow { return &v }).(NodeGroupMaintenanceWindowPtrOutput) } // Start time of the window. This must be in UTC format that resolves to one of 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For example, both 13:00-5 and 08:00 are valid. func (o NodeGroupMaintenanceWindowOutput) StartTime() pulumi.StringPtrOutput { return o.ApplyT(func(v NodeGroupMaintenanceWindow) *string { return v.StartTime }).(pulumi.StringPtrOutput) } type NodeGroupMaintenanceWindowPtrOutput struct{ *pulumi.OutputState } func (NodeGroupMaintenanceWindowPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**NodeGroupMaintenanceWindow)(nil)).Elem() } func (o NodeGroupMaintenanceWindowPtrOutput) ToNodeGroupMaintenanceWindowPtrOutput() NodeGroupMaintenanceWindowPtrOutput { return o } func (o NodeGroupMaintenanceWindowPtrOutput) ToNodeGroupMaintenanceWindowPtrOutputWithContext(ctx context.Context) NodeGroupMaintenanceWindowPtrOutput { return o } func (o NodeGroupMaintenanceWindowPtrOutput) Elem() NodeGroupMaintenanceWindowOutput { return o.ApplyT(func(v *NodeGroupMaintenanceWindow) NodeGroupMaintenanceWindow { if v != nil { return *v } var ret NodeGroupMaintenanceWindow return ret }).(NodeGroupMaintenanceWindowOutput) } // Start time of the window. This must be in UTC format that resolves to one of 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For example, both 13:00-5 and 08:00 are valid. func (o NodeGroupMaintenanceWindowPtrOutput) StartTime() pulumi.StringPtrOutput { return o.ApplyT(func(v *NodeGroupMaintenanceWindow) *string { if v == nil { return nil } return v.StartTime }).(pulumi.StringPtrOutput) } // Time window specified for daily maintenance operations. GCE's internal maintenance will be performed within this window. type NodeGroupMaintenanceWindowResponse struct { // [Output only] A predetermined duration for the window, automatically chosen to be the smallest possible in the given scenario. MaintenanceDuration DurationResponse `pulumi:"maintenanceDuration"` // Start time of the window. This must be in UTC format that resolves to one of 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For example, both 13:00-5 and 08:00 are valid. StartTime string `pulumi:"startTime"` } // Time window specified for daily maintenance operations. GCE's internal maintenance will be performed within this window. type NodeGroupMaintenanceWindowResponseOutput struct{ *pulumi.OutputState } func (NodeGroupMaintenanceWindowResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*NodeGroupMaintenanceWindowResponse)(nil)).Elem() } func (o NodeGroupMaintenanceWindowResponseOutput) ToNodeGroupMaintenanceWindowResponseOutput() NodeGroupMaintenanceWindowResponseOutput { return o } func (o NodeGroupMaintenanceWindowResponseOutput) ToNodeGroupMaintenanceWindowResponseOutputWithContext(ctx context.Context) NodeGroupMaintenanceWindowResponseOutput { return o } // [Output only] A predetermined duration for the window, automatically chosen to be the smallest possible in the given scenario. func (o NodeGroupMaintenanceWindowResponseOutput) MaintenanceDuration() DurationResponseOutput { return o.ApplyT(func(v NodeGroupMaintenanceWindowResponse) DurationResponse { return v.MaintenanceDuration }).(DurationResponseOutput) } // Start time of the window. This must be in UTC format that resolves to one of 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For example, both 13:00-5 and 08:00 are valid. func (o NodeGroupMaintenanceWindowResponseOutput) StartTime() pulumi.StringOutput { return o.ApplyT(func(v NodeGroupMaintenanceWindowResponse) string { return v.StartTime }).(pulumi.StringOutput) } type NodeTemplateNodeTypeFlexibility struct { Cpus *string `pulumi:"cpus"` LocalSsd *string `pulumi:"localSsd"` Memory *string `pulumi:"memory"` } // NodeTemplateNodeTypeFlexibilityInput is an input type that accepts NodeTemplateNodeTypeFlexibilityArgs and NodeTemplateNodeTypeFlexibilityOutput values. // You can construct a concrete instance of `NodeTemplateNodeTypeFlexibilityInput` via: // // NodeTemplateNodeTypeFlexibilityArgs{...} type NodeTemplateNodeTypeFlexibilityInput interface { pulumi.Input ToNodeTemplateNodeTypeFlexibilityOutput() NodeTemplateNodeTypeFlexibilityOutput ToNodeTemplateNodeTypeFlexibilityOutputWithContext(context.Context) NodeTemplateNodeTypeFlexibilityOutput } type NodeTemplateNodeTypeFlexibilityArgs struct { Cpus pulumi.StringPtrInput `pulumi:"cpus"` LocalSsd pulumi.StringPtrInput `pulumi:"localSsd"` Memory pulumi.StringPtrInput `pulumi:"memory"` } func (NodeTemplateNodeTypeFlexibilityArgs) ElementType() reflect.Type { return reflect.TypeOf((*NodeTemplateNodeTypeFlexibility)(nil)).Elem() } func (i NodeTemplateNodeTypeFlexibilityArgs) ToNodeTemplateNodeTypeFlexibilityOutput() NodeTemplateNodeTypeFlexibilityOutput { return i.ToNodeTemplateNodeTypeFlexibilityOutputWithContext(context.Background()) } func (i NodeTemplateNodeTypeFlexibilityArgs) ToNodeTemplateNodeTypeFlexibilityOutputWithContext(ctx context.Context) NodeTemplateNodeTypeFlexibilityOutput { return pulumi.ToOutputWithContext(ctx, i).(NodeTemplateNodeTypeFlexibilityOutput) } func (i NodeTemplateNodeTypeFlexibilityArgs) ToNodeTemplateNodeTypeFlexibilityPtrOutput() NodeTemplateNodeTypeFlexibilityPtrOutput { return i.ToNodeTemplateNodeTypeFlexibilityPtrOutputWithContext(context.Background()) } func (i NodeTemplateNodeTypeFlexibilityArgs) ToNodeTemplateNodeTypeFlexibilityPtrOutputWithContext(ctx context.Context) NodeTemplateNodeTypeFlexibilityPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(NodeTemplateNodeTypeFlexibilityOutput).ToNodeTemplateNodeTypeFlexibilityPtrOutputWithContext(ctx) } // NodeTemplateNodeTypeFlexibilityPtrInput is an input type that accepts NodeTemplateNodeTypeFlexibilityArgs, NodeTemplateNodeTypeFlexibilityPtr and NodeTemplateNodeTypeFlexibilityPtrOutput values. // You can construct a concrete instance of `NodeTemplateNodeTypeFlexibilityPtrInput` via: // // NodeTemplateNodeTypeFlexibilityArgs{...} // // or: // // nil type NodeTemplateNodeTypeFlexibilityPtrInput interface { pulumi.Input ToNodeTemplateNodeTypeFlexibilityPtrOutput() NodeTemplateNodeTypeFlexibilityPtrOutput ToNodeTemplateNodeTypeFlexibilityPtrOutputWithContext(context.Context) NodeTemplateNodeTypeFlexibilityPtrOutput } type nodeTemplateNodeTypeFlexibilityPtrType NodeTemplateNodeTypeFlexibilityArgs func NodeTemplateNodeTypeFlexibilityPtr(v *NodeTemplateNodeTypeFlexibilityArgs) NodeTemplateNodeTypeFlexibilityPtrInput { return (*nodeTemplateNodeTypeFlexibilityPtrType)(v) } func (*nodeTemplateNodeTypeFlexibilityPtrType) ElementType() reflect.Type { return reflect.TypeOf((**NodeTemplateNodeTypeFlexibility)(nil)).Elem() } func (i *nodeTemplateNodeTypeFlexibilityPtrType) ToNodeTemplateNodeTypeFlexibilityPtrOutput() NodeTemplateNodeTypeFlexibilityPtrOutput { return i.ToNodeTemplateNodeTypeFlexibilityPtrOutputWithContext(context.Background()) } func (i *nodeTemplateNodeTypeFlexibilityPtrType) ToNodeTemplateNodeTypeFlexibilityPtrOutputWithContext(ctx context.Context) NodeTemplateNodeTypeFlexibilityPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(NodeTemplateNodeTypeFlexibilityPtrOutput) } type NodeTemplateNodeTypeFlexibilityOutput struct{ *pulumi.OutputState } func (NodeTemplateNodeTypeFlexibilityOutput) ElementType() reflect.Type { return reflect.TypeOf((*NodeTemplateNodeTypeFlexibility)(nil)).Elem() } func (o NodeTemplateNodeTypeFlexibilityOutput) ToNodeTemplateNodeTypeFlexibilityOutput() NodeTemplateNodeTypeFlexibilityOutput { return o } func (o NodeTemplateNodeTypeFlexibilityOutput) ToNodeTemplateNodeTypeFlexibilityOutputWithContext(ctx context.Context) NodeTemplateNodeTypeFlexibilityOutput { return o } func (o NodeTemplateNodeTypeFlexibilityOutput) ToNodeTemplateNodeTypeFlexibilityPtrOutput() NodeTemplateNodeTypeFlexibilityPtrOutput { return o.ToNodeTemplateNodeTypeFlexibilityPtrOutputWithContext(context.Background()) } func (o NodeTemplateNodeTypeFlexibilityOutput) ToNodeTemplateNodeTypeFlexibilityPtrOutputWithContext(ctx context.Context) NodeTemplateNodeTypeFlexibilityPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v NodeTemplateNodeTypeFlexibility) *NodeTemplateNodeTypeFlexibility { return &v }).(NodeTemplateNodeTypeFlexibilityPtrOutput) } func (o NodeTemplateNodeTypeFlexibilityOutput) Cpus() pulumi.StringPtrOutput { return o.ApplyT(func(v NodeTemplateNodeTypeFlexibility) *string { return v.Cpus }).(pulumi.StringPtrOutput) } func (o NodeTemplateNodeTypeFlexibilityOutput) LocalSsd() pulumi.StringPtrOutput { return o.ApplyT(func(v NodeTemplateNodeTypeFlexibility) *string { return v.LocalSsd }).(pulumi.StringPtrOutput) } func (o NodeTemplateNodeTypeFlexibilityOutput) Memory() pulumi.StringPtrOutput { return o.ApplyT(func(v NodeTemplateNodeTypeFlexibility) *string { return v.Memory }).(pulumi.StringPtrOutput) } type NodeTemplateNodeTypeFlexibilityPtrOutput struct{ *pulumi.OutputState } func (NodeTemplateNodeTypeFlexibilityPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**NodeTemplateNodeTypeFlexibility)(nil)).Elem() } func (o NodeTemplateNodeTypeFlexibilityPtrOutput) ToNodeTemplateNodeTypeFlexibilityPtrOutput() NodeTemplateNodeTypeFlexibilityPtrOutput { return o } func (o NodeTemplateNodeTypeFlexibilityPtrOutput) ToNodeTemplateNodeTypeFlexibilityPtrOutputWithContext(ctx context.Context) NodeTemplateNodeTypeFlexibilityPtrOutput { return o } func (o NodeTemplateNodeTypeFlexibilityPtrOutput) Elem() NodeTemplateNodeTypeFlexibilityOutput { return o.ApplyT(func(v *NodeTemplateNodeTypeFlexibility) NodeTemplateNodeTypeFlexibility { if v != nil { return *v } var ret NodeTemplateNodeTypeFlexibility return ret }).(NodeTemplateNodeTypeFlexibilityOutput) } func (o NodeTemplateNodeTypeFlexibilityPtrOutput) Cpus() pulumi.StringPtrOutput { return o.ApplyT(func(v *NodeTemplateNodeTypeFlexibility) *string { if v == nil { return nil } return v.Cpus }).(pulumi.StringPtrOutput) } func (o NodeTemplateNodeTypeFlexibilityPtrOutput) LocalSsd() pulumi.StringPtrOutput { return o.ApplyT(func(v *NodeTemplateNodeTypeFlexibility) *string { if v == nil { return nil } return v.LocalSsd }).(pulumi.StringPtrOutput) } func (o NodeTemplateNodeTypeFlexibilityPtrOutput) Memory() pulumi.StringPtrOutput { return o.ApplyT(func(v *NodeTemplateNodeTypeFlexibility) *string { if v == nil { return nil } return v.Memory }).(pulumi.StringPtrOutput) } type NodeTemplateNodeTypeFlexibilityResponse struct { Cpus string `pulumi:"cpus"` LocalSsd string `pulumi:"localSsd"` Memory string `pulumi:"memory"` } type NodeTemplateNodeTypeFlexibilityResponseOutput struct{ *pulumi.OutputState } func (NodeTemplateNodeTypeFlexibilityResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*NodeTemplateNodeTypeFlexibilityResponse)(nil)).Elem() } func (o NodeTemplateNodeTypeFlexibilityResponseOutput) ToNodeTemplateNodeTypeFlexibilityResponseOutput() NodeTemplateNodeTypeFlexibilityResponseOutput { return o } func (o NodeTemplateNodeTypeFlexibilityResponseOutput) ToNodeTemplateNodeTypeFlexibilityResponseOutputWithContext(ctx context.Context) NodeTemplateNodeTypeFlexibilityResponseOutput { return o } func (o NodeTemplateNodeTypeFlexibilityResponseOutput) Cpus() pulumi.StringOutput { return o.ApplyT(func(v NodeTemplateNodeTypeFlexibilityResponse) string { return v.Cpus }).(pulumi.StringOutput) } func (o NodeTemplateNodeTypeFlexibilityResponseOutput) LocalSsd() pulumi.StringOutput { return o.ApplyT(func(v NodeTemplateNodeTypeFlexibilityResponse) string { return v.LocalSsd }).(pulumi.StringOutput) } func (o NodeTemplateNodeTypeFlexibilityResponseOutput) Memory() pulumi.StringOutput { return o.ApplyT(func(v NodeTemplateNodeTypeFlexibilityResponse) string { return v.Memory }).(pulumi.StringOutput) } // Represents a gRPC setting that describes one gRPC notification endpoint and the retry duration attempting to send notification to this endpoint. type NotificationEndpointGrpcSettings struct { // Optional. If specified, this field is used to set the authority header by the sender of notifications. See https://tools.ietf.org/html/rfc7540#section-8.1.2.3 Authority *string `pulumi:"authority"` // Endpoint to which gRPC notifications are sent. This must be a valid gRPCLB DNS name. Endpoint *string `pulumi:"endpoint"` // Optional. If specified, this field is used to populate the "name" field in gRPC requests. PayloadName *string `pulumi:"payloadName"` // Optional. This field is used to configure how often to send a full update of all non-healthy backends. If unspecified, full updates are not sent. If specified, must be in the range between 600 seconds to 3600 seconds. Nanos are disallowed. ResendInterval *Duration `pulumi:"resendInterval"` // How much time (in seconds) is spent attempting notification retries until a successful response is received. Default is 30s. Limit is 20m (1200s). Must be a positive number. RetryDurationSec *int `pulumi:"retryDurationSec"` } // NotificationEndpointGrpcSettingsInput is an input type that accepts NotificationEndpointGrpcSettingsArgs and NotificationEndpointGrpcSettingsOutput values. // You can construct a concrete instance of `NotificationEndpointGrpcSettingsInput` via: // // NotificationEndpointGrpcSettingsArgs{...} type NotificationEndpointGrpcSettingsInput interface { pulumi.Input ToNotificationEndpointGrpcSettingsOutput() NotificationEndpointGrpcSettingsOutput ToNotificationEndpointGrpcSettingsOutputWithContext(context.Context) NotificationEndpointGrpcSettingsOutput } // Represents a gRPC setting that describes one gRPC notification endpoint and the retry duration attempting to send notification to this endpoint. type NotificationEndpointGrpcSettingsArgs struct { // Optional. If specified, this field is used to set the authority header by the sender of notifications. See https://tools.ietf.org/html/rfc7540#section-8.1.2.3 Authority pulumi.StringPtrInput `pulumi:"authority"` // Endpoint to which gRPC notifications are sent. This must be a valid gRPCLB DNS name. Endpoint pulumi.StringPtrInput `pulumi:"endpoint"` // Optional. If specified, this field is used to populate the "name" field in gRPC requests. PayloadName pulumi.StringPtrInput `pulumi:"payloadName"` // Optional. This field is used to configure how often to send a full update of all non-healthy backends. If unspecified, full updates are not sent. If specified, must be in the range between 600 seconds to 3600 seconds. Nanos are disallowed. ResendInterval DurationPtrInput `pulumi:"resendInterval"` // How much time (in seconds) is spent attempting notification retries until a successful response is received. Default is 30s. Limit is 20m (1200s). Must be a positive number. RetryDurationSec pulumi.IntPtrInput `pulumi:"retryDurationSec"` } func (NotificationEndpointGrpcSettingsArgs) ElementType() reflect.Type { return reflect.TypeOf((*NotificationEndpointGrpcSettings)(nil)).Elem() } func (i NotificationEndpointGrpcSettingsArgs) ToNotificationEndpointGrpcSettingsOutput() NotificationEndpointGrpcSettingsOutput { return i.ToNotificationEndpointGrpcSettingsOutputWithContext(context.Background()) } func (i NotificationEndpointGrpcSettingsArgs) ToNotificationEndpointGrpcSettingsOutputWithContext(ctx context.Context) NotificationEndpointGrpcSettingsOutput { return pulumi.ToOutputWithContext(ctx, i).(NotificationEndpointGrpcSettingsOutput) } func (i NotificationEndpointGrpcSettingsArgs) ToNotificationEndpointGrpcSettingsPtrOutput() NotificationEndpointGrpcSettingsPtrOutput { return i.ToNotificationEndpointGrpcSettingsPtrOutputWithContext(context.Background()) } func (i NotificationEndpointGrpcSettingsArgs) ToNotificationEndpointGrpcSettingsPtrOutputWithContext(ctx context.Context) NotificationEndpointGrpcSettingsPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(NotificationEndpointGrpcSettingsOutput).ToNotificationEndpointGrpcSettingsPtrOutputWithContext(ctx) } // NotificationEndpointGrpcSettingsPtrInput is an input type that accepts NotificationEndpointGrpcSettingsArgs, NotificationEndpointGrpcSettingsPtr and NotificationEndpointGrpcSettingsPtrOutput values. // You can construct a concrete instance of `NotificationEndpointGrpcSettingsPtrInput` via: // // NotificationEndpointGrpcSettingsArgs{...} // // or: // // nil type NotificationEndpointGrpcSettingsPtrInput interface { pulumi.Input ToNotificationEndpointGrpcSettingsPtrOutput() NotificationEndpointGrpcSettingsPtrOutput ToNotificationEndpointGrpcSettingsPtrOutputWithContext(context.Context) NotificationEndpointGrpcSettingsPtrOutput } type notificationEndpointGrpcSettingsPtrType NotificationEndpointGrpcSettingsArgs func NotificationEndpointGrpcSettingsPtr(v *NotificationEndpointGrpcSettingsArgs) NotificationEndpointGrpcSettingsPtrInput { return (*notificationEndpointGrpcSettingsPtrType)(v) } func (*notificationEndpointGrpcSettingsPtrType) ElementType() reflect.Type { return reflect.TypeOf((**NotificationEndpointGrpcSettings)(nil)).Elem() } func (i *notificationEndpointGrpcSettingsPtrType) ToNotificationEndpointGrpcSettingsPtrOutput() NotificationEndpointGrpcSettingsPtrOutput { return i.ToNotificationEndpointGrpcSettingsPtrOutputWithContext(context.Background()) } func (i *notificationEndpointGrpcSettingsPtrType) ToNotificationEndpointGrpcSettingsPtrOutputWithContext(ctx context.Context) NotificationEndpointGrpcSettingsPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(NotificationEndpointGrpcSettingsPtrOutput) } // Represents a gRPC setting that describes one gRPC notification endpoint and the retry duration attempting to send notification to this endpoint. type NotificationEndpointGrpcSettingsOutput struct{ *pulumi.OutputState } func (NotificationEndpointGrpcSettingsOutput) ElementType() reflect.Type { return reflect.TypeOf((*NotificationEndpointGrpcSettings)(nil)).Elem() } func (o NotificationEndpointGrpcSettingsOutput) ToNotificationEndpointGrpcSettingsOutput() NotificationEndpointGrpcSettingsOutput { return o } func (o NotificationEndpointGrpcSettingsOutput) ToNotificationEndpointGrpcSettingsOutputWithContext(ctx context.Context) NotificationEndpointGrpcSettingsOutput { return o } func (o NotificationEndpointGrpcSettingsOutput) ToNotificationEndpointGrpcSettingsPtrOutput() NotificationEndpointGrpcSettingsPtrOutput { return o.ToNotificationEndpointGrpcSettingsPtrOutputWithContext(context.Background()) } func (o NotificationEndpointGrpcSettingsOutput) ToNotificationEndpointGrpcSettingsPtrOutputWithContext(ctx context.Context) NotificationEndpointGrpcSettingsPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v NotificationEndpointGrpcSettings) *NotificationEndpointGrpcSettings { return &v }).(NotificationEndpointGrpcSettingsPtrOutput) } // Optional. If specified, this field is used to set the authority header by the sender of notifications. See https://tools.ietf.org/html/rfc7540#section-8.1.2.3 func (o NotificationEndpointGrpcSettingsOutput) Authority() pulumi.StringPtrOutput { return o.ApplyT(func(v NotificationEndpointGrpcSettings) *string { return v.Authority }).(pulumi.StringPtrOutput) } // Endpoint to which gRPC notifications are sent. This must be a valid gRPCLB DNS name. func (o NotificationEndpointGrpcSettingsOutput) Endpoint() pulumi.StringPtrOutput { return o.ApplyT(func(v NotificationEndpointGrpcSettings) *string { return v.Endpoint }).(pulumi.StringPtrOutput) } // Optional. If specified, this field is used to populate the "name" field in gRPC requests. func (o NotificationEndpointGrpcSettingsOutput) PayloadName() pulumi.StringPtrOutput { return o.ApplyT(func(v NotificationEndpointGrpcSettings) *string { return v.PayloadName }).(pulumi.StringPtrOutput) } // Optional. This field is used to configure how often to send a full update of all non-healthy backends. If unspecified, full updates are not sent. If specified, must be in the range between 600 seconds to 3600 seconds. Nanos are disallowed. func (o NotificationEndpointGrpcSettingsOutput) ResendInterval() DurationPtrOutput { return o.ApplyT(func(v NotificationEndpointGrpcSettings) *Duration { return v.ResendInterval }).(DurationPtrOutput) } // How much time (in seconds) is spent attempting notification retries until a successful response is received. Default is 30s. Limit is 20m (1200s). Must be a positive number. func (o NotificationEndpointGrpcSettingsOutput) RetryDurationSec() pulumi.IntPtrOutput { return o.ApplyT(func(v NotificationEndpointGrpcSettings) *int { return v.RetryDurationSec }).(pulumi.IntPtrOutput) } type NotificationEndpointGrpcSettingsPtrOutput struct{ *pulumi.OutputState } func (NotificationEndpointGrpcSettingsPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**NotificationEndpointGrpcSettings)(nil)).Elem() } func (o NotificationEndpointGrpcSettingsPtrOutput) ToNotificationEndpointGrpcSettingsPtrOutput() NotificationEndpointGrpcSettingsPtrOutput { return o } func (o NotificationEndpointGrpcSettingsPtrOutput) ToNotificationEndpointGrpcSettingsPtrOutputWithContext(ctx context.Context) NotificationEndpointGrpcSettingsPtrOutput { return o } func (o NotificationEndpointGrpcSettingsPtrOutput) Elem() NotificationEndpointGrpcSettingsOutput { return o.ApplyT(func(v *NotificationEndpointGrpcSettings) NotificationEndpointGrpcSettings { if v != nil { return *v } var ret NotificationEndpointGrpcSettings return ret }).(NotificationEndpointGrpcSettingsOutput) } // Optional. If specified, this field is used to set the authority header by the sender of notifications. See https://tools.ietf.org/html/rfc7540#section-8.1.2.3 func (o NotificationEndpointGrpcSettingsPtrOutput) Authority() pulumi.StringPtrOutput { return o.ApplyT(func(v *NotificationEndpointGrpcSettings) *string { if v == nil { return nil } return v.Authority }).(pulumi.StringPtrOutput) } // Endpoint to which gRPC notifications are sent. This must be a valid gRPCLB DNS name. func (o NotificationEndpointGrpcSettingsPtrOutput) Endpoint() pulumi.StringPtrOutput { return o.ApplyT(func(v *NotificationEndpointGrpcSettings) *string { if v == nil { return nil } return v.Endpoint }).(pulumi.StringPtrOutput) } // Optional. If specified, this field is used to populate the "name" field in gRPC requests. func (o NotificationEndpointGrpcSettingsPtrOutput) PayloadName() pulumi.StringPtrOutput { return o.ApplyT(func(v *NotificationEndpointGrpcSettings) *string { if v == nil { return nil } return v.PayloadName }).(pulumi.StringPtrOutput) } // Optional. This field is used to configure how often to send a full update of all non-healthy backends. If unspecified, full updates are not sent. If specified, must be in the range between 600 seconds to 3600 seconds. Nanos are disallowed. func (o NotificationEndpointGrpcSettingsPtrOutput) ResendInterval() DurationPtrOutput { return o.ApplyT(func(v *NotificationEndpointGrpcSettings) *Duration { if v == nil { return nil } return v.ResendInterval }).(DurationPtrOutput) } // How much time (in seconds) is spent attempting notification retries until a successful response is received. Default is 30s. Limit is 20m (1200s). Must be a positive number. func (o NotificationEndpointGrpcSettingsPtrOutput) RetryDurationSec() pulumi.IntPtrOutput { return o.ApplyT(func(v *NotificationEndpointGrpcSettings) *int { if v == nil { return nil } return v.RetryDurationSec }).(pulumi.IntPtrOutput) } // Represents a gRPC setting that describes one gRPC notification endpoint and the retry duration attempting to send notification to this endpoint. type NotificationEndpointGrpcSettingsResponse struct { // Optional. If specified, this field is used to set the authority header by the sender of notifications. See https://tools.ietf.org/html/rfc7540#section-8.1.2.3 Authority string `pulumi:"authority"` // Endpoint to which gRPC notifications are sent. This must be a valid gRPCLB DNS name. Endpoint string `pulumi:"endpoint"` // Optional. If specified, this field is used to populate the "name" field in gRPC requests. PayloadName string `pulumi:"payloadName"` // Optional. This field is used to configure how often to send a full update of all non-healthy backends. If unspecified, full updates are not sent. If specified, must be in the range between 600 seconds to 3600 seconds. Nanos are disallowed. ResendInterval DurationResponse `pulumi:"resendInterval"` // How much time (in seconds) is spent attempting notification retries until a successful response is received. Default is 30s. Limit is 20m (1200s). Must be a positive number. RetryDurationSec int `pulumi:"retryDurationSec"` } // Represents a gRPC setting that describes one gRPC notification endpoint and the retry duration attempting to send notification to this endpoint. type NotificationEndpointGrpcSettingsResponseOutput struct{ *pulumi.OutputState } func (NotificationEndpointGrpcSettingsResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*NotificationEndpointGrpcSettingsResponse)(nil)).Elem() } func (o NotificationEndpointGrpcSettingsResponseOutput) ToNotificationEndpointGrpcSettingsResponseOutput() NotificationEndpointGrpcSettingsResponseOutput { return o } func (o NotificationEndpointGrpcSettingsResponseOutput) ToNotificationEndpointGrpcSettingsResponseOutputWithContext(ctx context.Context) NotificationEndpointGrpcSettingsResponseOutput { return o } // Optional. If specified, this field is used to set the authority header by the sender of notifications. See https://tools.ietf.org/html/rfc7540#section-8.1.2.3 func (o NotificationEndpointGrpcSettingsResponseOutput) Authority() pulumi.StringOutput { return o.ApplyT(func(v NotificationEndpointGrpcSettingsResponse) string { return v.Authority }).(pulumi.StringOutput) } // Endpoint to which gRPC notifications are sent. This must be a valid gRPCLB DNS name. func (o NotificationEndpointGrpcSettingsResponseOutput) Endpoint() pulumi.StringOutput { return o.ApplyT(func(v NotificationEndpointGrpcSettingsResponse) string { return v.Endpoint }).(pulumi.StringOutput) } // Optional. If specified, this field is used to populate the "name" field in gRPC requests. func (o NotificationEndpointGrpcSettingsResponseOutput) PayloadName() pulumi.StringOutput { return o.ApplyT(func(v NotificationEndpointGrpcSettingsResponse) string { return v.PayloadName }).(pulumi.StringOutput) } // Optional. This field is used to configure how often to send a full update of all non-healthy backends. If unspecified, full updates are not sent. If specified, must be in the range between 600 seconds to 3600 seconds. Nanos are disallowed. func (o NotificationEndpointGrpcSettingsResponseOutput) ResendInterval() DurationResponseOutput { return o.ApplyT(func(v NotificationEndpointGrpcSettingsResponse) DurationResponse { return v.ResendInterval }).(DurationResponseOutput) } // How much time (in seconds) is spent attempting notification retries until a successful response is received. Default is 30s. Limit is 20m (1200s). Must be a positive number. func (o NotificationEndpointGrpcSettingsResponseOutput) RetryDurationSec() pulumi.IntOutput { return o.ApplyT(func(v NotificationEndpointGrpcSettingsResponse) int { return v.RetryDurationSec }).(pulumi.IntOutput) } // Settings controlling the eviction of unhealthy hosts from the load balancing pool for the backend service. type OutlierDetection struct { // The base time that a host is ejected for. The real ejection time is equal to the base ejection time multiplied by the number of times the host has been ejected. Defaults to 30000ms or 30s. BaseEjectionTime *Duration `pulumi:"baseEjectionTime"` // Number of errors before a host is ejected from the connection pool. When the backend host is accessed over HTTP, a 5xx return code qualifies as an error. Defaults to 5. ConsecutiveErrors *int `pulumi:"consecutiveErrors"` // The number of consecutive gateway failures (502, 503, 504 status or connection errors that are mapped to one of those status codes) before a consecutive gateway failure ejection occurs. Defaults to 3. ConsecutiveGatewayFailure *int `pulumi:"consecutiveGatewayFailure"` // The percentage chance that a host will be actually ejected when an outlier status is detected through consecutive 5xx. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 0. EnforcingConsecutiveErrors *int `pulumi:"enforcingConsecutiveErrors"` // The percentage chance that a host will be actually ejected when an outlier status is detected through consecutive gateway failures. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100. EnforcingConsecutiveGatewayFailure *int `pulumi:"enforcingConsecutiveGatewayFailure"` // The percentage chance that a host will be actually ejected when an outlier status is detected through success rate statistics. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100. EnforcingSuccessRate *int `pulumi:"enforcingSuccessRate"` // Time interval between ejection analysis sweeps. This can result in both new ejections as well as hosts being returned to service. Defaults to 1 second. Interval *Duration `pulumi:"interval"` // Maximum percentage of hosts in the load balancing pool for the backend service that can be ejected. Defaults to 50%. MaxEjectionPercent *int `pulumi:"maxEjectionPercent"` // The number of hosts in a cluster that must have enough request volume to detect success rate outliers. If the number of hosts is less than this setting, outlier detection via success rate statistics is not performed for any host in the cluster. Defaults to 5. SuccessRateMinimumHosts *int `pulumi:"successRateMinimumHosts"` // The minimum number of total requests that must be collected in one interval (as defined by the interval duration above) to include this host in success rate based outlier detection. If the volume is lower than this setting, outlier detection via success rate statistics is not performed for that host. Defaults to 100. SuccessRateRequestVolume *int `pulumi:"successRateRequestVolume"` // This factor is used to determine the ejection threshold for success rate outlier ejection. The ejection threshold is the difference between the mean success rate, and the product of this factor and the standard deviation of the mean success rate: mean - (stdev * success_rate_stdev_factor). This factor is divided by a thousand to get a double. That is, if the desired factor is 1.9, the runtime value should be 1900. Defaults to 1900. SuccessRateStdevFactor *int `pulumi:"successRateStdevFactor"` } // OutlierDetectionInput is an input type that accepts OutlierDetectionArgs and OutlierDetectionOutput values. // You can construct a concrete instance of `OutlierDetectionInput` via: // // OutlierDetectionArgs{...} type OutlierDetectionInput interface { pulumi.Input ToOutlierDetectionOutput() OutlierDetectionOutput ToOutlierDetectionOutputWithContext(context.Context) OutlierDetectionOutput } // Settings controlling the eviction of unhealthy hosts from the load balancing pool for the backend service. type OutlierDetectionArgs struct { // The base time that a host is ejected for. The real ejection time is equal to the base ejection time multiplied by the number of times the host has been ejected. Defaults to 30000ms or 30s. BaseEjectionTime DurationPtrInput `pulumi:"baseEjectionTime"` // Number of errors before a host is ejected from the connection pool. When the backend host is accessed over HTTP, a 5xx return code qualifies as an error. Defaults to 5. ConsecutiveErrors pulumi.IntPtrInput `pulumi:"consecutiveErrors"` // The number of consecutive gateway failures (502, 503, 504 status or connection errors that are mapped to one of those status codes) before a consecutive gateway failure ejection occurs. Defaults to 3. ConsecutiveGatewayFailure pulumi.IntPtrInput `pulumi:"consecutiveGatewayFailure"` // The percentage chance that a host will be actually ejected when an outlier status is detected through consecutive 5xx. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 0. EnforcingConsecutiveErrors pulumi.IntPtrInput `pulumi:"enforcingConsecutiveErrors"` // The percentage chance that a host will be actually ejected when an outlier status is detected through consecutive gateway failures. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100. EnforcingConsecutiveGatewayFailure pulumi.IntPtrInput `pulumi:"enforcingConsecutiveGatewayFailure"` // The percentage chance that a host will be actually ejected when an outlier status is detected through success rate statistics. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100. EnforcingSuccessRate pulumi.IntPtrInput `pulumi:"enforcingSuccessRate"` // Time interval between ejection analysis sweeps. This can result in both new ejections as well as hosts being returned to service. Defaults to 1 second. Interval DurationPtrInput `pulumi:"interval"` // Maximum percentage of hosts in the load balancing pool for the backend service that can be ejected. Defaults to 50%. MaxEjectionPercent pulumi.IntPtrInput `pulumi:"maxEjectionPercent"` // The number of hosts in a cluster that must have enough request volume to detect success rate outliers. If the number of hosts is less than this setting, outlier detection via success rate statistics is not performed for any host in the cluster. Defaults to 5. SuccessRateMinimumHosts pulumi.IntPtrInput `pulumi:"successRateMinimumHosts"` // The minimum number of total requests that must be collected in one interval (as defined by the interval duration above) to include this host in success rate based outlier detection. If the volume is lower than this setting, outlier detection via success rate statistics is not performed for that host. Defaults to 100. SuccessRateRequestVolume pulumi.IntPtrInput `pulumi:"successRateRequestVolume"` // This factor is used to determine the ejection threshold for success rate outlier ejection. The ejection threshold is the difference between the mean success rate, and the product of this factor and the standard deviation of the mean success rate: mean - (stdev * success_rate_stdev_factor). This factor is divided by a thousand to get a double. That is, if the desired factor is 1.9, the runtime value should be 1900. Defaults to 1900. SuccessRateStdevFactor pulumi.IntPtrInput `pulumi:"successRateStdevFactor"` } func (OutlierDetectionArgs) ElementType() reflect.Type { return reflect.TypeOf((*OutlierDetection)(nil)).Elem() } func (i OutlierDetectionArgs) ToOutlierDetectionOutput() OutlierDetectionOutput { return i.ToOutlierDetectionOutputWithContext(context.Background()) } func (i OutlierDetectionArgs) ToOutlierDetectionOutputWithContext(ctx context.Context) OutlierDetectionOutput { return pulumi.ToOutputWithContext(ctx, i).(OutlierDetectionOutput) } func (i OutlierDetectionArgs) ToOutlierDetectionPtrOutput() OutlierDetectionPtrOutput { return i.ToOutlierDetectionPtrOutputWithContext(context.Background()) } func (i OutlierDetectionArgs) ToOutlierDetectionPtrOutputWithContext(ctx context.Context) OutlierDetectionPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(OutlierDetectionOutput).ToOutlierDetectionPtrOutputWithContext(ctx) } // OutlierDetectionPtrInput is an input type that accepts OutlierDetectionArgs, OutlierDetectionPtr and OutlierDetectionPtrOutput values. // You can construct a concrete instance of `OutlierDetectionPtrInput` via: // // OutlierDetectionArgs{...} // // or: // // nil type OutlierDetectionPtrInput interface { pulumi.Input ToOutlierDetectionPtrOutput() OutlierDetectionPtrOutput ToOutlierDetectionPtrOutputWithContext(context.Context) OutlierDetectionPtrOutput } type outlierDetectionPtrType OutlierDetectionArgs func OutlierDetectionPtr(v *OutlierDetectionArgs) OutlierDetectionPtrInput { return (*outlierDetectionPtrType)(v) } func (*outlierDetectionPtrType) ElementType() reflect.Type { return reflect.TypeOf((**OutlierDetection)(nil)).Elem() } func (i *outlierDetectionPtrType) ToOutlierDetectionPtrOutput() OutlierDetectionPtrOutput { return i.ToOutlierDetectionPtrOutputWithContext(context.Background()) } func (i *outlierDetectionPtrType) ToOutlierDetectionPtrOutputWithContext(ctx context.Context) OutlierDetectionPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(OutlierDetectionPtrOutput) } // Settings controlling the eviction of unhealthy hosts from the load balancing pool for the backend service. type OutlierDetectionOutput struct{ *pulumi.OutputState } func (OutlierDetectionOutput) ElementType() reflect.Type { return reflect.TypeOf((*OutlierDetection)(nil)).Elem() } func (o OutlierDetectionOutput) ToOutlierDetectionOutput() OutlierDetectionOutput { return o } func (o OutlierDetectionOutput) ToOutlierDetectionOutputWithContext(ctx context.Context) OutlierDetectionOutput { return o } func (o OutlierDetectionOutput) ToOutlierDetectionPtrOutput() OutlierDetectionPtrOutput { return o.ToOutlierDetectionPtrOutputWithContext(context.Background()) } func (o OutlierDetectionOutput) ToOutlierDetectionPtrOutputWithContext(ctx context.Context) OutlierDetectionPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v OutlierDetection) *OutlierDetection { return &v }).(OutlierDetectionPtrOutput) } // The base time that a host is ejected for. The real ejection time is equal to the base ejection time multiplied by the number of times the host has been ejected. Defaults to 30000ms or 30s. func (o OutlierDetectionOutput) BaseEjectionTime() DurationPtrOutput { return o.ApplyT(func(v OutlierDetection) *Duration { return v.BaseEjectionTime }).(DurationPtrOutput) } // Number of errors before a host is ejected from the connection pool. When the backend host is accessed over HTTP, a 5xx return code qualifies as an error. Defaults to 5. func (o OutlierDetectionOutput) ConsecutiveErrors() pulumi.IntPtrOutput { return o.ApplyT(func(v OutlierDetection) *int { return v.ConsecutiveErrors }).(pulumi.IntPtrOutput) } // The number of consecutive gateway failures (502, 503, 504 status or connection errors that are mapped to one of those status codes) before a consecutive gateway failure ejection occurs. Defaults to 3. func (o OutlierDetectionOutput) ConsecutiveGatewayFailure() pulumi.IntPtrOutput { return o.ApplyT(func(v OutlierDetection) *int { return v.ConsecutiveGatewayFailure }).(pulumi.IntPtrOutput) } // The percentage chance that a host will be actually ejected when an outlier status is detected through consecutive 5xx. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 0. func (o OutlierDetectionOutput) EnforcingConsecutiveErrors() pulumi.IntPtrOutput { return o.ApplyT(func(v OutlierDetection) *int { return v.EnforcingConsecutiveErrors }).(pulumi.IntPtrOutput) } // The percentage chance that a host will be actually ejected when an outlier status is detected through consecutive gateway failures. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100. func (o OutlierDetectionOutput) EnforcingConsecutiveGatewayFailure() pulumi.IntPtrOutput { return o.ApplyT(func(v OutlierDetection) *int { return v.EnforcingConsecutiveGatewayFailure }).(pulumi.IntPtrOutput) } // The percentage chance that a host will be actually ejected when an outlier status is detected through success rate statistics. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100. func (o OutlierDetectionOutput) EnforcingSuccessRate() pulumi.IntPtrOutput { return o.ApplyT(func(v OutlierDetection) *int { return v.EnforcingSuccessRate }).(pulumi.IntPtrOutput) } // Time interval between ejection analysis sweeps. This can result in both new ejections as well as hosts being returned to service. Defaults to 1 second. func (o OutlierDetectionOutput) Interval() DurationPtrOutput { return o.ApplyT(func(v OutlierDetection) *Duration { return v.Interval }).(DurationPtrOutput) } // Maximum percentage of hosts in the load balancing pool for the backend service that can be ejected. Defaults to 50%. func (o OutlierDetectionOutput) MaxEjectionPercent() pulumi.IntPtrOutput { return o.ApplyT(func(v OutlierDetection) *int { return v.MaxEjectionPercent }).(pulumi.IntPtrOutput) } // The number of hosts in a cluster that must have enough request volume to detect success rate outliers. If the number of hosts is less than this setting, outlier detection via success rate statistics is not performed for any host in the cluster. Defaults to 5. func (o OutlierDetectionOutput) SuccessRateMinimumHosts() pulumi.IntPtrOutput { return o.ApplyT(func(v OutlierDetection) *int { return v.SuccessRateMinimumHosts }).(pulumi.IntPtrOutput) } // The minimum number of total requests that must be collected in one interval (as defined by the interval duration above) to include this host in success rate based outlier detection. If the volume is lower than this setting, outlier detection via success rate statistics is not performed for that host. Defaults to 100. func (o OutlierDetectionOutput) SuccessRateRequestVolume() pulumi.IntPtrOutput { return o.ApplyT(func(v OutlierDetection) *int { return v.SuccessRateRequestVolume }).(pulumi.IntPtrOutput) } // This factor is used to determine the ejection threshold for success rate outlier ejection. The ejection threshold is the difference between the mean success rate, and the product of this factor and the standard deviation of the mean success rate: mean - (stdev * success_rate_stdev_factor). This factor is divided by a thousand to get a double. That is, if the desired factor is 1.9, the runtime value should be 1900. Defaults to 1900. func (o OutlierDetectionOutput) SuccessRateStdevFactor() pulumi.IntPtrOutput { return o.ApplyT(func(v OutlierDetection) *int { return v.SuccessRateStdevFactor }).(pulumi.IntPtrOutput) } type OutlierDetectionPtrOutput struct{ *pulumi.OutputState } func (OutlierDetectionPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**OutlierDetection)(nil)).Elem() } func (o OutlierDetectionPtrOutput) ToOutlierDetectionPtrOutput() OutlierDetectionPtrOutput { return o } func (o OutlierDetectionPtrOutput) ToOutlierDetectionPtrOutputWithContext(ctx context.Context) OutlierDetectionPtrOutput { return o } func (o OutlierDetectionPtrOutput) Elem() OutlierDetectionOutput { return o.ApplyT(func(v *OutlierDetection) OutlierDetection { if v != nil { return *v } var ret OutlierDetection return ret }).(OutlierDetectionOutput) } // The base time that a host is ejected for. The real ejection time is equal to the base ejection time multiplied by the number of times the host has been ejected. Defaults to 30000ms or 30s. func (o OutlierDetectionPtrOutput) BaseEjectionTime() DurationPtrOutput { return o.ApplyT(func(v *OutlierDetection) *Duration { if v == nil { return nil } return v.BaseEjectionTime }).(DurationPtrOutput) } // Number of errors before a host is ejected from the connection pool. When the backend host is accessed over HTTP, a 5xx return code qualifies as an error. Defaults to 5. func (o OutlierDetectionPtrOutput) ConsecutiveErrors() pulumi.IntPtrOutput { return o.ApplyT(func(v *OutlierDetection) *int { if v == nil { return nil } return v.ConsecutiveErrors }).(pulumi.IntPtrOutput) } // The number of consecutive gateway failures (502, 503, 504 status or connection errors that are mapped to one of those status codes) before a consecutive gateway failure ejection occurs. Defaults to 3. func (o OutlierDetectionPtrOutput) ConsecutiveGatewayFailure() pulumi.IntPtrOutput { return o.ApplyT(func(v *OutlierDetection) *int { if v == nil { return nil } return v.ConsecutiveGatewayFailure }).(pulumi.IntPtrOutput) } // The percentage chance that a host will be actually ejected when an outlier status is detected through consecutive 5xx. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 0. func (o OutlierDetectionPtrOutput) EnforcingConsecutiveErrors() pulumi.IntPtrOutput { return o.ApplyT(func(v *OutlierDetection) *int { if v == nil { return nil } return v.EnforcingConsecutiveErrors }).(pulumi.IntPtrOutput) } // The percentage chance that a host will be actually ejected when an outlier status is detected through consecutive gateway failures. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100. func (o OutlierDetectionPtrOutput) EnforcingConsecutiveGatewayFailure() pulumi.IntPtrOutput { return o.ApplyT(func(v *OutlierDetection) *int { if v == nil { return nil } return v.EnforcingConsecutiveGatewayFailure }).(pulumi.IntPtrOutput) } // The percentage chance that a host will be actually ejected when an outlier status is detected through success rate statistics. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100. func (o OutlierDetectionPtrOutput) EnforcingSuccessRate() pulumi.IntPtrOutput { return o.ApplyT(func(v *OutlierDetection) *int { if v == nil { return nil } return v.EnforcingSuccessRate }).(pulumi.IntPtrOutput) } // Time interval between ejection analysis sweeps. This can result in both new ejections as well as hosts being returned to service. Defaults to 1 second. func (o OutlierDetectionPtrOutput) Interval() DurationPtrOutput { return o.ApplyT(func(v *OutlierDetection) *Duration { if v == nil { return nil } return v.Interval }).(DurationPtrOutput) } // Maximum percentage of hosts in the load balancing pool for the backend service that can be ejected. Defaults to 50%. func (o OutlierDetectionPtrOutput) MaxEjectionPercent() pulumi.IntPtrOutput { return o.ApplyT(func(v *OutlierDetection) *int { if v == nil { return nil } return v.MaxEjectionPercent }).(pulumi.IntPtrOutput) } // The number of hosts in a cluster that must have enough request volume to detect success rate outliers. If the number of hosts is less than this setting, outlier detection via success rate statistics is not performed for any host in the cluster. Defaults to 5. func (o OutlierDetectionPtrOutput) SuccessRateMinimumHosts() pulumi.IntPtrOutput { return o.ApplyT(func(v *OutlierDetection) *int { if v == nil { return nil } return v.SuccessRateMinimumHosts }).(pulumi.IntPtrOutput) } // The minimum number of total requests that must be collected in one interval (as defined by the interval duration above) to include this host in success rate based outlier detection. If the volume is lower than this setting, outlier detection via success rate statistics is not performed for that host. Defaults to 100. func (o OutlierDetectionPtrOutput) SuccessRateRequestVolume() pulumi.IntPtrOutput { return o.ApplyT(func(v *OutlierDetection) *int { if v == nil { return nil } return v.SuccessRateRequestVolume }).(pulumi.IntPtrOutput) } // This factor is used to determine the ejection threshold for success rate outlier ejection. The ejection threshold is the difference between the mean success rate, and the product of this factor and the standard deviation of the mean success rate: mean - (stdev * success_rate_stdev_factor). This factor is divided by a thousand to get a double. That is, if the desired factor is 1.9, the runtime value should be 1900. Defaults to 1900. func (o OutlierDetectionPtrOutput) SuccessRateStdevFactor() pulumi.IntPtrOutput { return o.ApplyT(func(v *OutlierDetection) *int { if v == nil { return nil } return v.SuccessRateStdevFactor }).(pulumi.IntPtrOutput) } // Settings controlling the eviction of unhealthy hosts from the load balancing pool for the backend service. type OutlierDetectionResponse struct { // The base time that a host is ejected for. The real ejection time is equal to the base ejection time multiplied by the number of times the host has been ejected. Defaults to 30000ms or 30s. BaseEjectionTime DurationResponse `pulumi:"baseEjectionTime"` // Number of errors before a host is ejected from the connection pool. When the backend host is accessed over HTTP, a 5xx return code qualifies as an error. Defaults to 5. ConsecutiveErrors int `pulumi:"consecutiveErrors"` // The number of consecutive gateway failures (502, 503, 504 status or connection errors that are mapped to one of those status codes) before a consecutive gateway failure ejection occurs. Defaults to 3. ConsecutiveGatewayFailure int `pulumi:"consecutiveGatewayFailure"` // The percentage chance that a host will be actually ejected when an outlier status is detected through consecutive 5xx. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 0. EnforcingConsecutiveErrors int `pulumi:"enforcingConsecutiveErrors"` // The percentage chance that a host will be actually ejected when an outlier status is detected through consecutive gateway failures. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100. EnforcingConsecutiveGatewayFailure int `pulumi:"enforcingConsecutiveGatewayFailure"` // The percentage chance that a host will be actually ejected when an outlier status is detected through success rate statistics. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100. EnforcingSuccessRate int `pulumi:"enforcingSuccessRate"` // Time interval between ejection analysis sweeps. This can result in both new ejections as well as hosts being returned to service. Defaults to 1 second. Interval DurationResponse `pulumi:"interval"` // Maximum percentage of hosts in the load balancing pool for the backend service that can be ejected. Defaults to 50%. MaxEjectionPercent int `pulumi:"maxEjectionPercent"` // The number of hosts in a cluster that must have enough request volume to detect success rate outliers. If the number of hosts is less than this setting, outlier detection via success rate statistics is not performed for any host in the cluster. Defaults to 5. SuccessRateMinimumHosts int `pulumi:"successRateMinimumHosts"` // The minimum number of total requests that must be collected in one interval (as defined by the interval duration above) to include this host in success rate based outlier detection. If the volume is lower than this setting, outlier detection via success rate statistics is not performed for that host. Defaults to 100. SuccessRateRequestVolume int `pulumi:"successRateRequestVolume"` // This factor is used to determine the ejection threshold for success rate outlier ejection. The ejection threshold is the difference between the mean success rate, and the product of this factor and the standard deviation of the mean success rate: mean - (stdev * success_rate_stdev_factor). This factor is divided by a thousand to get a double. That is, if the desired factor is 1.9, the runtime value should be 1900. Defaults to 1900. SuccessRateStdevFactor int `pulumi:"successRateStdevFactor"` } // Settings controlling the eviction of unhealthy hosts from the load balancing pool for the backend service. type OutlierDetectionResponseOutput struct{ *pulumi.OutputState } func (OutlierDetectionResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*OutlierDetectionResponse)(nil)).Elem() } func (o OutlierDetectionResponseOutput) ToOutlierDetectionResponseOutput() OutlierDetectionResponseOutput { return o } func (o OutlierDetectionResponseOutput) ToOutlierDetectionResponseOutputWithContext(ctx context.Context) OutlierDetectionResponseOutput { return o } // The base time that a host is ejected for. The real ejection time is equal to the base ejection time multiplied by the number of times the host has been ejected. Defaults to 30000ms or 30s. func (o OutlierDetectionResponseOutput) BaseEjectionTime() DurationResponseOutput { return o.ApplyT(func(v OutlierDetectionResponse) DurationResponse { return v.BaseEjectionTime }).(DurationResponseOutput) } // Number of errors before a host is ejected from the connection pool. When the backend host is accessed over HTTP, a 5xx return code qualifies as an error. Defaults to 5. func (o OutlierDetectionResponseOutput) ConsecutiveErrors() pulumi.IntOutput { return o.ApplyT(func(v OutlierDetectionResponse) int { return v.ConsecutiveErrors }).(pulumi.IntOutput) } // The number of consecutive gateway failures (502, 503, 504 status or connection errors that are mapped to one of those status codes) before a consecutive gateway failure ejection occurs. Defaults to 3. func (o OutlierDetectionResponseOutput) ConsecutiveGatewayFailure() pulumi.IntOutput { return o.ApplyT(func(v OutlierDetectionResponse) int { return v.ConsecutiveGatewayFailure }).(pulumi.IntOutput) } // The percentage chance that a host will be actually ejected when an outlier status is detected through consecutive 5xx. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 0. func (o OutlierDetectionResponseOutput) EnforcingConsecutiveErrors() pulumi.IntOutput { return o.ApplyT(func(v OutlierDetectionResponse) int { return v.EnforcingConsecutiveErrors }).(pulumi.IntOutput) } // The percentage chance that a host will be actually ejected when an outlier status is detected through consecutive gateway failures. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100. func (o OutlierDetectionResponseOutput) EnforcingConsecutiveGatewayFailure() pulumi.IntOutput { return o.ApplyT(func(v OutlierDetectionResponse) int { return v.EnforcingConsecutiveGatewayFailure }).(pulumi.IntOutput) } // The percentage chance that a host will be actually ejected when an outlier status is detected through success rate statistics. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100. func (o OutlierDetectionResponseOutput) EnforcingSuccessRate() pulumi.IntOutput { return o.ApplyT(func(v OutlierDetectionResponse) int { return v.EnforcingSuccessRate }).(pulumi.IntOutput) } // Time interval between ejection analysis sweeps. This can result in both new ejections as well as hosts being returned to service. Defaults to 1 second. func (o OutlierDetectionResponseOutput) Interval() DurationResponseOutput { return o.ApplyT(func(v OutlierDetectionResponse) DurationResponse { return v.Interval }).(DurationResponseOutput) } // Maximum percentage of hosts in the load balancing pool for the backend service that can be ejected. Defaults to 50%. func (o OutlierDetectionResponseOutput) MaxEjectionPercent() pulumi.IntOutput { return o.ApplyT(func(v OutlierDetectionResponse) int { return v.MaxEjectionPercent }).(pulumi.IntOutput) } // The number of hosts in a cluster that must have enough request volume to detect success rate outliers. If the number of hosts is less than this setting, outlier detection via success rate statistics is not performed for any host in the cluster. Defaults to 5. func (o OutlierDetectionResponseOutput) SuccessRateMinimumHosts() pulumi.IntOutput { return o.ApplyT(func(v OutlierDetectionResponse) int { return v.SuccessRateMinimumHosts }).(pulumi.IntOutput) } // The minimum number of total requests that must be collected in one interval (as defined by the interval duration above) to include this host in success rate based outlier detection. If the volume is lower than this setting, outlier detection via success rate statistics is not performed for that host. Defaults to 100. func (o OutlierDetectionResponseOutput) SuccessRateRequestVolume() pulumi.IntOutput { return o.ApplyT(func(v OutlierDetectionResponse) int { return v.SuccessRateRequestVolume }).(pulumi.IntOutput) } // This factor is used to determine the ejection threshold for success rate outlier ejection. The ejection threshold is the difference between the mean success rate, and the product of this factor and the standard deviation of the mean success rate: mean - (stdev * success_rate_stdev_factor). This factor is divided by a thousand to get a double. That is, if the desired factor is 1.9, the runtime value should be 1900. Defaults to 1900. func (o OutlierDetectionResponseOutput) SuccessRateStdevFactor() pulumi.IntOutput { return o.ApplyT(func(v OutlierDetectionResponse) int { return v.SuccessRateStdevFactor }).(pulumi.IntOutput) } type PacketMirroringFilter struct { // IP CIDR ranges that apply as filter on the source (ingress) or destination (egress) IP in the IP header. Only IPv4 is supported. If no ranges are specified, all traffic that matches the specified IPProtocols is mirrored. If neither cidrRanges nor IPProtocols is specified, all traffic is mirrored. CidrRanges []string `pulumi:"cidrRanges"` // Direction of traffic to mirror, either INGRESS, EGRESS, or BOTH. The default is BOTH. Direction *PacketMirroringFilterDirection `pulumi:"direction"` // Protocols that apply as filter on mirrored traffic. If no protocols are specified, all traffic that matches the specified CIDR ranges is mirrored. If neither cidrRanges nor IPProtocols is specified, all traffic is mirrored. IpProtocols []string `pulumi:"ipProtocols"` } // PacketMirroringFilterInput is an input type that accepts PacketMirroringFilterArgs and PacketMirroringFilterOutput values. // You can construct a concrete instance of `PacketMirroringFilterInput` via: // // PacketMirroringFilterArgs{...} type PacketMirroringFilterInput interface { pulumi.Input ToPacketMirroringFilterOutput() PacketMirroringFilterOutput ToPacketMirroringFilterOutputWithContext(context.Context) PacketMirroringFilterOutput } type PacketMirroringFilterArgs struct { // IP CIDR ranges that apply as filter on the source (ingress) or destination (egress) IP in the IP header. Only IPv4 is supported. If no ranges are specified, all traffic that matches the specified IPProtocols is mirrored. If neither cidrRanges nor IPProtocols is specified, all traffic is mirrored. CidrRanges pulumi.StringArrayInput `pulumi:"cidrRanges"` // Direction of traffic to mirror, either INGRESS, EGRESS, or BOTH. The default is BOTH. Direction PacketMirroringFilterDirectionPtrInput `pulumi:"direction"` // Protocols that apply as filter on mirrored traffic. If no protocols are specified, all traffic that matches the specified CIDR ranges is mirrored. If neither cidrRanges nor IPProtocols is specified, all traffic is mirrored. IpProtocols pulumi.StringArrayInput `pulumi:"ipProtocols"` } func (PacketMirroringFilterArgs) ElementType() reflect.Type { return reflect.TypeOf((*PacketMirroringFilter)(nil)).Elem() } func (i PacketMirroringFilterArgs) ToPacketMirroringFilterOutput() PacketMirroringFilterOutput { return i.ToPacketMirroringFilterOutputWithContext(context.Background()) } func (i PacketMirroringFilterArgs) ToPacketMirroringFilterOutputWithContext(ctx context.Context) PacketMirroringFilterOutput { return pulumi.ToOutputWithContext(ctx, i).(PacketMirroringFilterOutput) } func (i PacketMirroringFilterArgs) ToPacketMirroringFilterPtrOutput() PacketMirroringFilterPtrOutput { return i.ToPacketMirroringFilterPtrOutputWithContext(context.Background()) } func (i PacketMirroringFilterArgs) ToPacketMirroringFilterPtrOutputWithContext(ctx context.Context) PacketMirroringFilterPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(PacketMirroringFilterOutput).ToPacketMirroringFilterPtrOutputWithContext(ctx) } // PacketMirroringFilterPtrInput is an input type that accepts PacketMirroringFilterArgs, PacketMirroringFilterPtr and PacketMirroringFilterPtrOutput values. // You can construct a concrete instance of `PacketMirroringFilterPtrInput` via: // // PacketMirroringFilterArgs{...} // // or: // // nil type PacketMirroringFilterPtrInput interface { pulumi.Input ToPacketMirroringFilterPtrOutput() PacketMirroringFilterPtrOutput ToPacketMirroringFilterPtrOutputWithContext(context.Context) PacketMirroringFilterPtrOutput } type packetMirroringFilterPtrType PacketMirroringFilterArgs func PacketMirroringFilterPtr(v *PacketMirroringFilterArgs) PacketMirroringFilterPtrInput { return (*packetMirroringFilterPtrType)(v) } func (*packetMirroringFilterPtrType) ElementType() reflect.Type { return reflect.TypeOf((**PacketMirroringFilter)(nil)).Elem() } func (i *packetMirroringFilterPtrType) ToPacketMirroringFilterPtrOutput() PacketMirroringFilterPtrOutput { return i.ToPacketMirroringFilterPtrOutputWithContext(context.Background()) } func (i *packetMirroringFilterPtrType) ToPacketMirroringFilterPtrOutputWithContext(ctx context.Context) PacketMirroringFilterPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(PacketMirroringFilterPtrOutput) } type PacketMirroringFilterOutput struct{ *pulumi.OutputState } func (PacketMirroringFilterOutput) ElementType() reflect.Type { return reflect.TypeOf((*PacketMirroringFilter)(nil)).Elem() } func (o PacketMirroringFilterOutput) ToPacketMirroringFilterOutput() PacketMirroringFilterOutput { return o } func (o PacketMirroringFilterOutput) ToPacketMirroringFilterOutputWithContext(ctx context.Context) PacketMirroringFilterOutput { return o } func (o PacketMirroringFilterOutput) ToPacketMirroringFilterPtrOutput() PacketMirroringFilterPtrOutput { return o.ToPacketMirroringFilterPtrOutputWithContext(context.Background()) } func (o PacketMirroringFilterOutput) ToPacketMirroringFilterPtrOutputWithContext(ctx context.Context) PacketMirroringFilterPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v PacketMirroringFilter) *PacketMirroringFilter { return &v }).(PacketMirroringFilterPtrOutput) } // IP CIDR ranges that apply as filter on the source (ingress) or destination (egress) IP in the IP header. Only IPv4 is supported. If no ranges are specified, all traffic that matches the specified IPProtocols is mirrored. If neither cidrRanges nor IPProtocols is specified, all traffic is mirrored. func (o PacketMirroringFilterOutput) CidrRanges() pulumi.StringArrayOutput { return o.ApplyT(func(v PacketMirroringFilter) []string { return v.CidrRanges }).(pulumi.StringArrayOutput) } // Direction of traffic to mirror, either INGRESS, EGRESS, or BOTH. The default is BOTH. func (o PacketMirroringFilterOutput) Direction() PacketMirroringFilterDirectionPtrOutput { return o.ApplyT(func(v PacketMirroringFilter) *PacketMirroringFilterDirection { return v.Direction }).(PacketMirroringFilterDirectionPtrOutput) } // Protocols that apply as filter on mirrored traffic. If no protocols are specified, all traffic that matches the specified CIDR ranges is mirrored. If neither cidrRanges nor IPProtocols is specified, all traffic is mirrored. func (o PacketMirroringFilterOutput) IpProtocols() pulumi.StringArrayOutput { return o.ApplyT(func(v PacketMirroringFilter) []string { return v.IpProtocols }).(pulumi.StringArrayOutput) } type PacketMirroringFilterPtrOutput struct{ *pulumi.OutputState } func (PacketMirroringFilterPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**PacketMirroringFilter)(nil)).Elem() } func (o PacketMirroringFilterPtrOutput) ToPacketMirroringFilterPtrOutput() PacketMirroringFilterPtrOutput { return o } func (o PacketMirroringFilterPtrOutput) ToPacketMirroringFilterPtrOutputWithContext(ctx context.Context) PacketMirroringFilterPtrOutput { return o } func (o PacketMirroringFilterPtrOutput) Elem() PacketMirroringFilterOutput { return o.ApplyT(func(v *PacketMirroringFilter) PacketMirroringFilter { if v != nil { return *v } var ret PacketMirroringFilter return ret }).(PacketMirroringFilterOutput) } // IP CIDR ranges that apply as filter on the source (ingress) or destination (egress) IP in the IP header. Only IPv4 is supported. If no ranges are specified, all traffic that matches the specified IPProtocols is mirrored. If neither cidrRanges nor IPProtocols is specified, all traffic is mirrored. func (o PacketMirroringFilterPtrOutput) CidrRanges() pulumi.StringArrayOutput { return o.ApplyT(func(v *PacketMirroringFilter) []string { if v == nil { return nil } return v.CidrRanges }).(pulumi.StringArrayOutput) } // Direction of traffic to mirror, either INGRESS, EGRESS, or BOTH. The default is BOTH. func (o PacketMirroringFilterPtrOutput) Direction() PacketMirroringFilterDirectionPtrOutput { return o.ApplyT(func(v *PacketMirroringFilter) *PacketMirroringFilterDirection { if v == nil { return nil } return v.Direction }).(PacketMirroringFilterDirectionPtrOutput) } // Protocols that apply as filter on mirrored traffic. If no protocols are specified, all traffic that matches the specified CIDR ranges is mirrored. If neither cidrRanges nor IPProtocols is specified, all traffic is mirrored. func (o PacketMirroringFilterPtrOutput) IpProtocols() pulumi.StringArrayOutput { return o.ApplyT(func(v *PacketMirroringFilter) []string { if v == nil { return nil } return v.IpProtocols }).(pulumi.StringArrayOutput) } type PacketMirroringFilterResponse struct { // IP CIDR ranges that apply as filter on the source (ingress) or destination (egress) IP in the IP header. Only IPv4 is supported. If no ranges are specified, all traffic that matches the specified IPProtocols is mirrored. If neither cidrRanges nor IPProtocols is specified, all traffic is mirrored. CidrRanges []string `pulumi:"cidrRanges"` // Direction of traffic to mirror, either INGRESS, EGRESS, or BOTH. The default is BOTH. Direction string `pulumi:"direction"` // Protocols that apply as filter on mirrored traffic. If no protocols are specified, all traffic that matches the specified CIDR ranges is mirrored. If neither cidrRanges nor IPProtocols is specified, all traffic is mirrored. IpProtocols []string `pulumi:"ipProtocols"` } type PacketMirroringFilterResponseOutput struct{ *pulumi.OutputState } func (PacketMirroringFilterResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*PacketMirroringFilterResponse)(nil)).Elem() } func (o PacketMirroringFilterResponseOutput) ToPacketMirroringFilterResponseOutput() PacketMirroringFilterResponseOutput { return o } func (o PacketMirroringFilterResponseOutput) ToPacketMirroringFilterResponseOutputWithContext(ctx context.Context) PacketMirroringFilterResponseOutput { return o } // IP CIDR ranges that apply as filter on the source (ingress) or destination (egress) IP in the IP header. Only IPv4 is supported. If no ranges are specified, all traffic that matches the specified IPProtocols is mirrored. If neither cidrRanges nor IPProtocols is specified, all traffic is mirrored. func (o PacketMirroringFilterResponseOutput) CidrRanges() pulumi.StringArrayOutput { return o.ApplyT(func(v PacketMirroringFilterResponse) []string { return v.CidrRanges }).(pulumi.StringArrayOutput) } // Direction of traffic to mirror, either INGRESS, EGRESS, or BOTH. The default is BOTH. func (o PacketMirroringFilterResponseOutput) Direction() pulumi.StringOutput { return o.ApplyT(func(v PacketMirroringFilterResponse) string { return v.Direction }).(pulumi.StringOutput) } // Protocols that apply as filter on mirrored traffic. If no protocols are specified, all traffic that matches the specified CIDR ranges is mirrored. If neither cidrRanges nor IPProtocols is specified, all traffic is mirrored. func (o PacketMirroringFilterResponseOutput) IpProtocols() pulumi.StringArrayOutput { return o.ApplyT(func(v PacketMirroringFilterResponse) []string { return v.IpProtocols }).(pulumi.StringArrayOutput) } type PacketMirroringForwardingRuleInfo struct { // Resource URL to the forwarding rule representing the ILB configured as destination of the mirrored traffic. Url *string `pulumi:"url"` } // PacketMirroringForwardingRuleInfoInput is an input type that accepts PacketMirroringForwardingRuleInfoArgs and PacketMirroringForwardingRuleInfoOutput values. // You can construct a concrete instance of `PacketMirroringForwardingRuleInfoInput` via: // // PacketMirroringForwardingRuleInfoArgs{...} type PacketMirroringForwardingRuleInfoInput interface { pulumi.Input ToPacketMirroringForwardingRuleInfoOutput() PacketMirroringForwardingRuleInfoOutput ToPacketMirroringForwardingRuleInfoOutputWithContext(context.Context) PacketMirroringForwardingRuleInfoOutput } type PacketMirroringForwardingRuleInfoArgs struct { // Resource URL to the forwarding rule representing the ILB configured as destination of the mirrored traffic. Url pulumi.StringPtrInput `pulumi:"url"` } func (PacketMirroringForwardingRuleInfoArgs) ElementType() reflect.Type { return reflect.TypeOf((*PacketMirroringForwardingRuleInfo)(nil)).Elem() } func (i PacketMirroringForwardingRuleInfoArgs) ToPacketMirroringForwardingRuleInfoOutput() PacketMirroringForwardingRuleInfoOutput { return i.ToPacketMirroringForwardingRuleInfoOutputWithContext(context.Background()) } func (i PacketMirroringForwardingRuleInfoArgs) ToPacketMirroringForwardingRuleInfoOutputWithContext(ctx context.Context) PacketMirroringForwardingRuleInfoOutput { return pulumi.ToOutputWithContext(ctx, i).(PacketMirroringForwardingRuleInfoOutput) } func (i PacketMirroringForwardingRuleInfoArgs) ToPacketMirroringForwardingRuleInfoPtrOutput() PacketMirroringForwardingRuleInfoPtrOutput { return i.ToPacketMirroringForwardingRuleInfoPtrOutputWithContext(context.Background()) } func (i PacketMirroringForwardingRuleInfoArgs) ToPacketMirroringForwardingRuleInfoPtrOutputWithContext(ctx context.Context) PacketMirroringForwardingRuleInfoPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(PacketMirroringForwardingRuleInfoOutput).ToPacketMirroringForwardingRuleInfoPtrOutputWithContext(ctx) } // PacketMirroringForwardingRuleInfoPtrInput is an input type that accepts PacketMirroringForwardingRuleInfoArgs, PacketMirroringForwardingRuleInfoPtr and PacketMirroringForwardingRuleInfoPtrOutput values. // You can construct a concrete instance of `PacketMirroringForwardingRuleInfoPtrInput` via: // // PacketMirroringForwardingRuleInfoArgs{...} // // or: // // nil type PacketMirroringForwardingRuleInfoPtrInput interface { pulumi.Input ToPacketMirroringForwardingRuleInfoPtrOutput() PacketMirroringForwardingRuleInfoPtrOutput ToPacketMirroringForwardingRuleInfoPtrOutputWithContext(context.Context) PacketMirroringForwardingRuleInfoPtrOutput } type packetMirroringForwardingRuleInfoPtrType PacketMirroringForwardingRuleInfoArgs func PacketMirroringForwardingRuleInfoPtr(v *PacketMirroringForwardingRuleInfoArgs) PacketMirroringForwardingRuleInfoPtrInput { return (*packetMirroringForwardingRuleInfoPtrType)(v) } func (*packetMirroringForwardingRuleInfoPtrType) ElementType() reflect.Type { return reflect.TypeOf((**PacketMirroringForwardingRuleInfo)(nil)).Elem() } func (i *packetMirroringForwardingRuleInfoPtrType) ToPacketMirroringForwardingRuleInfoPtrOutput() PacketMirroringForwardingRuleInfoPtrOutput { return i.ToPacketMirroringForwardingRuleInfoPtrOutputWithContext(context.Background()) } func (i *packetMirroringForwardingRuleInfoPtrType) ToPacketMirroringForwardingRuleInfoPtrOutputWithContext(ctx context.Context) PacketMirroringForwardingRuleInfoPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(PacketMirroringForwardingRuleInfoPtrOutput) } type PacketMirroringForwardingRuleInfoOutput struct{ *pulumi.OutputState } func (PacketMirroringForwardingRuleInfoOutput) ElementType() reflect.Type { return reflect.TypeOf((*PacketMirroringForwardingRuleInfo)(nil)).Elem() } func (o PacketMirroringForwardingRuleInfoOutput) ToPacketMirroringForwardingRuleInfoOutput() PacketMirroringForwardingRuleInfoOutput { return o } func (o PacketMirroringForwardingRuleInfoOutput) ToPacketMirroringForwardingRuleInfoOutputWithContext(ctx context.Context) PacketMirroringForwardingRuleInfoOutput { return o } func (o PacketMirroringForwardingRuleInfoOutput) ToPacketMirroringForwardingRuleInfoPtrOutput() PacketMirroringForwardingRuleInfoPtrOutput { return o.ToPacketMirroringForwardingRuleInfoPtrOutputWithContext(context.Background()) } func (o PacketMirroringForwardingRuleInfoOutput) ToPacketMirroringForwardingRuleInfoPtrOutputWithContext(ctx context.Context) PacketMirroringForwardingRuleInfoPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v PacketMirroringForwardingRuleInfo) *PacketMirroringForwardingRuleInfo { return &v }).(PacketMirroringForwardingRuleInfoPtrOutput) } // Resource URL to the forwarding rule representing the ILB configured as destination of the mirrored traffic. func (o PacketMirroringForwardingRuleInfoOutput) Url() pulumi.StringPtrOutput { return o.ApplyT(func(v PacketMirroringForwardingRuleInfo) *string { return v.Url }).(pulumi.StringPtrOutput) } type PacketMirroringForwardingRuleInfoPtrOutput struct{ *pulumi.OutputState } func (PacketMirroringForwardingRuleInfoPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**PacketMirroringForwardingRuleInfo)(nil)).Elem() } func (o PacketMirroringForwardingRuleInfoPtrOutput) ToPacketMirroringForwardingRuleInfoPtrOutput() PacketMirroringForwardingRuleInfoPtrOutput { return o } func (o PacketMirroringForwardingRuleInfoPtrOutput) ToPacketMirroringForwardingRuleInfoPtrOutputWithContext(ctx context.Context) PacketMirroringForwardingRuleInfoPtrOutput { return o } func (o PacketMirroringForwardingRuleInfoPtrOutput) Elem() PacketMirroringForwardingRuleInfoOutput { return o.ApplyT(func(v *PacketMirroringForwardingRuleInfo) PacketMirroringForwardingRuleInfo { if v != nil { return *v } var ret PacketMirroringForwardingRuleInfo return ret }).(PacketMirroringForwardingRuleInfoOutput) } // Resource URL to the forwarding rule representing the ILB configured as destination of the mirrored traffic. func (o PacketMirroringForwardingRuleInfoPtrOutput) Url() pulumi.StringPtrOutput { return o.ApplyT(func(v *PacketMirroringForwardingRuleInfo) *string { if v == nil { return nil } return v.Url }).(pulumi.StringPtrOutput) } type PacketMirroringForwardingRuleInfoResponse struct { // Unique identifier for the forwarding rule; defined by the server. CanonicalUrl string `pulumi:"canonicalUrl"` // Resource URL to the forwarding rule representing the ILB configured as destination of the mirrored traffic. Url string `pulumi:"url"` } type PacketMirroringForwardingRuleInfoResponseOutput struct{ *pulumi.OutputState } func (PacketMirroringForwardingRuleInfoResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*PacketMirroringForwardingRuleInfoResponse)(nil)).Elem() } func (o PacketMirroringForwardingRuleInfoResponseOutput) ToPacketMirroringForwardingRuleInfoResponseOutput() PacketMirroringForwardingRuleInfoResponseOutput { return o } func (o PacketMirroringForwardingRuleInfoResponseOutput) ToPacketMirroringForwardingRuleInfoResponseOutputWithContext(ctx context.Context) PacketMirroringForwardingRuleInfoResponseOutput { return o } // Unique identifier for the forwarding rule; defined by the server. func (o PacketMirroringForwardingRuleInfoResponseOutput) CanonicalUrl() pulumi.StringOutput { return o.ApplyT(func(v PacketMirroringForwardingRuleInfoResponse) string { return v.CanonicalUrl }).(pulumi.StringOutput) } // Resource URL to the forwarding rule representing the ILB configured as destination of the mirrored traffic. func (o PacketMirroringForwardingRuleInfoResponseOutput) Url() pulumi.StringOutput { return o.ApplyT(func(v PacketMirroringForwardingRuleInfoResponse) string { return v.Url }).(pulumi.StringOutput) } type PacketMirroringMirroredResourceInfo struct { // A set of virtual machine instances that are being mirrored. They must live in zones contained in the same region as this packetMirroring. Note that this config will apply only to those network interfaces of the Instances that belong to the network specified in this packetMirroring. You may specify a maximum of 50 Instances. Instances []PacketMirroringMirroredResourceInfoInstanceInfo `pulumi:"instances"` // A set of subnetworks for which traffic from/to all VM instances will be mirrored. They must live in the same region as this packetMirroring. You may specify a maximum of 5 subnetworks. Subnetworks []PacketMirroringMirroredResourceInfoSubnetInfo `pulumi:"subnetworks"` // A set of mirrored tags. Traffic from/to all VM instances that have one or more of these tags will be mirrored. Tags []string `pulumi:"tags"` } // PacketMirroringMirroredResourceInfoInput is an input type that accepts PacketMirroringMirroredResourceInfoArgs and PacketMirroringMirroredResourceInfoOutput values. // You can construct a concrete instance of `PacketMirroringMirroredResourceInfoInput` via: // // PacketMirroringMirroredResourceInfoArgs{...} type PacketMirroringMirroredResourceInfoInput interface { pulumi.Input ToPacketMirroringMirroredResourceInfoOutput() PacketMirroringMirroredResourceInfoOutput ToPacketMirroringMirroredResourceInfoOutputWithContext(context.Context) PacketMirroringMirroredResourceInfoOutput } type PacketMirroringMirroredResourceInfoArgs struct { // A set of virtual machine instances that are being mirrored. They must live in zones contained in the same region as this packetMirroring. Note that this config will apply only to those network interfaces of the Instances that belong to the network specified in this packetMirroring. You may specify a maximum of 50 Instances. Instances PacketMirroringMirroredResourceInfoInstanceInfoArrayInput `pulumi:"instances"` // A set of subnetworks for which traffic from/to all VM instances will be mirrored. They must live in the same region as this packetMirroring. You may specify a maximum of 5 subnetworks. Subnetworks PacketMirroringMirroredResourceInfoSubnetInfoArrayInput `pulumi:"subnetworks"` // A set of mirrored tags. Traffic from/to all VM instances that have one or more of these tags will be mirrored. Tags pulumi.StringArrayInput `pulumi:"tags"` } func (PacketMirroringMirroredResourceInfoArgs) ElementType() reflect.Type { return reflect.TypeOf((*PacketMirroringMirroredResourceInfo)(nil)).Elem() } func (i PacketMirroringMirroredResourceInfoArgs) ToPacketMirroringMirroredResourceInfoOutput() PacketMirroringMirroredResourceInfoOutput { return i.ToPacketMirroringMirroredResourceInfoOutputWithContext(context.Background()) } func (i PacketMirroringMirroredResourceInfoArgs) ToPacketMirroringMirroredResourceInfoOutputWithContext(ctx context.Context) PacketMirroringMirroredResourceInfoOutput { return pulumi.ToOutputWithContext(ctx, i).(PacketMirroringMirroredResourceInfoOutput) } func (i PacketMirroringMirroredResourceInfoArgs) ToPacketMirroringMirroredResourceInfoPtrOutput() PacketMirroringMirroredResourceInfoPtrOutput { return i.ToPacketMirroringMirroredResourceInfoPtrOutputWithContext(context.Background()) } func (i PacketMirroringMirroredResourceInfoArgs) ToPacketMirroringMirroredResourceInfoPtrOutputWithContext(ctx context.Context) PacketMirroringMirroredResourceInfoPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(PacketMirroringMirroredResourceInfoOutput).ToPacketMirroringMirroredResourceInfoPtrOutputWithContext(ctx) } // PacketMirroringMirroredResourceInfoPtrInput is an input type that accepts PacketMirroringMirroredResourceInfoArgs, PacketMirroringMirroredResourceInfoPtr and PacketMirroringMirroredResourceInfoPtrOutput values. // You can construct a concrete instance of `PacketMirroringMirroredResourceInfoPtrInput` via: // // PacketMirroringMirroredResourceInfoArgs{...} // // or: // // nil type PacketMirroringMirroredResourceInfoPtrInput interface { pulumi.Input ToPacketMirroringMirroredResourceInfoPtrOutput() PacketMirroringMirroredResourceInfoPtrOutput ToPacketMirroringMirroredResourceInfoPtrOutputWithContext(context.Context) PacketMirroringMirroredResourceInfoPtrOutput } type packetMirroringMirroredResourceInfoPtrType PacketMirroringMirroredResourceInfoArgs func PacketMirroringMirroredResourceInfoPtr(v *PacketMirroringMirroredResourceInfoArgs) PacketMirroringMirroredResourceInfoPtrInput { return (*packetMirroringMirroredResourceInfoPtrType)(v) } func (*packetMirroringMirroredResourceInfoPtrType) ElementType() reflect.Type { return reflect.TypeOf((**PacketMirroringMirroredResourceInfo)(nil)).Elem() } func (i *packetMirroringMirroredResourceInfoPtrType) ToPacketMirroringMirroredResourceInfoPtrOutput() PacketMirroringMirroredResourceInfoPtrOutput { return i.ToPacketMirroringMirroredResourceInfoPtrOutputWithContext(context.Background()) } func (i *packetMirroringMirroredResourceInfoPtrType) ToPacketMirroringMirroredResourceInfoPtrOutputWithContext(ctx context.Context) PacketMirroringMirroredResourceInfoPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(PacketMirroringMirroredResourceInfoPtrOutput) } type PacketMirroringMirroredResourceInfoOutput struct{ *pulumi.OutputState } func (PacketMirroringMirroredResourceInfoOutput) ElementType() reflect.Type { return reflect.TypeOf((*PacketMirroringMirroredResourceInfo)(nil)).Elem() } func (o PacketMirroringMirroredResourceInfoOutput) ToPacketMirroringMirroredResourceInfoOutput() PacketMirroringMirroredResourceInfoOutput { return o } func (o PacketMirroringMirroredResourceInfoOutput) ToPacketMirroringMirroredResourceInfoOutputWithContext(ctx context.Context) PacketMirroringMirroredResourceInfoOutput { return o } func (o PacketMirroringMirroredResourceInfoOutput) ToPacketMirroringMirroredResourceInfoPtrOutput() PacketMirroringMirroredResourceInfoPtrOutput { return o.ToPacketMirroringMirroredResourceInfoPtrOutputWithContext(context.Background()) } func (o PacketMirroringMirroredResourceInfoOutput) ToPacketMirroringMirroredResourceInfoPtrOutputWithContext(ctx context.Context) PacketMirroringMirroredResourceInfoPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v PacketMirroringMirroredResourceInfo) *PacketMirroringMirroredResourceInfo { return &v }).(PacketMirroringMirroredResourceInfoPtrOutput) } // A set of virtual machine instances that are being mirrored. They must live in zones contained in the same region as this packetMirroring. Note that this config will apply only to those network interfaces of the Instances that belong to the network specified in this packetMirroring. You may specify a maximum of 50 Instances. func (o PacketMirroringMirroredResourceInfoOutput) Instances() PacketMirroringMirroredResourceInfoInstanceInfoArrayOutput { return o.ApplyT(func(v PacketMirroringMirroredResourceInfo) []PacketMirroringMirroredResourceInfoInstanceInfo { return v.Instances }).(PacketMirroringMirroredResourceInfoInstanceInfoArrayOutput) } // A set of subnetworks for which traffic from/to all VM instances will be mirrored. They must live in the same region as this packetMirroring. You may specify a maximum of 5 subnetworks. func (o PacketMirroringMirroredResourceInfoOutput) Subnetworks() PacketMirroringMirroredResourceInfoSubnetInfoArrayOutput { return o.ApplyT(func(v PacketMirroringMirroredResourceInfo) []PacketMirroringMirroredResourceInfoSubnetInfo { return v.Subnetworks }).(PacketMirroringMirroredResourceInfoSubnetInfoArrayOutput) } // A set of mirrored tags. Traffic from/to all VM instances that have one or more of these tags will be mirrored. func (o PacketMirroringMirroredResourceInfoOutput) Tags() pulumi.StringArrayOutput { return o.ApplyT(func(v PacketMirroringMirroredResourceInfo) []string { return v.Tags }).(pulumi.StringArrayOutput) } type PacketMirroringMirroredResourceInfoPtrOutput struct{ *pulumi.OutputState } func (PacketMirroringMirroredResourceInfoPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**PacketMirroringMirroredResourceInfo)(nil)).Elem() } func (o PacketMirroringMirroredResourceInfoPtrOutput) ToPacketMirroringMirroredResourceInfoPtrOutput() PacketMirroringMirroredResourceInfoPtrOutput { return o } func (o PacketMirroringMirroredResourceInfoPtrOutput) ToPacketMirroringMirroredResourceInfoPtrOutputWithContext(ctx context.Context) PacketMirroringMirroredResourceInfoPtrOutput { return o } func (o PacketMirroringMirroredResourceInfoPtrOutput) Elem() PacketMirroringMirroredResourceInfoOutput { return o.ApplyT(func(v *PacketMirroringMirroredResourceInfo) PacketMirroringMirroredResourceInfo { if v != nil { return *v } var ret PacketMirroringMirroredResourceInfo return ret }).(PacketMirroringMirroredResourceInfoOutput) } // A set of virtual machine instances that are being mirrored. They must live in zones contained in the same region as this packetMirroring. Note that this config will apply only to those network interfaces of the Instances that belong to the network specified in this packetMirroring. You may specify a maximum of 50 Instances. func (o PacketMirroringMirroredResourceInfoPtrOutput) Instances() PacketMirroringMirroredResourceInfoInstanceInfoArrayOutput { return o.ApplyT(func(v *PacketMirroringMirroredResourceInfo) []PacketMirroringMirroredResourceInfoInstanceInfo { if v == nil { return nil } return v.Instances }).(PacketMirroringMirroredResourceInfoInstanceInfoArrayOutput) } // A set of subnetworks for which traffic from/to all VM instances will be mirrored. They must live in the same region as this packetMirroring. You may specify a maximum of 5 subnetworks. func (o PacketMirroringMirroredResourceInfoPtrOutput) Subnetworks() PacketMirroringMirroredResourceInfoSubnetInfoArrayOutput { return o.ApplyT(func(v *PacketMirroringMirroredResourceInfo) []PacketMirroringMirroredResourceInfoSubnetInfo { if v == nil { return nil } return v.Subnetworks }).(PacketMirroringMirroredResourceInfoSubnetInfoArrayOutput) } // A set of mirrored tags. Traffic from/to all VM instances that have one or more of these tags will be mirrored. func (o PacketMirroringMirroredResourceInfoPtrOutput) Tags() pulumi.StringArrayOutput { return o.ApplyT(func(v *PacketMirroringMirroredResourceInfo) []string { if v == nil { return nil } return v.Tags }).(pulumi.StringArrayOutput) } type PacketMirroringMirroredResourceInfoInstanceInfo struct { // Resource URL to the virtual machine instance which is being mirrored. Url *string `pulumi:"url"` } // PacketMirroringMirroredResourceInfoInstanceInfoInput is an input type that accepts PacketMirroringMirroredResourceInfoInstanceInfoArgs and PacketMirroringMirroredResourceInfoInstanceInfoOutput values. // You can construct a concrete instance of `PacketMirroringMirroredResourceInfoInstanceInfoInput` via: // // PacketMirroringMirroredResourceInfoInstanceInfoArgs{...} type PacketMirroringMirroredResourceInfoInstanceInfoInput interface { pulumi.Input ToPacketMirroringMirroredResourceInfoInstanceInfoOutput() PacketMirroringMirroredResourceInfoInstanceInfoOutput ToPacketMirroringMirroredResourceInfoInstanceInfoOutputWithContext(context.Context) PacketMirroringMirroredResourceInfoInstanceInfoOutput } type PacketMirroringMirroredResourceInfoInstanceInfoArgs struct { // Resource URL to the virtual machine instance which is being mirrored. Url pulumi.StringPtrInput `pulumi:"url"` } func (PacketMirroringMirroredResourceInfoInstanceInfoArgs) ElementType() reflect.Type { return reflect.TypeOf((*PacketMirroringMirroredResourceInfoInstanceInfo)(nil)).Elem() } func (i PacketMirroringMirroredResourceInfoInstanceInfoArgs) ToPacketMirroringMirroredResourceInfoInstanceInfoOutput() PacketMirroringMirroredResourceInfoInstanceInfoOutput { return i.ToPacketMirroringMirroredResourceInfoInstanceInfoOutputWithContext(context.Background()) } func (i PacketMirroringMirroredResourceInfoInstanceInfoArgs) ToPacketMirroringMirroredResourceInfoInstanceInfoOutputWithContext(ctx context.Context) PacketMirroringMirroredResourceInfoInstanceInfoOutput { return pulumi.ToOutputWithContext(ctx, i).(PacketMirroringMirroredResourceInfoInstanceInfoOutput) } // PacketMirroringMirroredResourceInfoInstanceInfoArrayInput is an input type that accepts PacketMirroringMirroredResourceInfoInstanceInfoArray and PacketMirroringMirroredResourceInfoInstanceInfoArrayOutput values. // You can construct a concrete instance of `PacketMirroringMirroredResourceInfoInstanceInfoArrayInput` via: // // PacketMirroringMirroredResourceInfoInstanceInfoArray{ PacketMirroringMirroredResourceInfoInstanceInfoArgs{...} } type PacketMirroringMirroredResourceInfoInstanceInfoArrayInput interface { pulumi.Input ToPacketMirroringMirroredResourceInfoInstanceInfoArrayOutput() PacketMirroringMirroredResourceInfoInstanceInfoArrayOutput ToPacketMirroringMirroredResourceInfoInstanceInfoArrayOutputWithContext(context.Context) PacketMirroringMirroredResourceInfoInstanceInfoArrayOutput } type PacketMirroringMirroredResourceInfoInstanceInfoArray []PacketMirroringMirroredResourceInfoInstanceInfoInput func (PacketMirroringMirroredResourceInfoInstanceInfoArray) ElementType() reflect.Type { return reflect.TypeOf((*[]PacketMirroringMirroredResourceInfoInstanceInfo)(nil)).Elem() } func (i PacketMirroringMirroredResourceInfoInstanceInfoArray) ToPacketMirroringMirroredResourceInfoInstanceInfoArrayOutput() PacketMirroringMirroredResourceInfoInstanceInfoArrayOutput { return i.ToPacketMirroringMirroredResourceInfoInstanceInfoArrayOutputWithContext(context.Background()) } func (i PacketMirroringMirroredResourceInfoInstanceInfoArray) ToPacketMirroringMirroredResourceInfoInstanceInfoArrayOutputWithContext(ctx context.Context) PacketMirroringMirroredResourceInfoInstanceInfoArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(PacketMirroringMirroredResourceInfoInstanceInfoArrayOutput) } type PacketMirroringMirroredResourceInfoInstanceInfoOutput struct{ *pulumi.OutputState } func (PacketMirroringMirroredResourceInfoInstanceInfoOutput) ElementType() reflect.Type { return reflect.TypeOf((*PacketMirroringMirroredResourceInfoInstanceInfo)(nil)).Elem() } func (o PacketMirroringMirroredResourceInfoInstanceInfoOutput) ToPacketMirroringMirroredResourceInfoInstanceInfoOutput() PacketMirroringMirroredResourceInfoInstanceInfoOutput { return o } func (o PacketMirroringMirroredResourceInfoInstanceInfoOutput) ToPacketMirroringMirroredResourceInfoInstanceInfoOutputWithContext(ctx context.Context) PacketMirroringMirroredResourceInfoInstanceInfoOutput { return o } // Resource URL to the virtual machine instance which is being mirrored. func (o PacketMirroringMirroredResourceInfoInstanceInfoOutput) Url() pulumi.StringPtrOutput { return o.ApplyT(func(v PacketMirroringMirroredResourceInfoInstanceInfo) *string { return v.Url }).(pulumi.StringPtrOutput) } type PacketMirroringMirroredResourceInfoInstanceInfoArrayOutput struct{ *pulumi.OutputState } func (PacketMirroringMirroredResourceInfoInstanceInfoArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]PacketMirroringMirroredResourceInfoInstanceInfo)(nil)).Elem() } func (o PacketMirroringMirroredResourceInfoInstanceInfoArrayOutput) ToPacketMirroringMirroredResourceInfoInstanceInfoArrayOutput() PacketMirroringMirroredResourceInfoInstanceInfoArrayOutput { return o } func (o PacketMirroringMirroredResourceInfoInstanceInfoArrayOutput) ToPacketMirroringMirroredResourceInfoInstanceInfoArrayOutputWithContext(ctx context.Context) PacketMirroringMirroredResourceInfoInstanceInfoArrayOutput { return o } func (o PacketMirroringMirroredResourceInfoInstanceInfoArrayOutput) Index(i pulumi.IntInput) PacketMirroringMirroredResourceInfoInstanceInfoOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) PacketMirroringMirroredResourceInfoInstanceInfo { return vs[0].([]PacketMirroringMirroredResourceInfoInstanceInfo)[vs[1].(int)] }).(PacketMirroringMirroredResourceInfoInstanceInfoOutput) } type PacketMirroringMirroredResourceInfoInstanceInfoResponse struct { // Unique identifier for the instance; defined by the server. CanonicalUrl string `pulumi:"canonicalUrl"` // Resource URL to the virtual machine instance which is being mirrored. Url string `pulumi:"url"` } type PacketMirroringMirroredResourceInfoInstanceInfoResponseOutput struct{ *pulumi.OutputState } func (PacketMirroringMirroredResourceInfoInstanceInfoResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*PacketMirroringMirroredResourceInfoInstanceInfoResponse)(nil)).Elem() } func (o PacketMirroringMirroredResourceInfoInstanceInfoResponseOutput) ToPacketMirroringMirroredResourceInfoInstanceInfoResponseOutput() PacketMirroringMirroredResourceInfoInstanceInfoResponseOutput { return o } func (o PacketMirroringMirroredResourceInfoInstanceInfoResponseOutput) ToPacketMirroringMirroredResourceInfoInstanceInfoResponseOutputWithContext(ctx context.Context) PacketMirroringMirroredResourceInfoInstanceInfoResponseOutput { return o } // Unique identifier for the instance; defined by the server. func (o PacketMirroringMirroredResourceInfoInstanceInfoResponseOutput) CanonicalUrl() pulumi.StringOutput { return o.ApplyT(func(v PacketMirroringMirroredResourceInfoInstanceInfoResponse) string { return v.CanonicalUrl }).(pulumi.StringOutput) } // Resource URL to the virtual machine instance which is being mirrored. func (o PacketMirroringMirroredResourceInfoInstanceInfoResponseOutput) Url() pulumi.StringOutput { return o.ApplyT(func(v PacketMirroringMirroredResourceInfoInstanceInfoResponse) string { return v.Url }).(pulumi.StringOutput) } type PacketMirroringMirroredResourceInfoInstanceInfoResponseArrayOutput struct{ *pulumi.OutputState } func (PacketMirroringMirroredResourceInfoInstanceInfoResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]PacketMirroringMirroredResourceInfoInstanceInfoResponse)(nil)).Elem() } func (o PacketMirroringMirroredResourceInfoInstanceInfoResponseArrayOutput) ToPacketMirroringMirroredResourceInfoInstanceInfoResponseArrayOutput() PacketMirroringMirroredResourceInfoInstanceInfoResponseArrayOutput { return o } func (o PacketMirroringMirroredResourceInfoInstanceInfoResponseArrayOutput) ToPacketMirroringMirroredResourceInfoInstanceInfoResponseArrayOutputWithContext(ctx context.Context) PacketMirroringMirroredResourceInfoInstanceInfoResponseArrayOutput { return o } func (o PacketMirroringMirroredResourceInfoInstanceInfoResponseArrayOutput) Index(i pulumi.IntInput) PacketMirroringMirroredResourceInfoInstanceInfoResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) PacketMirroringMirroredResourceInfoInstanceInfoResponse { return vs[0].([]PacketMirroringMirroredResourceInfoInstanceInfoResponse)[vs[1].(int)] }).(PacketMirroringMirroredResourceInfoInstanceInfoResponseOutput) } type PacketMirroringMirroredResourceInfoResponse struct { // A set of virtual machine instances that are being mirrored. They must live in zones contained in the same region as this packetMirroring. Note that this config will apply only to those network interfaces of the Instances that belong to the network specified in this packetMirroring. You may specify a maximum of 50 Instances. Instances []PacketMirroringMirroredResourceInfoInstanceInfoResponse `pulumi:"instances"` // A set of subnetworks for which traffic from/to all VM instances will be mirrored. They must live in the same region as this packetMirroring. You may specify a maximum of 5 subnetworks. Subnetworks []PacketMirroringMirroredResourceInfoSubnetInfoResponse `pulumi:"subnetworks"` // A set of mirrored tags. Traffic from/to all VM instances that have one or more of these tags will be mirrored. Tags []string `pulumi:"tags"` } type PacketMirroringMirroredResourceInfoResponseOutput struct{ *pulumi.OutputState } func (PacketMirroringMirroredResourceInfoResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*PacketMirroringMirroredResourceInfoResponse)(nil)).Elem() } func (o PacketMirroringMirroredResourceInfoResponseOutput) ToPacketMirroringMirroredResourceInfoResponseOutput() PacketMirroringMirroredResourceInfoResponseOutput { return o } func (o PacketMirroringMirroredResourceInfoResponseOutput) ToPacketMirroringMirroredResourceInfoResponseOutputWithContext(ctx context.Context) PacketMirroringMirroredResourceInfoResponseOutput { return o } // A set of virtual machine instances that are being mirrored. They must live in zones contained in the same region as this packetMirroring. Note that this config will apply only to those network interfaces of the Instances that belong to the network specified in this packetMirroring. You may specify a maximum of 50 Instances. func (o PacketMirroringMirroredResourceInfoResponseOutput) Instances() PacketMirroringMirroredResourceInfoInstanceInfoResponseArrayOutput { return o.ApplyT(func(v PacketMirroringMirroredResourceInfoResponse) []PacketMirroringMirroredResourceInfoInstanceInfoResponse { return v.Instances }).(PacketMirroringMirroredResourceInfoInstanceInfoResponseArrayOutput) } // A set of subnetworks for which traffic from/to all VM instances will be mirrored. They must live in the same region as this packetMirroring. You may specify a maximum of 5 subnetworks. func (o PacketMirroringMirroredResourceInfoResponseOutput) Subnetworks() PacketMirroringMirroredResourceInfoSubnetInfoResponseArrayOutput { return o.ApplyT(func(v PacketMirroringMirroredResourceInfoResponse) []PacketMirroringMirroredResourceInfoSubnetInfoResponse { return v.Subnetworks }).(PacketMirroringMirroredResourceInfoSubnetInfoResponseArrayOutput) } // A set of mirrored tags. Traffic from/to all VM instances that have one or more of these tags will be mirrored. func (o PacketMirroringMirroredResourceInfoResponseOutput) Tags() pulumi.StringArrayOutput { return o.ApplyT(func(v PacketMirroringMirroredResourceInfoResponse) []string { return v.Tags }).(pulumi.StringArrayOutput) } type PacketMirroringMirroredResourceInfoSubnetInfo struct { // Resource URL to the subnetwork for which traffic from/to all VM instances will be mirrored. Url *string `pulumi:"url"` } // PacketMirroringMirroredResourceInfoSubnetInfoInput is an input type that accepts PacketMirroringMirroredResourceInfoSubnetInfoArgs and PacketMirroringMirroredResourceInfoSubnetInfoOutput values. // You can construct a concrete instance of `PacketMirroringMirroredResourceInfoSubnetInfoInput` via: // // PacketMirroringMirroredResourceInfoSubnetInfoArgs{...} type PacketMirroringMirroredResourceInfoSubnetInfoInput interface { pulumi.Input ToPacketMirroringMirroredResourceInfoSubnetInfoOutput() PacketMirroringMirroredResourceInfoSubnetInfoOutput ToPacketMirroringMirroredResourceInfoSubnetInfoOutputWithContext(context.Context) PacketMirroringMirroredResourceInfoSubnetInfoOutput } type PacketMirroringMirroredResourceInfoSubnetInfoArgs struct { // Resource URL to the subnetwork for which traffic from/to all VM instances will be mirrored. Url pulumi.StringPtrInput `pulumi:"url"` } func (PacketMirroringMirroredResourceInfoSubnetInfoArgs) ElementType() reflect.Type { return reflect.TypeOf((*PacketMirroringMirroredResourceInfoSubnetInfo)(nil)).Elem() } func (i PacketMirroringMirroredResourceInfoSubnetInfoArgs) ToPacketMirroringMirroredResourceInfoSubnetInfoOutput() PacketMirroringMirroredResourceInfoSubnetInfoOutput { return i.ToPacketMirroringMirroredResourceInfoSubnetInfoOutputWithContext(context.Background()) } func (i PacketMirroringMirroredResourceInfoSubnetInfoArgs) ToPacketMirroringMirroredResourceInfoSubnetInfoOutputWithContext(ctx context.Context) PacketMirroringMirroredResourceInfoSubnetInfoOutput { return pulumi.ToOutputWithContext(ctx, i).(PacketMirroringMirroredResourceInfoSubnetInfoOutput) } // PacketMirroringMirroredResourceInfoSubnetInfoArrayInput is an input type that accepts PacketMirroringMirroredResourceInfoSubnetInfoArray and PacketMirroringMirroredResourceInfoSubnetInfoArrayOutput values. // You can construct a concrete instance of `PacketMirroringMirroredResourceInfoSubnetInfoArrayInput` via: // // PacketMirroringMirroredResourceInfoSubnetInfoArray{ PacketMirroringMirroredResourceInfoSubnetInfoArgs{...} } type PacketMirroringMirroredResourceInfoSubnetInfoArrayInput interface { pulumi.Input ToPacketMirroringMirroredResourceInfoSubnetInfoArrayOutput() PacketMirroringMirroredResourceInfoSubnetInfoArrayOutput ToPacketMirroringMirroredResourceInfoSubnetInfoArrayOutputWithContext(context.Context) PacketMirroringMirroredResourceInfoSubnetInfoArrayOutput } type PacketMirroringMirroredResourceInfoSubnetInfoArray []PacketMirroringMirroredResourceInfoSubnetInfoInput func (PacketMirroringMirroredResourceInfoSubnetInfoArray) ElementType() reflect.Type { return reflect.TypeOf((*[]PacketMirroringMirroredResourceInfoSubnetInfo)(nil)).Elem() } func (i PacketMirroringMirroredResourceInfoSubnetInfoArray) ToPacketMirroringMirroredResourceInfoSubnetInfoArrayOutput() PacketMirroringMirroredResourceInfoSubnetInfoArrayOutput { return i.ToPacketMirroringMirroredResourceInfoSubnetInfoArrayOutputWithContext(context.Background()) } func (i PacketMirroringMirroredResourceInfoSubnetInfoArray) ToPacketMirroringMirroredResourceInfoSubnetInfoArrayOutputWithContext(ctx context.Context) PacketMirroringMirroredResourceInfoSubnetInfoArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(PacketMirroringMirroredResourceInfoSubnetInfoArrayOutput) } type PacketMirroringMirroredResourceInfoSubnetInfoOutput struct{ *pulumi.OutputState } func (PacketMirroringMirroredResourceInfoSubnetInfoOutput) ElementType() reflect.Type { return reflect.TypeOf((*PacketMirroringMirroredResourceInfoSubnetInfo)(nil)).Elem() } func (o PacketMirroringMirroredResourceInfoSubnetInfoOutput) ToPacketMirroringMirroredResourceInfoSubnetInfoOutput() PacketMirroringMirroredResourceInfoSubnetInfoOutput { return o } func (o PacketMirroringMirroredResourceInfoSubnetInfoOutput) ToPacketMirroringMirroredResourceInfoSubnetInfoOutputWithContext(ctx context.Context) PacketMirroringMirroredResourceInfoSubnetInfoOutput { return o } // Resource URL to the subnetwork for which traffic from/to all VM instances will be mirrored. func (o PacketMirroringMirroredResourceInfoSubnetInfoOutput) Url() pulumi.StringPtrOutput { return o.ApplyT(func(v PacketMirroringMirroredResourceInfoSubnetInfo) *string { return v.Url }).(pulumi.StringPtrOutput) } type PacketMirroringMirroredResourceInfoSubnetInfoArrayOutput struct{ *pulumi.OutputState } func (PacketMirroringMirroredResourceInfoSubnetInfoArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]PacketMirroringMirroredResourceInfoSubnetInfo)(nil)).Elem() } func (o PacketMirroringMirroredResourceInfoSubnetInfoArrayOutput) ToPacketMirroringMirroredResourceInfoSubnetInfoArrayOutput() PacketMirroringMirroredResourceInfoSubnetInfoArrayOutput { return o } func (o PacketMirroringMirroredResourceInfoSubnetInfoArrayOutput) ToPacketMirroringMirroredResourceInfoSubnetInfoArrayOutputWithContext(ctx context.Context) PacketMirroringMirroredResourceInfoSubnetInfoArrayOutput { return o } func (o PacketMirroringMirroredResourceInfoSubnetInfoArrayOutput) Index(i pulumi.IntInput) PacketMirroringMirroredResourceInfoSubnetInfoOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) PacketMirroringMirroredResourceInfoSubnetInfo { return vs[0].([]PacketMirroringMirroredResourceInfoSubnetInfo)[vs[1].(int)] }).(PacketMirroringMirroredResourceInfoSubnetInfoOutput) } type PacketMirroringMirroredResourceInfoSubnetInfoResponse struct { // Unique identifier for the subnetwork; defined by the server. CanonicalUrl string `pulumi:"canonicalUrl"` // Resource URL to the subnetwork for which traffic from/to all VM instances will be mirrored. Url string `pulumi:"url"` } type PacketMirroringMirroredResourceInfoSubnetInfoResponseOutput struct{ *pulumi.OutputState } func (PacketMirroringMirroredResourceInfoSubnetInfoResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*PacketMirroringMirroredResourceInfoSubnetInfoResponse)(nil)).Elem() } func (o PacketMirroringMirroredResourceInfoSubnetInfoResponseOutput) ToPacketMirroringMirroredResourceInfoSubnetInfoResponseOutput() PacketMirroringMirroredResourceInfoSubnetInfoResponseOutput { return o } func (o PacketMirroringMirroredResourceInfoSubnetInfoResponseOutput) ToPacketMirroringMirroredResourceInfoSubnetInfoResponseOutputWithContext(ctx context.Context) PacketMirroringMirroredResourceInfoSubnetInfoResponseOutput { return o } // Unique identifier for the subnetwork; defined by the server. func (o PacketMirroringMirroredResourceInfoSubnetInfoResponseOutput) CanonicalUrl() pulumi.StringOutput { return o.ApplyT(func(v PacketMirroringMirroredResourceInfoSubnetInfoResponse) string { return v.CanonicalUrl }).(pulumi.StringOutput) } // Resource URL to the subnetwork for which traffic from/to all VM instances will be mirrored. func (o PacketMirroringMirroredResourceInfoSubnetInfoResponseOutput) Url() pulumi.StringOutput { return o.ApplyT(func(v PacketMirroringMirroredResourceInfoSubnetInfoResponse) string { return v.Url }).(pulumi.StringOutput) } type PacketMirroringMirroredResourceInfoSubnetInfoResponseArrayOutput struct{ *pulumi.OutputState } func (PacketMirroringMirroredResourceInfoSubnetInfoResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]PacketMirroringMirroredResourceInfoSubnetInfoResponse)(nil)).Elem() } func (o PacketMirroringMirroredResourceInfoSubnetInfoResponseArrayOutput) ToPacketMirroringMirroredResourceInfoSubnetInfoResponseArrayOutput() PacketMirroringMirroredResourceInfoSubnetInfoResponseArrayOutput { return o } func (o PacketMirroringMirroredResourceInfoSubnetInfoResponseArrayOutput) ToPacketMirroringMirroredResourceInfoSubnetInfoResponseArrayOutputWithContext(ctx context.Context) PacketMirroringMirroredResourceInfoSubnetInfoResponseArrayOutput { return o } func (o PacketMirroringMirroredResourceInfoSubnetInfoResponseArrayOutput) Index(i pulumi.IntInput) PacketMirroringMirroredResourceInfoSubnetInfoResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) PacketMirroringMirroredResourceInfoSubnetInfoResponse { return vs[0].([]PacketMirroringMirroredResourceInfoSubnetInfoResponse)[vs[1].(int)] }).(PacketMirroringMirroredResourceInfoSubnetInfoResponseOutput) } type PacketMirroringNetworkInfo struct { // URL of the network resource. Url *string `pulumi:"url"` } // PacketMirroringNetworkInfoInput is an input type that accepts PacketMirroringNetworkInfoArgs and PacketMirroringNetworkInfoOutput values. // You can construct a concrete instance of `PacketMirroringNetworkInfoInput` via: // // PacketMirroringNetworkInfoArgs{...} type PacketMirroringNetworkInfoInput interface { pulumi.Input ToPacketMirroringNetworkInfoOutput() PacketMirroringNetworkInfoOutput ToPacketMirroringNetworkInfoOutputWithContext(context.Context) PacketMirroringNetworkInfoOutput } type PacketMirroringNetworkInfoArgs struct { // URL of the network resource. Url pulumi.StringPtrInput `pulumi:"url"` } func (PacketMirroringNetworkInfoArgs) ElementType() reflect.Type { return reflect.TypeOf((*PacketMirroringNetworkInfo)(nil)).Elem() } func (i PacketMirroringNetworkInfoArgs) ToPacketMirroringNetworkInfoOutput() PacketMirroringNetworkInfoOutput { return i.ToPacketMirroringNetworkInfoOutputWithContext(context.Background()) } func (i PacketMirroringNetworkInfoArgs) ToPacketMirroringNetworkInfoOutputWithContext(ctx context.Context) PacketMirroringNetworkInfoOutput { return pulumi.ToOutputWithContext(ctx, i).(PacketMirroringNetworkInfoOutput) } func (i PacketMirroringNetworkInfoArgs) ToPacketMirroringNetworkInfoPtrOutput() PacketMirroringNetworkInfoPtrOutput { return i.ToPacketMirroringNetworkInfoPtrOutputWithContext(context.Background()) } func (i PacketMirroringNetworkInfoArgs) ToPacketMirroringNetworkInfoPtrOutputWithContext(ctx context.Context) PacketMirroringNetworkInfoPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(PacketMirroringNetworkInfoOutput).ToPacketMirroringNetworkInfoPtrOutputWithContext(ctx) } // PacketMirroringNetworkInfoPtrInput is an input type that accepts PacketMirroringNetworkInfoArgs, PacketMirroringNetworkInfoPtr and PacketMirroringNetworkInfoPtrOutput values. // You can construct a concrete instance of `PacketMirroringNetworkInfoPtrInput` via: // // PacketMirroringNetworkInfoArgs{...} // // or: // // nil type PacketMirroringNetworkInfoPtrInput interface { pulumi.Input ToPacketMirroringNetworkInfoPtrOutput() PacketMirroringNetworkInfoPtrOutput ToPacketMirroringNetworkInfoPtrOutputWithContext(context.Context) PacketMirroringNetworkInfoPtrOutput } type packetMirroringNetworkInfoPtrType PacketMirroringNetworkInfoArgs func PacketMirroringNetworkInfoPtr(v *PacketMirroringNetworkInfoArgs) PacketMirroringNetworkInfoPtrInput { return (*packetMirroringNetworkInfoPtrType)(v) } func (*packetMirroringNetworkInfoPtrType) ElementType() reflect.Type { return reflect.TypeOf((**PacketMirroringNetworkInfo)(nil)).Elem() } func (i *packetMirroringNetworkInfoPtrType) ToPacketMirroringNetworkInfoPtrOutput() PacketMirroringNetworkInfoPtrOutput { return i.ToPacketMirroringNetworkInfoPtrOutputWithContext(context.Background()) } func (i *packetMirroringNetworkInfoPtrType) ToPacketMirroringNetworkInfoPtrOutputWithContext(ctx context.Context) PacketMirroringNetworkInfoPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(PacketMirroringNetworkInfoPtrOutput) } type PacketMirroringNetworkInfoOutput struct{ *pulumi.OutputState } func (PacketMirroringNetworkInfoOutput) ElementType() reflect.Type { return reflect.TypeOf((*PacketMirroringNetworkInfo)(nil)).Elem() } func (o PacketMirroringNetworkInfoOutput) ToPacketMirroringNetworkInfoOutput() PacketMirroringNetworkInfoOutput { return o } func (o PacketMirroringNetworkInfoOutput) ToPacketMirroringNetworkInfoOutputWithContext(ctx context.Context) PacketMirroringNetworkInfoOutput { return o } func (o PacketMirroringNetworkInfoOutput) ToPacketMirroringNetworkInfoPtrOutput() PacketMirroringNetworkInfoPtrOutput { return o.ToPacketMirroringNetworkInfoPtrOutputWithContext(context.Background()) } func (o PacketMirroringNetworkInfoOutput) ToPacketMirroringNetworkInfoPtrOutputWithContext(ctx context.Context) PacketMirroringNetworkInfoPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v PacketMirroringNetworkInfo) *PacketMirroringNetworkInfo { return &v }).(PacketMirroringNetworkInfoPtrOutput) } // URL of the network resource. func (o PacketMirroringNetworkInfoOutput) Url() pulumi.StringPtrOutput { return o.ApplyT(func(v PacketMirroringNetworkInfo) *string { return v.Url }).(pulumi.StringPtrOutput) } type PacketMirroringNetworkInfoPtrOutput struct{ *pulumi.OutputState } func (PacketMirroringNetworkInfoPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**PacketMirroringNetworkInfo)(nil)).Elem() } func (o PacketMirroringNetworkInfoPtrOutput) ToPacketMirroringNetworkInfoPtrOutput() PacketMirroringNetworkInfoPtrOutput { return o } func (o PacketMirroringNetworkInfoPtrOutput) ToPacketMirroringNetworkInfoPtrOutputWithContext(ctx context.Context) PacketMirroringNetworkInfoPtrOutput { return o } func (o PacketMirroringNetworkInfoPtrOutput) Elem() PacketMirroringNetworkInfoOutput { return o.ApplyT(func(v *PacketMirroringNetworkInfo) PacketMirroringNetworkInfo { if v != nil { return *v } var ret PacketMirroringNetworkInfo return ret }).(PacketMirroringNetworkInfoOutput) } // URL of the network resource. func (o PacketMirroringNetworkInfoPtrOutput) Url() pulumi.StringPtrOutput { return o.ApplyT(func(v *PacketMirroringNetworkInfo) *string { if v == nil { return nil } return v.Url }).(pulumi.StringPtrOutput) } type PacketMirroringNetworkInfoResponse struct { // Unique identifier for the network; defined by the server. CanonicalUrl string `pulumi:"canonicalUrl"` // URL of the network resource. Url string `pulumi:"url"` } type PacketMirroringNetworkInfoResponseOutput struct{ *pulumi.OutputState } func (PacketMirroringNetworkInfoResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*PacketMirroringNetworkInfoResponse)(nil)).Elem() } func (o PacketMirroringNetworkInfoResponseOutput) ToPacketMirroringNetworkInfoResponseOutput() PacketMirroringNetworkInfoResponseOutput { return o } func (o PacketMirroringNetworkInfoResponseOutput) ToPacketMirroringNetworkInfoResponseOutputWithContext(ctx context.Context) PacketMirroringNetworkInfoResponseOutput { return o } // Unique identifier for the network; defined by the server. func (o PacketMirroringNetworkInfoResponseOutput) CanonicalUrl() pulumi.StringOutput { return o.ApplyT(func(v PacketMirroringNetworkInfoResponse) string { return v.CanonicalUrl }).(pulumi.StringOutput) } // URL of the network resource. func (o PacketMirroringNetworkInfoResponseOutput) Url() pulumi.StringOutput { return o.ApplyT(func(v PacketMirroringNetworkInfoResponse) string { return v.Url }).(pulumi.StringOutput) } // A matcher for the path portion of the URL. The BackendService from the longest-matched rule will serve the URL. If no rule was matched, the default service is used. type PathMatcher struct { // defaultRouteAction takes effect when none of the pathRules or routeRules match. The load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set. Conversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices. Only one of defaultRouteAction or defaultUrlRedirect must be set. UrlMaps for external HTTP(S) load balancers support only the urlRewrite action within a path matcher's defaultRouteAction. DefaultRouteAction *HttpRouteAction `pulumi:"defaultRouteAction"` // The full or partial URL to the BackendService resource. This URL is used if none of the pathRules or routeRules defined by this PathMatcher are matched. For example, the following are all valid URLs to a BackendService resource: - https://www.googleapis.com/compute/v1/projects/project /global/backendServices/backendService - compute/v1/projects/project/global/backendServices/backendService - global/backendServices/backendService If defaultRouteAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if defaultService is specified, defaultRouteAction cannot contain any weightedBackendServices. Conversely, if defaultRouteAction specifies any weightedBackendServices, defaultService must not be specified. Only one of defaultService, defaultUrlRedirect , or defaultRouteAction.weightedBackendService must be set. Authorization requires one or more of the following Google IAM permissions on the specified resource default_service: - compute.backendBuckets.use - compute.backendServices.use DefaultService *string `pulumi:"defaultService"` // When none of the specified pathRules or routeRules match, the request is redirected to a URL specified by defaultUrlRedirect. If defaultUrlRedirect is specified, defaultService or defaultRouteAction must not be set. Not supported when the URL map is bound to a target gRPC proxy. DefaultUrlRedirect *HttpRedirectAction `pulumi:"defaultUrlRedirect"` // An optional description of this resource. Provide this property when you create the resource. Description *string `pulumi:"description"` // Specifies changes to request and response headers that need to take effect for the selected backend service. HeaderAction specified here are applied after the matching HttpRouteRule HeaderAction and before the HeaderAction in the UrlMap HeaderAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. HeaderAction *HttpHeaderAction `pulumi:"headerAction"` // The name to which this PathMatcher is referred by the HostRule. Name *string `pulumi:"name"` // The list of path rules. Use this list instead of routeRules when routing based on simple path matching is all that's required. The order by which path rules are specified does not matter. Matches are always done on the longest-path-first basis. For example: a pathRule with a path /a/b/c/* will match before /a/b/* irrespective of the order in which those paths appear in this list. Within a given pathMatcher, only one of pathRules or routeRules must be set. PathRules []PathRule `pulumi:"pathRules"` // The list of HTTP route rules. Use this list instead of pathRules when advanced route matching and routing actions are desired. routeRules are evaluated in order of priority, from the lowest to highest number. Within a given pathMatcher, you can set only one of pathRules or routeRules. RouteRules []HttpRouteRule `pulumi:"routeRules"` } // PathMatcherInput is an input type that accepts PathMatcherArgs and PathMatcherOutput values. // You can construct a concrete instance of `PathMatcherInput` via: // // PathMatcherArgs{...} type PathMatcherInput interface { pulumi.Input ToPathMatcherOutput() PathMatcherOutput ToPathMatcherOutputWithContext(context.Context) PathMatcherOutput } // A matcher for the path portion of the URL. The BackendService from the longest-matched rule will serve the URL. If no rule was matched, the default service is used. type PathMatcherArgs struct { // defaultRouteAction takes effect when none of the pathRules or routeRules match. The load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set. Conversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices. Only one of defaultRouteAction or defaultUrlRedirect must be set. UrlMaps for external HTTP(S) load balancers support only the urlRewrite action within a path matcher's defaultRouteAction. DefaultRouteAction HttpRouteActionPtrInput `pulumi:"defaultRouteAction"` // The full or partial URL to the BackendService resource. This URL is used if none of the pathRules or routeRules defined by this PathMatcher are matched. For example, the following are all valid URLs to a BackendService resource: - https://www.googleapis.com/compute/v1/projects/project /global/backendServices/backendService - compute/v1/projects/project/global/backendServices/backendService - global/backendServices/backendService If defaultRouteAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if defaultService is specified, defaultRouteAction cannot contain any weightedBackendServices. Conversely, if defaultRouteAction specifies any weightedBackendServices, defaultService must not be specified. Only one of defaultService, defaultUrlRedirect , or defaultRouteAction.weightedBackendService must be set. Authorization requires one or more of the following Google IAM permissions on the specified resource default_service: - compute.backendBuckets.use - compute.backendServices.use DefaultService pulumi.StringPtrInput `pulumi:"defaultService"` // When none of the specified pathRules or routeRules match, the request is redirected to a URL specified by defaultUrlRedirect. If defaultUrlRedirect is specified, defaultService or defaultRouteAction must not be set. Not supported when the URL map is bound to a target gRPC proxy. DefaultUrlRedirect HttpRedirectActionPtrInput `pulumi:"defaultUrlRedirect"` // An optional description of this resource. Provide this property when you create the resource. Description pulumi.StringPtrInput `pulumi:"description"` // Specifies changes to request and response headers that need to take effect for the selected backend service. HeaderAction specified here are applied after the matching HttpRouteRule HeaderAction and before the HeaderAction in the UrlMap HeaderAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. HeaderAction HttpHeaderActionPtrInput `pulumi:"headerAction"` // The name to which this PathMatcher is referred by the HostRule. Name pulumi.StringPtrInput `pulumi:"name"` // The list of path rules. Use this list instead of routeRules when routing based on simple path matching is all that's required. The order by which path rules are specified does not matter. Matches are always done on the longest-path-first basis. For example: a pathRule with a path /a/b/c/* will match before /a/b/* irrespective of the order in which those paths appear in this list. Within a given pathMatcher, only one of pathRules or routeRules must be set. PathRules PathRuleArrayInput `pulumi:"pathRules"` // The list of HTTP route rules. Use this list instead of pathRules when advanced route matching and routing actions are desired. routeRules are evaluated in order of priority, from the lowest to highest number. Within a given pathMatcher, you can set only one of pathRules or routeRules. RouteRules HttpRouteRuleArrayInput `pulumi:"routeRules"` } func (PathMatcherArgs) ElementType() reflect.Type { return reflect.TypeOf((*PathMatcher)(nil)).Elem() } func (i PathMatcherArgs) ToPathMatcherOutput() PathMatcherOutput { return i.ToPathMatcherOutputWithContext(context.Background()) } func (i PathMatcherArgs) ToPathMatcherOutputWithContext(ctx context.Context) PathMatcherOutput { return pulumi.ToOutputWithContext(ctx, i).(PathMatcherOutput) } // PathMatcherArrayInput is an input type that accepts PathMatcherArray and PathMatcherArrayOutput values. // You can construct a concrete instance of `PathMatcherArrayInput` via: // // PathMatcherArray{ PathMatcherArgs{...} } type PathMatcherArrayInput interface { pulumi.Input ToPathMatcherArrayOutput() PathMatcherArrayOutput ToPathMatcherArrayOutputWithContext(context.Context) PathMatcherArrayOutput } type PathMatcherArray []PathMatcherInput func (PathMatcherArray) ElementType() reflect.Type { return reflect.TypeOf((*[]PathMatcher)(nil)).Elem() } func (i PathMatcherArray) ToPathMatcherArrayOutput() PathMatcherArrayOutput { return i.ToPathMatcherArrayOutputWithContext(context.Background()) } func (i PathMatcherArray) ToPathMatcherArrayOutputWithContext(ctx context.Context) PathMatcherArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(PathMatcherArrayOutput) } // A matcher for the path portion of the URL. The BackendService from the longest-matched rule will serve the URL. If no rule was matched, the default service is used. type PathMatcherOutput struct{ *pulumi.OutputState } func (PathMatcherOutput) ElementType() reflect.Type { return reflect.TypeOf((*PathMatcher)(nil)).Elem() } func (o PathMatcherOutput) ToPathMatcherOutput() PathMatcherOutput { return o } func (o PathMatcherOutput) ToPathMatcherOutputWithContext(ctx context.Context) PathMatcherOutput { return o } // defaultRouteAction takes effect when none of the pathRules or routeRules match. The load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set. Conversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices. Only one of defaultRouteAction or defaultUrlRedirect must be set. UrlMaps for external HTTP(S) load balancers support only the urlRewrite action within a path matcher's defaultRouteAction. func (o PathMatcherOutput) DefaultRouteAction() HttpRouteActionPtrOutput { return o.ApplyT(func(v PathMatcher) *HttpRouteAction { return v.DefaultRouteAction }).(HttpRouteActionPtrOutput) } // The full or partial URL to the BackendService resource. This URL is used if none of the pathRules or routeRules defined by this PathMatcher are matched. For example, the following are all valid URLs to a BackendService resource: - https://www.googleapis.com/compute/v1/projects/project /global/backendServices/backendService - compute/v1/projects/project/global/backendServices/backendService - global/backendServices/backendService If defaultRouteAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if defaultService is specified, defaultRouteAction cannot contain any weightedBackendServices. Conversely, if defaultRouteAction specifies any weightedBackendServices, defaultService must not be specified. Only one of defaultService, defaultUrlRedirect , or defaultRouteAction.weightedBackendService must be set. Authorization requires one or more of the following Google IAM permissions on the specified resource default_service: - compute.backendBuckets.use - compute.backendServices.use func (o PathMatcherOutput) DefaultService() pulumi.StringPtrOutput { return o.ApplyT(func(v PathMatcher) *string { return v.DefaultService }).(pulumi.StringPtrOutput) } // When none of the specified pathRules or routeRules match, the request is redirected to a URL specified by defaultUrlRedirect. If defaultUrlRedirect is specified, defaultService or defaultRouteAction must not be set. Not supported when the URL map is bound to a target gRPC proxy. func (o PathMatcherOutput) DefaultUrlRedirect() HttpRedirectActionPtrOutput { return o.ApplyT(func(v PathMatcher) *HttpRedirectAction { return v.DefaultUrlRedirect }).(HttpRedirectActionPtrOutput) } // An optional description of this resource. Provide this property when you create the resource. func (o PathMatcherOutput) Description() pulumi.StringPtrOutput { return o.ApplyT(func(v PathMatcher) *string { return v.Description }).(pulumi.StringPtrOutput) } // Specifies changes to request and response headers that need to take effect for the selected backend service. HeaderAction specified here are applied after the matching HttpRouteRule HeaderAction and before the HeaderAction in the UrlMap HeaderAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. func (o PathMatcherOutput) HeaderAction() HttpHeaderActionPtrOutput { return o.ApplyT(func(v PathMatcher) *HttpHeaderAction { return v.HeaderAction }).(HttpHeaderActionPtrOutput) } // The name to which this PathMatcher is referred by the HostRule. func (o PathMatcherOutput) Name() pulumi.StringPtrOutput { return o.ApplyT(func(v PathMatcher) *string { return v.Name }).(pulumi.StringPtrOutput) } // The list of path rules. Use this list instead of routeRules when routing based on simple path matching is all that's required. The order by which path rules are specified does not matter. Matches are always done on the longest-path-first basis. For example: a pathRule with a path /a/b/c/* will match before /a/b/* irrespective of the order in which those paths appear in this list. Within a given pathMatcher, only one of pathRules or routeRules must be set. func (o PathMatcherOutput) PathRules() PathRuleArrayOutput { return o.ApplyT(func(v PathMatcher) []PathRule { return v.PathRules }).(PathRuleArrayOutput) } // The list of HTTP route rules. Use this list instead of pathRules when advanced route matching and routing actions are desired. routeRules are evaluated in order of priority, from the lowest to highest number. Within a given pathMatcher, you can set only one of pathRules or routeRules. func (o PathMatcherOutput) RouteRules() HttpRouteRuleArrayOutput { return o.ApplyT(func(v PathMatcher) []HttpRouteRule { return v.RouteRules }).(HttpRouteRuleArrayOutput) } type PathMatcherArrayOutput struct{ *pulumi.OutputState } func (PathMatcherArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]PathMatcher)(nil)).Elem() } func (o PathMatcherArrayOutput) ToPathMatcherArrayOutput() PathMatcherArrayOutput { return o } func (o PathMatcherArrayOutput) ToPathMatcherArrayOutputWithContext(ctx context.Context) PathMatcherArrayOutput { return o } func (o PathMatcherArrayOutput) Index(i pulumi.IntInput) PathMatcherOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) PathMatcher { return vs[0].([]PathMatcher)[vs[1].(int)] }).(PathMatcherOutput) } // A matcher for the path portion of the URL. The BackendService from the longest-matched rule will serve the URL. If no rule was matched, the default service is used. type PathMatcherResponse struct { // defaultRouteAction takes effect when none of the pathRules or routeRules match. The load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set. Conversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices. Only one of defaultRouteAction or defaultUrlRedirect must be set. UrlMaps for external HTTP(S) load balancers support only the urlRewrite action within a path matcher's defaultRouteAction. DefaultRouteAction HttpRouteActionResponse `pulumi:"defaultRouteAction"` // The full or partial URL to the BackendService resource. This URL is used if none of the pathRules or routeRules defined by this PathMatcher are matched. For example, the following are all valid URLs to a BackendService resource: - https://www.googleapis.com/compute/v1/projects/project /global/backendServices/backendService - compute/v1/projects/project/global/backendServices/backendService - global/backendServices/backendService If defaultRouteAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if defaultService is specified, defaultRouteAction cannot contain any weightedBackendServices. Conversely, if defaultRouteAction specifies any weightedBackendServices, defaultService must not be specified. Only one of defaultService, defaultUrlRedirect , or defaultRouteAction.weightedBackendService must be set. Authorization requires one or more of the following Google IAM permissions on the specified resource default_service: - compute.backendBuckets.use - compute.backendServices.use DefaultService string `pulumi:"defaultService"` // When none of the specified pathRules or routeRules match, the request is redirected to a URL specified by defaultUrlRedirect. If defaultUrlRedirect is specified, defaultService or defaultRouteAction must not be set. Not supported when the URL map is bound to a target gRPC proxy. DefaultUrlRedirect HttpRedirectActionResponse `pulumi:"defaultUrlRedirect"` // An optional description of this resource. Provide this property when you create the resource. Description string `pulumi:"description"` // Specifies changes to request and response headers that need to take effect for the selected backend service. HeaderAction specified here are applied after the matching HttpRouteRule HeaderAction and before the HeaderAction in the UrlMap HeaderAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. HeaderAction HttpHeaderActionResponse `pulumi:"headerAction"` // The name to which this PathMatcher is referred by the HostRule. Name string `pulumi:"name"` // The list of path rules. Use this list instead of routeRules when routing based on simple path matching is all that's required. The order by which path rules are specified does not matter. Matches are always done on the longest-path-first basis. For example: a pathRule with a path /a/b/c/* will match before /a/b/* irrespective of the order in which those paths appear in this list. Within a given pathMatcher, only one of pathRules or routeRules must be set. PathRules []PathRuleResponse `pulumi:"pathRules"` // The list of HTTP route rules. Use this list instead of pathRules when advanced route matching and routing actions are desired. routeRules are evaluated in order of priority, from the lowest to highest number. Within a given pathMatcher, you can set only one of pathRules or routeRules. RouteRules []HttpRouteRuleResponse `pulumi:"routeRules"` } // A matcher for the path portion of the URL. The BackendService from the longest-matched rule will serve the URL. If no rule was matched, the default service is used. type PathMatcherResponseOutput struct{ *pulumi.OutputState } func (PathMatcherResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*PathMatcherResponse)(nil)).Elem() } func (o PathMatcherResponseOutput) ToPathMatcherResponseOutput() PathMatcherResponseOutput { return o } func (o PathMatcherResponseOutput) ToPathMatcherResponseOutputWithContext(ctx context.Context) PathMatcherResponseOutput { return o } // defaultRouteAction takes effect when none of the pathRules or routeRules match. The load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set. Conversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices. Only one of defaultRouteAction or defaultUrlRedirect must be set. UrlMaps for external HTTP(S) load balancers support only the urlRewrite action within a path matcher's defaultRouteAction. func (o PathMatcherResponseOutput) DefaultRouteAction() HttpRouteActionResponseOutput { return o.ApplyT(func(v PathMatcherResponse) HttpRouteActionResponse { return v.DefaultRouteAction }).(HttpRouteActionResponseOutput) } // The full or partial URL to the BackendService resource. This URL is used if none of the pathRules or routeRules defined by this PathMatcher are matched. For example, the following are all valid URLs to a BackendService resource: - https://www.googleapis.com/compute/v1/projects/project /global/backendServices/backendService - compute/v1/projects/project/global/backendServices/backendService - global/backendServices/backendService If defaultRouteAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if defaultService is specified, defaultRouteAction cannot contain any weightedBackendServices. Conversely, if defaultRouteAction specifies any weightedBackendServices, defaultService must not be specified. Only one of defaultService, defaultUrlRedirect , or defaultRouteAction.weightedBackendService must be set. Authorization requires one or more of the following Google IAM permissions on the specified resource default_service: - compute.backendBuckets.use - compute.backendServices.use func (o PathMatcherResponseOutput) DefaultService() pulumi.StringOutput { return o.ApplyT(func(v PathMatcherResponse) string { return v.DefaultService }).(pulumi.StringOutput) } // When none of the specified pathRules or routeRules match, the request is redirected to a URL specified by defaultUrlRedirect. If defaultUrlRedirect is specified, defaultService or defaultRouteAction must not be set. Not supported when the URL map is bound to a target gRPC proxy. func (o PathMatcherResponseOutput) DefaultUrlRedirect() HttpRedirectActionResponseOutput { return o.ApplyT(func(v PathMatcherResponse) HttpRedirectActionResponse { return v.DefaultUrlRedirect }).(HttpRedirectActionResponseOutput) } // An optional description of this resource. Provide this property when you create the resource. func (o PathMatcherResponseOutput) Description() pulumi.StringOutput { return o.ApplyT(func(v PathMatcherResponse) string { return v.Description }).(pulumi.StringOutput) } // Specifies changes to request and response headers that need to take effect for the selected backend service. HeaderAction specified here are applied after the matching HttpRouteRule HeaderAction and before the HeaderAction in the UrlMap HeaderAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. func (o PathMatcherResponseOutput) HeaderAction() HttpHeaderActionResponseOutput { return o.ApplyT(func(v PathMatcherResponse) HttpHeaderActionResponse { return v.HeaderAction }).(HttpHeaderActionResponseOutput) } // The name to which this PathMatcher is referred by the HostRule. func (o PathMatcherResponseOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v PathMatcherResponse) string { return v.Name }).(pulumi.StringOutput) } // The list of path rules. Use this list instead of routeRules when routing based on simple path matching is all that's required. The order by which path rules are specified does not matter. Matches are always done on the longest-path-first basis. For example: a pathRule with a path /a/b/c/* will match before /a/b/* irrespective of the order in which those paths appear in this list. Within a given pathMatcher, only one of pathRules or routeRules must be set. func (o PathMatcherResponseOutput) PathRules() PathRuleResponseArrayOutput { return o.ApplyT(func(v PathMatcherResponse) []PathRuleResponse { return v.PathRules }).(PathRuleResponseArrayOutput) } // The list of HTTP route rules. Use this list instead of pathRules when advanced route matching and routing actions are desired. routeRules are evaluated in order of priority, from the lowest to highest number. Within a given pathMatcher, you can set only one of pathRules or routeRules. func (o PathMatcherResponseOutput) RouteRules() HttpRouteRuleResponseArrayOutput { return o.ApplyT(func(v PathMatcherResponse) []HttpRouteRuleResponse { return v.RouteRules }).(HttpRouteRuleResponseArrayOutput) } type PathMatcherResponseArrayOutput struct{ *pulumi.OutputState } func (PathMatcherResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]PathMatcherResponse)(nil)).Elem() } func (o PathMatcherResponseArrayOutput) ToPathMatcherResponseArrayOutput() PathMatcherResponseArrayOutput { return o } func (o PathMatcherResponseArrayOutput) ToPathMatcherResponseArrayOutputWithContext(ctx context.Context) PathMatcherResponseArrayOutput { return o } func (o PathMatcherResponseArrayOutput) Index(i pulumi.IntInput) PathMatcherResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) PathMatcherResponse { return vs[0].([]PathMatcherResponse)[vs[1].(int)] }).(PathMatcherResponseOutput) } // A path-matching rule for a URL. If matched, will use the specified BackendService to handle the traffic arriving at this URL. type PathRule struct { // The list of path patterns to match. Each must start with / and the only place a * is allowed is at the end following a /. The string fed to the path matcher does not include any text after the first ? or #, and those chars are not allowed here. Paths []string `pulumi:"paths"` // In response to a matching path, the load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If routeAction specifies any weightedBackendServices, service must not be set. Conversely if service is set, routeAction cannot contain any weightedBackendServices. Only one of routeAction or urlRedirect must be set. URL maps for external HTTP(S) load balancers support only the urlRewrite action within a path rule's routeAction. RouteAction *HttpRouteAction `pulumi:"routeAction"` // The full or partial URL of the backend service resource to which traffic is directed if this rule is matched. If routeAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if service is specified, routeAction cannot contain any weightedBackendServices. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. Only one of urlRedirect, service or routeAction.weightedBackendService must be set. Service *string `pulumi:"service"` // When a path pattern is matched, the request is redirected to a URL specified by urlRedirect. If urlRedirect is specified, service or routeAction must not be set. Not supported when the URL map is bound to a target gRPC proxy. UrlRedirect *HttpRedirectAction `pulumi:"urlRedirect"` } // PathRuleInput is an input type that accepts PathRuleArgs and PathRuleOutput values. // You can construct a concrete instance of `PathRuleInput` via: // // PathRuleArgs{...} type PathRuleInput interface { pulumi.Input ToPathRuleOutput() PathRuleOutput ToPathRuleOutputWithContext(context.Context) PathRuleOutput } // A path-matching rule for a URL. If matched, will use the specified BackendService to handle the traffic arriving at this URL. type PathRuleArgs struct { // The list of path patterns to match. Each must start with / and the only place a * is allowed is at the end following a /. The string fed to the path matcher does not include any text after the first ? or #, and those chars are not allowed here. Paths pulumi.StringArrayInput `pulumi:"paths"` // In response to a matching path, the load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If routeAction specifies any weightedBackendServices, service must not be set. Conversely if service is set, routeAction cannot contain any weightedBackendServices. Only one of routeAction or urlRedirect must be set. URL maps for external HTTP(S) load balancers support only the urlRewrite action within a path rule's routeAction. RouteAction HttpRouteActionPtrInput `pulumi:"routeAction"` // The full or partial URL of the backend service resource to which traffic is directed if this rule is matched. If routeAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if service is specified, routeAction cannot contain any weightedBackendServices. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. Only one of urlRedirect, service or routeAction.weightedBackendService must be set. Service pulumi.StringPtrInput `pulumi:"service"` // When a path pattern is matched, the request is redirected to a URL specified by urlRedirect. If urlRedirect is specified, service or routeAction must not be set. Not supported when the URL map is bound to a target gRPC proxy. UrlRedirect HttpRedirectActionPtrInput `pulumi:"urlRedirect"` } func (PathRuleArgs) ElementType() reflect.Type { return reflect.TypeOf((*PathRule)(nil)).Elem() } func (i PathRuleArgs) ToPathRuleOutput() PathRuleOutput { return i.ToPathRuleOutputWithContext(context.Background()) } func (i PathRuleArgs) ToPathRuleOutputWithContext(ctx context.Context) PathRuleOutput { return pulumi.ToOutputWithContext(ctx, i).(PathRuleOutput) } // PathRuleArrayInput is an input type that accepts PathRuleArray and PathRuleArrayOutput values. // You can construct a concrete instance of `PathRuleArrayInput` via: // // PathRuleArray{ PathRuleArgs{...} } type PathRuleArrayInput interface { pulumi.Input ToPathRuleArrayOutput() PathRuleArrayOutput ToPathRuleArrayOutputWithContext(context.Context) PathRuleArrayOutput } type PathRuleArray []PathRuleInput func (PathRuleArray) ElementType() reflect.Type { return reflect.TypeOf((*[]PathRule)(nil)).Elem() } func (i PathRuleArray) ToPathRuleArrayOutput() PathRuleArrayOutput { return i.ToPathRuleArrayOutputWithContext(context.Background()) } func (i PathRuleArray) ToPathRuleArrayOutputWithContext(ctx context.Context) PathRuleArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(PathRuleArrayOutput) } // A path-matching rule for a URL. If matched, will use the specified BackendService to handle the traffic arriving at this URL. type PathRuleOutput struct{ *pulumi.OutputState } func (PathRuleOutput) ElementType() reflect.Type { return reflect.TypeOf((*PathRule)(nil)).Elem() } func (o PathRuleOutput) ToPathRuleOutput() PathRuleOutput { return o } func (o PathRuleOutput) ToPathRuleOutputWithContext(ctx context.Context) PathRuleOutput { return o } // The list of path patterns to match. Each must start with / and the only place a * is allowed is at the end following a /. The string fed to the path matcher does not include any text after the first ? or #, and those chars are not allowed here. func (o PathRuleOutput) Paths() pulumi.StringArrayOutput { return o.ApplyT(func(v PathRule) []string { return v.Paths }).(pulumi.StringArrayOutput) } // In response to a matching path, the load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If routeAction specifies any weightedBackendServices, service must not be set. Conversely if service is set, routeAction cannot contain any weightedBackendServices. Only one of routeAction or urlRedirect must be set. URL maps for external HTTP(S) load balancers support only the urlRewrite action within a path rule's routeAction. func (o PathRuleOutput) RouteAction() HttpRouteActionPtrOutput { return o.ApplyT(func(v PathRule) *HttpRouteAction { return v.RouteAction }).(HttpRouteActionPtrOutput) } // The full or partial URL of the backend service resource to which traffic is directed if this rule is matched. If routeAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if service is specified, routeAction cannot contain any weightedBackendServices. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. Only one of urlRedirect, service or routeAction.weightedBackendService must be set. func (o PathRuleOutput) Service() pulumi.StringPtrOutput { return o.ApplyT(func(v PathRule) *string { return v.Service }).(pulumi.StringPtrOutput) } // When a path pattern is matched, the request is redirected to a URL specified by urlRedirect. If urlRedirect is specified, service or routeAction must not be set. Not supported when the URL map is bound to a target gRPC proxy. func (o PathRuleOutput) UrlRedirect() HttpRedirectActionPtrOutput { return o.ApplyT(func(v PathRule) *HttpRedirectAction { return v.UrlRedirect }).(HttpRedirectActionPtrOutput) } type PathRuleArrayOutput struct{ *pulumi.OutputState } func (PathRuleArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]PathRule)(nil)).Elem() } func (o PathRuleArrayOutput) ToPathRuleArrayOutput() PathRuleArrayOutput { return o } func (o PathRuleArrayOutput) ToPathRuleArrayOutputWithContext(ctx context.Context) PathRuleArrayOutput { return o } func (o PathRuleArrayOutput) Index(i pulumi.IntInput) PathRuleOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) PathRule { return vs[0].([]PathRule)[vs[1].(int)] }).(PathRuleOutput) } // A path-matching rule for a URL. If matched, will use the specified BackendService to handle the traffic arriving at this URL. type PathRuleResponse struct { // The list of path patterns to match. Each must start with / and the only place a * is allowed is at the end following a /. The string fed to the path matcher does not include any text after the first ? or #, and those chars are not allowed here. Paths []string `pulumi:"paths"` // In response to a matching path, the load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If routeAction specifies any weightedBackendServices, service must not be set. Conversely if service is set, routeAction cannot contain any weightedBackendServices. Only one of routeAction or urlRedirect must be set. URL maps for external HTTP(S) load balancers support only the urlRewrite action within a path rule's routeAction. RouteAction HttpRouteActionResponse `pulumi:"routeAction"` // The full or partial URL of the backend service resource to which traffic is directed if this rule is matched. If routeAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if service is specified, routeAction cannot contain any weightedBackendServices. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. Only one of urlRedirect, service or routeAction.weightedBackendService must be set. Service string `pulumi:"service"` // When a path pattern is matched, the request is redirected to a URL specified by urlRedirect. If urlRedirect is specified, service or routeAction must not be set. Not supported when the URL map is bound to a target gRPC proxy. UrlRedirect HttpRedirectActionResponse `pulumi:"urlRedirect"` } // A path-matching rule for a URL. If matched, will use the specified BackendService to handle the traffic arriving at this URL. type PathRuleResponseOutput struct{ *pulumi.OutputState } func (PathRuleResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*PathRuleResponse)(nil)).Elem() } func (o PathRuleResponseOutput) ToPathRuleResponseOutput() PathRuleResponseOutput { return o } func (o PathRuleResponseOutput) ToPathRuleResponseOutputWithContext(ctx context.Context) PathRuleResponseOutput { return o } // The list of path patterns to match. Each must start with / and the only place a * is allowed is at the end following a /. The string fed to the path matcher does not include any text after the first ? or #, and those chars are not allowed here. func (o PathRuleResponseOutput) Paths() pulumi.StringArrayOutput { return o.ApplyT(func(v PathRuleResponse) []string { return v.Paths }).(pulumi.StringArrayOutput) } // In response to a matching path, the load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If routeAction specifies any weightedBackendServices, service must not be set. Conversely if service is set, routeAction cannot contain any weightedBackendServices. Only one of routeAction or urlRedirect must be set. URL maps for external HTTP(S) load balancers support only the urlRewrite action within a path rule's routeAction. func (o PathRuleResponseOutput) RouteAction() HttpRouteActionResponseOutput { return o.ApplyT(func(v PathRuleResponse) HttpRouteActionResponse { return v.RouteAction }).(HttpRouteActionResponseOutput) } // The full or partial URL of the backend service resource to which traffic is directed if this rule is matched. If routeAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if service is specified, routeAction cannot contain any weightedBackendServices. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. Only one of urlRedirect, service or routeAction.weightedBackendService must be set. func (o PathRuleResponseOutput) Service() pulumi.StringOutput { return o.ApplyT(func(v PathRuleResponse) string { return v.Service }).(pulumi.StringOutput) } // When a path pattern is matched, the request is redirected to a URL specified by urlRedirect. If urlRedirect is specified, service or routeAction must not be set. Not supported when the URL map is bound to a target gRPC proxy. func (o PathRuleResponseOutput) UrlRedirect() HttpRedirectActionResponseOutput { return o.ApplyT(func(v PathRuleResponse) HttpRedirectActionResponse { return v.UrlRedirect }).(HttpRedirectActionResponseOutput) } type PathRuleResponseArrayOutput struct{ *pulumi.OutputState } func (PathRuleResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]PathRuleResponse)(nil)).Elem() } func (o PathRuleResponseArrayOutput) ToPathRuleResponseArrayOutput() PathRuleResponseArrayOutput { return o } func (o PathRuleResponseArrayOutput) ToPathRuleResponseArrayOutputWithContext(ctx context.Context) PathRuleResponseArrayOutput { return o } func (o PathRuleResponseArrayOutput) Index(i pulumi.IntInput) PathRuleResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) PathRuleResponse { return vs[0].([]PathRuleResponse)[vs[1].(int)] }).(PathRuleResponseOutput) } // Represents a CIDR range which can be used to assign addresses. type PublicAdvertisedPrefixPublicDelegatedPrefixResponse struct { // The IP address range of the public delegated prefix IpRange string `pulumi:"ipRange"` // The name of the public delegated prefix Name string `pulumi:"name"` // The project number of the public delegated prefix Project string `pulumi:"project"` // The region of the public delegated prefix if it is regional. If absent, the prefix is global. Region string `pulumi:"region"` // The status of the public delegated prefix. Possible values are: INITIALIZING: The public delegated prefix is being initialized and addresses cannot be created yet. ANNOUNCED: The public delegated prefix is active. Status string `pulumi:"status"` } // Represents a CIDR range which can be used to assign addresses. type PublicAdvertisedPrefixPublicDelegatedPrefixResponseOutput struct{ *pulumi.OutputState } func (PublicAdvertisedPrefixPublicDelegatedPrefixResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*PublicAdvertisedPrefixPublicDelegatedPrefixResponse)(nil)).Elem() } func (o PublicAdvertisedPrefixPublicDelegatedPrefixResponseOutput) ToPublicAdvertisedPrefixPublicDelegatedPrefixResponseOutput() PublicAdvertisedPrefixPublicDelegatedPrefixResponseOutput { return o } func (o PublicAdvertisedPrefixPublicDelegatedPrefixResponseOutput) ToPublicAdvertisedPrefixPublicDelegatedPrefixResponseOutputWithContext(ctx context.Context) PublicAdvertisedPrefixPublicDelegatedPrefixResponseOutput { return o } // The IP address range of the public delegated prefix func (o PublicAdvertisedPrefixPublicDelegatedPrefixResponseOutput) IpRange() pulumi.StringOutput { return o.ApplyT(func(v PublicAdvertisedPrefixPublicDelegatedPrefixResponse) string { return v.IpRange }).(pulumi.StringOutput) } // The name of the public delegated prefix func (o PublicAdvertisedPrefixPublicDelegatedPrefixResponseOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v PublicAdvertisedPrefixPublicDelegatedPrefixResponse) string { return v.Name }).(pulumi.StringOutput) } // The project number of the public delegated prefix func (o PublicAdvertisedPrefixPublicDelegatedPrefixResponseOutput) Project() pulumi.StringOutput { return o.ApplyT(func(v PublicAdvertisedPrefixPublicDelegatedPrefixResponse) string { return v.Project }).(pulumi.StringOutput) } // The region of the public delegated prefix if it is regional. If absent, the prefix is global. func (o PublicAdvertisedPrefixPublicDelegatedPrefixResponseOutput) Region() pulumi.StringOutput { return o.ApplyT(func(v PublicAdvertisedPrefixPublicDelegatedPrefixResponse) string { return v.Region }).(pulumi.StringOutput) } // The status of the public delegated prefix. Possible values are: INITIALIZING: The public delegated prefix is being initialized and addresses cannot be created yet. ANNOUNCED: The public delegated prefix is active. func (o PublicAdvertisedPrefixPublicDelegatedPrefixResponseOutput) Status() pulumi.StringOutput { return o.ApplyT(func(v PublicAdvertisedPrefixPublicDelegatedPrefixResponse) string { return v.Status }).(pulumi.StringOutput) } type PublicAdvertisedPrefixPublicDelegatedPrefixResponseArrayOutput struct{ *pulumi.OutputState } func (PublicAdvertisedPrefixPublicDelegatedPrefixResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]PublicAdvertisedPrefixPublicDelegatedPrefixResponse)(nil)).Elem() } func (o PublicAdvertisedPrefixPublicDelegatedPrefixResponseArrayOutput) ToPublicAdvertisedPrefixPublicDelegatedPrefixResponseArrayOutput() PublicAdvertisedPrefixPublicDelegatedPrefixResponseArrayOutput { return o } func (o PublicAdvertisedPrefixPublicDelegatedPrefixResponseArrayOutput) ToPublicAdvertisedPrefixPublicDelegatedPrefixResponseArrayOutputWithContext(ctx context.Context) PublicAdvertisedPrefixPublicDelegatedPrefixResponseArrayOutput { return o } func (o PublicAdvertisedPrefixPublicDelegatedPrefixResponseArrayOutput) Index(i pulumi.IntInput) PublicAdvertisedPrefixPublicDelegatedPrefixResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) PublicAdvertisedPrefixPublicDelegatedPrefixResponse { return vs[0].([]PublicAdvertisedPrefixPublicDelegatedPrefixResponse)[vs[1].(int)] }).(PublicAdvertisedPrefixPublicDelegatedPrefixResponseOutput) } // Represents a sub PublicDelegatedPrefix. type PublicDelegatedPrefixPublicDelegatedSubPrefix struct { // Name of the project scoping this PublicDelegatedSubPrefix. DelegateeProject *string `pulumi:"delegateeProject"` // An optional description of this resource. Provide this property when you create the resource. Description *string `pulumi:"description"` // The IPv4 address range, in CIDR format, represented by this sub public delegated prefix. IpCidrRange *string `pulumi:"ipCidrRange"` // Whether the sub prefix is delegated to create Address resources in the delegatee project. IsAddress *bool `pulumi:"isAddress"` // The name of the sub public delegated prefix. Name *string `pulumi:"name"` } // PublicDelegatedPrefixPublicDelegatedSubPrefixInput is an input type that accepts PublicDelegatedPrefixPublicDelegatedSubPrefixArgs and PublicDelegatedPrefixPublicDelegatedSubPrefixOutput values. // You can construct a concrete instance of `PublicDelegatedPrefixPublicDelegatedSubPrefixInput` via: // // PublicDelegatedPrefixPublicDelegatedSubPrefixArgs{...} type PublicDelegatedPrefixPublicDelegatedSubPrefixInput interface { pulumi.Input ToPublicDelegatedPrefixPublicDelegatedSubPrefixOutput() PublicDelegatedPrefixPublicDelegatedSubPrefixOutput ToPublicDelegatedPrefixPublicDelegatedSubPrefixOutputWithContext(context.Context) PublicDelegatedPrefixPublicDelegatedSubPrefixOutput } // Represents a sub PublicDelegatedPrefix. type PublicDelegatedPrefixPublicDelegatedSubPrefixArgs struct { // Name of the project scoping this PublicDelegatedSubPrefix. DelegateeProject pulumi.StringPtrInput `pulumi:"delegateeProject"` // An optional description of this resource. Provide this property when you create the resource. Description pulumi.StringPtrInput `pulumi:"description"` // The IPv4 address range, in CIDR format, represented by this sub public delegated prefix. IpCidrRange pulumi.StringPtrInput `pulumi:"ipCidrRange"` // Whether the sub prefix is delegated to create Address resources in the delegatee project. IsAddress pulumi.BoolPtrInput `pulumi:"isAddress"` // The name of the sub public delegated prefix. Name pulumi.StringPtrInput `pulumi:"name"` } func (PublicDelegatedPrefixPublicDelegatedSubPrefixArgs) ElementType() reflect.Type { return reflect.TypeOf((*PublicDelegatedPrefixPublicDelegatedSubPrefix)(nil)).Elem() } func (i PublicDelegatedPrefixPublicDelegatedSubPrefixArgs) ToPublicDelegatedPrefixPublicDelegatedSubPrefixOutput() PublicDelegatedPrefixPublicDelegatedSubPrefixOutput { return i.ToPublicDelegatedPrefixPublicDelegatedSubPrefixOutputWithContext(context.Background()) } func (i PublicDelegatedPrefixPublicDelegatedSubPrefixArgs) ToPublicDelegatedPrefixPublicDelegatedSubPrefixOutputWithContext(ctx context.Context) PublicDelegatedPrefixPublicDelegatedSubPrefixOutput { return pulumi.ToOutputWithContext(ctx, i).(PublicDelegatedPrefixPublicDelegatedSubPrefixOutput) } // PublicDelegatedPrefixPublicDelegatedSubPrefixArrayInput is an input type that accepts PublicDelegatedPrefixPublicDelegatedSubPrefixArray and PublicDelegatedPrefixPublicDelegatedSubPrefixArrayOutput values. // You can construct a concrete instance of `PublicDelegatedPrefixPublicDelegatedSubPrefixArrayInput` via: // // PublicDelegatedPrefixPublicDelegatedSubPrefixArray{ PublicDelegatedPrefixPublicDelegatedSubPrefixArgs{...} } type PublicDelegatedPrefixPublicDelegatedSubPrefixArrayInput interface { pulumi.Input ToPublicDelegatedPrefixPublicDelegatedSubPrefixArrayOutput() PublicDelegatedPrefixPublicDelegatedSubPrefixArrayOutput ToPublicDelegatedPrefixPublicDelegatedSubPrefixArrayOutputWithContext(context.Context) PublicDelegatedPrefixPublicDelegatedSubPrefixArrayOutput } type PublicDelegatedPrefixPublicDelegatedSubPrefixArray []PublicDelegatedPrefixPublicDelegatedSubPrefixInput func (PublicDelegatedPrefixPublicDelegatedSubPrefixArray) ElementType() reflect.Type { return reflect.TypeOf((*[]PublicDelegatedPrefixPublicDelegatedSubPrefix)(nil)).Elem() } func (i PublicDelegatedPrefixPublicDelegatedSubPrefixArray) ToPublicDelegatedPrefixPublicDelegatedSubPrefixArrayOutput() PublicDelegatedPrefixPublicDelegatedSubPrefixArrayOutput { return i.ToPublicDelegatedPrefixPublicDelegatedSubPrefixArrayOutputWithContext(context.Background()) } func (i PublicDelegatedPrefixPublicDelegatedSubPrefixArray) ToPublicDelegatedPrefixPublicDelegatedSubPrefixArrayOutputWithContext(ctx context.Context) PublicDelegatedPrefixPublicDelegatedSubPrefixArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(PublicDelegatedPrefixPublicDelegatedSubPrefixArrayOutput) } // Represents a sub PublicDelegatedPrefix. type PublicDelegatedPrefixPublicDelegatedSubPrefixOutput struct{ *pulumi.OutputState } func (PublicDelegatedPrefixPublicDelegatedSubPrefixOutput) ElementType() reflect.Type { return reflect.TypeOf((*PublicDelegatedPrefixPublicDelegatedSubPrefix)(nil)).Elem() } func (o PublicDelegatedPrefixPublicDelegatedSubPrefixOutput) ToPublicDelegatedPrefixPublicDelegatedSubPrefixOutput() PublicDelegatedPrefixPublicDelegatedSubPrefixOutput { return o } func (o PublicDelegatedPrefixPublicDelegatedSubPrefixOutput) ToPublicDelegatedPrefixPublicDelegatedSubPrefixOutputWithContext(ctx context.Context) PublicDelegatedPrefixPublicDelegatedSubPrefixOutput { return o } // Name of the project scoping this PublicDelegatedSubPrefix. func (o PublicDelegatedPrefixPublicDelegatedSubPrefixOutput) DelegateeProject() pulumi.StringPtrOutput { return o.ApplyT(func(v PublicDelegatedPrefixPublicDelegatedSubPrefix) *string { return v.DelegateeProject }).(pulumi.StringPtrOutput) } // An optional description of this resource. Provide this property when you create the resource. func (o PublicDelegatedPrefixPublicDelegatedSubPrefixOutput) Description() pulumi.StringPtrOutput { return o.ApplyT(func(v PublicDelegatedPrefixPublicDelegatedSubPrefix) *string { return v.Description }).(pulumi.StringPtrOutput) } // The IPv4 address range, in CIDR format, represented by this sub public delegated prefix. func (o PublicDelegatedPrefixPublicDelegatedSubPrefixOutput) IpCidrRange() pulumi.StringPtrOutput { return o.ApplyT(func(v PublicDelegatedPrefixPublicDelegatedSubPrefix) *string { return v.IpCidrRange }).(pulumi.StringPtrOutput) } // Whether the sub prefix is delegated to create Address resources in the delegatee project. func (o PublicDelegatedPrefixPublicDelegatedSubPrefixOutput) IsAddress() pulumi.BoolPtrOutput { return o.ApplyT(func(v PublicDelegatedPrefixPublicDelegatedSubPrefix) *bool { return v.IsAddress }).(pulumi.BoolPtrOutput) } // The name of the sub public delegated prefix. func (o PublicDelegatedPrefixPublicDelegatedSubPrefixOutput) Name() pulumi.StringPtrOutput { return o.ApplyT(func(v PublicDelegatedPrefixPublicDelegatedSubPrefix) *string { return v.Name }).(pulumi.StringPtrOutput) } type PublicDelegatedPrefixPublicDelegatedSubPrefixArrayOutput struct{ *pulumi.OutputState } func (PublicDelegatedPrefixPublicDelegatedSubPrefixArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]PublicDelegatedPrefixPublicDelegatedSubPrefix)(nil)).Elem() } func (o PublicDelegatedPrefixPublicDelegatedSubPrefixArrayOutput) ToPublicDelegatedPrefixPublicDelegatedSubPrefixArrayOutput() PublicDelegatedPrefixPublicDelegatedSubPrefixArrayOutput { return o } func (o PublicDelegatedPrefixPublicDelegatedSubPrefixArrayOutput) ToPublicDelegatedPrefixPublicDelegatedSubPrefixArrayOutputWithContext(ctx context.Context) PublicDelegatedPrefixPublicDelegatedSubPrefixArrayOutput { return o } func (o PublicDelegatedPrefixPublicDelegatedSubPrefixArrayOutput) Index(i pulumi.IntInput) PublicDelegatedPrefixPublicDelegatedSubPrefixOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) PublicDelegatedPrefixPublicDelegatedSubPrefix { return vs[0].([]PublicDelegatedPrefixPublicDelegatedSubPrefix)[vs[1].(int)] }).(PublicDelegatedPrefixPublicDelegatedSubPrefixOutput) } // Represents a sub PublicDelegatedPrefix. type PublicDelegatedPrefixPublicDelegatedSubPrefixResponse struct { // Name of the project scoping this PublicDelegatedSubPrefix. DelegateeProject string `pulumi:"delegateeProject"` // An optional description of this resource. Provide this property when you create the resource. Description string `pulumi:"description"` // The IPv4 address range, in CIDR format, represented by this sub public delegated prefix. IpCidrRange string `pulumi:"ipCidrRange"` // Whether the sub prefix is delegated to create Address resources in the delegatee project. IsAddress bool `pulumi:"isAddress"` // The name of the sub public delegated prefix. Name string `pulumi:"name"` // The region of the sub public delegated prefix if it is regional. If absent, the sub prefix is global. Region string `pulumi:"region"` // The status of the sub public delegated prefix. Status string `pulumi:"status"` } // Represents a sub PublicDelegatedPrefix. type PublicDelegatedPrefixPublicDelegatedSubPrefixResponseOutput struct{ *pulumi.OutputState } func (PublicDelegatedPrefixPublicDelegatedSubPrefixResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*PublicDelegatedPrefixPublicDelegatedSubPrefixResponse)(nil)).Elem() } func (o PublicDelegatedPrefixPublicDelegatedSubPrefixResponseOutput) ToPublicDelegatedPrefixPublicDelegatedSubPrefixResponseOutput() PublicDelegatedPrefixPublicDelegatedSubPrefixResponseOutput { return o } func (o PublicDelegatedPrefixPublicDelegatedSubPrefixResponseOutput) ToPublicDelegatedPrefixPublicDelegatedSubPrefixResponseOutputWithContext(ctx context.Context) PublicDelegatedPrefixPublicDelegatedSubPrefixResponseOutput { return o } // Name of the project scoping this PublicDelegatedSubPrefix. func (o PublicDelegatedPrefixPublicDelegatedSubPrefixResponseOutput) DelegateeProject() pulumi.StringOutput { return o.ApplyT(func(v PublicDelegatedPrefixPublicDelegatedSubPrefixResponse) string { return v.DelegateeProject }).(pulumi.StringOutput) } // An optional description of this resource. Provide this property when you create the resource. func (o PublicDelegatedPrefixPublicDelegatedSubPrefixResponseOutput) Description() pulumi.StringOutput { return o.ApplyT(func(v PublicDelegatedPrefixPublicDelegatedSubPrefixResponse) string { return v.Description }).(pulumi.StringOutput) } // The IPv4 address range, in CIDR format, represented by this sub public delegated prefix. func (o PublicDelegatedPrefixPublicDelegatedSubPrefixResponseOutput) IpCidrRange() pulumi.StringOutput { return o.ApplyT(func(v PublicDelegatedPrefixPublicDelegatedSubPrefixResponse) string { return v.IpCidrRange }).(pulumi.StringOutput) } // Whether the sub prefix is delegated to create Address resources in the delegatee project. func (o PublicDelegatedPrefixPublicDelegatedSubPrefixResponseOutput) IsAddress() pulumi.BoolOutput { return o.ApplyT(func(v PublicDelegatedPrefixPublicDelegatedSubPrefixResponse) bool { return v.IsAddress }).(pulumi.BoolOutput) } // The name of the sub public delegated prefix. func (o PublicDelegatedPrefixPublicDelegatedSubPrefixResponseOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v PublicDelegatedPrefixPublicDelegatedSubPrefixResponse) string { return v.Name }).(pulumi.StringOutput) } // The region of the sub public delegated prefix if it is regional. If absent, the sub prefix is global. func (o PublicDelegatedPrefixPublicDelegatedSubPrefixResponseOutput) Region() pulumi.StringOutput { return o.ApplyT(func(v PublicDelegatedPrefixPublicDelegatedSubPrefixResponse) string { return v.Region }).(pulumi.StringOutput) } // The status of the sub public delegated prefix. func (o PublicDelegatedPrefixPublicDelegatedSubPrefixResponseOutput) Status() pulumi.StringOutput { return o.ApplyT(func(v PublicDelegatedPrefixPublicDelegatedSubPrefixResponse) string { return v.Status }).(pulumi.StringOutput) } type PublicDelegatedPrefixPublicDelegatedSubPrefixResponseArrayOutput struct{ *pulumi.OutputState } func (PublicDelegatedPrefixPublicDelegatedSubPrefixResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]PublicDelegatedPrefixPublicDelegatedSubPrefixResponse)(nil)).Elem() } func (o PublicDelegatedPrefixPublicDelegatedSubPrefixResponseArrayOutput) ToPublicDelegatedPrefixPublicDelegatedSubPrefixResponseArrayOutput() PublicDelegatedPrefixPublicDelegatedSubPrefixResponseArrayOutput { return o } func (o PublicDelegatedPrefixPublicDelegatedSubPrefixResponseArrayOutput) ToPublicDelegatedPrefixPublicDelegatedSubPrefixResponseArrayOutputWithContext(ctx context.Context) PublicDelegatedPrefixPublicDelegatedSubPrefixResponseArrayOutput { return o } func (o PublicDelegatedPrefixPublicDelegatedSubPrefixResponseArrayOutput) Index(i pulumi.IntInput) PublicDelegatedPrefixPublicDelegatedSubPrefixResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) PublicDelegatedPrefixPublicDelegatedSubPrefixResponse { return vs[0].([]PublicDelegatedPrefixPublicDelegatedSubPrefixResponse)[vs[1].(int)] }).(PublicDelegatedPrefixPublicDelegatedSubPrefixResponseOutput) } // A policy that specifies how requests intended for the route's backends are shadowed to a separate mirrored backend service. The load balancer doesn't wait for responses from the shadow service. Before sending traffic to the shadow service, the host or authority header is suffixed with -shadow. type RequestMirrorPolicy struct { // The full or partial URL to the BackendService resource being mirrored to. BackendService *string `pulumi:"backendService"` } // RequestMirrorPolicyInput is an input type that accepts RequestMirrorPolicyArgs and RequestMirrorPolicyOutput values. // You can construct a concrete instance of `RequestMirrorPolicyInput` via: // // RequestMirrorPolicyArgs{...} type RequestMirrorPolicyInput interface { pulumi.Input ToRequestMirrorPolicyOutput() RequestMirrorPolicyOutput ToRequestMirrorPolicyOutputWithContext(context.Context) RequestMirrorPolicyOutput } // A policy that specifies how requests intended for the route's backends are shadowed to a separate mirrored backend service. The load balancer doesn't wait for responses from the shadow service. Before sending traffic to the shadow service, the host or authority header is suffixed with -shadow. type RequestMirrorPolicyArgs struct { // The full or partial URL to the BackendService resource being mirrored to. BackendService pulumi.StringPtrInput `pulumi:"backendService"` } func (RequestMirrorPolicyArgs) ElementType() reflect.Type { return reflect.TypeOf((*RequestMirrorPolicy)(nil)).Elem() } func (i RequestMirrorPolicyArgs) ToRequestMirrorPolicyOutput() RequestMirrorPolicyOutput { return i.ToRequestMirrorPolicyOutputWithContext(context.Background()) } func (i RequestMirrorPolicyArgs) ToRequestMirrorPolicyOutputWithContext(ctx context.Context) RequestMirrorPolicyOutput { return pulumi.ToOutputWithContext(ctx, i).(RequestMirrorPolicyOutput) } func (i RequestMirrorPolicyArgs) ToRequestMirrorPolicyPtrOutput() RequestMirrorPolicyPtrOutput { return i.ToRequestMirrorPolicyPtrOutputWithContext(context.Background()) } func (i RequestMirrorPolicyArgs) ToRequestMirrorPolicyPtrOutputWithContext(ctx context.Context) RequestMirrorPolicyPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(RequestMirrorPolicyOutput).ToRequestMirrorPolicyPtrOutputWithContext(ctx) } // RequestMirrorPolicyPtrInput is an input type that accepts RequestMirrorPolicyArgs, RequestMirrorPolicyPtr and RequestMirrorPolicyPtrOutput values. // You can construct a concrete instance of `RequestMirrorPolicyPtrInput` via: // // RequestMirrorPolicyArgs{...} // // or: // // nil type RequestMirrorPolicyPtrInput interface { pulumi.Input ToRequestMirrorPolicyPtrOutput() RequestMirrorPolicyPtrOutput ToRequestMirrorPolicyPtrOutputWithContext(context.Context) RequestMirrorPolicyPtrOutput } type requestMirrorPolicyPtrType RequestMirrorPolicyArgs func RequestMirrorPolicyPtr(v *RequestMirrorPolicyArgs) RequestMirrorPolicyPtrInput { return (*requestMirrorPolicyPtrType)(v) } func (*requestMirrorPolicyPtrType) ElementType() reflect.Type { return reflect.TypeOf((**RequestMirrorPolicy)(nil)).Elem() } func (i *requestMirrorPolicyPtrType) ToRequestMirrorPolicyPtrOutput() RequestMirrorPolicyPtrOutput { return i.ToRequestMirrorPolicyPtrOutputWithContext(context.Background()) } func (i *requestMirrorPolicyPtrType) ToRequestMirrorPolicyPtrOutputWithContext(ctx context.Context) RequestMirrorPolicyPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(RequestMirrorPolicyPtrOutput) } // A policy that specifies how requests intended for the route's backends are shadowed to a separate mirrored backend service. The load balancer doesn't wait for responses from the shadow service. Before sending traffic to the shadow service, the host or authority header is suffixed with -shadow. type RequestMirrorPolicyOutput struct{ *pulumi.OutputState } func (RequestMirrorPolicyOutput) ElementType() reflect.Type { return reflect.TypeOf((*RequestMirrorPolicy)(nil)).Elem() } func (o RequestMirrorPolicyOutput) ToRequestMirrorPolicyOutput() RequestMirrorPolicyOutput { return o } func (o RequestMirrorPolicyOutput) ToRequestMirrorPolicyOutputWithContext(ctx context.Context) RequestMirrorPolicyOutput { return o } func (o RequestMirrorPolicyOutput) ToRequestMirrorPolicyPtrOutput() RequestMirrorPolicyPtrOutput { return o.ToRequestMirrorPolicyPtrOutputWithContext(context.Background()) } func (o RequestMirrorPolicyOutput) ToRequestMirrorPolicyPtrOutputWithContext(ctx context.Context) RequestMirrorPolicyPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v RequestMirrorPolicy) *RequestMirrorPolicy { return &v }).(RequestMirrorPolicyPtrOutput) } // The full or partial URL to the BackendService resource being mirrored to. func (o RequestMirrorPolicyOutput) BackendService() pulumi.StringPtrOutput { return o.ApplyT(func(v RequestMirrorPolicy) *string { return v.BackendService }).(pulumi.StringPtrOutput) } type RequestMirrorPolicyPtrOutput struct{ *pulumi.OutputState } func (RequestMirrorPolicyPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**RequestMirrorPolicy)(nil)).Elem() } func (o RequestMirrorPolicyPtrOutput) ToRequestMirrorPolicyPtrOutput() RequestMirrorPolicyPtrOutput { return o } func (o RequestMirrorPolicyPtrOutput) ToRequestMirrorPolicyPtrOutputWithContext(ctx context.Context) RequestMirrorPolicyPtrOutput { return o } func (o RequestMirrorPolicyPtrOutput) Elem() RequestMirrorPolicyOutput { return o.ApplyT(func(v *RequestMirrorPolicy) RequestMirrorPolicy { if v != nil { return *v } var ret RequestMirrorPolicy return ret }).(RequestMirrorPolicyOutput) } // The full or partial URL to the BackendService resource being mirrored to. func (o RequestMirrorPolicyPtrOutput) BackendService() pulumi.StringPtrOutput { return o.ApplyT(func(v *RequestMirrorPolicy) *string { if v == nil { return nil } return v.BackendService }).(pulumi.StringPtrOutput) } // A policy that specifies how requests intended for the route's backends are shadowed to a separate mirrored backend service. The load balancer doesn't wait for responses from the shadow service. Before sending traffic to the shadow service, the host or authority header is suffixed with -shadow. type RequestMirrorPolicyResponse struct { // The full or partial URL to the BackendService resource being mirrored to. BackendService string `pulumi:"backendService"` } // A policy that specifies how requests intended for the route's backends are shadowed to a separate mirrored backend service. The load balancer doesn't wait for responses from the shadow service. Before sending traffic to the shadow service, the host or authority header is suffixed with -shadow. type RequestMirrorPolicyResponseOutput struct{ *pulumi.OutputState } func (RequestMirrorPolicyResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*RequestMirrorPolicyResponse)(nil)).Elem() } func (o RequestMirrorPolicyResponseOutput) ToRequestMirrorPolicyResponseOutput() RequestMirrorPolicyResponseOutput { return o } func (o RequestMirrorPolicyResponseOutput) ToRequestMirrorPolicyResponseOutputWithContext(ctx context.Context) RequestMirrorPolicyResponseOutput { return o } // The full or partial URL to the BackendService resource being mirrored to. func (o RequestMirrorPolicyResponseOutput) BackendService() pulumi.StringOutput { return o.ApplyT(func(v RequestMirrorPolicyResponse) string { return v.BackendService }).(pulumi.StringOutput) } // Represents a reservation resource. A reservation ensures that capacity is held in a specific zone even if the reserved VMs are not running. For more information, read Reserving zonal resources. type ReservationType struct { // An optional description of this resource. Provide this property when you create the resource. Description *string `pulumi:"description"` // The name of the resource, provided by the client when initially creating the resource. The resource name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. Name *string `pulumi:"name"` // Share-settings for shared-reservation ShareSettings *ShareSettings `pulumi:"shareSettings"` // Reservation for instances with specific machine shapes. SpecificReservation *AllocationSpecificSKUReservation `pulumi:"specificReservation"` // Indicates whether the reservation can be consumed by VMs with affinity for "any" reservation. If the field is set, then only VMs that target the reservation by name can consume from this reservation. SpecificReservationRequired *bool `pulumi:"specificReservationRequired"` // Zone in which the reservation resides. A zone must be provided if the reservation is created within a commitment. Zone *string `pulumi:"zone"` } // ReservationTypeInput is an input type that accepts ReservationTypeArgs and ReservationTypeOutput values. // You can construct a concrete instance of `ReservationTypeInput` via: // // ReservationTypeArgs{...} type ReservationTypeInput interface { pulumi.Input ToReservationTypeOutput() ReservationTypeOutput ToReservationTypeOutputWithContext(context.Context) ReservationTypeOutput } // Represents a reservation resource. A reservation ensures that capacity is held in a specific zone even if the reserved VMs are not running. For more information, read Reserving zonal resources. type ReservationTypeArgs struct { // An optional description of this resource. Provide this property when you create the resource. Description pulumi.StringPtrInput `pulumi:"description"` // The name of the resource, provided by the client when initially creating the resource. The resource name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. Name pulumi.StringPtrInput `pulumi:"name"` // Share-settings for shared-reservation ShareSettings ShareSettingsPtrInput `pulumi:"shareSettings"` // Reservation for instances with specific machine shapes. SpecificReservation AllocationSpecificSKUReservationPtrInput `pulumi:"specificReservation"` // Indicates whether the reservation can be consumed by VMs with affinity for "any" reservation. If the field is set, then only VMs that target the reservation by name can consume from this reservation. SpecificReservationRequired pulumi.BoolPtrInput `pulumi:"specificReservationRequired"` // Zone in which the reservation resides. A zone must be provided if the reservation is created within a commitment. Zone pulumi.StringPtrInput `pulumi:"zone"` } func (ReservationTypeArgs) ElementType() reflect.Type { return reflect.TypeOf((*ReservationType)(nil)).Elem() } func (i ReservationTypeArgs) ToReservationTypeOutput() ReservationTypeOutput { return i.ToReservationTypeOutputWithContext(context.Background()) } func (i ReservationTypeArgs) ToReservationTypeOutputWithContext(ctx context.Context) ReservationTypeOutput { return pulumi.ToOutputWithContext(ctx, i).(ReservationTypeOutput) } // ReservationTypeArrayInput is an input type that accepts ReservationTypeArray and ReservationTypeArrayOutput values. // You can construct a concrete instance of `ReservationTypeArrayInput` via: // // ReservationTypeArray{ ReservationTypeArgs{...} } type ReservationTypeArrayInput interface { pulumi.Input ToReservationTypeArrayOutput() ReservationTypeArrayOutput ToReservationTypeArrayOutputWithContext(context.Context) ReservationTypeArrayOutput } type ReservationTypeArray []ReservationTypeInput func (ReservationTypeArray) ElementType() reflect.Type { return reflect.TypeOf((*[]ReservationType)(nil)).Elem() } func (i ReservationTypeArray) ToReservationTypeArrayOutput() ReservationTypeArrayOutput { return i.ToReservationTypeArrayOutputWithContext(context.Background()) } func (i ReservationTypeArray) ToReservationTypeArrayOutputWithContext(ctx context.Context) ReservationTypeArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(ReservationTypeArrayOutput) } // Represents a reservation resource. A reservation ensures that capacity is held in a specific zone even if the reserved VMs are not running. For more information, read Reserving zonal resources. type ReservationTypeOutput struct{ *pulumi.OutputState } func (ReservationTypeOutput) ElementType() reflect.Type { return reflect.TypeOf((*ReservationType)(nil)).Elem() } func (o ReservationTypeOutput) ToReservationTypeOutput() ReservationTypeOutput { return o } func (o ReservationTypeOutput) ToReservationTypeOutputWithContext(ctx context.Context) ReservationTypeOutput { return o } // An optional description of this resource. Provide this property when you create the resource. func (o ReservationTypeOutput) Description() pulumi.StringPtrOutput { return o.ApplyT(func(v ReservationType) *string { return v.Description }).(pulumi.StringPtrOutput) } // The name of the resource, provided by the client when initially creating the resource. The resource name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. func (o ReservationTypeOutput) Name() pulumi.StringPtrOutput { return o.ApplyT(func(v ReservationType) *string { return v.Name }).(pulumi.StringPtrOutput) } // Share-settings for shared-reservation func (o ReservationTypeOutput) ShareSettings() ShareSettingsPtrOutput { return o.ApplyT(func(v ReservationType) *ShareSettings { return v.ShareSettings }).(ShareSettingsPtrOutput) } // Reservation for instances with specific machine shapes. func (o ReservationTypeOutput) SpecificReservation() AllocationSpecificSKUReservationPtrOutput { return o.ApplyT(func(v ReservationType) *AllocationSpecificSKUReservation { return v.SpecificReservation }).(AllocationSpecificSKUReservationPtrOutput) } // Indicates whether the reservation can be consumed by VMs with affinity for "any" reservation. If the field is set, then only VMs that target the reservation by name can consume from this reservation. func (o ReservationTypeOutput) SpecificReservationRequired() pulumi.BoolPtrOutput { return o.ApplyT(func(v ReservationType) *bool { return v.SpecificReservationRequired }).(pulumi.BoolPtrOutput) } // Zone in which the reservation resides. A zone must be provided if the reservation is created within a commitment. func (o ReservationTypeOutput) Zone() pulumi.StringPtrOutput { return o.ApplyT(func(v ReservationType) *string { return v.Zone }).(pulumi.StringPtrOutput) } type ReservationTypeArrayOutput struct{ *pulumi.OutputState } func (ReservationTypeArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]ReservationType)(nil)).Elem() } func (o ReservationTypeArrayOutput) ToReservationTypeArrayOutput() ReservationTypeArrayOutput { return o } func (o ReservationTypeArrayOutput) ToReservationTypeArrayOutputWithContext(ctx context.Context) ReservationTypeArrayOutput { return o } func (o ReservationTypeArrayOutput) Index(i pulumi.IntInput) ReservationTypeOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) ReservationType { return vs[0].([]ReservationType)[vs[1].(int)] }).(ReservationTypeOutput) } // Specifies the reservations that this instance can consume from. type ReservationAffinity struct { // Specifies the type of reservation from which this instance can consume resources: ANY_RESERVATION (default), SPECIFIC_RESERVATION, or NO_RESERVATION. See Consuming reserved instances for examples. ConsumeReservationType *ReservationAffinityConsumeReservationType `pulumi:"consumeReservationType"` // Corresponds to the label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify googleapis.com/reservation-name as the key and specify the name of your reservation as its value. Key *string `pulumi:"key"` // Corresponds to the label values of a reservation resource. This can be either a name to a reservation in the same project or "projects/different-project/reservations/some-reservation-name" to target a shared reservation in the same zone but in a different project. Values []string `pulumi:"values"` } // ReservationAffinityInput is an input type that accepts ReservationAffinityArgs and ReservationAffinityOutput values. // You can construct a concrete instance of `ReservationAffinityInput` via: // // ReservationAffinityArgs{...} type ReservationAffinityInput interface { pulumi.Input ToReservationAffinityOutput() ReservationAffinityOutput ToReservationAffinityOutputWithContext(context.Context) ReservationAffinityOutput } // Specifies the reservations that this instance can consume from. type ReservationAffinityArgs struct { // Specifies the type of reservation from which this instance can consume resources: ANY_RESERVATION (default), SPECIFIC_RESERVATION, or NO_RESERVATION. See Consuming reserved instances for examples. ConsumeReservationType ReservationAffinityConsumeReservationTypePtrInput `pulumi:"consumeReservationType"` // Corresponds to the label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify googleapis.com/reservation-name as the key and specify the name of your reservation as its value. Key pulumi.StringPtrInput `pulumi:"key"` // Corresponds to the label values of a reservation resource. This can be either a name to a reservation in the same project or "projects/different-project/reservations/some-reservation-name" to target a shared reservation in the same zone but in a different project. Values pulumi.StringArrayInput `pulumi:"values"` } func (ReservationAffinityArgs) ElementType() reflect.Type { return reflect.TypeOf((*ReservationAffinity)(nil)).Elem() } func (i ReservationAffinityArgs) ToReservationAffinityOutput() ReservationAffinityOutput { return i.ToReservationAffinityOutputWithContext(context.Background()) } func (i ReservationAffinityArgs) ToReservationAffinityOutputWithContext(ctx context.Context) ReservationAffinityOutput { return pulumi.ToOutputWithContext(ctx, i).(ReservationAffinityOutput) } func (i ReservationAffinityArgs) ToReservationAffinityPtrOutput() ReservationAffinityPtrOutput { return i.ToReservationAffinityPtrOutputWithContext(context.Background()) } func (i ReservationAffinityArgs) ToReservationAffinityPtrOutputWithContext(ctx context.Context) ReservationAffinityPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(ReservationAffinityOutput).ToReservationAffinityPtrOutputWithContext(ctx) } // ReservationAffinityPtrInput is an input type that accepts ReservationAffinityArgs, ReservationAffinityPtr and ReservationAffinityPtrOutput values. // You can construct a concrete instance of `ReservationAffinityPtrInput` via: // // ReservationAffinityArgs{...} // // or: // // nil type ReservationAffinityPtrInput interface { pulumi.Input ToReservationAffinityPtrOutput() ReservationAffinityPtrOutput ToReservationAffinityPtrOutputWithContext(context.Context) ReservationAffinityPtrOutput } type reservationAffinityPtrType ReservationAffinityArgs func ReservationAffinityPtr(v *ReservationAffinityArgs) ReservationAffinityPtrInput { return (*reservationAffinityPtrType)(v) } func (*reservationAffinityPtrType) ElementType() reflect.Type { return reflect.TypeOf((**ReservationAffinity)(nil)).Elem() } func (i *reservationAffinityPtrType) ToReservationAffinityPtrOutput() ReservationAffinityPtrOutput { return i.ToReservationAffinityPtrOutputWithContext(context.Background()) } func (i *reservationAffinityPtrType) ToReservationAffinityPtrOutputWithContext(ctx context.Context) ReservationAffinityPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(ReservationAffinityPtrOutput) } // Specifies the reservations that this instance can consume from. type ReservationAffinityOutput struct{ *pulumi.OutputState } func (ReservationAffinityOutput) ElementType() reflect.Type { return reflect.TypeOf((*ReservationAffinity)(nil)).Elem() } func (o ReservationAffinityOutput) ToReservationAffinityOutput() ReservationAffinityOutput { return o } func (o ReservationAffinityOutput) ToReservationAffinityOutputWithContext(ctx context.Context) ReservationAffinityOutput { return o } func (o ReservationAffinityOutput) ToReservationAffinityPtrOutput() ReservationAffinityPtrOutput { return o.ToReservationAffinityPtrOutputWithContext(context.Background()) } func (o ReservationAffinityOutput) ToReservationAffinityPtrOutputWithContext(ctx context.Context) ReservationAffinityPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v ReservationAffinity) *ReservationAffinity { return &v }).(ReservationAffinityPtrOutput) } // Specifies the type of reservation from which this instance can consume resources: ANY_RESERVATION (default), SPECIFIC_RESERVATION, or NO_RESERVATION. See Consuming reserved instances for examples. func (o ReservationAffinityOutput) ConsumeReservationType() ReservationAffinityConsumeReservationTypePtrOutput { return o.ApplyT(func(v ReservationAffinity) *ReservationAffinityConsumeReservationType { return v.ConsumeReservationType }).(ReservationAffinityConsumeReservationTypePtrOutput) } // Corresponds to the label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify googleapis.com/reservation-name as the key and specify the name of your reservation as its value. func (o ReservationAffinityOutput) Key() pulumi.StringPtrOutput { return o.ApplyT(func(v ReservationAffinity) *string { return v.Key }).(pulumi.StringPtrOutput) } // Corresponds to the label values of a reservation resource. This can be either a name to a reservation in the same project or "projects/different-project/reservations/some-reservation-name" to target a shared reservation in the same zone but in a different project. func (o ReservationAffinityOutput) Values() pulumi.StringArrayOutput { return o.ApplyT(func(v ReservationAffinity) []string { return v.Values }).(pulumi.StringArrayOutput) } type ReservationAffinityPtrOutput struct{ *pulumi.OutputState } func (ReservationAffinityPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**ReservationAffinity)(nil)).Elem() } func (o ReservationAffinityPtrOutput) ToReservationAffinityPtrOutput() ReservationAffinityPtrOutput { return o } func (o ReservationAffinityPtrOutput) ToReservationAffinityPtrOutputWithContext(ctx context.Context) ReservationAffinityPtrOutput { return o } func (o ReservationAffinityPtrOutput) Elem() ReservationAffinityOutput { return o.ApplyT(func(v *ReservationAffinity) ReservationAffinity { if v != nil { return *v } var ret ReservationAffinity return ret }).(ReservationAffinityOutput) } // Specifies the type of reservation from which this instance can consume resources: ANY_RESERVATION (default), SPECIFIC_RESERVATION, or NO_RESERVATION. See Consuming reserved instances for examples. func (o ReservationAffinityPtrOutput) ConsumeReservationType() ReservationAffinityConsumeReservationTypePtrOutput { return o.ApplyT(func(v *ReservationAffinity) *ReservationAffinityConsumeReservationType { if v == nil { return nil } return v.ConsumeReservationType }).(ReservationAffinityConsumeReservationTypePtrOutput) } // Corresponds to the label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify googleapis.com/reservation-name as the key and specify the name of your reservation as its value. func (o ReservationAffinityPtrOutput) Key() pulumi.StringPtrOutput { return o.ApplyT(func(v *ReservationAffinity) *string { if v == nil { return nil } return v.Key }).(pulumi.StringPtrOutput) } // Corresponds to the label values of a reservation resource. This can be either a name to a reservation in the same project or "projects/different-project/reservations/some-reservation-name" to target a shared reservation in the same zone but in a different project. func (o ReservationAffinityPtrOutput) Values() pulumi.StringArrayOutput { return o.ApplyT(func(v *ReservationAffinity) []string { if v == nil { return nil } return v.Values }).(pulumi.StringArrayOutput) } // Specifies the reservations that this instance can consume from. type ReservationAffinityResponse struct { // Specifies the type of reservation from which this instance can consume resources: ANY_RESERVATION (default), SPECIFIC_RESERVATION, or NO_RESERVATION. See Consuming reserved instances for examples. ConsumeReservationType string `pulumi:"consumeReservationType"` // Corresponds to the label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify googleapis.com/reservation-name as the key and specify the name of your reservation as its value. Key string `pulumi:"key"` // Corresponds to the label values of a reservation resource. This can be either a name to a reservation in the same project or "projects/different-project/reservations/some-reservation-name" to target a shared reservation in the same zone but in a different project. Values []string `pulumi:"values"` } // Specifies the reservations that this instance can consume from. type ReservationAffinityResponseOutput struct{ *pulumi.OutputState } func (ReservationAffinityResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*ReservationAffinityResponse)(nil)).Elem() } func (o ReservationAffinityResponseOutput) ToReservationAffinityResponseOutput() ReservationAffinityResponseOutput { return o } func (o ReservationAffinityResponseOutput) ToReservationAffinityResponseOutputWithContext(ctx context.Context) ReservationAffinityResponseOutput { return o } // Specifies the type of reservation from which this instance can consume resources: ANY_RESERVATION (default), SPECIFIC_RESERVATION, or NO_RESERVATION. See Consuming reserved instances for examples. func (o ReservationAffinityResponseOutput) ConsumeReservationType() pulumi.StringOutput { return o.ApplyT(func(v ReservationAffinityResponse) string { return v.ConsumeReservationType }).(pulumi.StringOutput) } // Corresponds to the label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify googleapis.com/reservation-name as the key and specify the name of your reservation as its value. func (o ReservationAffinityResponseOutput) Key() pulumi.StringOutput { return o.ApplyT(func(v ReservationAffinityResponse) string { return v.Key }).(pulumi.StringOutput) } // Corresponds to the label values of a reservation resource. This can be either a name to a reservation in the same project or "projects/different-project/reservations/some-reservation-name" to target a shared reservation in the same zone but in a different project. func (o ReservationAffinityResponseOutput) Values() pulumi.StringArrayOutput { return o.ApplyT(func(v ReservationAffinityResponse) []string { return v.Values }).(pulumi.StringArrayOutput) } // Represents a reservation resource. A reservation ensures that capacity is held in a specific zone even if the reserved VMs are not running. For more information, read Reserving zonal resources. type ReservationResponse struct { // Full or partial URL to a parent commitment. This field displays for reservations that are tied to a commitment. Commitment string `pulumi:"commitment"` // Creation timestamp in RFC3339 text format. CreationTimestamp string `pulumi:"creationTimestamp"` // An optional description of this resource. Provide this property when you create the resource. Description string `pulumi:"description"` // Type of the resource. Always compute#reservations for reservations. Kind string `pulumi:"kind"` // The name of the resource, provided by the client when initially creating the resource. The resource name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. Name string `pulumi:"name"` // Reserved for future use. SatisfiesPzs bool `pulumi:"satisfiesPzs"` // Server-defined fully-qualified URL for this resource. SelfLink string `pulumi:"selfLink"` // Share-settings for shared-reservation ShareSettings ShareSettingsResponse `pulumi:"shareSettings"` // Reservation for instances with specific machine shapes. SpecificReservation AllocationSpecificSKUReservationResponse `pulumi:"specificReservation"` // Indicates whether the reservation can be consumed by VMs with affinity for "any" reservation. If the field is set, then only VMs that target the reservation by name can consume from this reservation. SpecificReservationRequired bool `pulumi:"specificReservationRequired"` // The status of the reservation. Status string `pulumi:"status"` // Zone in which the reservation resides. A zone must be provided if the reservation is created within a commitment. Zone string `pulumi:"zone"` } // Represents a reservation resource. A reservation ensures that capacity is held in a specific zone even if the reserved VMs are not running. For more information, read Reserving zonal resources. type ReservationResponseOutput struct{ *pulumi.OutputState } func (ReservationResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*ReservationResponse)(nil)).Elem() } func (o ReservationResponseOutput) ToReservationResponseOutput() ReservationResponseOutput { return o } func (o ReservationResponseOutput) ToReservationResponseOutputWithContext(ctx context.Context) ReservationResponseOutput { return o } // Full or partial URL to a parent commitment. This field displays for reservations that are tied to a commitment. func (o ReservationResponseOutput) Commitment() pulumi.StringOutput { return o.ApplyT(func(v ReservationResponse) string { return v.Commitment }).(pulumi.StringOutput) } // Creation timestamp in RFC3339 text format. func (o ReservationResponseOutput) CreationTimestamp() pulumi.StringOutput { return o.ApplyT(func(v ReservationResponse) string { return v.CreationTimestamp }).(pulumi.StringOutput) } // An optional description of this resource. Provide this property when you create the resource. func (o ReservationResponseOutput) Description() pulumi.StringOutput { return o.ApplyT(func(v ReservationResponse) string { return v.Description }).(pulumi.StringOutput) } // Type of the resource. Always compute#reservations for reservations. func (o ReservationResponseOutput) Kind() pulumi.StringOutput { return o.ApplyT(func(v ReservationResponse) string { return v.Kind }).(pulumi.StringOutput) } // The name of the resource, provided by the client when initially creating the resource. The resource name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. func (o ReservationResponseOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v ReservationResponse) string { return v.Name }).(pulumi.StringOutput) } // Reserved for future use. func (o ReservationResponseOutput) SatisfiesPzs() pulumi.BoolOutput { return o.ApplyT(func(v ReservationResponse) bool { return v.SatisfiesPzs }).(pulumi.BoolOutput) } // Server-defined fully-qualified URL for this resource. func (o ReservationResponseOutput) SelfLink() pulumi.StringOutput { return o.ApplyT(func(v ReservationResponse) string { return v.SelfLink }).(pulumi.StringOutput) } // Share-settings for shared-reservation func (o ReservationResponseOutput) ShareSettings() ShareSettingsResponseOutput { return o.ApplyT(func(v ReservationResponse) ShareSettingsResponse { return v.ShareSettings }).(ShareSettingsResponseOutput) } // Reservation for instances with specific machine shapes. func (o ReservationResponseOutput) SpecificReservation() AllocationSpecificSKUReservationResponseOutput { return o.ApplyT(func(v ReservationResponse) AllocationSpecificSKUReservationResponse { return v.SpecificReservation }).(AllocationSpecificSKUReservationResponseOutput) } // Indicates whether the reservation can be consumed by VMs with affinity for "any" reservation. If the field is set, then only VMs that target the reservation by name can consume from this reservation. func (o ReservationResponseOutput) SpecificReservationRequired() pulumi.BoolOutput { return o.ApplyT(func(v ReservationResponse) bool { return v.SpecificReservationRequired }).(pulumi.BoolOutput) } // The status of the reservation. func (o ReservationResponseOutput) Status() pulumi.StringOutput { return o.ApplyT(func(v ReservationResponse) string { return v.Status }).(pulumi.StringOutput) } // Zone in which the reservation resides. A zone must be provided if the reservation is created within a commitment. func (o ReservationResponseOutput) Zone() pulumi.StringOutput { return o.ApplyT(func(v ReservationResponse) string { return v.Zone }).(pulumi.StringOutput) } type ReservationResponseArrayOutput struct{ *pulumi.OutputState } func (ReservationResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]ReservationResponse)(nil)).Elem() } func (o ReservationResponseArrayOutput) ToReservationResponseArrayOutput() ReservationResponseArrayOutput { return o } func (o ReservationResponseArrayOutput) ToReservationResponseArrayOutputWithContext(ctx context.Context) ReservationResponseArrayOutput { return o } func (o ReservationResponseArrayOutput) Index(i pulumi.IntInput) ReservationResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) ReservationResponse { return vs[0].([]ReservationResponse)[vs[1].(int)] }).(ReservationResponseOutput) } // Commitment for a particular resource (a Commitment is composed of one or more of these). type ResourceCommitment struct { // Name of the accelerator type resource. Applicable only when the type is ACCELERATOR. AcceleratorType *string `pulumi:"acceleratorType"` // The amount of the resource purchased (in a type-dependent unit, such as bytes). For vCPUs, this can just be an integer. For memory, this must be provided in MB. Memory must be a multiple of 256 MB, with up to 6.5GB of memory per every vCPU. Amount *string `pulumi:"amount"` // Type of resource for which this commitment applies. Possible values are VCPU and MEMORY Type *ResourceCommitmentType `pulumi:"type"` } // ResourceCommitmentInput is an input type that accepts ResourceCommitmentArgs and ResourceCommitmentOutput values. // You can construct a concrete instance of `ResourceCommitmentInput` via: // // ResourceCommitmentArgs{...} type ResourceCommitmentInput interface { pulumi.Input ToResourceCommitmentOutput() ResourceCommitmentOutput ToResourceCommitmentOutputWithContext(context.Context) ResourceCommitmentOutput } // Commitment for a particular resource (a Commitment is composed of one or more of these). type ResourceCommitmentArgs struct { // Name of the accelerator type resource. Applicable only when the type is ACCELERATOR. AcceleratorType pulumi.StringPtrInput `pulumi:"acceleratorType"` // The amount of the resource purchased (in a type-dependent unit, such as bytes). For vCPUs, this can just be an integer. For memory, this must be provided in MB. Memory must be a multiple of 256 MB, with up to 6.5GB of memory per every vCPU. Amount pulumi.StringPtrInput `pulumi:"amount"` // Type of resource for which this commitment applies. Possible values are VCPU and MEMORY Type ResourceCommitmentTypePtrInput `pulumi:"type"` } func (ResourceCommitmentArgs) ElementType() reflect.Type { return reflect.TypeOf((*ResourceCommitment)(nil)).Elem() } func (i ResourceCommitmentArgs) ToResourceCommitmentOutput() ResourceCommitmentOutput { return i.ToResourceCommitmentOutputWithContext(context.Background()) } func (i ResourceCommitmentArgs) ToResourceCommitmentOutputWithContext(ctx context.Context) ResourceCommitmentOutput { return pulumi.ToOutputWithContext(ctx, i).(ResourceCommitmentOutput) } // ResourceCommitmentArrayInput is an input type that accepts ResourceCommitmentArray and ResourceCommitmentArrayOutput values. // You can construct a concrete instance of `ResourceCommitmentArrayInput` via: // // ResourceCommitmentArray{ ResourceCommitmentArgs{...} } type ResourceCommitmentArrayInput interface { pulumi.Input ToResourceCommitmentArrayOutput() ResourceCommitmentArrayOutput ToResourceCommitmentArrayOutputWithContext(context.Context) ResourceCommitmentArrayOutput } type ResourceCommitmentArray []ResourceCommitmentInput func (ResourceCommitmentArray) ElementType() reflect.Type { return reflect.TypeOf((*[]ResourceCommitment)(nil)).Elem() } func (i ResourceCommitmentArray) ToResourceCommitmentArrayOutput() ResourceCommitmentArrayOutput { return i.ToResourceCommitmentArrayOutputWithContext(context.Background()) } func (i ResourceCommitmentArray) ToResourceCommitmentArrayOutputWithContext(ctx context.Context) ResourceCommitmentArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(ResourceCommitmentArrayOutput) } // Commitment for a particular resource (a Commitment is composed of one or more of these). type ResourceCommitmentOutput struct{ *pulumi.OutputState } func (ResourceCommitmentOutput) ElementType() reflect.Type { return reflect.TypeOf((*ResourceCommitment)(nil)).Elem() } func (o ResourceCommitmentOutput) ToResourceCommitmentOutput() ResourceCommitmentOutput { return o } func (o ResourceCommitmentOutput) ToResourceCommitmentOutputWithContext(ctx context.Context) ResourceCommitmentOutput { return o } // Name of the accelerator type resource. Applicable only when the type is ACCELERATOR. func (o ResourceCommitmentOutput) AcceleratorType() pulumi.StringPtrOutput { return o.ApplyT(func(v ResourceCommitment) *string { return v.AcceleratorType }).(pulumi.StringPtrOutput) } // The amount of the resource purchased (in a type-dependent unit, such as bytes). For vCPUs, this can just be an integer. For memory, this must be provided in MB. Memory must be a multiple of 256 MB, with up to 6.5GB of memory per every vCPU. func (o ResourceCommitmentOutput) Amount() pulumi.StringPtrOutput { return o.ApplyT(func(v ResourceCommitment) *string { return v.Amount }).(pulumi.StringPtrOutput) } // Type of resource for which this commitment applies. Possible values are VCPU and MEMORY func (o ResourceCommitmentOutput) Type() ResourceCommitmentTypePtrOutput { return o.ApplyT(func(v ResourceCommitment) *ResourceCommitmentType { return v.Type }).(ResourceCommitmentTypePtrOutput) } type ResourceCommitmentArrayOutput struct{ *pulumi.OutputState } func (ResourceCommitmentArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]ResourceCommitment)(nil)).Elem() } func (o ResourceCommitmentArrayOutput) ToResourceCommitmentArrayOutput() ResourceCommitmentArrayOutput { return o } func (o ResourceCommitmentArrayOutput) ToResourceCommitmentArrayOutputWithContext(ctx context.Context) ResourceCommitmentArrayOutput { return o } func (o ResourceCommitmentArrayOutput) Index(i pulumi.IntInput) ResourceCommitmentOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResourceCommitment { return vs[0].([]ResourceCommitment)[vs[1].(int)] }).(ResourceCommitmentOutput) } // Commitment for a particular resource (a Commitment is composed of one or more of these). type ResourceCommitmentResponse struct { // Name of the accelerator type resource. Applicable only when the type is ACCELERATOR. AcceleratorType string `pulumi:"acceleratorType"` // The amount of the resource purchased (in a type-dependent unit, such as bytes). For vCPUs, this can just be an integer. For memory, this must be provided in MB. Memory must be a multiple of 256 MB, with up to 6.5GB of memory per every vCPU. Amount string `pulumi:"amount"` // Type of resource for which this commitment applies. Possible values are VCPU and MEMORY Type string `pulumi:"type"` } // Commitment for a particular resource (a Commitment is composed of one or more of these). type ResourceCommitmentResponseOutput struct{ *pulumi.OutputState } func (ResourceCommitmentResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*ResourceCommitmentResponse)(nil)).Elem() } func (o ResourceCommitmentResponseOutput) ToResourceCommitmentResponseOutput() ResourceCommitmentResponseOutput { return o } func (o ResourceCommitmentResponseOutput) ToResourceCommitmentResponseOutputWithContext(ctx context.Context) ResourceCommitmentResponseOutput { return o } // Name of the accelerator type resource. Applicable only when the type is ACCELERATOR. func (o ResourceCommitmentResponseOutput) AcceleratorType() pulumi.StringOutput { return o.ApplyT(func(v ResourceCommitmentResponse) string { return v.AcceleratorType }).(pulumi.StringOutput) } // The amount of the resource purchased (in a type-dependent unit, such as bytes). For vCPUs, this can just be an integer. For memory, this must be provided in MB. Memory must be a multiple of 256 MB, with up to 6.5GB of memory per every vCPU. func (o ResourceCommitmentResponseOutput) Amount() pulumi.StringOutput { return o.ApplyT(func(v ResourceCommitmentResponse) string { return v.Amount }).(pulumi.StringOutput) } // Type of resource for which this commitment applies. Possible values are VCPU and MEMORY func (o ResourceCommitmentResponseOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v ResourceCommitmentResponse) string { return v.Type }).(pulumi.StringOutput) } type ResourceCommitmentResponseArrayOutput struct{ *pulumi.OutputState } func (ResourceCommitmentResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]ResourceCommitmentResponse)(nil)).Elem() } func (o ResourceCommitmentResponseArrayOutput) ToResourceCommitmentResponseArrayOutput() ResourceCommitmentResponseArrayOutput { return o } func (o ResourceCommitmentResponseArrayOutput) ToResourceCommitmentResponseArrayOutputWithContext(ctx context.Context) ResourceCommitmentResponseArrayOutput { return o } func (o ResourceCommitmentResponseArrayOutput) Index(i pulumi.IntInput) ResourceCommitmentResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResourceCommitmentResponse { return vs[0].([]ResourceCommitmentResponse)[vs[1].(int)] }).(ResourceCommitmentResponseOutput) } // Time window specified for daily operations. type ResourcePolicyDailyCycle struct { // Defines a schedule with units measured in months. The value determines how many months pass between the start of each cycle. DaysInCycle *int `pulumi:"daysInCycle"` // Start time of the window. This must be in UTC format that resolves to one of 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For example, both 13:00-5 and 08:00 are valid. StartTime *string `pulumi:"startTime"` } // ResourcePolicyDailyCycleInput is an input type that accepts ResourcePolicyDailyCycleArgs and ResourcePolicyDailyCycleOutput values. // You can construct a concrete instance of `ResourcePolicyDailyCycleInput` via: // // ResourcePolicyDailyCycleArgs{...} type ResourcePolicyDailyCycleInput interface { pulumi.Input ToResourcePolicyDailyCycleOutput() ResourcePolicyDailyCycleOutput ToResourcePolicyDailyCycleOutputWithContext(context.Context) ResourcePolicyDailyCycleOutput } // Time window specified for daily operations. type ResourcePolicyDailyCycleArgs struct { // Defines a schedule with units measured in months. The value determines how many months pass between the start of each cycle. DaysInCycle pulumi.IntPtrInput `pulumi:"daysInCycle"` // Start time of the window. This must be in UTC format that resolves to one of 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For example, both 13:00-5 and 08:00 are valid. StartTime pulumi.StringPtrInput `pulumi:"startTime"` } func (ResourcePolicyDailyCycleArgs) ElementType() reflect.Type { return reflect.TypeOf((*ResourcePolicyDailyCycle)(nil)).Elem() } func (i ResourcePolicyDailyCycleArgs) ToResourcePolicyDailyCycleOutput() ResourcePolicyDailyCycleOutput { return i.ToResourcePolicyDailyCycleOutputWithContext(context.Background()) } func (i ResourcePolicyDailyCycleArgs) ToResourcePolicyDailyCycleOutputWithContext(ctx context.Context) ResourcePolicyDailyCycleOutput { return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyDailyCycleOutput) } func (i ResourcePolicyDailyCycleArgs) ToResourcePolicyDailyCyclePtrOutput() ResourcePolicyDailyCyclePtrOutput { return i.ToResourcePolicyDailyCyclePtrOutputWithContext(context.Background()) } func (i ResourcePolicyDailyCycleArgs) ToResourcePolicyDailyCyclePtrOutputWithContext(ctx context.Context) ResourcePolicyDailyCyclePtrOutput { return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyDailyCycleOutput).ToResourcePolicyDailyCyclePtrOutputWithContext(ctx) } // ResourcePolicyDailyCyclePtrInput is an input type that accepts ResourcePolicyDailyCycleArgs, ResourcePolicyDailyCyclePtr and ResourcePolicyDailyCyclePtrOutput values. // You can construct a concrete instance of `ResourcePolicyDailyCyclePtrInput` via: // // ResourcePolicyDailyCycleArgs{...} // // or: // // nil type ResourcePolicyDailyCyclePtrInput interface { pulumi.Input ToResourcePolicyDailyCyclePtrOutput() ResourcePolicyDailyCyclePtrOutput ToResourcePolicyDailyCyclePtrOutputWithContext(context.Context) ResourcePolicyDailyCyclePtrOutput } type resourcePolicyDailyCyclePtrType ResourcePolicyDailyCycleArgs func ResourcePolicyDailyCyclePtr(v *ResourcePolicyDailyCycleArgs) ResourcePolicyDailyCyclePtrInput { return (*resourcePolicyDailyCyclePtrType)(v) } func (*resourcePolicyDailyCyclePtrType) ElementType() reflect.Type { return reflect.TypeOf((**ResourcePolicyDailyCycle)(nil)).Elem() } func (i *resourcePolicyDailyCyclePtrType) ToResourcePolicyDailyCyclePtrOutput() ResourcePolicyDailyCyclePtrOutput { return i.ToResourcePolicyDailyCyclePtrOutputWithContext(context.Background()) } func (i *resourcePolicyDailyCyclePtrType) ToResourcePolicyDailyCyclePtrOutputWithContext(ctx context.Context) ResourcePolicyDailyCyclePtrOutput { return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyDailyCyclePtrOutput) } // Time window specified for daily operations. type ResourcePolicyDailyCycleOutput struct{ *pulumi.OutputState } func (ResourcePolicyDailyCycleOutput) ElementType() reflect.Type { return reflect.TypeOf((*ResourcePolicyDailyCycle)(nil)).Elem() } func (o ResourcePolicyDailyCycleOutput) ToResourcePolicyDailyCycleOutput() ResourcePolicyDailyCycleOutput { return o } func (o ResourcePolicyDailyCycleOutput) ToResourcePolicyDailyCycleOutputWithContext(ctx context.Context) ResourcePolicyDailyCycleOutput { return o } func (o ResourcePolicyDailyCycleOutput) ToResourcePolicyDailyCyclePtrOutput() ResourcePolicyDailyCyclePtrOutput { return o.ToResourcePolicyDailyCyclePtrOutputWithContext(context.Background()) } func (o ResourcePolicyDailyCycleOutput) ToResourcePolicyDailyCyclePtrOutputWithContext(ctx context.Context) ResourcePolicyDailyCyclePtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicyDailyCycle) *ResourcePolicyDailyCycle { return &v }).(ResourcePolicyDailyCyclePtrOutput) } // Defines a schedule with units measured in months. The value determines how many months pass between the start of each cycle. func (o ResourcePolicyDailyCycleOutput) DaysInCycle() pulumi.IntPtrOutput { return o.ApplyT(func(v ResourcePolicyDailyCycle) *int { return v.DaysInCycle }).(pulumi.IntPtrOutput) } // Start time of the window. This must be in UTC format that resolves to one of 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For example, both 13:00-5 and 08:00 are valid. func (o ResourcePolicyDailyCycleOutput) StartTime() pulumi.StringPtrOutput { return o.ApplyT(func(v ResourcePolicyDailyCycle) *string { return v.StartTime }).(pulumi.StringPtrOutput) } type ResourcePolicyDailyCyclePtrOutput struct{ *pulumi.OutputState } func (ResourcePolicyDailyCyclePtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**ResourcePolicyDailyCycle)(nil)).Elem() } func (o ResourcePolicyDailyCyclePtrOutput) ToResourcePolicyDailyCyclePtrOutput() ResourcePolicyDailyCyclePtrOutput { return o } func (o ResourcePolicyDailyCyclePtrOutput) ToResourcePolicyDailyCyclePtrOutputWithContext(ctx context.Context) ResourcePolicyDailyCyclePtrOutput { return o } func (o ResourcePolicyDailyCyclePtrOutput) Elem() ResourcePolicyDailyCycleOutput { return o.ApplyT(func(v *ResourcePolicyDailyCycle) ResourcePolicyDailyCycle { if v != nil { return *v } var ret ResourcePolicyDailyCycle return ret }).(ResourcePolicyDailyCycleOutput) } // Defines a schedule with units measured in months. The value determines how many months pass between the start of each cycle. func (o ResourcePolicyDailyCyclePtrOutput) DaysInCycle() pulumi.IntPtrOutput { return o.ApplyT(func(v *ResourcePolicyDailyCycle) *int { if v == nil { return nil } return v.DaysInCycle }).(pulumi.IntPtrOutput) } // Start time of the window. This must be in UTC format that resolves to one of 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For example, both 13:00-5 and 08:00 are valid. func (o ResourcePolicyDailyCyclePtrOutput) StartTime() pulumi.StringPtrOutput { return o.ApplyT(func(v *ResourcePolicyDailyCycle) *string { if v == nil { return nil } return v.StartTime }).(pulumi.StringPtrOutput) } // Time window specified for daily operations. type ResourcePolicyDailyCycleResponse struct { // Defines a schedule with units measured in months. The value determines how many months pass between the start of each cycle. DaysInCycle int `pulumi:"daysInCycle"` // [Output only] A predetermined duration for the window, automatically chosen to be the smallest possible in the given scenario. Duration string `pulumi:"duration"` // Start time of the window. This must be in UTC format that resolves to one of 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For example, both 13:00-5 and 08:00 are valid. StartTime string `pulumi:"startTime"` } // Time window specified for daily operations. type ResourcePolicyDailyCycleResponseOutput struct{ *pulumi.OutputState } func (ResourcePolicyDailyCycleResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*ResourcePolicyDailyCycleResponse)(nil)).Elem() } func (o ResourcePolicyDailyCycleResponseOutput) ToResourcePolicyDailyCycleResponseOutput() ResourcePolicyDailyCycleResponseOutput { return o } func (o ResourcePolicyDailyCycleResponseOutput) ToResourcePolicyDailyCycleResponseOutputWithContext(ctx context.Context) ResourcePolicyDailyCycleResponseOutput { return o } // Defines a schedule with units measured in months. The value determines how many months pass between the start of each cycle. func (o ResourcePolicyDailyCycleResponseOutput) DaysInCycle() pulumi.IntOutput { return o.ApplyT(func(v ResourcePolicyDailyCycleResponse) int { return v.DaysInCycle }).(pulumi.IntOutput) } // [Output only] A predetermined duration for the window, automatically chosen to be the smallest possible in the given scenario. func (o ResourcePolicyDailyCycleResponseOutput) Duration() pulumi.StringOutput { return o.ApplyT(func(v ResourcePolicyDailyCycleResponse) string { return v.Duration }).(pulumi.StringOutput) } // Start time of the window. This must be in UTC format that resolves to one of 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For example, both 13:00-5 and 08:00 are valid. func (o ResourcePolicyDailyCycleResponseOutput) StartTime() pulumi.StringOutput { return o.ApplyT(func(v ResourcePolicyDailyCycleResponse) string { return v.StartTime }).(pulumi.StringOutput) } // A GroupPlacementPolicy specifies resource placement configuration. It specifies the failure bucket separation as well as network locality type ResourcePolicyGroupPlacementPolicy struct { // The number of availability domains instances will be spread across. If two instances are in different availability domain, they will not be put in the same low latency network AvailabilityDomainCount *int `pulumi:"availabilityDomainCount"` // Specifies network collocation Collocation *ResourcePolicyGroupPlacementPolicyCollocation `pulumi:"collocation"` // Number of vms in this placement group VmCount *int `pulumi:"vmCount"` } // ResourcePolicyGroupPlacementPolicyInput is an input type that accepts ResourcePolicyGroupPlacementPolicyArgs and ResourcePolicyGroupPlacementPolicyOutput values. // You can construct a concrete instance of `ResourcePolicyGroupPlacementPolicyInput` via: // // ResourcePolicyGroupPlacementPolicyArgs{...} type ResourcePolicyGroupPlacementPolicyInput interface { pulumi.Input ToResourcePolicyGroupPlacementPolicyOutput() ResourcePolicyGroupPlacementPolicyOutput ToResourcePolicyGroupPlacementPolicyOutputWithContext(context.Context) ResourcePolicyGroupPlacementPolicyOutput } // A GroupPlacementPolicy specifies resource placement configuration. It specifies the failure bucket separation as well as network locality type ResourcePolicyGroupPlacementPolicyArgs struct { // The number of availability domains instances will be spread across. If two instances are in different availability domain, they will not be put in the same low latency network AvailabilityDomainCount pulumi.IntPtrInput `pulumi:"availabilityDomainCount"` // Specifies network collocation Collocation ResourcePolicyGroupPlacementPolicyCollocationPtrInput `pulumi:"collocation"` // Number of vms in this placement group VmCount pulumi.IntPtrInput `pulumi:"vmCount"` } func (ResourcePolicyGroupPlacementPolicyArgs) ElementType() reflect.Type { return reflect.TypeOf((*ResourcePolicyGroupPlacementPolicy)(nil)).Elem() } func (i ResourcePolicyGroupPlacementPolicyArgs) ToResourcePolicyGroupPlacementPolicyOutput() ResourcePolicyGroupPlacementPolicyOutput { return i.ToResourcePolicyGroupPlacementPolicyOutputWithContext(context.Background()) } func (i ResourcePolicyGroupPlacementPolicyArgs) ToResourcePolicyGroupPlacementPolicyOutputWithContext(ctx context.Context) ResourcePolicyGroupPlacementPolicyOutput { return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyGroupPlacementPolicyOutput) } func (i ResourcePolicyGroupPlacementPolicyArgs) ToResourcePolicyGroupPlacementPolicyPtrOutput() ResourcePolicyGroupPlacementPolicyPtrOutput { return i.ToResourcePolicyGroupPlacementPolicyPtrOutputWithContext(context.Background()) } func (i ResourcePolicyGroupPlacementPolicyArgs) ToResourcePolicyGroupPlacementPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyGroupPlacementPolicyPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyGroupPlacementPolicyOutput).ToResourcePolicyGroupPlacementPolicyPtrOutputWithContext(ctx) } // ResourcePolicyGroupPlacementPolicyPtrInput is an input type that accepts ResourcePolicyGroupPlacementPolicyArgs, ResourcePolicyGroupPlacementPolicyPtr and ResourcePolicyGroupPlacementPolicyPtrOutput values. // You can construct a concrete instance of `ResourcePolicyGroupPlacementPolicyPtrInput` via: // // ResourcePolicyGroupPlacementPolicyArgs{...} // // or: // // nil type ResourcePolicyGroupPlacementPolicyPtrInput interface { pulumi.Input ToResourcePolicyGroupPlacementPolicyPtrOutput() ResourcePolicyGroupPlacementPolicyPtrOutput ToResourcePolicyGroupPlacementPolicyPtrOutputWithContext(context.Context) ResourcePolicyGroupPlacementPolicyPtrOutput } type resourcePolicyGroupPlacementPolicyPtrType ResourcePolicyGroupPlacementPolicyArgs func ResourcePolicyGroupPlacementPolicyPtr(v *ResourcePolicyGroupPlacementPolicyArgs) ResourcePolicyGroupPlacementPolicyPtrInput { return (*resourcePolicyGroupPlacementPolicyPtrType)(v) } func (*resourcePolicyGroupPlacementPolicyPtrType) ElementType() reflect.Type { return reflect.TypeOf((**ResourcePolicyGroupPlacementPolicy)(nil)).Elem() } func (i *resourcePolicyGroupPlacementPolicyPtrType) ToResourcePolicyGroupPlacementPolicyPtrOutput() ResourcePolicyGroupPlacementPolicyPtrOutput { return i.ToResourcePolicyGroupPlacementPolicyPtrOutputWithContext(context.Background()) } func (i *resourcePolicyGroupPlacementPolicyPtrType) ToResourcePolicyGroupPlacementPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyGroupPlacementPolicyPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyGroupPlacementPolicyPtrOutput) } // A GroupPlacementPolicy specifies resource placement configuration. It specifies the failure bucket separation as well as network locality type ResourcePolicyGroupPlacementPolicyOutput struct{ *pulumi.OutputState } func (ResourcePolicyGroupPlacementPolicyOutput) ElementType() reflect.Type { return reflect.TypeOf((*ResourcePolicyGroupPlacementPolicy)(nil)).Elem() } func (o ResourcePolicyGroupPlacementPolicyOutput) ToResourcePolicyGroupPlacementPolicyOutput() ResourcePolicyGroupPlacementPolicyOutput { return o } func (o ResourcePolicyGroupPlacementPolicyOutput) ToResourcePolicyGroupPlacementPolicyOutputWithContext(ctx context.Context) ResourcePolicyGroupPlacementPolicyOutput { return o } func (o ResourcePolicyGroupPlacementPolicyOutput) ToResourcePolicyGroupPlacementPolicyPtrOutput() ResourcePolicyGroupPlacementPolicyPtrOutput { return o.ToResourcePolicyGroupPlacementPolicyPtrOutputWithContext(context.Background()) } func (o ResourcePolicyGroupPlacementPolicyOutput) ToResourcePolicyGroupPlacementPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyGroupPlacementPolicyPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicyGroupPlacementPolicy) *ResourcePolicyGroupPlacementPolicy { return &v }).(ResourcePolicyGroupPlacementPolicyPtrOutput) } // The number of availability domains instances will be spread across. If two instances are in different availability domain, they will not be put in the same low latency network func (o ResourcePolicyGroupPlacementPolicyOutput) AvailabilityDomainCount() pulumi.IntPtrOutput { return o.ApplyT(func(v ResourcePolicyGroupPlacementPolicy) *int { return v.AvailabilityDomainCount }).(pulumi.IntPtrOutput) } // Specifies network collocation func (o ResourcePolicyGroupPlacementPolicyOutput) Collocation() ResourcePolicyGroupPlacementPolicyCollocationPtrOutput { return o.ApplyT(func(v ResourcePolicyGroupPlacementPolicy) *ResourcePolicyGroupPlacementPolicyCollocation { return v.Collocation }).(ResourcePolicyGroupPlacementPolicyCollocationPtrOutput) } // Number of vms in this placement group func (o ResourcePolicyGroupPlacementPolicyOutput) VmCount() pulumi.IntPtrOutput { return o.ApplyT(func(v ResourcePolicyGroupPlacementPolicy) *int { return v.VmCount }).(pulumi.IntPtrOutput) } type ResourcePolicyGroupPlacementPolicyPtrOutput struct{ *pulumi.OutputState } func (ResourcePolicyGroupPlacementPolicyPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**ResourcePolicyGroupPlacementPolicy)(nil)).Elem() } func (o ResourcePolicyGroupPlacementPolicyPtrOutput) ToResourcePolicyGroupPlacementPolicyPtrOutput() ResourcePolicyGroupPlacementPolicyPtrOutput { return o } func (o ResourcePolicyGroupPlacementPolicyPtrOutput) ToResourcePolicyGroupPlacementPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyGroupPlacementPolicyPtrOutput { return o } func (o ResourcePolicyGroupPlacementPolicyPtrOutput) Elem() ResourcePolicyGroupPlacementPolicyOutput { return o.ApplyT(func(v *ResourcePolicyGroupPlacementPolicy) ResourcePolicyGroupPlacementPolicy { if v != nil { return *v } var ret ResourcePolicyGroupPlacementPolicy return ret }).(ResourcePolicyGroupPlacementPolicyOutput) } // The number of availability domains instances will be spread across. If two instances are in different availability domain, they will not be put in the same low latency network func (o ResourcePolicyGroupPlacementPolicyPtrOutput) AvailabilityDomainCount() pulumi.IntPtrOutput { return o.ApplyT(func(v *ResourcePolicyGroupPlacementPolicy) *int { if v == nil { return nil } return v.AvailabilityDomainCount }).(pulumi.IntPtrOutput) } // Specifies network collocation func (o ResourcePolicyGroupPlacementPolicyPtrOutput) Collocation() ResourcePolicyGroupPlacementPolicyCollocationPtrOutput { return o.ApplyT(func(v *ResourcePolicyGroupPlacementPolicy) *ResourcePolicyGroupPlacementPolicyCollocation { if v == nil { return nil } return v.Collocation }).(ResourcePolicyGroupPlacementPolicyCollocationPtrOutput) } // Number of vms in this placement group func (o ResourcePolicyGroupPlacementPolicyPtrOutput) VmCount() pulumi.IntPtrOutput { return o.ApplyT(func(v *ResourcePolicyGroupPlacementPolicy) *int { if v == nil { return nil } return v.VmCount }).(pulumi.IntPtrOutput) } // A GroupPlacementPolicy specifies resource placement configuration. It specifies the failure bucket separation as well as network locality type ResourcePolicyGroupPlacementPolicyResponse struct { // The number of availability domains instances will be spread across. If two instances are in different availability domain, they will not be put in the same low latency network AvailabilityDomainCount int `pulumi:"availabilityDomainCount"` // Specifies network collocation Collocation string `pulumi:"collocation"` // Number of vms in this placement group VmCount int `pulumi:"vmCount"` } // A GroupPlacementPolicy specifies resource placement configuration. It specifies the failure bucket separation as well as network locality type ResourcePolicyGroupPlacementPolicyResponseOutput struct{ *pulumi.OutputState } func (ResourcePolicyGroupPlacementPolicyResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*ResourcePolicyGroupPlacementPolicyResponse)(nil)).Elem() } func (o ResourcePolicyGroupPlacementPolicyResponseOutput) ToResourcePolicyGroupPlacementPolicyResponseOutput() ResourcePolicyGroupPlacementPolicyResponseOutput { return o } func (o ResourcePolicyGroupPlacementPolicyResponseOutput) ToResourcePolicyGroupPlacementPolicyResponseOutputWithContext(ctx context.Context) ResourcePolicyGroupPlacementPolicyResponseOutput { return o } // The number of availability domains instances will be spread across. If two instances are in different availability domain, they will not be put in the same low latency network func (o ResourcePolicyGroupPlacementPolicyResponseOutput) AvailabilityDomainCount() pulumi.IntOutput { return o.ApplyT(func(v ResourcePolicyGroupPlacementPolicyResponse) int { return v.AvailabilityDomainCount }).(pulumi.IntOutput) } // Specifies network collocation func (o ResourcePolicyGroupPlacementPolicyResponseOutput) Collocation() pulumi.StringOutput { return o.ApplyT(func(v ResourcePolicyGroupPlacementPolicyResponse) string { return v.Collocation }).(pulumi.StringOutput) } // Number of vms in this placement group func (o ResourcePolicyGroupPlacementPolicyResponseOutput) VmCount() pulumi.IntOutput { return o.ApplyT(func(v ResourcePolicyGroupPlacementPolicyResponse) int { return v.VmCount }).(pulumi.IntOutput) } // Time window specified for hourly operations. type ResourcePolicyHourlyCycle struct { // Defines a schedule with units measured in hours. The value determines how many hours pass between the start of each cycle. HoursInCycle *int `pulumi:"hoursInCycle"` // Time within the window to start the operations. It must be in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT. StartTime *string `pulumi:"startTime"` } // ResourcePolicyHourlyCycleInput is an input type that accepts ResourcePolicyHourlyCycleArgs and ResourcePolicyHourlyCycleOutput values. // You can construct a concrete instance of `ResourcePolicyHourlyCycleInput` via: // // ResourcePolicyHourlyCycleArgs{...} type ResourcePolicyHourlyCycleInput interface { pulumi.Input ToResourcePolicyHourlyCycleOutput() ResourcePolicyHourlyCycleOutput ToResourcePolicyHourlyCycleOutputWithContext(context.Context) ResourcePolicyHourlyCycleOutput } // Time window specified for hourly operations. type ResourcePolicyHourlyCycleArgs struct { // Defines a schedule with units measured in hours. The value determines how many hours pass between the start of each cycle. HoursInCycle pulumi.IntPtrInput `pulumi:"hoursInCycle"` // Time within the window to start the operations. It must be in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT. StartTime pulumi.StringPtrInput `pulumi:"startTime"` } func (ResourcePolicyHourlyCycleArgs) ElementType() reflect.Type { return reflect.TypeOf((*ResourcePolicyHourlyCycle)(nil)).Elem() } func (i ResourcePolicyHourlyCycleArgs) ToResourcePolicyHourlyCycleOutput() ResourcePolicyHourlyCycleOutput { return i.ToResourcePolicyHourlyCycleOutputWithContext(context.Background()) } func (i ResourcePolicyHourlyCycleArgs) ToResourcePolicyHourlyCycleOutputWithContext(ctx context.Context) ResourcePolicyHourlyCycleOutput { return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyHourlyCycleOutput) } func (i ResourcePolicyHourlyCycleArgs) ToResourcePolicyHourlyCyclePtrOutput() ResourcePolicyHourlyCyclePtrOutput { return i.ToResourcePolicyHourlyCyclePtrOutputWithContext(context.Background()) } func (i ResourcePolicyHourlyCycleArgs) ToResourcePolicyHourlyCyclePtrOutputWithContext(ctx context.Context) ResourcePolicyHourlyCyclePtrOutput { return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyHourlyCycleOutput).ToResourcePolicyHourlyCyclePtrOutputWithContext(ctx) } // ResourcePolicyHourlyCyclePtrInput is an input type that accepts ResourcePolicyHourlyCycleArgs, ResourcePolicyHourlyCyclePtr and ResourcePolicyHourlyCyclePtrOutput values. // You can construct a concrete instance of `ResourcePolicyHourlyCyclePtrInput` via: // // ResourcePolicyHourlyCycleArgs{...} // // or: // // nil type ResourcePolicyHourlyCyclePtrInput interface { pulumi.Input ToResourcePolicyHourlyCyclePtrOutput() ResourcePolicyHourlyCyclePtrOutput ToResourcePolicyHourlyCyclePtrOutputWithContext(context.Context) ResourcePolicyHourlyCyclePtrOutput } type resourcePolicyHourlyCyclePtrType ResourcePolicyHourlyCycleArgs func ResourcePolicyHourlyCyclePtr(v *ResourcePolicyHourlyCycleArgs) ResourcePolicyHourlyCyclePtrInput { return (*resourcePolicyHourlyCyclePtrType)(v) } func (*resourcePolicyHourlyCyclePtrType) ElementType() reflect.Type { return reflect.TypeOf((**ResourcePolicyHourlyCycle)(nil)).Elem() } func (i *resourcePolicyHourlyCyclePtrType) ToResourcePolicyHourlyCyclePtrOutput() ResourcePolicyHourlyCyclePtrOutput { return i.ToResourcePolicyHourlyCyclePtrOutputWithContext(context.Background()) } func (i *resourcePolicyHourlyCyclePtrType) ToResourcePolicyHourlyCyclePtrOutputWithContext(ctx context.Context) ResourcePolicyHourlyCyclePtrOutput { return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyHourlyCyclePtrOutput) } // Time window specified for hourly operations. type ResourcePolicyHourlyCycleOutput struct{ *pulumi.OutputState } func (ResourcePolicyHourlyCycleOutput) ElementType() reflect.Type { return reflect.TypeOf((*ResourcePolicyHourlyCycle)(nil)).Elem() } func (o ResourcePolicyHourlyCycleOutput) ToResourcePolicyHourlyCycleOutput() ResourcePolicyHourlyCycleOutput { return o } func (o ResourcePolicyHourlyCycleOutput) ToResourcePolicyHourlyCycleOutputWithContext(ctx context.Context) ResourcePolicyHourlyCycleOutput { return o } func (o ResourcePolicyHourlyCycleOutput) ToResourcePolicyHourlyCyclePtrOutput() ResourcePolicyHourlyCyclePtrOutput { return o.ToResourcePolicyHourlyCyclePtrOutputWithContext(context.Background()) } func (o ResourcePolicyHourlyCycleOutput) ToResourcePolicyHourlyCyclePtrOutputWithContext(ctx context.Context) ResourcePolicyHourlyCyclePtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicyHourlyCycle) *ResourcePolicyHourlyCycle { return &v }).(ResourcePolicyHourlyCyclePtrOutput) } // Defines a schedule with units measured in hours. The value determines how many hours pass between the start of each cycle. func (o ResourcePolicyHourlyCycleOutput) HoursInCycle() pulumi.IntPtrOutput { return o.ApplyT(func(v ResourcePolicyHourlyCycle) *int { return v.HoursInCycle }).(pulumi.IntPtrOutput) } // Time within the window to start the operations. It must be in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT. func (o ResourcePolicyHourlyCycleOutput) StartTime() pulumi.StringPtrOutput { return o.ApplyT(func(v ResourcePolicyHourlyCycle) *string { return v.StartTime }).(pulumi.StringPtrOutput) } type ResourcePolicyHourlyCyclePtrOutput struct{ *pulumi.OutputState } func (ResourcePolicyHourlyCyclePtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**ResourcePolicyHourlyCycle)(nil)).Elem() } func (o ResourcePolicyHourlyCyclePtrOutput) ToResourcePolicyHourlyCyclePtrOutput() ResourcePolicyHourlyCyclePtrOutput { return o } func (o ResourcePolicyHourlyCyclePtrOutput) ToResourcePolicyHourlyCyclePtrOutputWithContext(ctx context.Context) ResourcePolicyHourlyCyclePtrOutput { return o } func (o ResourcePolicyHourlyCyclePtrOutput) Elem() ResourcePolicyHourlyCycleOutput { return o.ApplyT(func(v *ResourcePolicyHourlyCycle) ResourcePolicyHourlyCycle { if v != nil { return *v } var ret ResourcePolicyHourlyCycle return ret }).(ResourcePolicyHourlyCycleOutput) } // Defines a schedule with units measured in hours. The value determines how many hours pass between the start of each cycle. func (o ResourcePolicyHourlyCyclePtrOutput) HoursInCycle() pulumi.IntPtrOutput { return o.ApplyT(func(v *ResourcePolicyHourlyCycle) *int { if v == nil { return nil } return v.HoursInCycle }).(pulumi.IntPtrOutput) } // Time within the window to start the operations. It must be in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT. func (o ResourcePolicyHourlyCyclePtrOutput) StartTime() pulumi.StringPtrOutput { return o.ApplyT(func(v *ResourcePolicyHourlyCycle) *string { if v == nil { return nil } return v.StartTime }).(pulumi.StringPtrOutput) } // Time window specified for hourly operations. type ResourcePolicyHourlyCycleResponse struct { // [Output only] Duration of the time window, automatically chosen to be smallest possible in the given scenario. Duration string `pulumi:"duration"` // Defines a schedule with units measured in hours. The value determines how many hours pass between the start of each cycle. HoursInCycle int `pulumi:"hoursInCycle"` // Time within the window to start the operations. It must be in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT. StartTime string `pulumi:"startTime"` } // Time window specified for hourly operations. type ResourcePolicyHourlyCycleResponseOutput struct{ *pulumi.OutputState } func (ResourcePolicyHourlyCycleResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*ResourcePolicyHourlyCycleResponse)(nil)).Elem() } func (o ResourcePolicyHourlyCycleResponseOutput) ToResourcePolicyHourlyCycleResponseOutput() ResourcePolicyHourlyCycleResponseOutput { return o } func (o ResourcePolicyHourlyCycleResponseOutput) ToResourcePolicyHourlyCycleResponseOutputWithContext(ctx context.Context) ResourcePolicyHourlyCycleResponseOutput { return o } // [Output only] Duration of the time window, automatically chosen to be smallest possible in the given scenario. func (o ResourcePolicyHourlyCycleResponseOutput) Duration() pulumi.StringOutput { return o.ApplyT(func(v ResourcePolicyHourlyCycleResponse) string { return v.Duration }).(pulumi.StringOutput) } // Defines a schedule with units measured in hours. The value determines how many hours pass between the start of each cycle. func (o ResourcePolicyHourlyCycleResponseOutput) HoursInCycle() pulumi.IntOutput { return o.ApplyT(func(v ResourcePolicyHourlyCycleResponse) int { return v.HoursInCycle }).(pulumi.IntOutput) } // Time within the window to start the operations. It must be in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT. func (o ResourcePolicyHourlyCycleResponseOutput) StartTime() pulumi.StringOutput { return o.ApplyT(func(v ResourcePolicyHourlyCycleResponse) string { return v.StartTime }).(pulumi.StringOutput) } // An InstanceSchedulePolicy specifies when and how frequent certain operations are performed on the instance. type ResourcePolicyInstanceSchedulePolicy struct { // The expiration time of the schedule. The timestamp is an RFC3339 string. ExpirationTime *string `pulumi:"expirationTime"` // The start time of the schedule. The timestamp is an RFC3339 string. StartTime *string `pulumi:"startTime"` // Specifies the time zone to be used in interpreting Schedule.schedule. The value of this field must be a time zone name from the tz database: http://en.wikipedia.org/wiki/Tz_database. TimeZone *string `pulumi:"timeZone"` // Specifies the schedule for starting instances. VmStartSchedule *ResourcePolicyInstanceSchedulePolicySchedule `pulumi:"vmStartSchedule"` // Specifies the schedule for stopping instances. VmStopSchedule *ResourcePolicyInstanceSchedulePolicySchedule `pulumi:"vmStopSchedule"` } // ResourcePolicyInstanceSchedulePolicyInput is an input type that accepts ResourcePolicyInstanceSchedulePolicyArgs and ResourcePolicyInstanceSchedulePolicyOutput values. // You can construct a concrete instance of `ResourcePolicyInstanceSchedulePolicyInput` via: // // ResourcePolicyInstanceSchedulePolicyArgs{...} type ResourcePolicyInstanceSchedulePolicyInput interface { pulumi.Input ToResourcePolicyInstanceSchedulePolicyOutput() ResourcePolicyInstanceSchedulePolicyOutput ToResourcePolicyInstanceSchedulePolicyOutputWithContext(context.Context) ResourcePolicyInstanceSchedulePolicyOutput } // An InstanceSchedulePolicy specifies when and how frequent certain operations are performed on the instance. type ResourcePolicyInstanceSchedulePolicyArgs struct { // The expiration time of the schedule. The timestamp is an RFC3339 string. ExpirationTime pulumi.StringPtrInput `pulumi:"expirationTime"` // The start time of the schedule. The timestamp is an RFC3339 string. StartTime pulumi.StringPtrInput `pulumi:"startTime"` // Specifies the time zone to be used in interpreting Schedule.schedule. The value of this field must be a time zone name from the tz database: http://en.wikipedia.org/wiki/Tz_database. TimeZone pulumi.StringPtrInput `pulumi:"timeZone"` // Specifies the schedule for starting instances. VmStartSchedule ResourcePolicyInstanceSchedulePolicySchedulePtrInput `pulumi:"vmStartSchedule"` // Specifies the schedule for stopping instances. VmStopSchedule ResourcePolicyInstanceSchedulePolicySchedulePtrInput `pulumi:"vmStopSchedule"` } func (ResourcePolicyInstanceSchedulePolicyArgs) ElementType() reflect.Type { return reflect.TypeOf((*ResourcePolicyInstanceSchedulePolicy)(nil)).Elem() } func (i ResourcePolicyInstanceSchedulePolicyArgs) ToResourcePolicyInstanceSchedulePolicyOutput() ResourcePolicyInstanceSchedulePolicyOutput { return i.ToResourcePolicyInstanceSchedulePolicyOutputWithContext(context.Background()) } func (i ResourcePolicyInstanceSchedulePolicyArgs) ToResourcePolicyInstanceSchedulePolicyOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyOutput { return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyInstanceSchedulePolicyOutput) } func (i ResourcePolicyInstanceSchedulePolicyArgs) ToResourcePolicyInstanceSchedulePolicyPtrOutput() ResourcePolicyInstanceSchedulePolicyPtrOutput { return i.ToResourcePolicyInstanceSchedulePolicyPtrOutputWithContext(context.Background()) } func (i ResourcePolicyInstanceSchedulePolicyArgs) ToResourcePolicyInstanceSchedulePolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyInstanceSchedulePolicyOutput).ToResourcePolicyInstanceSchedulePolicyPtrOutputWithContext(ctx) } // ResourcePolicyInstanceSchedulePolicyPtrInput is an input type that accepts ResourcePolicyInstanceSchedulePolicyArgs, ResourcePolicyInstanceSchedulePolicyPtr and ResourcePolicyInstanceSchedulePolicyPtrOutput values. // You can construct a concrete instance of `ResourcePolicyInstanceSchedulePolicyPtrInput` via: // // ResourcePolicyInstanceSchedulePolicyArgs{...} // // or: // // nil type ResourcePolicyInstanceSchedulePolicyPtrInput interface { pulumi.Input ToResourcePolicyInstanceSchedulePolicyPtrOutput() ResourcePolicyInstanceSchedulePolicyPtrOutput ToResourcePolicyInstanceSchedulePolicyPtrOutputWithContext(context.Context) ResourcePolicyInstanceSchedulePolicyPtrOutput } type resourcePolicyInstanceSchedulePolicyPtrType ResourcePolicyInstanceSchedulePolicyArgs func ResourcePolicyInstanceSchedulePolicyPtr(v *ResourcePolicyInstanceSchedulePolicyArgs) ResourcePolicyInstanceSchedulePolicyPtrInput { return (*resourcePolicyInstanceSchedulePolicyPtrType)(v) } func (*resourcePolicyInstanceSchedulePolicyPtrType) ElementType() reflect.Type { return reflect.TypeOf((**ResourcePolicyInstanceSchedulePolicy)(nil)).Elem() } func (i *resourcePolicyInstanceSchedulePolicyPtrType) ToResourcePolicyInstanceSchedulePolicyPtrOutput() ResourcePolicyInstanceSchedulePolicyPtrOutput { return i.ToResourcePolicyInstanceSchedulePolicyPtrOutputWithContext(context.Background()) } func (i *resourcePolicyInstanceSchedulePolicyPtrType) ToResourcePolicyInstanceSchedulePolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyInstanceSchedulePolicyPtrOutput) } // An InstanceSchedulePolicy specifies when and how frequent certain operations are performed on the instance. type ResourcePolicyInstanceSchedulePolicyOutput struct{ *pulumi.OutputState } func (ResourcePolicyInstanceSchedulePolicyOutput) ElementType() reflect.Type { return reflect.TypeOf((*ResourcePolicyInstanceSchedulePolicy)(nil)).Elem() } func (o ResourcePolicyInstanceSchedulePolicyOutput) ToResourcePolicyInstanceSchedulePolicyOutput() ResourcePolicyInstanceSchedulePolicyOutput { return o } func (o ResourcePolicyInstanceSchedulePolicyOutput) ToResourcePolicyInstanceSchedulePolicyOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyOutput { return o } func (o ResourcePolicyInstanceSchedulePolicyOutput) ToResourcePolicyInstanceSchedulePolicyPtrOutput() ResourcePolicyInstanceSchedulePolicyPtrOutput { return o.ToResourcePolicyInstanceSchedulePolicyPtrOutputWithContext(context.Background()) } func (o ResourcePolicyInstanceSchedulePolicyOutput) ToResourcePolicyInstanceSchedulePolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicyInstanceSchedulePolicy) *ResourcePolicyInstanceSchedulePolicy { return &v }).(ResourcePolicyInstanceSchedulePolicyPtrOutput) } // The expiration time of the schedule. The timestamp is an RFC3339 string. func (o ResourcePolicyInstanceSchedulePolicyOutput) ExpirationTime() pulumi.StringPtrOutput { return o.ApplyT(func(v ResourcePolicyInstanceSchedulePolicy) *string { return v.ExpirationTime }).(pulumi.StringPtrOutput) } // The start time of the schedule. The timestamp is an RFC3339 string. func (o ResourcePolicyInstanceSchedulePolicyOutput) StartTime() pulumi.StringPtrOutput { return o.ApplyT(func(v ResourcePolicyInstanceSchedulePolicy) *string { return v.StartTime }).(pulumi.StringPtrOutput) } // Specifies the time zone to be used in interpreting Schedule.schedule. The value of this field must be a time zone name from the tz database: http://en.wikipedia.org/wiki/Tz_database. func (o ResourcePolicyInstanceSchedulePolicyOutput) TimeZone() pulumi.StringPtrOutput { return o.ApplyT(func(v ResourcePolicyInstanceSchedulePolicy) *string { return v.TimeZone }).(pulumi.StringPtrOutput) } // Specifies the schedule for starting instances. func (o ResourcePolicyInstanceSchedulePolicyOutput) VmStartSchedule() ResourcePolicyInstanceSchedulePolicySchedulePtrOutput { return o.ApplyT(func(v ResourcePolicyInstanceSchedulePolicy) *ResourcePolicyInstanceSchedulePolicySchedule { return v.VmStartSchedule }).(ResourcePolicyInstanceSchedulePolicySchedulePtrOutput) } // Specifies the schedule for stopping instances. func (o ResourcePolicyInstanceSchedulePolicyOutput) VmStopSchedule() ResourcePolicyInstanceSchedulePolicySchedulePtrOutput { return o.ApplyT(func(v ResourcePolicyInstanceSchedulePolicy) *ResourcePolicyInstanceSchedulePolicySchedule { return v.VmStopSchedule }).(ResourcePolicyInstanceSchedulePolicySchedulePtrOutput) } type ResourcePolicyInstanceSchedulePolicyPtrOutput struct{ *pulumi.OutputState } func (ResourcePolicyInstanceSchedulePolicyPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**ResourcePolicyInstanceSchedulePolicy)(nil)).Elem() } func (o ResourcePolicyInstanceSchedulePolicyPtrOutput) ToResourcePolicyInstanceSchedulePolicyPtrOutput() ResourcePolicyInstanceSchedulePolicyPtrOutput { return o } func (o ResourcePolicyInstanceSchedulePolicyPtrOutput) ToResourcePolicyInstanceSchedulePolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyPtrOutput { return o } func (o ResourcePolicyInstanceSchedulePolicyPtrOutput) Elem() ResourcePolicyInstanceSchedulePolicyOutput { return o.ApplyT(func(v *ResourcePolicyInstanceSchedulePolicy) ResourcePolicyInstanceSchedulePolicy { if v != nil { return *v } var ret ResourcePolicyInstanceSchedulePolicy return ret }).(ResourcePolicyInstanceSchedulePolicyOutput) } // The expiration time of the schedule. The timestamp is an RFC3339 string. func (o ResourcePolicyInstanceSchedulePolicyPtrOutput) ExpirationTime() pulumi.StringPtrOutput { return o.ApplyT(func(v *ResourcePolicyInstanceSchedulePolicy) *string { if v == nil { return nil } return v.ExpirationTime }).(pulumi.StringPtrOutput) } // The start time of the schedule. The timestamp is an RFC3339 string. func (o ResourcePolicyInstanceSchedulePolicyPtrOutput) StartTime() pulumi.StringPtrOutput { return o.ApplyT(func(v *ResourcePolicyInstanceSchedulePolicy) *string { if v == nil { return nil } return v.StartTime }).(pulumi.StringPtrOutput) } // Specifies the time zone to be used in interpreting Schedule.schedule. The value of this field must be a time zone name from the tz database: http://en.wikipedia.org/wiki/Tz_database. func (o ResourcePolicyInstanceSchedulePolicyPtrOutput) TimeZone() pulumi.StringPtrOutput { return o.ApplyT(func(v *ResourcePolicyInstanceSchedulePolicy) *string { if v == nil { return nil } return v.TimeZone }).(pulumi.StringPtrOutput) } // Specifies the schedule for starting instances. func (o ResourcePolicyInstanceSchedulePolicyPtrOutput) VmStartSchedule() ResourcePolicyInstanceSchedulePolicySchedulePtrOutput { return o.ApplyT(func(v *ResourcePolicyInstanceSchedulePolicy) *ResourcePolicyInstanceSchedulePolicySchedule { if v == nil { return nil } return v.VmStartSchedule }).(ResourcePolicyInstanceSchedulePolicySchedulePtrOutput) } // Specifies the schedule for stopping instances. func (o ResourcePolicyInstanceSchedulePolicyPtrOutput) VmStopSchedule() ResourcePolicyInstanceSchedulePolicySchedulePtrOutput { return o.ApplyT(func(v *ResourcePolicyInstanceSchedulePolicy) *ResourcePolicyInstanceSchedulePolicySchedule { if v == nil { return nil } return v.VmStopSchedule }).(ResourcePolicyInstanceSchedulePolicySchedulePtrOutput) } // An InstanceSchedulePolicy specifies when and how frequent certain operations are performed on the instance. type ResourcePolicyInstanceSchedulePolicyResponse struct { // The expiration time of the schedule. The timestamp is an RFC3339 string. ExpirationTime string `pulumi:"expirationTime"` // The start time of the schedule. The timestamp is an RFC3339 string. StartTime string `pulumi:"startTime"` // Specifies the time zone to be used in interpreting Schedule.schedule. The value of this field must be a time zone name from the tz database: http://en.wikipedia.org/wiki/Tz_database. TimeZone string `pulumi:"timeZone"` // Specifies the schedule for starting instances. VmStartSchedule ResourcePolicyInstanceSchedulePolicyScheduleResponse `pulumi:"vmStartSchedule"` // Specifies the schedule for stopping instances. VmStopSchedule ResourcePolicyInstanceSchedulePolicyScheduleResponse `pulumi:"vmStopSchedule"` } // An InstanceSchedulePolicy specifies when and how frequent certain operations are performed on the instance. type ResourcePolicyInstanceSchedulePolicyResponseOutput struct{ *pulumi.OutputState } func (ResourcePolicyInstanceSchedulePolicyResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*ResourcePolicyInstanceSchedulePolicyResponse)(nil)).Elem() } func (o ResourcePolicyInstanceSchedulePolicyResponseOutput) ToResourcePolicyInstanceSchedulePolicyResponseOutput() ResourcePolicyInstanceSchedulePolicyResponseOutput { return o } func (o ResourcePolicyInstanceSchedulePolicyResponseOutput) ToResourcePolicyInstanceSchedulePolicyResponseOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyResponseOutput { return o } // The expiration time of the schedule. The timestamp is an RFC3339 string. func (o ResourcePolicyInstanceSchedulePolicyResponseOutput) ExpirationTime() pulumi.StringOutput { return o.ApplyT(func(v ResourcePolicyInstanceSchedulePolicyResponse) string { return v.ExpirationTime }).(pulumi.StringOutput) } // The start time of the schedule. The timestamp is an RFC3339 string. func (o ResourcePolicyInstanceSchedulePolicyResponseOutput) StartTime() pulumi.StringOutput { return o.ApplyT(func(v ResourcePolicyInstanceSchedulePolicyResponse) string { return v.StartTime }).(pulumi.StringOutput) } // Specifies the time zone to be used in interpreting Schedule.schedule. The value of this field must be a time zone name from the tz database: http://en.wikipedia.org/wiki/Tz_database. func (o ResourcePolicyInstanceSchedulePolicyResponseOutput) TimeZone() pulumi.StringOutput { return o.ApplyT(func(v ResourcePolicyInstanceSchedulePolicyResponse) string { return v.TimeZone }).(pulumi.StringOutput) } // Specifies the schedule for starting instances. func (o ResourcePolicyInstanceSchedulePolicyResponseOutput) VmStartSchedule() ResourcePolicyInstanceSchedulePolicyScheduleResponseOutput { return o.ApplyT(func(v ResourcePolicyInstanceSchedulePolicyResponse) ResourcePolicyInstanceSchedulePolicyScheduleResponse { return v.VmStartSchedule }).(ResourcePolicyInstanceSchedulePolicyScheduleResponseOutput) } // Specifies the schedule for stopping instances. func (o ResourcePolicyInstanceSchedulePolicyResponseOutput) VmStopSchedule() ResourcePolicyInstanceSchedulePolicyScheduleResponseOutput { return o.ApplyT(func(v ResourcePolicyInstanceSchedulePolicyResponse) ResourcePolicyInstanceSchedulePolicyScheduleResponse { return v.VmStopSchedule }).(ResourcePolicyInstanceSchedulePolicyScheduleResponseOutput) } // Schedule for an instance operation. type ResourcePolicyInstanceSchedulePolicySchedule struct { // Specifies the frequency for the operation, using the unix-cron format. Schedule *string `pulumi:"schedule"` } // ResourcePolicyInstanceSchedulePolicyScheduleInput is an input type that accepts ResourcePolicyInstanceSchedulePolicyScheduleArgs and ResourcePolicyInstanceSchedulePolicyScheduleOutput values. // You can construct a concrete instance of `ResourcePolicyInstanceSchedulePolicyScheduleInput` via: // // ResourcePolicyInstanceSchedulePolicyScheduleArgs{...} type ResourcePolicyInstanceSchedulePolicyScheduleInput interface { pulumi.Input ToResourcePolicyInstanceSchedulePolicyScheduleOutput() ResourcePolicyInstanceSchedulePolicyScheduleOutput ToResourcePolicyInstanceSchedulePolicyScheduleOutputWithContext(context.Context) ResourcePolicyInstanceSchedulePolicyScheduleOutput } // Schedule for an instance operation. type ResourcePolicyInstanceSchedulePolicyScheduleArgs struct { // Specifies the frequency for the operation, using the unix-cron format. Schedule pulumi.StringPtrInput `pulumi:"schedule"` } func (ResourcePolicyInstanceSchedulePolicyScheduleArgs) ElementType() reflect.Type { return reflect.TypeOf((*ResourcePolicyInstanceSchedulePolicySchedule)(nil)).Elem() } func (i ResourcePolicyInstanceSchedulePolicyScheduleArgs) ToResourcePolicyInstanceSchedulePolicyScheduleOutput() ResourcePolicyInstanceSchedulePolicyScheduleOutput { return i.ToResourcePolicyInstanceSchedulePolicyScheduleOutputWithContext(context.Background()) } func (i ResourcePolicyInstanceSchedulePolicyScheduleArgs) ToResourcePolicyInstanceSchedulePolicyScheduleOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyScheduleOutput { return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyInstanceSchedulePolicyScheduleOutput) } func (i ResourcePolicyInstanceSchedulePolicyScheduleArgs) ToResourcePolicyInstanceSchedulePolicySchedulePtrOutput() ResourcePolicyInstanceSchedulePolicySchedulePtrOutput { return i.ToResourcePolicyInstanceSchedulePolicySchedulePtrOutputWithContext(context.Background()) } func (i ResourcePolicyInstanceSchedulePolicyScheduleArgs) ToResourcePolicyInstanceSchedulePolicySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicySchedulePtrOutput { return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyInstanceSchedulePolicyScheduleOutput).ToResourcePolicyInstanceSchedulePolicySchedulePtrOutputWithContext(ctx) } // ResourcePolicyInstanceSchedulePolicySchedulePtrInput is an input type that accepts ResourcePolicyInstanceSchedulePolicyScheduleArgs, ResourcePolicyInstanceSchedulePolicySchedulePtr and ResourcePolicyInstanceSchedulePolicySchedulePtrOutput values. // You can construct a concrete instance of `ResourcePolicyInstanceSchedulePolicySchedulePtrInput` via: // // ResourcePolicyInstanceSchedulePolicyScheduleArgs{...} // // or: // // nil type ResourcePolicyInstanceSchedulePolicySchedulePtrInput interface { pulumi.Input ToResourcePolicyInstanceSchedulePolicySchedulePtrOutput() ResourcePolicyInstanceSchedulePolicySchedulePtrOutput ToResourcePolicyInstanceSchedulePolicySchedulePtrOutputWithContext(context.Context) ResourcePolicyInstanceSchedulePolicySchedulePtrOutput } type resourcePolicyInstanceSchedulePolicySchedulePtrType ResourcePolicyInstanceSchedulePolicyScheduleArgs func ResourcePolicyInstanceSchedulePolicySchedulePtr(v *ResourcePolicyInstanceSchedulePolicyScheduleArgs) ResourcePolicyInstanceSchedulePolicySchedulePtrInput { return (*resourcePolicyInstanceSchedulePolicySchedulePtrType)(v) } func (*resourcePolicyInstanceSchedulePolicySchedulePtrType) ElementType() reflect.Type { return reflect.TypeOf((**ResourcePolicyInstanceSchedulePolicySchedule)(nil)).Elem() } func (i *resourcePolicyInstanceSchedulePolicySchedulePtrType) ToResourcePolicyInstanceSchedulePolicySchedulePtrOutput() ResourcePolicyInstanceSchedulePolicySchedulePtrOutput { return i.ToResourcePolicyInstanceSchedulePolicySchedulePtrOutputWithContext(context.Background()) } func (i *resourcePolicyInstanceSchedulePolicySchedulePtrType) ToResourcePolicyInstanceSchedulePolicySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicySchedulePtrOutput { return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyInstanceSchedulePolicySchedulePtrOutput) } // Schedule for an instance operation. type ResourcePolicyInstanceSchedulePolicyScheduleOutput struct{ *pulumi.OutputState } func (ResourcePolicyInstanceSchedulePolicyScheduleOutput) ElementType() reflect.Type { return reflect.TypeOf((*ResourcePolicyInstanceSchedulePolicySchedule)(nil)).Elem() } func (o ResourcePolicyInstanceSchedulePolicyScheduleOutput) ToResourcePolicyInstanceSchedulePolicyScheduleOutput() ResourcePolicyInstanceSchedulePolicyScheduleOutput { return o } func (o ResourcePolicyInstanceSchedulePolicyScheduleOutput) ToResourcePolicyInstanceSchedulePolicyScheduleOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyScheduleOutput { return o } func (o ResourcePolicyInstanceSchedulePolicyScheduleOutput) ToResourcePolicyInstanceSchedulePolicySchedulePtrOutput() ResourcePolicyInstanceSchedulePolicySchedulePtrOutput { return o.ToResourcePolicyInstanceSchedulePolicySchedulePtrOutputWithContext(context.Background()) } func (o ResourcePolicyInstanceSchedulePolicyScheduleOutput) ToResourcePolicyInstanceSchedulePolicySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicySchedulePtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicyInstanceSchedulePolicySchedule) *ResourcePolicyInstanceSchedulePolicySchedule { return &v }).(ResourcePolicyInstanceSchedulePolicySchedulePtrOutput) } // Specifies the frequency for the operation, using the unix-cron format. func (o ResourcePolicyInstanceSchedulePolicyScheduleOutput) Schedule() pulumi.StringPtrOutput { return o.ApplyT(func(v ResourcePolicyInstanceSchedulePolicySchedule) *string { return v.Schedule }).(pulumi.StringPtrOutput) } type ResourcePolicyInstanceSchedulePolicySchedulePtrOutput struct{ *pulumi.OutputState } func (ResourcePolicyInstanceSchedulePolicySchedulePtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**ResourcePolicyInstanceSchedulePolicySchedule)(nil)).Elem() } func (o ResourcePolicyInstanceSchedulePolicySchedulePtrOutput) ToResourcePolicyInstanceSchedulePolicySchedulePtrOutput() ResourcePolicyInstanceSchedulePolicySchedulePtrOutput { return o } func (o ResourcePolicyInstanceSchedulePolicySchedulePtrOutput) ToResourcePolicyInstanceSchedulePolicySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicySchedulePtrOutput { return o } func (o ResourcePolicyInstanceSchedulePolicySchedulePtrOutput) Elem() ResourcePolicyInstanceSchedulePolicyScheduleOutput { return o.ApplyT(func(v *ResourcePolicyInstanceSchedulePolicySchedule) ResourcePolicyInstanceSchedulePolicySchedule { if v != nil { return *v } var ret ResourcePolicyInstanceSchedulePolicySchedule return ret }).(ResourcePolicyInstanceSchedulePolicyScheduleOutput) } // Specifies the frequency for the operation, using the unix-cron format. func (o ResourcePolicyInstanceSchedulePolicySchedulePtrOutput) Schedule() pulumi.StringPtrOutput { return o.ApplyT(func(v *ResourcePolicyInstanceSchedulePolicySchedule) *string { if v == nil { return nil } return v.Schedule }).(pulumi.StringPtrOutput) } // Schedule for an instance operation. type ResourcePolicyInstanceSchedulePolicyScheduleResponse struct { // Specifies the frequency for the operation, using the unix-cron format. Schedule string `pulumi:"schedule"` } // Schedule for an instance operation. type ResourcePolicyInstanceSchedulePolicyScheduleResponseOutput struct{ *pulumi.OutputState } func (ResourcePolicyInstanceSchedulePolicyScheduleResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*ResourcePolicyInstanceSchedulePolicyScheduleResponse)(nil)).Elem() } func (o ResourcePolicyInstanceSchedulePolicyScheduleResponseOutput) ToResourcePolicyInstanceSchedulePolicyScheduleResponseOutput() ResourcePolicyInstanceSchedulePolicyScheduleResponseOutput { return o } func (o ResourcePolicyInstanceSchedulePolicyScheduleResponseOutput) ToResourcePolicyInstanceSchedulePolicyScheduleResponseOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyScheduleResponseOutput { return o } // Specifies the frequency for the operation, using the unix-cron format. func (o ResourcePolicyInstanceSchedulePolicyScheduleResponseOutput) Schedule() pulumi.StringOutput { return o.ApplyT(func(v ResourcePolicyInstanceSchedulePolicyScheduleResponse) string { return v.Schedule }).(pulumi.StringOutput) } type ResourcePolicyResourceStatusInstanceSchedulePolicyStatusResponse struct { // The last time the schedule successfully ran. The timestamp is an RFC3339 string. LastRunStartTime string `pulumi:"lastRunStartTime"` // The next time the schedule is planned to run. The actual time might be slightly different. The timestamp is an RFC3339 string. NextRunStartTime string `pulumi:"nextRunStartTime"` } type ResourcePolicyResourceStatusInstanceSchedulePolicyStatusResponseOutput struct{ *pulumi.OutputState } func (ResourcePolicyResourceStatusInstanceSchedulePolicyStatusResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*ResourcePolicyResourceStatusInstanceSchedulePolicyStatusResponse)(nil)).Elem() } func (o ResourcePolicyResourceStatusInstanceSchedulePolicyStatusResponseOutput) ToResourcePolicyResourceStatusInstanceSchedulePolicyStatusResponseOutput() ResourcePolicyResourceStatusInstanceSchedulePolicyStatusResponseOutput { return o } func (o ResourcePolicyResourceStatusInstanceSchedulePolicyStatusResponseOutput) ToResourcePolicyResourceStatusInstanceSchedulePolicyStatusResponseOutputWithContext(ctx context.Context) ResourcePolicyResourceStatusInstanceSchedulePolicyStatusResponseOutput { return o } // The last time the schedule successfully ran. The timestamp is an RFC3339 string. func (o ResourcePolicyResourceStatusInstanceSchedulePolicyStatusResponseOutput) LastRunStartTime() pulumi.StringOutput { return o.ApplyT(func(v ResourcePolicyResourceStatusInstanceSchedulePolicyStatusResponse) string { return v.LastRunStartTime }).(pulumi.StringOutput) } // The next time the schedule is planned to run. The actual time might be slightly different. The timestamp is an RFC3339 string. func (o ResourcePolicyResourceStatusInstanceSchedulePolicyStatusResponseOutput) NextRunStartTime() pulumi.StringOutput { return o.ApplyT(func(v ResourcePolicyResourceStatusInstanceSchedulePolicyStatusResponse) string { return v.NextRunStartTime }).(pulumi.StringOutput) } // Contains output only fields. Use this sub-message for all output fields set on ResourcePolicy. The internal structure of this "status" field should mimic the structure of ResourcePolicy proto specification. type ResourcePolicyResourceStatusResponse struct { // Specifies a set of output values reffering to the instance_schedule_policy system status. This field should have the same name as corresponding policy field. InstanceSchedulePolicy ResourcePolicyResourceStatusInstanceSchedulePolicyStatusResponse `pulumi:"instanceSchedulePolicy"` } // Contains output only fields. Use this sub-message for all output fields set on ResourcePolicy. The internal structure of this "status" field should mimic the structure of ResourcePolicy proto specification. type ResourcePolicyResourceStatusResponseOutput struct{ *pulumi.OutputState } func (ResourcePolicyResourceStatusResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*ResourcePolicyResourceStatusResponse)(nil)).Elem() } func (o ResourcePolicyResourceStatusResponseOutput) ToResourcePolicyResourceStatusResponseOutput() ResourcePolicyResourceStatusResponseOutput { return o } func (o ResourcePolicyResourceStatusResponseOutput) ToResourcePolicyResourceStatusResponseOutputWithContext(ctx context.Context) ResourcePolicyResourceStatusResponseOutput { return o } // Specifies a set of output values reffering to the instance_schedule_policy system status. This field should have the same name as corresponding policy field. func (o ResourcePolicyResourceStatusResponseOutput) InstanceSchedulePolicy() ResourcePolicyResourceStatusInstanceSchedulePolicyStatusResponseOutput { return o.ApplyT(func(v ResourcePolicyResourceStatusResponse) ResourcePolicyResourceStatusInstanceSchedulePolicyStatusResponse { return v.InstanceSchedulePolicy }).(ResourcePolicyResourceStatusInstanceSchedulePolicyStatusResponseOutput) } // A snapshot schedule policy specifies when and how frequently snapshots are to be created for the target disk. Also specifies how many and how long these scheduled snapshots should be retained. type ResourcePolicySnapshotSchedulePolicy struct { // Retention policy applied to snapshots created by this resource policy. RetentionPolicy *ResourcePolicySnapshotSchedulePolicyRetentionPolicy `pulumi:"retentionPolicy"` // A Vm Maintenance Policy specifies what kind of infrastructure maintenance we are allowed to perform on this VM and when. Schedule that is applied to disks covered by this policy. Schedule *ResourcePolicySnapshotSchedulePolicySchedule `pulumi:"schedule"` // Properties with which snapshots are created such as labels, encryption keys. SnapshotProperties *ResourcePolicySnapshotSchedulePolicySnapshotProperties `pulumi:"snapshotProperties"` } // ResourcePolicySnapshotSchedulePolicyInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyArgs and ResourcePolicySnapshotSchedulePolicyOutput values. // You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyInput` via: // // ResourcePolicySnapshotSchedulePolicyArgs{...} type ResourcePolicySnapshotSchedulePolicyInput interface { pulumi.Input ToResourcePolicySnapshotSchedulePolicyOutput() ResourcePolicySnapshotSchedulePolicyOutput ToResourcePolicySnapshotSchedulePolicyOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyOutput } // A snapshot schedule policy specifies when and how frequently snapshots are to be created for the target disk. Also specifies how many and how long these scheduled snapshots should be retained. type ResourcePolicySnapshotSchedulePolicyArgs struct { // Retention policy applied to snapshots created by this resource policy. RetentionPolicy ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrInput `pulumi:"retentionPolicy"` // A Vm Maintenance Policy specifies what kind of infrastructure maintenance we are allowed to perform on this VM and when. Schedule that is applied to disks covered by this policy. Schedule ResourcePolicySnapshotSchedulePolicySchedulePtrInput `pulumi:"schedule"` // Properties with which snapshots are created such as labels, encryption keys. SnapshotProperties ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrInput `pulumi:"snapshotProperties"` } func (ResourcePolicySnapshotSchedulePolicyArgs) ElementType() reflect.Type { return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicy)(nil)).Elem() } func (i ResourcePolicySnapshotSchedulePolicyArgs) ToResourcePolicySnapshotSchedulePolicyOutput() ResourcePolicySnapshotSchedulePolicyOutput { return i.ToResourcePolicySnapshotSchedulePolicyOutputWithContext(context.Background()) } func (i ResourcePolicySnapshotSchedulePolicyArgs) ToResourcePolicySnapshotSchedulePolicyOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyOutput { return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyOutput) } func (i ResourcePolicySnapshotSchedulePolicyArgs) ToResourcePolicySnapshotSchedulePolicyPtrOutput() ResourcePolicySnapshotSchedulePolicyPtrOutput { return i.ToResourcePolicySnapshotSchedulePolicyPtrOutputWithContext(context.Background()) } func (i ResourcePolicySnapshotSchedulePolicyArgs) ToResourcePolicySnapshotSchedulePolicyPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyOutput).ToResourcePolicySnapshotSchedulePolicyPtrOutputWithContext(ctx) } // ResourcePolicySnapshotSchedulePolicyPtrInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyArgs, ResourcePolicySnapshotSchedulePolicyPtr and ResourcePolicySnapshotSchedulePolicyPtrOutput values. // You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyPtrInput` via: // // ResourcePolicySnapshotSchedulePolicyArgs{...} // // or: // // nil type ResourcePolicySnapshotSchedulePolicyPtrInput interface { pulumi.Input ToResourcePolicySnapshotSchedulePolicyPtrOutput() ResourcePolicySnapshotSchedulePolicyPtrOutput ToResourcePolicySnapshotSchedulePolicyPtrOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyPtrOutput } type resourcePolicySnapshotSchedulePolicyPtrType ResourcePolicySnapshotSchedulePolicyArgs func ResourcePolicySnapshotSchedulePolicyPtr(v *ResourcePolicySnapshotSchedulePolicyArgs) ResourcePolicySnapshotSchedulePolicyPtrInput { return (*resourcePolicySnapshotSchedulePolicyPtrType)(v) } func (*resourcePolicySnapshotSchedulePolicyPtrType) ElementType() reflect.Type { return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicy)(nil)).Elem() } func (i *resourcePolicySnapshotSchedulePolicyPtrType) ToResourcePolicySnapshotSchedulePolicyPtrOutput() ResourcePolicySnapshotSchedulePolicyPtrOutput { return i.ToResourcePolicySnapshotSchedulePolicyPtrOutputWithContext(context.Background()) } func (i *resourcePolicySnapshotSchedulePolicyPtrType) ToResourcePolicySnapshotSchedulePolicyPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyPtrOutput) } // A snapshot schedule policy specifies when and how frequently snapshots are to be created for the target disk. Also specifies how many and how long these scheduled snapshots should be retained. type ResourcePolicySnapshotSchedulePolicyOutput struct{ *pulumi.OutputState } func (ResourcePolicySnapshotSchedulePolicyOutput) ElementType() reflect.Type { return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicy)(nil)).Elem() } func (o ResourcePolicySnapshotSchedulePolicyOutput) ToResourcePolicySnapshotSchedulePolicyOutput() ResourcePolicySnapshotSchedulePolicyOutput { return o } func (o ResourcePolicySnapshotSchedulePolicyOutput) ToResourcePolicySnapshotSchedulePolicyOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyOutput { return o } func (o ResourcePolicySnapshotSchedulePolicyOutput) ToResourcePolicySnapshotSchedulePolicyPtrOutput() ResourcePolicySnapshotSchedulePolicyPtrOutput { return o.ToResourcePolicySnapshotSchedulePolicyPtrOutputWithContext(context.Background()) } func (o ResourcePolicySnapshotSchedulePolicyOutput) ToResourcePolicySnapshotSchedulePolicyPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicySnapshotSchedulePolicy) *ResourcePolicySnapshotSchedulePolicy { return &v }).(ResourcePolicySnapshotSchedulePolicyPtrOutput) } // Retention policy applied to snapshots created by this resource policy. func (o ResourcePolicySnapshotSchedulePolicyOutput) RetentionPolicy() ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput { return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicy) *ResourcePolicySnapshotSchedulePolicyRetentionPolicy { return v.RetentionPolicy }).(ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput) } // A Vm Maintenance Policy specifies what kind of infrastructure maintenance we are allowed to perform on this VM and when. Schedule that is applied to disks covered by this policy. func (o ResourcePolicySnapshotSchedulePolicyOutput) Schedule() ResourcePolicySnapshotSchedulePolicySchedulePtrOutput { return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicy) *ResourcePolicySnapshotSchedulePolicySchedule { return v.Schedule }).(ResourcePolicySnapshotSchedulePolicySchedulePtrOutput) } // Properties with which snapshots are created such as labels, encryption keys. func (o ResourcePolicySnapshotSchedulePolicyOutput) SnapshotProperties() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput { return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicy) *ResourcePolicySnapshotSchedulePolicySnapshotProperties { return v.SnapshotProperties }).(ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) } type ResourcePolicySnapshotSchedulePolicyPtrOutput struct{ *pulumi.OutputState } func (ResourcePolicySnapshotSchedulePolicyPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicy)(nil)).Elem() } func (o ResourcePolicySnapshotSchedulePolicyPtrOutput) ToResourcePolicySnapshotSchedulePolicyPtrOutput() ResourcePolicySnapshotSchedulePolicyPtrOutput { return o } func (o ResourcePolicySnapshotSchedulePolicyPtrOutput) ToResourcePolicySnapshotSchedulePolicyPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyPtrOutput { return o } func (o ResourcePolicySnapshotSchedulePolicyPtrOutput) Elem() ResourcePolicySnapshotSchedulePolicyOutput { return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicy) ResourcePolicySnapshotSchedulePolicy { if v != nil { return *v } var ret ResourcePolicySnapshotSchedulePolicy return ret }).(ResourcePolicySnapshotSchedulePolicyOutput) } // Retention policy applied to snapshots created by this resource policy. func (o ResourcePolicySnapshotSchedulePolicyPtrOutput) RetentionPolicy() ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput { return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicy) *ResourcePolicySnapshotSchedulePolicyRetentionPolicy { if v == nil { return nil } return v.RetentionPolicy }).(ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput) } // A Vm Maintenance Policy specifies what kind of infrastructure maintenance we are allowed to perform on this VM and when. Schedule that is applied to disks covered by this policy. func (o ResourcePolicySnapshotSchedulePolicyPtrOutput) Schedule() ResourcePolicySnapshotSchedulePolicySchedulePtrOutput { return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicy) *ResourcePolicySnapshotSchedulePolicySchedule { if v == nil { return nil } return v.Schedule }).(ResourcePolicySnapshotSchedulePolicySchedulePtrOutput) } // Properties with which snapshots are created such as labels, encryption keys. func (o ResourcePolicySnapshotSchedulePolicyPtrOutput) SnapshotProperties() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput { return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicy) *ResourcePolicySnapshotSchedulePolicySnapshotProperties { if v == nil { return nil } return v.SnapshotProperties }).(ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) } // A snapshot schedule policy specifies when and how frequently snapshots are to be created for the target disk. Also specifies how many and how long these scheduled snapshots should be retained. type ResourcePolicySnapshotSchedulePolicyResponse struct { // Retention policy applied to snapshots created by this resource policy. RetentionPolicy ResourcePolicySnapshotSchedulePolicyRetentionPolicyResponse `pulumi:"retentionPolicy"` // A Vm Maintenance Policy specifies what kind of infrastructure maintenance we are allowed to perform on this VM and when. Schedule that is applied to disks covered by this policy. Schedule ResourcePolicySnapshotSchedulePolicyScheduleResponse `pulumi:"schedule"` // Properties with which snapshots are created such as labels, encryption keys. SnapshotProperties ResourcePolicySnapshotSchedulePolicySnapshotPropertiesResponse `pulumi:"snapshotProperties"` } // A snapshot schedule policy specifies when and how frequently snapshots are to be created for the target disk. Also specifies how many and how long these scheduled snapshots should be retained. type ResourcePolicySnapshotSchedulePolicyResponseOutput struct{ *pulumi.OutputState } func (ResourcePolicySnapshotSchedulePolicyResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicyResponse)(nil)).Elem() } func (o ResourcePolicySnapshotSchedulePolicyResponseOutput) ToResourcePolicySnapshotSchedulePolicyResponseOutput() ResourcePolicySnapshotSchedulePolicyResponseOutput { return o } func (o ResourcePolicySnapshotSchedulePolicyResponseOutput) ToResourcePolicySnapshotSchedulePolicyResponseOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyResponseOutput { return o } // Retention policy applied to snapshots created by this resource policy. func (o ResourcePolicySnapshotSchedulePolicyResponseOutput) RetentionPolicy() ResourcePolicySnapshotSchedulePolicyRetentionPolicyResponseOutput { return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicyResponse) ResourcePolicySnapshotSchedulePolicyRetentionPolicyResponse { return v.RetentionPolicy }).(ResourcePolicySnapshotSchedulePolicyRetentionPolicyResponseOutput) } // A Vm Maintenance Policy specifies what kind of infrastructure maintenance we are allowed to perform on this VM and when. Schedule that is applied to disks covered by this policy. func (o ResourcePolicySnapshotSchedulePolicyResponseOutput) Schedule() ResourcePolicySnapshotSchedulePolicyScheduleResponseOutput { return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicyResponse) ResourcePolicySnapshotSchedulePolicyScheduleResponse { return v.Schedule }).(ResourcePolicySnapshotSchedulePolicyScheduleResponseOutput) } // Properties with which snapshots are created such as labels, encryption keys. func (o ResourcePolicySnapshotSchedulePolicyResponseOutput) SnapshotProperties() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesResponseOutput { return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicyResponse) ResourcePolicySnapshotSchedulePolicySnapshotPropertiesResponse { return v.SnapshotProperties }).(ResourcePolicySnapshotSchedulePolicySnapshotPropertiesResponseOutput) } // Policy for retention of scheduled snapshots. type ResourcePolicySnapshotSchedulePolicyRetentionPolicy struct { // Maximum age of the snapshot that is allowed to be kept. MaxRetentionDays *int `pulumi:"maxRetentionDays"` // Specifies the behavior to apply to scheduled snapshots when the source disk is deleted. OnSourceDiskDelete *ResourcePolicySnapshotSchedulePolicyRetentionPolicyOnSourceDiskDelete `pulumi:"onSourceDiskDelete"` } // ResourcePolicySnapshotSchedulePolicyRetentionPolicyInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs and ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput values. // You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyRetentionPolicyInput` via: // // ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs{...} type ResourcePolicySnapshotSchedulePolicyRetentionPolicyInput interface { pulumi.Input ToResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput() ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput ToResourcePolicySnapshotSchedulePolicyRetentionPolicyOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput } // Policy for retention of scheduled snapshots. type ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs struct { // Maximum age of the snapshot that is allowed to be kept. MaxRetentionDays pulumi.IntPtrInput `pulumi:"maxRetentionDays"` // Specifies the behavior to apply to scheduled snapshots when the source disk is deleted. OnSourceDiskDelete ResourcePolicySnapshotSchedulePolicyRetentionPolicyOnSourceDiskDeletePtrInput `pulumi:"onSourceDiskDelete"` } func (ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs) ElementType() reflect.Type { return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicyRetentionPolicy)(nil)).Elem() } func (i ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput() ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput { return i.ToResourcePolicySnapshotSchedulePolicyRetentionPolicyOutputWithContext(context.Background()) } func (i ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput { return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput) } func (i ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput() ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput { return i.ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutputWithContext(context.Background()) } func (i ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput).ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutputWithContext(ctx) } // ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs, ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtr and ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput values. // You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrInput` via: // // ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs{...} // // or: // // nil type ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrInput interface { pulumi.Input ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput() ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput } type resourcePolicySnapshotSchedulePolicyRetentionPolicyPtrType ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs func ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtr(v *ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs) ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrInput { return (*resourcePolicySnapshotSchedulePolicyRetentionPolicyPtrType)(v) } func (*resourcePolicySnapshotSchedulePolicyRetentionPolicyPtrType) ElementType() reflect.Type { return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicyRetentionPolicy)(nil)).Elem() } func (i *resourcePolicySnapshotSchedulePolicyRetentionPolicyPtrType) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput() ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput { return i.ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutputWithContext(context.Background()) } func (i *resourcePolicySnapshotSchedulePolicyRetentionPolicyPtrType) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput) } // Policy for retention of scheduled snapshots. type ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput struct{ *pulumi.OutputState } func (ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput) ElementType() reflect.Type { return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicyRetentionPolicy)(nil)).Elem() } func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput() ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput { return o } func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput { return o } func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput() ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput { return o.ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutputWithContext(context.Background()) } func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicySnapshotSchedulePolicyRetentionPolicy) *ResourcePolicySnapshotSchedulePolicyRetentionPolicy { return &v }).(ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput) } // Maximum age of the snapshot that is allowed to be kept. func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput) MaxRetentionDays() pulumi.IntPtrOutput { return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicyRetentionPolicy) *int { return v.MaxRetentionDays }).(pulumi.IntPtrOutput) } // Specifies the behavior to apply to scheduled snapshots when the source disk is deleted. func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput) OnSourceDiskDelete() ResourcePolicySnapshotSchedulePolicyRetentionPolicyOnSourceDiskDeletePtrOutput { return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicyRetentionPolicy) *ResourcePolicySnapshotSchedulePolicyRetentionPolicyOnSourceDiskDelete { return v.OnSourceDiskDelete }).(ResourcePolicySnapshotSchedulePolicyRetentionPolicyOnSourceDiskDeletePtrOutput) } type ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput struct{ *pulumi.OutputState } func (ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicyRetentionPolicy)(nil)).Elem() } func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput() ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput { return o } func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput { return o } func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput) Elem() ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput { return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicyRetentionPolicy) ResourcePolicySnapshotSchedulePolicyRetentionPolicy { if v != nil { return *v } var ret ResourcePolicySnapshotSchedulePolicyRetentionPolicy return ret }).(ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput) } // Maximum age of the snapshot that is allowed to be kept. func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput) MaxRetentionDays() pulumi.IntPtrOutput { return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicyRetentionPolicy) *int { if v == nil { return nil } return v.MaxRetentionDays }).(pulumi.IntPtrOutput) } // Specifies the behavior to apply to scheduled snapshots when the source disk is deleted. func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput) OnSourceDiskDelete() ResourcePolicySnapshotSchedulePolicyRetentionPolicyOnSourceDiskDeletePtrOutput { return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicyRetentionPolicy) *ResourcePolicySnapshotSchedulePolicyRetentionPolicyOnSourceDiskDelete { if v == nil { return nil } return v.OnSourceDiskDelete }).(ResourcePolicySnapshotSchedulePolicyRetentionPolicyOnSourceDiskDeletePtrOutput) } // Policy for retention of scheduled snapshots. type ResourcePolicySnapshotSchedulePolicyRetentionPolicyResponse struct { // Maximum age of the snapshot that is allowed to be kept. MaxRetentionDays int `pulumi:"maxRetentionDays"` // Specifies the behavior to apply to scheduled snapshots when the source disk is deleted. OnSourceDiskDelete string `pulumi:"onSourceDiskDelete"` } // Policy for retention of scheduled snapshots. type ResourcePolicySnapshotSchedulePolicyRetentionPolicyResponseOutput struct{ *pulumi.OutputState } func (ResourcePolicySnapshotSchedulePolicyRetentionPolicyResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicyRetentionPolicyResponse)(nil)).Elem() } func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyResponseOutput) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyResponseOutput() ResourcePolicySnapshotSchedulePolicyRetentionPolicyResponseOutput { return o } func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyResponseOutput) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyResponseOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyRetentionPolicyResponseOutput { return o } // Maximum age of the snapshot that is allowed to be kept. func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyResponseOutput) MaxRetentionDays() pulumi.IntOutput { return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicyRetentionPolicyResponse) int { return v.MaxRetentionDays }).(pulumi.IntOutput) } // Specifies the behavior to apply to scheduled snapshots when the source disk is deleted. func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyResponseOutput) OnSourceDiskDelete() pulumi.StringOutput { return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicyRetentionPolicyResponse) string { return v.OnSourceDiskDelete }).(pulumi.StringOutput) } // A schedule for disks where the schedueled operations are performed. type ResourcePolicySnapshotSchedulePolicySchedule struct { DailySchedule *ResourcePolicyDailyCycle `pulumi:"dailySchedule"` HourlySchedule *ResourcePolicyHourlyCycle `pulumi:"hourlySchedule"` WeeklySchedule *ResourcePolicyWeeklyCycle `pulumi:"weeklySchedule"` } // ResourcePolicySnapshotSchedulePolicyScheduleInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyScheduleArgs and ResourcePolicySnapshotSchedulePolicyScheduleOutput values. // You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyScheduleInput` via: // // ResourcePolicySnapshotSchedulePolicyScheduleArgs{...} type ResourcePolicySnapshotSchedulePolicyScheduleInput interface { pulumi.Input ToResourcePolicySnapshotSchedulePolicyScheduleOutput() ResourcePolicySnapshotSchedulePolicyScheduleOutput ToResourcePolicySnapshotSchedulePolicyScheduleOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyScheduleOutput } // A schedule for disks where the schedueled operations are performed. type ResourcePolicySnapshotSchedulePolicyScheduleArgs struct { DailySchedule ResourcePolicyDailyCyclePtrInput `pulumi:"dailySchedule"` HourlySchedule ResourcePolicyHourlyCyclePtrInput `pulumi:"hourlySchedule"` WeeklySchedule ResourcePolicyWeeklyCyclePtrInput `pulumi:"weeklySchedule"` } func (ResourcePolicySnapshotSchedulePolicyScheduleArgs) ElementType() reflect.Type { return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicySchedule)(nil)).Elem() } func (i ResourcePolicySnapshotSchedulePolicyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleOutput() ResourcePolicySnapshotSchedulePolicyScheduleOutput { return i.ToResourcePolicySnapshotSchedulePolicyScheduleOutputWithContext(context.Background()) } func (i ResourcePolicySnapshotSchedulePolicyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleOutput { return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleOutput) } func (i ResourcePolicySnapshotSchedulePolicyScheduleArgs) ToResourcePolicySnapshotSchedulePolicySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicySchedulePtrOutput { return i.ToResourcePolicySnapshotSchedulePolicySchedulePtrOutputWithContext(context.Background()) } func (i ResourcePolicySnapshotSchedulePolicyScheduleArgs) ToResourcePolicySnapshotSchedulePolicySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicySchedulePtrOutput { return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleOutput).ToResourcePolicySnapshotSchedulePolicySchedulePtrOutputWithContext(ctx) } // ResourcePolicySnapshotSchedulePolicySchedulePtrInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyScheduleArgs, ResourcePolicySnapshotSchedulePolicySchedulePtr and ResourcePolicySnapshotSchedulePolicySchedulePtrOutput values. // You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicySchedulePtrInput` via: // // ResourcePolicySnapshotSchedulePolicyScheduleArgs{...} // // or: // // nil type ResourcePolicySnapshotSchedulePolicySchedulePtrInput interface { pulumi.Input ToResourcePolicySnapshotSchedulePolicySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicySchedulePtrOutput ToResourcePolicySnapshotSchedulePolicySchedulePtrOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicySchedulePtrOutput } type resourcePolicySnapshotSchedulePolicySchedulePtrType ResourcePolicySnapshotSchedulePolicyScheduleArgs func ResourcePolicySnapshotSchedulePolicySchedulePtr(v *ResourcePolicySnapshotSchedulePolicyScheduleArgs) ResourcePolicySnapshotSchedulePolicySchedulePtrInput { return (*resourcePolicySnapshotSchedulePolicySchedulePtrType)(v) } func (*resourcePolicySnapshotSchedulePolicySchedulePtrType) ElementType() reflect.Type { return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicySchedule)(nil)).Elem() } func (i *resourcePolicySnapshotSchedulePolicySchedulePtrType) ToResourcePolicySnapshotSchedulePolicySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicySchedulePtrOutput { return i.ToResourcePolicySnapshotSchedulePolicySchedulePtrOutputWithContext(context.Background()) } func (i *resourcePolicySnapshotSchedulePolicySchedulePtrType) ToResourcePolicySnapshotSchedulePolicySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicySchedulePtrOutput { return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicySchedulePtrOutput) } // A schedule for disks where the schedueled operations are performed. type ResourcePolicySnapshotSchedulePolicyScheduleOutput struct{ *pulumi.OutputState } func (ResourcePolicySnapshotSchedulePolicyScheduleOutput) ElementType() reflect.Type { return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicySchedule)(nil)).Elem() } func (o ResourcePolicySnapshotSchedulePolicyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleOutput() ResourcePolicySnapshotSchedulePolicyScheduleOutput { return o } func (o ResourcePolicySnapshotSchedulePolicyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleOutput { return o } func (o ResourcePolicySnapshotSchedulePolicyScheduleOutput) ToResourcePolicySnapshotSchedulePolicySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicySchedulePtrOutput { return o.ToResourcePolicySnapshotSchedulePolicySchedulePtrOutputWithContext(context.Background()) } func (o ResourcePolicySnapshotSchedulePolicyScheduleOutput) ToResourcePolicySnapshotSchedulePolicySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicySchedulePtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicySnapshotSchedulePolicySchedule) *ResourcePolicySnapshotSchedulePolicySchedule { return &v }).(ResourcePolicySnapshotSchedulePolicySchedulePtrOutput) } func (o ResourcePolicySnapshotSchedulePolicyScheduleOutput) DailySchedule() ResourcePolicyDailyCyclePtrOutput { return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicySchedule) *ResourcePolicyDailyCycle { return v.DailySchedule }).(ResourcePolicyDailyCyclePtrOutput) } func (o ResourcePolicySnapshotSchedulePolicyScheduleOutput) HourlySchedule() ResourcePolicyHourlyCyclePtrOutput { return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicySchedule) *ResourcePolicyHourlyCycle { return v.HourlySchedule }).(ResourcePolicyHourlyCyclePtrOutput) } func (o ResourcePolicySnapshotSchedulePolicyScheduleOutput) WeeklySchedule() ResourcePolicyWeeklyCyclePtrOutput { return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicySchedule) *ResourcePolicyWeeklyCycle { return v.WeeklySchedule }).(ResourcePolicyWeeklyCyclePtrOutput) } type ResourcePolicySnapshotSchedulePolicySchedulePtrOutput struct{ *pulumi.OutputState } func (ResourcePolicySnapshotSchedulePolicySchedulePtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicySchedule)(nil)).Elem() } func (o ResourcePolicySnapshotSchedulePolicySchedulePtrOutput) ToResourcePolicySnapshotSchedulePolicySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicySchedulePtrOutput { return o } func (o ResourcePolicySnapshotSchedulePolicySchedulePtrOutput) ToResourcePolicySnapshotSchedulePolicySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicySchedulePtrOutput { return o } func (o ResourcePolicySnapshotSchedulePolicySchedulePtrOutput) Elem() ResourcePolicySnapshotSchedulePolicyScheduleOutput { return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicySchedule) ResourcePolicySnapshotSchedulePolicySchedule { if v != nil { return *v } var ret ResourcePolicySnapshotSchedulePolicySchedule return ret }).(ResourcePolicySnapshotSchedulePolicyScheduleOutput) } func (o ResourcePolicySnapshotSchedulePolicySchedulePtrOutput) DailySchedule() ResourcePolicyDailyCyclePtrOutput { return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicySchedule) *ResourcePolicyDailyCycle { if v == nil { return nil } return v.DailySchedule }).(ResourcePolicyDailyCyclePtrOutput) } func (o ResourcePolicySnapshotSchedulePolicySchedulePtrOutput) HourlySchedule() ResourcePolicyHourlyCyclePtrOutput { return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicySchedule) *ResourcePolicyHourlyCycle { if v == nil { return nil } return v.HourlySchedule }).(ResourcePolicyHourlyCyclePtrOutput) } func (o ResourcePolicySnapshotSchedulePolicySchedulePtrOutput) WeeklySchedule() ResourcePolicyWeeklyCyclePtrOutput { return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicySchedule) *ResourcePolicyWeeklyCycle { if v == nil { return nil } return v.WeeklySchedule }).(ResourcePolicyWeeklyCyclePtrOutput) } // A schedule for disks where the schedueled operations are performed. type ResourcePolicySnapshotSchedulePolicyScheduleResponse struct { DailySchedule ResourcePolicyDailyCycleResponse `pulumi:"dailySchedule"` HourlySchedule ResourcePolicyHourlyCycleResponse `pulumi:"hourlySchedule"` WeeklySchedule ResourcePolicyWeeklyCycleResponse `pulumi:"weeklySchedule"` } // A schedule for disks where the schedueled operations are performed. type ResourcePolicySnapshotSchedulePolicyScheduleResponseOutput struct{ *pulumi.OutputState } func (ResourcePolicySnapshotSchedulePolicyScheduleResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicyScheduleResponse)(nil)).Elem() } func (o ResourcePolicySnapshotSchedulePolicyScheduleResponseOutput) ToResourcePolicySnapshotSchedulePolicyScheduleResponseOutput() ResourcePolicySnapshotSchedulePolicyScheduleResponseOutput { return o } func (o ResourcePolicySnapshotSchedulePolicyScheduleResponseOutput) ToResourcePolicySnapshotSchedulePolicyScheduleResponseOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleResponseOutput { return o } func (o ResourcePolicySnapshotSchedulePolicyScheduleResponseOutput) DailySchedule() ResourcePolicyDailyCycleResponseOutput { return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicyScheduleResponse) ResourcePolicyDailyCycleResponse { return v.DailySchedule }).(ResourcePolicyDailyCycleResponseOutput) } func (o ResourcePolicySnapshotSchedulePolicyScheduleResponseOutput) HourlySchedule() ResourcePolicyHourlyCycleResponseOutput { return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicyScheduleResponse) ResourcePolicyHourlyCycleResponse { return v.HourlySchedule }).(ResourcePolicyHourlyCycleResponseOutput) } func (o ResourcePolicySnapshotSchedulePolicyScheduleResponseOutput) WeeklySchedule() ResourcePolicyWeeklyCycleResponseOutput { return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicyScheduleResponse) ResourcePolicyWeeklyCycleResponse { return v.WeeklySchedule }).(ResourcePolicyWeeklyCycleResponseOutput) } // Specified snapshot properties for scheduled snapshots created by this policy. type ResourcePolicySnapshotSchedulePolicySnapshotProperties struct { // Chain name that the snapshot is created in. ChainName *string `pulumi:"chainName"` // Indication to perform a 'guest aware' snapshot. GuestFlush *bool `pulumi:"guestFlush"` // Labels to apply to scheduled snapshots. These can be later modified by the setLabels method. Label values may be empty. Labels map[string]string `pulumi:"labels"` // Cloud Storage bucket storage location of the auto snapshot (regional or multi-regional). StorageLocations []string `pulumi:"storageLocations"` } // ResourcePolicySnapshotSchedulePolicySnapshotPropertiesInput is an input type that accepts ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs and ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput values. // You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicySnapshotPropertiesInput` via: // // ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs{...} type ResourcePolicySnapshotSchedulePolicySnapshotPropertiesInput interface { pulumi.Input ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput } // Specified snapshot properties for scheduled snapshots created by this policy. type ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs struct { // Chain name that the snapshot is created in. ChainName pulumi.StringPtrInput `pulumi:"chainName"` // Indication to perform a 'guest aware' snapshot. GuestFlush pulumi.BoolPtrInput `pulumi:"guestFlush"` // Labels to apply to scheduled snapshots. These can be later modified by the setLabels method. Label values may be empty. Labels pulumi.StringMapInput `pulumi:"labels"` // Cloud Storage bucket storage location of the auto snapshot (regional or multi-regional). StorageLocations pulumi.StringArrayInput `pulumi:"storageLocations"` } func (ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs) ElementType() reflect.Type { return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicySnapshotProperties)(nil)).Elem() } func (i ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput { return i.ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutputWithContext(context.Background()) } func (i ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput { return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) } func (i ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput { return i.ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutputWithContext(context.Background()) } func (i ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput).ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutputWithContext(ctx) } // ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrInput is an input type that accepts ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs, ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtr and ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput values. // You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrInput` via: // // ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs{...} // // or: // // nil type ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrInput interface { pulumi.Input ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput } type resourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrType ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs func ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtr(v *ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs) ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrInput { return (*resourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrType)(v) } func (*resourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrType) ElementType() reflect.Type { return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicySnapshotProperties)(nil)).Elem() } func (i *resourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrType) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput { return i.ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutputWithContext(context.Background()) } func (i *resourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrType) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) } // Specified snapshot properties for scheduled snapshots created by this policy. type ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput struct{ *pulumi.OutputState } func (ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) ElementType() reflect.Type { return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicySnapshotProperties)(nil)).Elem() } func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput { return o } func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput { return o } func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput { return o.ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutputWithContext(context.Background()) } func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicySnapshotSchedulePolicySnapshotProperties) *ResourcePolicySnapshotSchedulePolicySnapshotProperties { return &v }).(ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) } // Chain name that the snapshot is created in. func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) ChainName() pulumi.StringPtrOutput { return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicySnapshotProperties) *string { return v.ChainName }).(pulumi.StringPtrOutput) } // Indication to perform a 'guest aware' snapshot. func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) GuestFlush() pulumi.BoolPtrOutput { return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicySnapshotProperties) *bool { return v.GuestFlush }).(pulumi.BoolPtrOutput) } // Labels to apply to scheduled snapshots. These can be later modified by the setLabels method. Label values may be empty. func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) Labels() pulumi.StringMapOutput { return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicySnapshotProperties) map[string]string { return v.Labels }).(pulumi.StringMapOutput) } // Cloud Storage bucket storage location of the auto snapshot (regional or multi-regional). func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) StorageLocations() pulumi.StringArrayOutput { return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicySnapshotProperties) []string { return v.StorageLocations }).(pulumi.StringArrayOutput) } type ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput struct{ *pulumi.OutputState } func (ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicySnapshotProperties)(nil)).Elem() } func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput { return o } func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput { return o } func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) Elem() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput { return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicySnapshotProperties) ResourcePolicySnapshotSchedulePolicySnapshotProperties { if v != nil { return *v } var ret ResourcePolicySnapshotSchedulePolicySnapshotProperties return ret }).(ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) } // Chain name that the snapshot is created in. func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) ChainName() pulumi.StringPtrOutput { return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicySnapshotProperties) *string { if v == nil { return nil } return v.ChainName }).(pulumi.StringPtrOutput) } // Indication to perform a 'guest aware' snapshot. func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) GuestFlush() pulumi.BoolPtrOutput { return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicySnapshotProperties) *bool { if v == nil { return nil } return v.GuestFlush }).(pulumi.BoolPtrOutput) } // Labels to apply to scheduled snapshots. These can be later modified by the setLabels method. Label values may be empty. func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) Labels() pulumi.StringMapOutput { return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicySnapshotProperties) map[string]string { if v == nil { return nil } return v.Labels }).(pulumi.StringMapOutput) } // Cloud Storage bucket storage location of the auto snapshot (regional or multi-regional). func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) StorageLocations() pulumi.StringArrayOutput { return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicySnapshotProperties) []string { if v == nil { return nil } return v.StorageLocations }).(pulumi.StringArrayOutput) } // Specified snapshot properties for scheduled snapshots created by this policy. type ResourcePolicySnapshotSchedulePolicySnapshotPropertiesResponse struct { // Chain name that the snapshot is created in. ChainName string `pulumi:"chainName"` // Indication to perform a 'guest aware' snapshot. GuestFlush bool `pulumi:"guestFlush"` // Labels to apply to scheduled snapshots. These can be later modified by the setLabels method. Label values may be empty. Labels map[string]string `pulumi:"labels"` // Cloud Storage bucket storage location of the auto snapshot (regional or multi-regional). StorageLocations []string `pulumi:"storageLocations"` } // Specified snapshot properties for scheduled snapshots created by this policy. type ResourcePolicySnapshotSchedulePolicySnapshotPropertiesResponseOutput struct{ *pulumi.OutputState } func (ResourcePolicySnapshotSchedulePolicySnapshotPropertiesResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicySnapshotPropertiesResponse)(nil)).Elem() } func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesResponseOutput) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesResponseOutput() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesResponseOutput { return o } func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesResponseOutput) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesResponseOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicySnapshotPropertiesResponseOutput { return o } // Chain name that the snapshot is created in. func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesResponseOutput) ChainName() pulumi.StringOutput { return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicySnapshotPropertiesResponse) string { return v.ChainName }).(pulumi.StringOutput) } // Indication to perform a 'guest aware' snapshot. func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesResponseOutput) GuestFlush() pulumi.BoolOutput { return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicySnapshotPropertiesResponse) bool { return v.GuestFlush }).(pulumi.BoolOutput) } // Labels to apply to scheduled snapshots. These can be later modified by the setLabels method. Label values may be empty. func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesResponseOutput) Labels() pulumi.StringMapOutput { return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicySnapshotPropertiesResponse) map[string]string { return v.Labels }).(pulumi.StringMapOutput) } // Cloud Storage bucket storage location of the auto snapshot (regional or multi-regional). func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesResponseOutput) StorageLocations() pulumi.StringArrayOutput { return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicySnapshotPropertiesResponse) []string { return v.StorageLocations }).(pulumi.StringArrayOutput) } // Time window specified for weekly operations. type ResourcePolicyWeeklyCycle struct { // Up to 7 intervals/windows, one for each day of the week. DayOfWeeks []ResourcePolicyWeeklyCycleDayOfWeek `pulumi:"dayOfWeeks"` } // ResourcePolicyWeeklyCycleInput is an input type that accepts ResourcePolicyWeeklyCycleArgs and ResourcePolicyWeeklyCycleOutput values. // You can construct a concrete instance of `ResourcePolicyWeeklyCycleInput` via: // // ResourcePolicyWeeklyCycleArgs{...} type ResourcePolicyWeeklyCycleInput interface { pulumi.Input ToResourcePolicyWeeklyCycleOutput() ResourcePolicyWeeklyCycleOutput ToResourcePolicyWeeklyCycleOutputWithContext(context.Context) ResourcePolicyWeeklyCycleOutput } // Time window specified for weekly operations. type ResourcePolicyWeeklyCycleArgs struct { // Up to 7 intervals/windows, one for each day of the week. DayOfWeeks ResourcePolicyWeeklyCycleDayOfWeekArrayInput `pulumi:"dayOfWeeks"` } func (ResourcePolicyWeeklyCycleArgs) ElementType() reflect.Type { return reflect.TypeOf((*ResourcePolicyWeeklyCycle)(nil)).Elem() } func (i ResourcePolicyWeeklyCycleArgs) ToResourcePolicyWeeklyCycleOutput() ResourcePolicyWeeklyCycleOutput { return i.ToResourcePolicyWeeklyCycleOutputWithContext(context.Background()) } func (i ResourcePolicyWeeklyCycleArgs) ToResourcePolicyWeeklyCycleOutputWithContext(ctx context.Context) ResourcePolicyWeeklyCycleOutput { return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyWeeklyCycleOutput) } func (i ResourcePolicyWeeklyCycleArgs) ToResourcePolicyWeeklyCyclePtrOutput() ResourcePolicyWeeklyCyclePtrOutput { return i.ToResourcePolicyWeeklyCyclePtrOutputWithContext(context.Background()) } func (i ResourcePolicyWeeklyCycleArgs) ToResourcePolicyWeeklyCyclePtrOutputWithContext(ctx context.Context) ResourcePolicyWeeklyCyclePtrOutput { return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyWeeklyCycleOutput).ToResourcePolicyWeeklyCyclePtrOutputWithContext(ctx) } // ResourcePolicyWeeklyCyclePtrInput is an input type that accepts ResourcePolicyWeeklyCycleArgs, ResourcePolicyWeeklyCyclePtr and ResourcePolicyWeeklyCyclePtrOutput values. // You can construct a concrete instance of `ResourcePolicyWeeklyCyclePtrInput` via: // // ResourcePolicyWeeklyCycleArgs{...} // // or: // // nil type ResourcePolicyWeeklyCyclePtrInput interface { pulumi.Input ToResourcePolicyWeeklyCyclePtrOutput() ResourcePolicyWeeklyCyclePtrOutput ToResourcePolicyWeeklyCyclePtrOutputWithContext(context.Context) ResourcePolicyWeeklyCyclePtrOutput } type resourcePolicyWeeklyCyclePtrType ResourcePolicyWeeklyCycleArgs func ResourcePolicyWeeklyCyclePtr(v *ResourcePolicyWeeklyCycleArgs) ResourcePolicyWeeklyCyclePtrInput { return (*resourcePolicyWeeklyCyclePtrType)(v) } func (*resourcePolicyWeeklyCyclePtrType) ElementType() reflect.Type { return reflect.TypeOf((**ResourcePolicyWeeklyCycle)(nil)).Elem() } func (i *resourcePolicyWeeklyCyclePtrType) ToResourcePolicyWeeklyCyclePtrOutput() ResourcePolicyWeeklyCyclePtrOutput { return i.ToResourcePolicyWeeklyCyclePtrOutputWithContext(context.Background()) } func (i *resourcePolicyWeeklyCyclePtrType) ToResourcePolicyWeeklyCyclePtrOutputWithContext(ctx context.Context) ResourcePolicyWeeklyCyclePtrOutput { return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyWeeklyCyclePtrOutput) } // Time window specified for weekly operations. type ResourcePolicyWeeklyCycleOutput struct{ *pulumi.OutputState } func (ResourcePolicyWeeklyCycleOutput) ElementType() reflect.Type { return reflect.TypeOf((*ResourcePolicyWeeklyCycle)(nil)).Elem() } func (o ResourcePolicyWeeklyCycleOutput) ToResourcePolicyWeeklyCycleOutput() ResourcePolicyWeeklyCycleOutput { return o } func (o ResourcePolicyWeeklyCycleOutput) ToResourcePolicyWeeklyCycleOutputWithContext(ctx context.Context) ResourcePolicyWeeklyCycleOutput { return o } func (o ResourcePolicyWeeklyCycleOutput) ToResourcePolicyWeeklyCyclePtrOutput() ResourcePolicyWeeklyCyclePtrOutput { return o.ToResourcePolicyWeeklyCyclePtrOutputWithContext(context.Background()) } func (o ResourcePolicyWeeklyCycleOutput) ToResourcePolicyWeeklyCyclePtrOutputWithContext(ctx context.Context) ResourcePolicyWeeklyCyclePtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicyWeeklyCycle) *ResourcePolicyWeeklyCycle { return &v }).(ResourcePolicyWeeklyCyclePtrOutput) } // Up to 7 intervals/windows, one for each day of the week. func (o ResourcePolicyWeeklyCycleOutput) DayOfWeeks() ResourcePolicyWeeklyCycleDayOfWeekArrayOutput { return o.ApplyT(func(v ResourcePolicyWeeklyCycle) []ResourcePolicyWeeklyCycleDayOfWeek { return v.DayOfWeeks }).(ResourcePolicyWeeklyCycleDayOfWeekArrayOutput) } type ResourcePolicyWeeklyCyclePtrOutput struct{ *pulumi.OutputState } func (ResourcePolicyWeeklyCyclePtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**ResourcePolicyWeeklyCycle)(nil)).Elem() } func (o ResourcePolicyWeeklyCyclePtrOutput) ToResourcePolicyWeeklyCyclePtrOutput() ResourcePolicyWeeklyCyclePtrOutput { return o } func (o ResourcePolicyWeeklyCyclePtrOutput) ToResourcePolicyWeeklyCyclePtrOutputWithContext(ctx context.Context) ResourcePolicyWeeklyCyclePtrOutput { return o } func (o ResourcePolicyWeeklyCyclePtrOutput) Elem() ResourcePolicyWeeklyCycleOutput { return o.ApplyT(func(v *ResourcePolicyWeeklyCycle) ResourcePolicyWeeklyCycle { if v != nil { return *v } var ret ResourcePolicyWeeklyCycle return ret }).(ResourcePolicyWeeklyCycleOutput) } // Up to 7 intervals/windows, one for each day of the week. func (o ResourcePolicyWeeklyCyclePtrOutput) DayOfWeeks() ResourcePolicyWeeklyCycleDayOfWeekArrayOutput { return o.ApplyT(func(v *ResourcePolicyWeeklyCycle) []ResourcePolicyWeeklyCycleDayOfWeek { if v == nil { return nil } return v.DayOfWeeks }).(ResourcePolicyWeeklyCycleDayOfWeekArrayOutput) } type ResourcePolicyWeeklyCycleDayOfWeek struct { // Defines a schedule that runs on specific days of the week. Specify one or more days. The following options are available: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY. Day *ResourcePolicyWeeklyCycleDayOfWeekDay `pulumi:"day"` // Time within the window to start the operations. It must be in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT. StartTime *string `pulumi:"startTime"` } // ResourcePolicyWeeklyCycleDayOfWeekInput is an input type that accepts ResourcePolicyWeeklyCycleDayOfWeekArgs and ResourcePolicyWeeklyCycleDayOfWeekOutput values. // You can construct a concrete instance of `ResourcePolicyWeeklyCycleDayOfWeekInput` via: // // ResourcePolicyWeeklyCycleDayOfWeekArgs{...} type ResourcePolicyWeeklyCycleDayOfWeekInput interface { pulumi.Input ToResourcePolicyWeeklyCycleDayOfWeekOutput() ResourcePolicyWeeklyCycleDayOfWeekOutput ToResourcePolicyWeeklyCycleDayOfWeekOutputWithContext(context.Context) ResourcePolicyWeeklyCycleDayOfWeekOutput } type ResourcePolicyWeeklyCycleDayOfWeekArgs struct { // Defines a schedule that runs on specific days of the week. Specify one or more days. The following options are available: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY. Day ResourcePolicyWeeklyCycleDayOfWeekDayPtrInput `pulumi:"day"` // Time within the window to start the operations. It must be in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT. StartTime pulumi.StringPtrInput `pulumi:"startTime"` } func (ResourcePolicyWeeklyCycleDayOfWeekArgs) ElementType() reflect.Type { return reflect.TypeOf((*ResourcePolicyWeeklyCycleDayOfWeek)(nil)).Elem() } func (i ResourcePolicyWeeklyCycleDayOfWeekArgs) ToResourcePolicyWeeklyCycleDayOfWeekOutput() ResourcePolicyWeeklyCycleDayOfWeekOutput { return i.ToResourcePolicyWeeklyCycleDayOfWeekOutputWithContext(context.Background()) } func (i ResourcePolicyWeeklyCycleDayOfWeekArgs) ToResourcePolicyWeeklyCycleDayOfWeekOutputWithContext(ctx context.Context) ResourcePolicyWeeklyCycleDayOfWeekOutput { return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyWeeklyCycleDayOfWeekOutput) } // ResourcePolicyWeeklyCycleDayOfWeekArrayInput is an input type that accepts ResourcePolicyWeeklyCycleDayOfWeekArray and ResourcePolicyWeeklyCycleDayOfWeekArrayOutput values. // You can construct a concrete instance of `ResourcePolicyWeeklyCycleDayOfWeekArrayInput` via: // // ResourcePolicyWeeklyCycleDayOfWeekArray{ ResourcePolicyWeeklyCycleDayOfWeekArgs{...} } type ResourcePolicyWeeklyCycleDayOfWeekArrayInput interface { pulumi.Input ToResourcePolicyWeeklyCycleDayOfWeekArrayOutput() ResourcePolicyWeeklyCycleDayOfWeekArrayOutput ToResourcePolicyWeeklyCycleDayOfWeekArrayOutputWithContext(context.Context) ResourcePolicyWeeklyCycleDayOfWeekArrayOutput } type ResourcePolicyWeeklyCycleDayOfWeekArray []ResourcePolicyWeeklyCycleDayOfWeekInput func (ResourcePolicyWeeklyCycleDayOfWeekArray) ElementType() reflect.Type { return reflect.TypeOf((*[]ResourcePolicyWeeklyCycleDayOfWeek)(nil)).Elem() } func (i ResourcePolicyWeeklyCycleDayOfWeekArray) ToResourcePolicyWeeklyCycleDayOfWeekArrayOutput() ResourcePolicyWeeklyCycleDayOfWeekArrayOutput { return i.ToResourcePolicyWeeklyCycleDayOfWeekArrayOutputWithContext(context.Background()) } func (i ResourcePolicyWeeklyCycleDayOfWeekArray) ToResourcePolicyWeeklyCycleDayOfWeekArrayOutputWithContext(ctx context.Context) ResourcePolicyWeeklyCycleDayOfWeekArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyWeeklyCycleDayOfWeekArrayOutput) } type ResourcePolicyWeeklyCycleDayOfWeekOutput struct{ *pulumi.OutputState } func (ResourcePolicyWeeklyCycleDayOfWeekOutput) ElementType() reflect.Type { return reflect.TypeOf((*ResourcePolicyWeeklyCycleDayOfWeek)(nil)).Elem() } func (o ResourcePolicyWeeklyCycleDayOfWeekOutput) ToResourcePolicyWeeklyCycleDayOfWeekOutput() ResourcePolicyWeeklyCycleDayOfWeekOutput { return o } func (o ResourcePolicyWeeklyCycleDayOfWeekOutput) ToResourcePolicyWeeklyCycleDayOfWeekOutputWithContext(ctx context.Context) ResourcePolicyWeeklyCycleDayOfWeekOutput { return o } // Defines a schedule that runs on specific days of the week. Specify one or more days. The following options are available: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY. func (o ResourcePolicyWeeklyCycleDayOfWeekOutput) Day() ResourcePolicyWeeklyCycleDayOfWeekDayPtrOutput { return o.ApplyT(func(v ResourcePolicyWeeklyCycleDayOfWeek) *ResourcePolicyWeeklyCycleDayOfWeekDay { return v.Day }).(ResourcePolicyWeeklyCycleDayOfWeekDayPtrOutput) } // Time within the window to start the operations. It must be in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT. func (o ResourcePolicyWeeklyCycleDayOfWeekOutput) StartTime() pulumi.StringPtrOutput { return o.ApplyT(func(v ResourcePolicyWeeklyCycleDayOfWeek) *string { return v.StartTime }).(pulumi.StringPtrOutput) } type ResourcePolicyWeeklyCycleDayOfWeekArrayOutput struct{ *pulumi.OutputState } func (ResourcePolicyWeeklyCycleDayOfWeekArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]ResourcePolicyWeeklyCycleDayOfWeek)(nil)).Elem() } func (o ResourcePolicyWeeklyCycleDayOfWeekArrayOutput) ToResourcePolicyWeeklyCycleDayOfWeekArrayOutput() ResourcePolicyWeeklyCycleDayOfWeekArrayOutput { return o } func (o ResourcePolicyWeeklyCycleDayOfWeekArrayOutput) ToResourcePolicyWeeklyCycleDayOfWeekArrayOutputWithContext(ctx context.Context) ResourcePolicyWeeklyCycleDayOfWeekArrayOutput { return o } func (o ResourcePolicyWeeklyCycleDayOfWeekArrayOutput) Index(i pulumi.IntInput) ResourcePolicyWeeklyCycleDayOfWeekOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResourcePolicyWeeklyCycleDayOfWeek { return vs[0].([]ResourcePolicyWeeklyCycleDayOfWeek)[vs[1].(int)] }).(ResourcePolicyWeeklyCycleDayOfWeekOutput) } type ResourcePolicyWeeklyCycleDayOfWeekResponse struct { // Defines a schedule that runs on specific days of the week. Specify one or more days. The following options are available: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY. Day string `pulumi:"day"` // [Output only] Duration of the time window, automatically chosen to be smallest possible in the given scenario. Duration string `pulumi:"duration"` // Time within the window to start the operations. It must be in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT. StartTime string `pulumi:"startTime"` } type ResourcePolicyWeeklyCycleDayOfWeekResponseOutput struct{ *pulumi.OutputState } func (ResourcePolicyWeeklyCycleDayOfWeekResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*ResourcePolicyWeeklyCycleDayOfWeekResponse)(nil)).Elem() } func (o ResourcePolicyWeeklyCycleDayOfWeekResponseOutput) ToResourcePolicyWeeklyCycleDayOfWeekResponseOutput() ResourcePolicyWeeklyCycleDayOfWeekResponseOutput { return o } func (o ResourcePolicyWeeklyCycleDayOfWeekResponseOutput) ToResourcePolicyWeeklyCycleDayOfWeekResponseOutputWithContext(ctx context.Context) ResourcePolicyWeeklyCycleDayOfWeekResponseOutput { return o } // Defines a schedule that runs on specific days of the week. Specify one or more days. The following options are available: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY. func (o ResourcePolicyWeeklyCycleDayOfWeekResponseOutput) Day() pulumi.StringOutput { return o.ApplyT(func(v ResourcePolicyWeeklyCycleDayOfWeekResponse) string { return v.Day }).(pulumi.StringOutput) } // [Output only] Duration of the time window, automatically chosen to be smallest possible in the given scenario. func (o ResourcePolicyWeeklyCycleDayOfWeekResponseOutput) Duration() pulumi.StringOutput { return o.ApplyT(func(v ResourcePolicyWeeklyCycleDayOfWeekResponse) string { return v.Duration }).(pulumi.StringOutput) } // Time within the window to start the operations. It must be in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT. func (o ResourcePolicyWeeklyCycleDayOfWeekResponseOutput) StartTime() pulumi.StringOutput { return o.ApplyT(func(v ResourcePolicyWeeklyCycleDayOfWeekResponse) string { return v.StartTime }).(pulumi.StringOutput) } type ResourcePolicyWeeklyCycleDayOfWeekResponseArrayOutput struct{ *pulumi.OutputState } func (ResourcePolicyWeeklyCycleDayOfWeekResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]ResourcePolicyWeeklyCycleDayOfWeekResponse)(nil)).Elem() } func (o ResourcePolicyWeeklyCycleDayOfWeekResponseArrayOutput) ToResourcePolicyWeeklyCycleDayOfWeekResponseArrayOutput() ResourcePolicyWeeklyCycleDayOfWeekResponseArrayOutput { return o } func (o ResourcePolicyWeeklyCycleDayOfWeekResponseArrayOutput) ToResourcePolicyWeeklyCycleDayOfWeekResponseArrayOutputWithContext(ctx context.Context) ResourcePolicyWeeklyCycleDayOfWeekResponseArrayOutput { return o } func (o ResourcePolicyWeeklyCycleDayOfWeekResponseArrayOutput) Index(i pulumi.IntInput) ResourcePolicyWeeklyCycleDayOfWeekResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResourcePolicyWeeklyCycleDayOfWeekResponse { return vs[0].([]ResourcePolicyWeeklyCycleDayOfWeekResponse)[vs[1].(int)] }).(ResourcePolicyWeeklyCycleDayOfWeekResponseOutput) } // Time window specified for weekly operations. type ResourcePolicyWeeklyCycleResponse struct { // Up to 7 intervals/windows, one for each day of the week. DayOfWeeks []ResourcePolicyWeeklyCycleDayOfWeekResponse `pulumi:"dayOfWeeks"` } // Time window specified for weekly operations. type ResourcePolicyWeeklyCycleResponseOutput struct{ *pulumi.OutputState } func (ResourcePolicyWeeklyCycleResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*ResourcePolicyWeeklyCycleResponse)(nil)).Elem() } func (o ResourcePolicyWeeklyCycleResponseOutput) ToResourcePolicyWeeklyCycleResponseOutput() ResourcePolicyWeeklyCycleResponseOutput { return o } func (o ResourcePolicyWeeklyCycleResponseOutput) ToResourcePolicyWeeklyCycleResponseOutputWithContext(ctx context.Context) ResourcePolicyWeeklyCycleResponseOutput { return o } // Up to 7 intervals/windows, one for each day of the week. func (o ResourcePolicyWeeklyCycleResponseOutput) DayOfWeeks() ResourcePolicyWeeklyCycleDayOfWeekResponseArrayOutput { return o.ApplyT(func(v ResourcePolicyWeeklyCycleResponse) []ResourcePolicyWeeklyCycleDayOfWeekResponse { return v.DayOfWeeks }).(ResourcePolicyWeeklyCycleDayOfWeekResponseArrayOutput) } type RouteAsPathResponse struct { // The AS numbers of the AS Path. AsLists []int `pulumi:"asLists"` // The type of the AS Path, which can be one of the following values: - 'AS_SET': unordered set of autonomous systems that the route in has traversed - 'AS_SEQUENCE': ordered set of autonomous systems that the route has traversed - 'AS_CONFED_SEQUENCE': ordered set of Member Autonomous Systems in the local confederation that the route has traversed - 'AS_CONFED_SET': unordered set of Member Autonomous Systems in the local confederation that the route has traversed PathSegmentType string `pulumi:"pathSegmentType"` } type RouteAsPathResponseOutput struct{ *pulumi.OutputState } func (RouteAsPathResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*RouteAsPathResponse)(nil)).Elem() } func (o RouteAsPathResponseOutput) ToRouteAsPathResponseOutput() RouteAsPathResponseOutput { return o } func (o RouteAsPathResponseOutput) ToRouteAsPathResponseOutputWithContext(ctx context.Context) RouteAsPathResponseOutput { return o } // The AS numbers of the AS Path. func (o RouteAsPathResponseOutput) AsLists() pulumi.IntArrayOutput { return o.ApplyT(func(v RouteAsPathResponse) []int { return v.AsLists }).(pulumi.IntArrayOutput) } // The type of the AS Path, which can be one of the following values: - 'AS_SET': unordered set of autonomous systems that the route in has traversed - 'AS_SEQUENCE': ordered set of autonomous systems that the route has traversed - 'AS_CONFED_SEQUENCE': ordered set of Member Autonomous Systems in the local confederation that the route has traversed - 'AS_CONFED_SET': unordered set of Member Autonomous Systems in the local confederation that the route has traversed func (o RouteAsPathResponseOutput) PathSegmentType() pulumi.StringOutput { return o.ApplyT(func(v RouteAsPathResponse) string { return v.PathSegmentType }).(pulumi.StringOutput) } type RouteAsPathResponseArrayOutput struct{ *pulumi.OutputState } func (RouteAsPathResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]RouteAsPathResponse)(nil)).Elem() } func (o RouteAsPathResponseArrayOutput) ToRouteAsPathResponseArrayOutput() RouteAsPathResponseArrayOutput { return o } func (o RouteAsPathResponseArrayOutput) ToRouteAsPathResponseArrayOutputWithContext(ctx context.Context) RouteAsPathResponseArrayOutput { return o } func (o RouteAsPathResponseArrayOutput) Index(i pulumi.IntInput) RouteAsPathResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouteAsPathResponse { return vs[0].([]RouteAsPathResponse)[vs[1].(int)] }).(RouteAsPathResponseOutput) } type RouteWarningsItemDataItemResponse struct { // A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding). Key string `pulumi:"key"` // A warning data value corresponding to the key. Value string `pulumi:"value"` } type RouteWarningsItemDataItemResponseOutput struct{ *pulumi.OutputState } func (RouteWarningsItemDataItemResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*RouteWarningsItemDataItemResponse)(nil)).Elem() } func (o RouteWarningsItemDataItemResponseOutput) ToRouteWarningsItemDataItemResponseOutput() RouteWarningsItemDataItemResponseOutput { return o } func (o RouteWarningsItemDataItemResponseOutput) ToRouteWarningsItemDataItemResponseOutputWithContext(ctx context.Context) RouteWarningsItemDataItemResponseOutput { return o } // A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding). func (o RouteWarningsItemDataItemResponseOutput) Key() pulumi.StringOutput { return o.ApplyT(func(v RouteWarningsItemDataItemResponse) string { return v.Key }).(pulumi.StringOutput) } // A warning data value corresponding to the key. func (o RouteWarningsItemDataItemResponseOutput) Value() pulumi.StringOutput { return o.ApplyT(func(v RouteWarningsItemDataItemResponse) string { return v.Value }).(pulumi.StringOutput) } type RouteWarningsItemDataItemResponseArrayOutput struct{ *pulumi.OutputState } func (RouteWarningsItemDataItemResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]RouteWarningsItemDataItemResponse)(nil)).Elem() } func (o RouteWarningsItemDataItemResponseArrayOutput) ToRouteWarningsItemDataItemResponseArrayOutput() RouteWarningsItemDataItemResponseArrayOutput { return o } func (o RouteWarningsItemDataItemResponseArrayOutput) ToRouteWarningsItemDataItemResponseArrayOutputWithContext(ctx context.Context) RouteWarningsItemDataItemResponseArrayOutput { return o } func (o RouteWarningsItemDataItemResponseArrayOutput) Index(i pulumi.IntInput) RouteWarningsItemDataItemResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouteWarningsItemDataItemResponse { return vs[0].([]RouteWarningsItemDataItemResponse)[vs[1].(int)] }).(RouteWarningsItemDataItemResponseOutput) } type RouteWarningsItemResponse struct { // A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response. Code string `pulumi:"code"` // Metadata about this warning in key: value format. For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } Data []RouteWarningsItemDataItemResponse `pulumi:"data"` // A human-readable description of the warning code. Message string `pulumi:"message"` } type RouteWarningsItemResponseOutput struct{ *pulumi.OutputState } func (RouteWarningsItemResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*RouteWarningsItemResponse)(nil)).Elem() } func (o RouteWarningsItemResponseOutput) ToRouteWarningsItemResponseOutput() RouteWarningsItemResponseOutput { return o } func (o RouteWarningsItemResponseOutput) ToRouteWarningsItemResponseOutputWithContext(ctx context.Context) RouteWarningsItemResponseOutput { return o } // A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response. func (o RouteWarningsItemResponseOutput) Code() pulumi.StringOutput { return o.ApplyT(func(v RouteWarningsItemResponse) string { return v.Code }).(pulumi.StringOutput) } // Metadata about this warning in key: value format. For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } func (o RouteWarningsItemResponseOutput) Data() RouteWarningsItemDataItemResponseArrayOutput { return o.ApplyT(func(v RouteWarningsItemResponse) []RouteWarningsItemDataItemResponse { return v.Data }).(RouteWarningsItemDataItemResponseArrayOutput) } // A human-readable description of the warning code. func (o RouteWarningsItemResponseOutput) Message() pulumi.StringOutput { return o.ApplyT(func(v RouteWarningsItemResponse) string { return v.Message }).(pulumi.StringOutput) } type RouteWarningsItemResponseArrayOutput struct{ *pulumi.OutputState } func (RouteWarningsItemResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]RouteWarningsItemResponse)(nil)).Elem() } func (o RouteWarningsItemResponseArrayOutput) ToRouteWarningsItemResponseArrayOutput() RouteWarningsItemResponseArrayOutput { return o } func (o RouteWarningsItemResponseArrayOutput) ToRouteWarningsItemResponseArrayOutputWithContext(ctx context.Context) RouteWarningsItemResponseArrayOutput { return o } func (o RouteWarningsItemResponseArrayOutput) Index(i pulumi.IntInput) RouteWarningsItemResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouteWarningsItemResponse { return vs[0].([]RouteWarningsItemResponse)[vs[1].(int)] }).(RouteWarningsItemResponseOutput) } // Description-tagged IP ranges for the router to advertise. type RouterAdvertisedIpRange struct { // User-specified description for the IP range. Description *string `pulumi:"description"` // The IP range to advertise. The value must be a CIDR-formatted string. Range *string `pulumi:"range"` } // RouterAdvertisedIpRangeInput is an input type that accepts RouterAdvertisedIpRangeArgs and RouterAdvertisedIpRangeOutput values. // You can construct a concrete instance of `RouterAdvertisedIpRangeInput` via: // // RouterAdvertisedIpRangeArgs{...} type RouterAdvertisedIpRangeInput interface { pulumi.Input ToRouterAdvertisedIpRangeOutput() RouterAdvertisedIpRangeOutput ToRouterAdvertisedIpRangeOutputWithContext(context.Context) RouterAdvertisedIpRangeOutput } // Description-tagged IP ranges for the router to advertise. type RouterAdvertisedIpRangeArgs struct { // User-specified description for the IP range. Description pulumi.StringPtrInput `pulumi:"description"` // The IP range to advertise. The value must be a CIDR-formatted string. Range pulumi.StringPtrInput `pulumi:"range"` } func (RouterAdvertisedIpRangeArgs) ElementType() reflect.Type { return reflect.TypeOf((*RouterAdvertisedIpRange)(nil)).Elem() } func (i RouterAdvertisedIpRangeArgs) ToRouterAdvertisedIpRangeOutput() RouterAdvertisedIpRangeOutput { return i.ToRouterAdvertisedIpRangeOutputWithContext(context.Background()) } func (i RouterAdvertisedIpRangeArgs) ToRouterAdvertisedIpRangeOutputWithContext(ctx context.Context) RouterAdvertisedIpRangeOutput { return pulumi.ToOutputWithContext(ctx, i).(RouterAdvertisedIpRangeOutput) } // RouterAdvertisedIpRangeArrayInput is an input type that accepts RouterAdvertisedIpRangeArray and RouterAdvertisedIpRangeArrayOutput values. // You can construct a concrete instance of `RouterAdvertisedIpRangeArrayInput` via: // // RouterAdvertisedIpRangeArray{ RouterAdvertisedIpRangeArgs{...} } type RouterAdvertisedIpRangeArrayInput interface { pulumi.Input ToRouterAdvertisedIpRangeArrayOutput() RouterAdvertisedIpRangeArrayOutput ToRouterAdvertisedIpRangeArrayOutputWithContext(context.Context) RouterAdvertisedIpRangeArrayOutput } type RouterAdvertisedIpRangeArray []RouterAdvertisedIpRangeInput func (RouterAdvertisedIpRangeArray) ElementType() reflect.Type { return reflect.TypeOf((*[]RouterAdvertisedIpRange)(nil)).Elem() } func (i RouterAdvertisedIpRangeArray) ToRouterAdvertisedIpRangeArrayOutput() RouterAdvertisedIpRangeArrayOutput { return i.ToRouterAdvertisedIpRangeArrayOutputWithContext(context.Background()) } func (i RouterAdvertisedIpRangeArray) ToRouterAdvertisedIpRangeArrayOutputWithContext(ctx context.Context) RouterAdvertisedIpRangeArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(RouterAdvertisedIpRangeArrayOutput) } // Description-tagged IP ranges for the router to advertise. type RouterAdvertisedIpRangeOutput struct{ *pulumi.OutputState } func (RouterAdvertisedIpRangeOutput) ElementType() reflect.Type { return reflect.TypeOf((*RouterAdvertisedIpRange)(nil)).Elem() } func (o RouterAdvertisedIpRangeOutput) ToRouterAdvertisedIpRangeOutput() RouterAdvertisedIpRangeOutput { return o } func (o RouterAdvertisedIpRangeOutput) ToRouterAdvertisedIpRangeOutputWithContext(ctx context.Context) RouterAdvertisedIpRangeOutput { return o } // User-specified description for the IP range. func (o RouterAdvertisedIpRangeOutput) Description() pulumi.StringPtrOutput { return o.ApplyT(func(v RouterAdvertisedIpRange) *string { return v.Description }).(pulumi.StringPtrOutput) } // The IP range to advertise. The value must be a CIDR-formatted string. func (o RouterAdvertisedIpRangeOutput) Range() pulumi.StringPtrOutput { return o.ApplyT(func(v RouterAdvertisedIpRange) *string { return v.Range }).(pulumi.StringPtrOutput) } type RouterAdvertisedIpRangeArrayOutput struct{ *pulumi.OutputState } func (RouterAdvertisedIpRangeArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]RouterAdvertisedIpRange)(nil)).Elem() } func (o RouterAdvertisedIpRangeArrayOutput) ToRouterAdvertisedIpRangeArrayOutput() RouterAdvertisedIpRangeArrayOutput { return o } func (o RouterAdvertisedIpRangeArrayOutput) ToRouterAdvertisedIpRangeArrayOutputWithContext(ctx context.Context) RouterAdvertisedIpRangeArrayOutput { return o } func (o RouterAdvertisedIpRangeArrayOutput) Index(i pulumi.IntInput) RouterAdvertisedIpRangeOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouterAdvertisedIpRange { return vs[0].([]RouterAdvertisedIpRange)[vs[1].(int)] }).(RouterAdvertisedIpRangeOutput) } // Description-tagged IP ranges for the router to advertise. type RouterAdvertisedIpRangeResponse struct { // User-specified description for the IP range. Description string `pulumi:"description"` // The IP range to advertise. The value must be a CIDR-formatted string. Range string `pulumi:"range"` } // Description-tagged IP ranges for the router to advertise. type RouterAdvertisedIpRangeResponseOutput struct{ *pulumi.OutputState } func (RouterAdvertisedIpRangeResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*RouterAdvertisedIpRangeResponse)(nil)).Elem() } func (o RouterAdvertisedIpRangeResponseOutput) ToRouterAdvertisedIpRangeResponseOutput() RouterAdvertisedIpRangeResponseOutput { return o } func (o RouterAdvertisedIpRangeResponseOutput) ToRouterAdvertisedIpRangeResponseOutputWithContext(ctx context.Context) RouterAdvertisedIpRangeResponseOutput { return o } // User-specified description for the IP range. func (o RouterAdvertisedIpRangeResponseOutput) Description() pulumi.StringOutput { return o.ApplyT(func(v RouterAdvertisedIpRangeResponse) string { return v.Description }).(pulumi.StringOutput) } // The IP range to advertise. The value must be a CIDR-formatted string. func (o RouterAdvertisedIpRangeResponseOutput) Range() pulumi.StringOutput { return o.ApplyT(func(v RouterAdvertisedIpRangeResponse) string { return v.Range }).(pulumi.StringOutput) } type RouterAdvertisedIpRangeResponseArrayOutput struct{ *pulumi.OutputState } func (RouterAdvertisedIpRangeResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]RouterAdvertisedIpRangeResponse)(nil)).Elem() } func (o RouterAdvertisedIpRangeResponseArrayOutput) ToRouterAdvertisedIpRangeResponseArrayOutput() RouterAdvertisedIpRangeResponseArrayOutput { return o } func (o RouterAdvertisedIpRangeResponseArrayOutput) ToRouterAdvertisedIpRangeResponseArrayOutputWithContext(ctx context.Context) RouterAdvertisedIpRangeResponseArrayOutput { return o } func (o RouterAdvertisedIpRangeResponseArrayOutput) Index(i pulumi.IntInput) RouterAdvertisedIpRangeResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouterAdvertisedIpRangeResponse { return vs[0].([]RouterAdvertisedIpRangeResponse)[vs[1].(int)] }).(RouterAdvertisedIpRangeResponseOutput) } type RouterBgp struct { // User-specified flag to indicate which mode to use for advertisement. The options are DEFAULT or CUSTOM. AdvertiseMode *RouterBgpAdvertiseMode `pulumi:"advertiseMode"` // User-specified list of prefix groups to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and is advertised to all peers of the router. These groups will be advertised in addition to any specified prefixes. Leave this field blank to advertise no custom groups. AdvertisedGroups []RouterBgpAdvertisedGroupsItem `pulumi:"advertisedGroups"` // User-specified list of individual IP ranges to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and is advertised to all peers of the router. These IP ranges will be advertised in addition to any specified groups. Leave this field blank to advertise no custom IP ranges. AdvertisedIpRanges []RouterAdvertisedIpRange `pulumi:"advertisedIpRanges"` // Local BGP Autonomous System Number (ASN). Must be an RFC6996 private ASN, either 16-bit or 32-bit. The value will be fixed for this router resource. All VPN tunnels that link to this router will have the same local ASN. Asn *int `pulumi:"asn"` // The interval in seconds between BGP keepalive messages that are sent to the peer. Hold time is three times the interval at which keepalive messages are sent, and the hold time is the maximum number of seconds allowed to elapse between successive keepalive messages that BGP receives from a peer. BGP will use the smaller of either the local hold time value or the peer's hold time value as the hold time for the BGP connection between the two peers. If set, this value must be between 20 and 60. The default is 20. KeepaliveInterval *int `pulumi:"keepaliveInterval"` } // RouterBgpInput is an input type that accepts RouterBgpArgs and RouterBgpOutput values. // You can construct a concrete instance of `RouterBgpInput` via: // // RouterBgpArgs{...} type RouterBgpInput interface { pulumi.Input ToRouterBgpOutput() RouterBgpOutput ToRouterBgpOutputWithContext(context.Context) RouterBgpOutput } type RouterBgpArgs struct { // User-specified flag to indicate which mode to use for advertisement. The options are DEFAULT or CUSTOM. AdvertiseMode RouterBgpAdvertiseModePtrInput `pulumi:"advertiseMode"` // User-specified list of prefix groups to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and is advertised to all peers of the router. These groups will be advertised in addition to any specified prefixes. Leave this field blank to advertise no custom groups. AdvertisedGroups RouterBgpAdvertisedGroupsItemArrayInput `pulumi:"advertisedGroups"` // User-specified list of individual IP ranges to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and is advertised to all peers of the router. These IP ranges will be advertised in addition to any specified groups. Leave this field blank to advertise no custom IP ranges. AdvertisedIpRanges RouterAdvertisedIpRangeArrayInput `pulumi:"advertisedIpRanges"` // Local BGP Autonomous System Number (ASN). Must be an RFC6996 private ASN, either 16-bit or 32-bit. The value will be fixed for this router resource. All VPN tunnels that link to this router will have the same local ASN. Asn pulumi.IntPtrInput `pulumi:"asn"` // The interval in seconds between BGP keepalive messages that are sent to the peer. Hold time is three times the interval at which keepalive messages are sent, and the hold time is the maximum number of seconds allowed to elapse between successive keepalive messages that BGP receives from a peer. BGP will use the smaller of either the local hold time value or the peer's hold time value as the hold time for the BGP connection between the two peers. If set, this value must be between 20 and 60. The default is 20. KeepaliveInterval pulumi.IntPtrInput `pulumi:"keepaliveInterval"` } func (RouterBgpArgs) ElementType() reflect.Type { return reflect.TypeOf((*RouterBgp)(nil)).Elem() } func (i RouterBgpArgs) ToRouterBgpOutput() RouterBgpOutput { return i.ToRouterBgpOutputWithContext(context.Background()) } func (i RouterBgpArgs) ToRouterBgpOutputWithContext(ctx context.Context) RouterBgpOutput { return pulumi.ToOutputWithContext(ctx, i).(RouterBgpOutput) } func (i RouterBgpArgs) ToRouterBgpPtrOutput() RouterBgpPtrOutput { return i.ToRouterBgpPtrOutputWithContext(context.Background()) } func (i RouterBgpArgs) ToRouterBgpPtrOutputWithContext(ctx context.Context) RouterBgpPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(RouterBgpOutput).ToRouterBgpPtrOutputWithContext(ctx) } // RouterBgpPtrInput is an input type that accepts RouterBgpArgs, RouterBgpPtr and RouterBgpPtrOutput values. // You can construct a concrete instance of `RouterBgpPtrInput` via: // // RouterBgpArgs{...} // // or: // // nil type RouterBgpPtrInput interface { pulumi.Input ToRouterBgpPtrOutput() RouterBgpPtrOutput ToRouterBgpPtrOutputWithContext(context.Context) RouterBgpPtrOutput } type routerBgpPtrType RouterBgpArgs func RouterBgpPtr(v *RouterBgpArgs) RouterBgpPtrInput { return (*routerBgpPtrType)(v) } func (*routerBgpPtrType) ElementType() reflect.Type { return reflect.TypeOf((**RouterBgp)(nil)).Elem() } func (i *routerBgpPtrType) ToRouterBgpPtrOutput() RouterBgpPtrOutput { return i.ToRouterBgpPtrOutputWithContext(context.Background()) } func (i *routerBgpPtrType) ToRouterBgpPtrOutputWithContext(ctx context.Context) RouterBgpPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(RouterBgpPtrOutput) } type RouterBgpOutput struct{ *pulumi.OutputState } func (RouterBgpOutput) ElementType() reflect.Type { return reflect.TypeOf((*RouterBgp)(nil)).Elem() } func (o RouterBgpOutput) ToRouterBgpOutput() RouterBgpOutput { return o } func (o RouterBgpOutput) ToRouterBgpOutputWithContext(ctx context.Context) RouterBgpOutput { return o } func (o RouterBgpOutput) ToRouterBgpPtrOutput() RouterBgpPtrOutput { return o.ToRouterBgpPtrOutputWithContext(context.Background()) } func (o RouterBgpOutput) ToRouterBgpPtrOutputWithContext(ctx context.Context) RouterBgpPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v RouterBgp) *RouterBgp { return &v }).(RouterBgpPtrOutput) } // User-specified flag to indicate which mode to use for advertisement. The options are DEFAULT or CUSTOM. func (o RouterBgpOutput) AdvertiseMode() RouterBgpAdvertiseModePtrOutput { return o.ApplyT(func(v RouterBgp) *RouterBgpAdvertiseMode { return v.AdvertiseMode }).(RouterBgpAdvertiseModePtrOutput) } // User-specified list of prefix groups to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and is advertised to all peers of the router. These groups will be advertised in addition to any specified prefixes. Leave this field blank to advertise no custom groups. func (o RouterBgpOutput) AdvertisedGroups() RouterBgpAdvertisedGroupsItemArrayOutput { return o.ApplyT(func(v RouterBgp) []RouterBgpAdvertisedGroupsItem { return v.AdvertisedGroups }).(RouterBgpAdvertisedGroupsItemArrayOutput) } // User-specified list of individual IP ranges to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and is advertised to all peers of the router. These IP ranges will be advertised in addition to any specified groups. Leave this field blank to advertise no custom IP ranges. func (o RouterBgpOutput) AdvertisedIpRanges() RouterAdvertisedIpRangeArrayOutput { return o.ApplyT(func(v RouterBgp) []RouterAdvertisedIpRange { return v.AdvertisedIpRanges }).(RouterAdvertisedIpRangeArrayOutput) } // Local BGP Autonomous System Number (ASN). Must be an RFC6996 private ASN, either 16-bit or 32-bit. The value will be fixed for this router resource. All VPN tunnels that link to this router will have the same local ASN. func (o RouterBgpOutput) Asn() pulumi.IntPtrOutput { return o.ApplyT(func(v RouterBgp) *int { return v.Asn }).(pulumi.IntPtrOutput) } // The interval in seconds between BGP keepalive messages that are sent to the peer. Hold time is three times the interval at which keepalive messages are sent, and the hold time is the maximum number of seconds allowed to elapse between successive keepalive messages that BGP receives from a peer. BGP will use the smaller of either the local hold time value or the peer's hold time value as the hold time for the BGP connection between the two peers. If set, this value must be between 20 and 60. The default is 20. func (o RouterBgpOutput) KeepaliveInterval() pulumi.IntPtrOutput { return o.ApplyT(func(v RouterBgp) *int { return v.KeepaliveInterval }).(pulumi.IntPtrOutput) } type RouterBgpPtrOutput struct{ *pulumi.OutputState } func (RouterBgpPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**RouterBgp)(nil)).Elem() } func (o RouterBgpPtrOutput) ToRouterBgpPtrOutput() RouterBgpPtrOutput { return o } func (o RouterBgpPtrOutput) ToRouterBgpPtrOutputWithContext(ctx context.Context) RouterBgpPtrOutput { return o } func (o RouterBgpPtrOutput) Elem() RouterBgpOutput { return o.ApplyT(func(v *RouterBgp) RouterBgp { if v != nil { return *v } var ret RouterBgp return ret }).(RouterBgpOutput) } // User-specified flag to indicate which mode to use for advertisement. The options are DEFAULT or CUSTOM. func (o RouterBgpPtrOutput) AdvertiseMode() RouterBgpAdvertiseModePtrOutput { return o.ApplyT(func(v *RouterBgp) *RouterBgpAdvertiseMode { if v == nil { return nil } return v.AdvertiseMode }).(RouterBgpAdvertiseModePtrOutput) } // User-specified list of prefix groups to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and is advertised to all peers of the router. These groups will be advertised in addition to any specified prefixes. Leave this field blank to advertise no custom groups. func (o RouterBgpPtrOutput) AdvertisedGroups() RouterBgpAdvertisedGroupsItemArrayOutput { return o.ApplyT(func(v *RouterBgp) []RouterBgpAdvertisedGroupsItem { if v == nil { return nil } return v.AdvertisedGroups }).(RouterBgpAdvertisedGroupsItemArrayOutput) } // User-specified list of individual IP ranges to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and is advertised to all peers of the router. These IP ranges will be advertised in addition to any specified groups. Leave this field blank to advertise no custom IP ranges. func (o RouterBgpPtrOutput) AdvertisedIpRanges() RouterAdvertisedIpRangeArrayOutput { return o.ApplyT(func(v *RouterBgp) []RouterAdvertisedIpRange { if v == nil { return nil } return v.AdvertisedIpRanges }).(RouterAdvertisedIpRangeArrayOutput) } // Local BGP Autonomous System Number (ASN). Must be an RFC6996 private ASN, either 16-bit or 32-bit. The value will be fixed for this router resource. All VPN tunnels that link to this router will have the same local ASN. func (o RouterBgpPtrOutput) Asn() pulumi.IntPtrOutput { return o.ApplyT(func(v *RouterBgp) *int { if v == nil { return nil } return v.Asn }).(pulumi.IntPtrOutput) } // The interval in seconds between BGP keepalive messages that are sent to the peer. Hold time is three times the interval at which keepalive messages are sent, and the hold time is the maximum number of seconds allowed to elapse between successive keepalive messages that BGP receives from a peer. BGP will use the smaller of either the local hold time value or the peer's hold time value as the hold time for the BGP connection between the two peers. If set, this value must be between 20 and 60. The default is 20. func (o RouterBgpPtrOutput) KeepaliveInterval() pulumi.IntPtrOutput { return o.ApplyT(func(v *RouterBgp) *int { if v == nil { return nil } return v.KeepaliveInterval }).(pulumi.IntPtrOutput) } type RouterBgpPeer struct { // User-specified flag to indicate which mode to use for advertisement. AdvertiseMode *RouterBgpPeerAdvertiseMode `pulumi:"advertiseMode"` // User-specified list of prefix groups to advertise in custom mode, which can take one of the following options: - ALL_SUBNETS: Advertises all available subnets, including peer VPC subnets. - ALL_VPC_SUBNETS: Advertises the router's own VPC subnets. Note that this field can only be populated if advertise_mode is CUSTOM and overrides the list defined for the router (in the "bgp" message). These groups are advertised in addition to any specified prefixes. Leave this field blank to advertise no custom groups. AdvertisedGroups []RouterBgpPeerAdvertisedGroupsItem `pulumi:"advertisedGroups"` // User-specified list of individual IP ranges to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and overrides the list defined for the router (in the "bgp" message). These IP ranges are advertised in addition to any specified groups. Leave this field blank to advertise no custom IP ranges. AdvertisedIpRanges []RouterAdvertisedIpRange `pulumi:"advertisedIpRanges"` // The priority of routes advertised to this BGP peer. Where there is more than one matching route of maximum length, the routes with the lowest priority value win. AdvertisedRoutePriority *int `pulumi:"advertisedRoutePriority"` // BFD configuration for the BGP peering. Bfd *RouterBgpPeerBfd `pulumi:"bfd"` // The status of the BGP peer connection. If set to FALSE, any active session with the peer is terminated and all associated routing information is removed. If set to TRUE, the peer connection can be established with routing information. The default is TRUE. Enable *RouterBgpPeerEnable `pulumi:"enable"` // Enable IPv6 traffic over BGP Peer. If not specified, it is disabled by default. EnableIpv6 *bool `pulumi:"enableIpv6"` // Name of the interface the BGP peer is associated with. InterfaceName *string `pulumi:"interfaceName"` // IP address of the interface inside Google Cloud Platform. Only IPv4 is supported. IpAddress *string `pulumi:"ipAddress"` // IPv6 address of the interface inside Google Cloud Platform. Ipv6NexthopAddress *string `pulumi:"ipv6NexthopAddress"` // Name of this BGP peer. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. Name *string `pulumi:"name"` // Peer BGP Autonomous System Number (ASN). Each BGP interface may use a different value. PeerAsn *int `pulumi:"peerAsn"` // IP address of the BGP interface outside Google Cloud Platform. Only IPv4 is supported. PeerIpAddress *string `pulumi:"peerIpAddress"` // IPv6 address of the BGP interface outside Google Cloud Platform. PeerIpv6NexthopAddress *string `pulumi:"peerIpv6NexthopAddress"` // URI of the VM instance that is used as third-party router appliances such as Next Gen Firewalls, Virtual Routers, or Router Appliances. The VM instance must be located in zones contained in the same region as this Cloud Router. The VM instance is the peer side of the BGP session. RouterApplianceInstance *string `pulumi:"routerApplianceInstance"` } // RouterBgpPeerInput is an input type that accepts RouterBgpPeerArgs and RouterBgpPeerOutput values. // You can construct a concrete instance of `RouterBgpPeerInput` via: // // RouterBgpPeerArgs{...} type RouterBgpPeerInput interface { pulumi.Input ToRouterBgpPeerOutput() RouterBgpPeerOutput ToRouterBgpPeerOutputWithContext(context.Context) RouterBgpPeerOutput } type RouterBgpPeerArgs struct { // User-specified flag to indicate which mode to use for advertisement. AdvertiseMode RouterBgpPeerAdvertiseModePtrInput `pulumi:"advertiseMode"` // User-specified list of prefix groups to advertise in custom mode, which can take one of the following options: - ALL_SUBNETS: Advertises all available subnets, including peer VPC subnets. - ALL_VPC_SUBNETS: Advertises the router's own VPC subnets. Note that this field can only be populated if advertise_mode is CUSTOM and overrides the list defined for the router (in the "bgp" message). These groups are advertised in addition to any specified prefixes. Leave this field blank to advertise no custom groups. AdvertisedGroups RouterBgpPeerAdvertisedGroupsItemArrayInput `pulumi:"advertisedGroups"` // User-specified list of individual IP ranges to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and overrides the list defined for the router (in the "bgp" message). These IP ranges are advertised in addition to any specified groups. Leave this field blank to advertise no custom IP ranges. AdvertisedIpRanges RouterAdvertisedIpRangeArrayInput `pulumi:"advertisedIpRanges"` // The priority of routes advertised to this BGP peer. Where there is more than one matching route of maximum length, the routes with the lowest priority value win. AdvertisedRoutePriority pulumi.IntPtrInput `pulumi:"advertisedRoutePriority"` // BFD configuration for the BGP peering. Bfd RouterBgpPeerBfdPtrInput `pulumi:"bfd"` // The status of the BGP peer connection. If set to FALSE, any active session with the peer is terminated and all associated routing information is removed. If set to TRUE, the peer connection can be established with routing information. The default is TRUE. Enable RouterBgpPeerEnablePtrInput `pulumi:"enable"` // Enable IPv6 traffic over BGP Peer. If not specified, it is disabled by default. EnableIpv6 pulumi.BoolPtrInput `pulumi:"enableIpv6"` // Name of the interface the BGP peer is associated with. InterfaceName pulumi.StringPtrInput `pulumi:"interfaceName"` // IP address of the interface inside Google Cloud Platform. Only IPv4 is supported. IpAddress pulumi.StringPtrInput `pulumi:"ipAddress"` // IPv6 address of the interface inside Google Cloud Platform. Ipv6NexthopAddress pulumi.StringPtrInput `pulumi:"ipv6NexthopAddress"` // Name of this BGP peer. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. Name pulumi.StringPtrInput `pulumi:"name"` // Peer BGP Autonomous System Number (ASN). Each BGP interface may use a different value. PeerAsn pulumi.IntPtrInput `pulumi:"peerAsn"` // IP address of the BGP interface outside Google Cloud Platform. Only IPv4 is supported. PeerIpAddress pulumi.StringPtrInput `pulumi:"peerIpAddress"` // IPv6 address of the BGP interface outside Google Cloud Platform. PeerIpv6NexthopAddress pulumi.StringPtrInput `pulumi:"peerIpv6NexthopAddress"` // URI of the VM instance that is used as third-party router appliances such as Next Gen Firewalls, Virtual Routers, or Router Appliances. The VM instance must be located in zones contained in the same region as this Cloud Router. The VM instance is the peer side of the BGP session. RouterApplianceInstance pulumi.StringPtrInput `pulumi:"routerApplianceInstance"` } func (RouterBgpPeerArgs) ElementType() reflect.Type { return reflect.TypeOf((*RouterBgpPeer)(nil)).Elem() } func (i RouterBgpPeerArgs) ToRouterBgpPeerOutput() RouterBgpPeerOutput { return i.ToRouterBgpPeerOutputWithContext(context.Background()) } func (i RouterBgpPeerArgs) ToRouterBgpPeerOutputWithContext(ctx context.Context) RouterBgpPeerOutput { return pulumi.ToOutputWithContext(ctx, i).(RouterBgpPeerOutput) } // RouterBgpPeerArrayInput is an input type that accepts RouterBgpPeerArray and RouterBgpPeerArrayOutput values. // You can construct a concrete instance of `RouterBgpPeerArrayInput` via: // // RouterBgpPeerArray{ RouterBgpPeerArgs{...} } type RouterBgpPeerArrayInput interface { pulumi.Input ToRouterBgpPeerArrayOutput() RouterBgpPeerArrayOutput ToRouterBgpPeerArrayOutputWithContext(context.Context) RouterBgpPeerArrayOutput } type RouterBgpPeerArray []RouterBgpPeerInput func (RouterBgpPeerArray) ElementType() reflect.Type { return reflect.TypeOf((*[]RouterBgpPeer)(nil)).Elem() } func (i RouterBgpPeerArray) ToRouterBgpPeerArrayOutput() RouterBgpPeerArrayOutput { return i.ToRouterBgpPeerArrayOutputWithContext(context.Background()) } func (i RouterBgpPeerArray) ToRouterBgpPeerArrayOutputWithContext(ctx context.Context) RouterBgpPeerArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(RouterBgpPeerArrayOutput) } type RouterBgpPeerOutput struct{ *pulumi.OutputState } func (RouterBgpPeerOutput) ElementType() reflect.Type { return reflect.TypeOf((*RouterBgpPeer)(nil)).Elem() } func (o RouterBgpPeerOutput) ToRouterBgpPeerOutput() RouterBgpPeerOutput { return o } func (o RouterBgpPeerOutput) ToRouterBgpPeerOutputWithContext(ctx context.Context) RouterBgpPeerOutput { return o } // User-specified flag to indicate which mode to use for advertisement. func (o RouterBgpPeerOutput) AdvertiseMode() RouterBgpPeerAdvertiseModePtrOutput { return o.ApplyT(func(v RouterBgpPeer) *RouterBgpPeerAdvertiseMode { return v.AdvertiseMode }).(RouterBgpPeerAdvertiseModePtrOutput) } // User-specified list of prefix groups to advertise in custom mode, which can take one of the following options: - ALL_SUBNETS: Advertises all available subnets, including peer VPC subnets. - ALL_VPC_SUBNETS: Advertises the router's own VPC subnets. Note that this field can only be populated if advertise_mode is CUSTOM and overrides the list defined for the router (in the "bgp" message). These groups are advertised in addition to any specified prefixes. Leave this field blank to advertise no custom groups. func (o RouterBgpPeerOutput) AdvertisedGroups() RouterBgpPeerAdvertisedGroupsItemArrayOutput { return o.ApplyT(func(v RouterBgpPeer) []RouterBgpPeerAdvertisedGroupsItem { return v.AdvertisedGroups }).(RouterBgpPeerAdvertisedGroupsItemArrayOutput) } // User-specified list of individual IP ranges to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and overrides the list defined for the router (in the "bgp" message). These IP ranges are advertised in addition to any specified groups. Leave this field blank to advertise no custom IP ranges. func (o RouterBgpPeerOutput) AdvertisedIpRanges() RouterAdvertisedIpRangeArrayOutput { return o.ApplyT(func(v RouterBgpPeer) []RouterAdvertisedIpRange { return v.AdvertisedIpRanges }).(RouterAdvertisedIpRangeArrayOutput) } // The priority of routes advertised to this BGP peer. Where there is more than one matching route of maximum length, the routes with the lowest priority value win. func (o RouterBgpPeerOutput) AdvertisedRoutePriority() pulumi.IntPtrOutput { return o.ApplyT(func(v RouterBgpPeer) *int { return v.AdvertisedRoutePriority }).(pulumi.IntPtrOutput) } // BFD configuration for the BGP peering. func (o RouterBgpPeerOutput) Bfd() RouterBgpPeerBfdPtrOutput { return o.ApplyT(func(v RouterBgpPeer) *RouterBgpPeerBfd { return v.Bfd }).(RouterBgpPeerBfdPtrOutput) } // The status of the BGP peer connection. If set to FALSE, any active session with the peer is terminated and all associated routing information is removed. If set to TRUE, the peer connection can be established with routing information. The default is TRUE. func (o RouterBgpPeerOutput) Enable() RouterBgpPeerEnablePtrOutput { return o.ApplyT(func(v RouterBgpPeer) *RouterBgpPeerEnable { return v.Enable }).(RouterBgpPeerEnablePtrOutput) } // Enable IPv6 traffic over BGP Peer. If not specified, it is disabled by default. func (o RouterBgpPeerOutput) EnableIpv6() pulumi.BoolPtrOutput { return o.ApplyT(func(v RouterBgpPeer) *bool { return v.EnableIpv6 }).(pulumi.BoolPtrOutput) } // Name of the interface the BGP peer is associated with. func (o RouterBgpPeerOutput) InterfaceName() pulumi.StringPtrOutput { return o.ApplyT(func(v RouterBgpPeer) *string { return v.InterfaceName }).(pulumi.StringPtrOutput) } // IP address of the interface inside Google Cloud Platform. Only IPv4 is supported. func (o RouterBgpPeerOutput) IpAddress() pulumi.StringPtrOutput { return o.ApplyT(func(v RouterBgpPeer) *string { return v.IpAddress }).(pulumi.StringPtrOutput) } // IPv6 address of the interface inside Google Cloud Platform. func (o RouterBgpPeerOutput) Ipv6NexthopAddress() pulumi.StringPtrOutput { return o.ApplyT(func(v RouterBgpPeer) *string { return v.Ipv6NexthopAddress }).(pulumi.StringPtrOutput) } // Name of this BGP peer. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. func (o RouterBgpPeerOutput) Name() pulumi.StringPtrOutput { return o.ApplyT(func(v RouterBgpPeer) *string { return v.Name }).(pulumi.StringPtrOutput) } // Peer BGP Autonomous System Number (ASN). Each BGP interface may use a different value. func (o RouterBgpPeerOutput) PeerAsn() pulumi.IntPtrOutput { return o.ApplyT(func(v RouterBgpPeer) *int { return v.PeerAsn }).(pulumi.IntPtrOutput) } // IP address of the BGP interface outside Google Cloud Platform. Only IPv4 is supported. func (o RouterBgpPeerOutput) PeerIpAddress() pulumi.StringPtrOutput { return o.ApplyT(func(v RouterBgpPeer) *string { return v.PeerIpAddress }).(pulumi.StringPtrOutput) } // IPv6 address of the BGP interface outside Google Cloud Platform. func (o RouterBgpPeerOutput) PeerIpv6NexthopAddress() pulumi.StringPtrOutput { return o.ApplyT(func(v RouterBgpPeer) *string { return v.PeerIpv6NexthopAddress }).(pulumi.StringPtrOutput) } // URI of the VM instance that is used as third-party router appliances such as Next Gen Firewalls, Virtual Routers, or Router Appliances. The VM instance must be located in zones contained in the same region as this Cloud Router. The VM instance is the peer side of the BGP session. func (o RouterBgpPeerOutput) RouterApplianceInstance() pulumi.StringPtrOutput { return o.ApplyT(func(v RouterBgpPeer) *string { return v.RouterApplianceInstance }).(pulumi.StringPtrOutput) } type RouterBgpPeerArrayOutput struct{ *pulumi.OutputState } func (RouterBgpPeerArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]RouterBgpPeer)(nil)).Elem() } func (o RouterBgpPeerArrayOutput) ToRouterBgpPeerArrayOutput() RouterBgpPeerArrayOutput { return o } func (o RouterBgpPeerArrayOutput) ToRouterBgpPeerArrayOutputWithContext(ctx context.Context) RouterBgpPeerArrayOutput { return o } func (o RouterBgpPeerArrayOutput) Index(i pulumi.IntInput) RouterBgpPeerOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouterBgpPeer { return vs[0].([]RouterBgpPeer)[vs[1].(int)] }).(RouterBgpPeerOutput) } type RouterBgpPeerBfd struct { // The minimum interval, in milliseconds, between BFD control packets received from the peer router. The actual value is negotiated between the two routers and is equal to the greater of this value and the transmit interval of the other router. If set, this value must be between 1000 and 30000. The default is 1000. MinReceiveInterval *int `pulumi:"minReceiveInterval"` // The minimum interval, in milliseconds, between BFD control packets transmitted to the peer router. The actual value is negotiated between the two routers and is equal to the greater of this value and the corresponding receive interval of the other router. If set, this value must be between 1000 and 30000. The default is 1000. MinTransmitInterval *int `pulumi:"minTransmitInterval"` // The number of consecutive BFD packets that must be missed before BFD declares that a peer is unavailable. If set, the value must be a value between 5 and 16. The default is 5. Multiplier *int `pulumi:"multiplier"` // The BFD session initialization mode for this BGP peer. If set to ACTIVE, the Cloud Router will initiate the BFD session for this BGP peer. If set to PASSIVE, the Cloud Router will wait for the peer router to initiate the BFD session for this BGP peer. If set to DISABLED, BFD is disabled for this BGP peer. The default is PASSIVE. SessionInitializationMode *RouterBgpPeerBfdSessionInitializationMode `pulumi:"sessionInitializationMode"` } // RouterBgpPeerBfdInput is an input type that accepts RouterBgpPeerBfdArgs and RouterBgpPeerBfdOutput values. // You can construct a concrete instance of `RouterBgpPeerBfdInput` via: // // RouterBgpPeerBfdArgs{...} type RouterBgpPeerBfdInput interface { pulumi.Input ToRouterBgpPeerBfdOutput() RouterBgpPeerBfdOutput ToRouterBgpPeerBfdOutputWithContext(context.Context) RouterBgpPeerBfdOutput } type RouterBgpPeerBfdArgs struct { // The minimum interval, in milliseconds, between BFD control packets received from the peer router. The actual value is negotiated between the two routers and is equal to the greater of this value and the transmit interval of the other router. If set, this value must be between 1000 and 30000. The default is 1000. MinReceiveInterval pulumi.IntPtrInput `pulumi:"minReceiveInterval"` // The minimum interval, in milliseconds, between BFD control packets transmitted to the peer router. The actual value is negotiated between the two routers and is equal to the greater of this value and the corresponding receive interval of the other router. If set, this value must be between 1000 and 30000. The default is 1000. MinTransmitInterval pulumi.IntPtrInput `pulumi:"minTransmitInterval"` // The number of consecutive BFD packets that must be missed before BFD declares that a peer is unavailable. If set, the value must be a value between 5 and 16. The default is 5. Multiplier pulumi.IntPtrInput `pulumi:"multiplier"` // The BFD session initialization mode for this BGP peer. If set to ACTIVE, the Cloud Router will initiate the BFD session for this BGP peer. If set to PASSIVE, the Cloud Router will wait for the peer router to initiate the BFD session for this BGP peer. If set to DISABLED, BFD is disabled for this BGP peer. The default is PASSIVE. SessionInitializationMode RouterBgpPeerBfdSessionInitializationModePtrInput `pulumi:"sessionInitializationMode"` } func (RouterBgpPeerBfdArgs) ElementType() reflect.Type { return reflect.TypeOf((*RouterBgpPeerBfd)(nil)).Elem() } func (i RouterBgpPeerBfdArgs) ToRouterBgpPeerBfdOutput() RouterBgpPeerBfdOutput { return i.ToRouterBgpPeerBfdOutputWithContext(context.Background()) } func (i RouterBgpPeerBfdArgs) ToRouterBgpPeerBfdOutputWithContext(ctx context.Context) RouterBgpPeerBfdOutput { return pulumi.ToOutputWithContext(ctx, i).(RouterBgpPeerBfdOutput) } func (i RouterBgpPeerBfdArgs) ToRouterBgpPeerBfdPtrOutput() RouterBgpPeerBfdPtrOutput { return i.ToRouterBgpPeerBfdPtrOutputWithContext(context.Background()) } func (i RouterBgpPeerBfdArgs) ToRouterBgpPeerBfdPtrOutputWithContext(ctx context.Context) RouterBgpPeerBfdPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(RouterBgpPeerBfdOutput).ToRouterBgpPeerBfdPtrOutputWithContext(ctx) } // RouterBgpPeerBfdPtrInput is an input type that accepts RouterBgpPeerBfdArgs, RouterBgpPeerBfdPtr and RouterBgpPeerBfdPtrOutput values. // You can construct a concrete instance of `RouterBgpPeerBfdPtrInput` via: // // RouterBgpPeerBfdArgs{...} // // or: // // nil type RouterBgpPeerBfdPtrInput interface { pulumi.Input ToRouterBgpPeerBfdPtrOutput() RouterBgpPeerBfdPtrOutput ToRouterBgpPeerBfdPtrOutputWithContext(context.Context) RouterBgpPeerBfdPtrOutput } type routerBgpPeerBfdPtrType RouterBgpPeerBfdArgs func RouterBgpPeerBfdPtr(v *RouterBgpPeerBfdArgs) RouterBgpPeerBfdPtrInput { return (*routerBgpPeerBfdPtrType)(v) } func (*routerBgpPeerBfdPtrType) ElementType() reflect.Type { return reflect.TypeOf((**RouterBgpPeerBfd)(nil)).Elem() } func (i *routerBgpPeerBfdPtrType) ToRouterBgpPeerBfdPtrOutput() RouterBgpPeerBfdPtrOutput { return i.ToRouterBgpPeerBfdPtrOutputWithContext(context.Background()) } func (i *routerBgpPeerBfdPtrType) ToRouterBgpPeerBfdPtrOutputWithContext(ctx context.Context) RouterBgpPeerBfdPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(RouterBgpPeerBfdPtrOutput) } type RouterBgpPeerBfdOutput struct{ *pulumi.OutputState } func (RouterBgpPeerBfdOutput) ElementType() reflect.Type { return reflect.TypeOf((*RouterBgpPeerBfd)(nil)).Elem() } func (o RouterBgpPeerBfdOutput) ToRouterBgpPeerBfdOutput() RouterBgpPeerBfdOutput { return o } func (o RouterBgpPeerBfdOutput) ToRouterBgpPeerBfdOutputWithContext(ctx context.Context) RouterBgpPeerBfdOutput { return o } func (o RouterBgpPeerBfdOutput) ToRouterBgpPeerBfdPtrOutput() RouterBgpPeerBfdPtrOutput { return o.ToRouterBgpPeerBfdPtrOutputWithContext(context.Background()) } func (o RouterBgpPeerBfdOutput) ToRouterBgpPeerBfdPtrOutputWithContext(ctx context.Context) RouterBgpPeerBfdPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v RouterBgpPeerBfd) *RouterBgpPeerBfd { return &v }).(RouterBgpPeerBfdPtrOutput) } // The minimum interval, in milliseconds, between BFD control packets received from the peer router. The actual value is negotiated between the two routers and is equal to the greater of this value and the transmit interval of the other router. If set, this value must be between 1000 and 30000. The default is 1000. func (o RouterBgpPeerBfdOutput) MinReceiveInterval() pulumi.IntPtrOutput { return o.ApplyT(func(v RouterBgpPeerBfd) *int { return v.MinReceiveInterval }).(pulumi.IntPtrOutput) } // The minimum interval, in milliseconds, between BFD control packets transmitted to the peer router. The actual value is negotiated between the two routers and is equal to the greater of this value and the corresponding receive interval of the other router. If set, this value must be between 1000 and 30000. The default is 1000. func (o RouterBgpPeerBfdOutput) MinTransmitInterval() pulumi.IntPtrOutput { return o.ApplyT(func(v RouterBgpPeerBfd) *int { return v.MinTransmitInterval }).(pulumi.IntPtrOutput) } // The number of consecutive BFD packets that must be missed before BFD declares that a peer is unavailable. If set, the value must be a value between 5 and 16. The default is 5. func (o RouterBgpPeerBfdOutput) Multiplier() pulumi.IntPtrOutput { return o.ApplyT(func(v RouterBgpPeerBfd) *int { return v.Multiplier }).(pulumi.IntPtrOutput) } // The BFD session initialization mode for this BGP peer. If set to ACTIVE, the Cloud Router will initiate the BFD session for this BGP peer. If set to PASSIVE, the Cloud Router will wait for the peer router to initiate the BFD session for this BGP peer. If set to DISABLED, BFD is disabled for this BGP peer. The default is PASSIVE. func (o RouterBgpPeerBfdOutput) SessionInitializationMode() RouterBgpPeerBfdSessionInitializationModePtrOutput { return o.ApplyT(func(v RouterBgpPeerBfd) *RouterBgpPeerBfdSessionInitializationMode { return v.SessionInitializationMode }).(RouterBgpPeerBfdSessionInitializationModePtrOutput) } type RouterBgpPeerBfdPtrOutput struct{ *pulumi.OutputState } func (RouterBgpPeerBfdPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**RouterBgpPeerBfd)(nil)).Elem() } func (o RouterBgpPeerBfdPtrOutput) ToRouterBgpPeerBfdPtrOutput() RouterBgpPeerBfdPtrOutput { return o } func (o RouterBgpPeerBfdPtrOutput) ToRouterBgpPeerBfdPtrOutputWithContext(ctx context.Context) RouterBgpPeerBfdPtrOutput { return o } func (o RouterBgpPeerBfdPtrOutput) Elem() RouterBgpPeerBfdOutput { return o.ApplyT(func(v *RouterBgpPeerBfd) RouterBgpPeerBfd { if v != nil { return *v } var ret RouterBgpPeerBfd return ret }).(RouterBgpPeerBfdOutput) } // The minimum interval, in milliseconds, between BFD control packets received from the peer router. The actual value is negotiated between the two routers and is equal to the greater of this value and the transmit interval of the other router. If set, this value must be between 1000 and 30000. The default is 1000. func (o RouterBgpPeerBfdPtrOutput) MinReceiveInterval() pulumi.IntPtrOutput { return o.ApplyT(func(v *RouterBgpPeerBfd) *int { if v == nil { return nil } return v.MinReceiveInterval }).(pulumi.IntPtrOutput) } // The minimum interval, in milliseconds, between BFD control packets transmitted to the peer router. The actual value is negotiated between the two routers and is equal to the greater of this value and the corresponding receive interval of the other router. If set, this value must be between 1000 and 30000. The default is 1000. func (o RouterBgpPeerBfdPtrOutput) MinTransmitInterval() pulumi.IntPtrOutput { return o.ApplyT(func(v *RouterBgpPeerBfd) *int { if v == nil { return nil } return v.MinTransmitInterval }).(pulumi.IntPtrOutput) } // The number of consecutive BFD packets that must be missed before BFD declares that a peer is unavailable. If set, the value must be a value between 5 and 16. The default is 5. func (o RouterBgpPeerBfdPtrOutput) Multiplier() pulumi.IntPtrOutput { return o.ApplyT(func(v *RouterBgpPeerBfd) *int { if v == nil { return nil } return v.Multiplier }).(pulumi.IntPtrOutput) } // The BFD session initialization mode for this BGP peer. If set to ACTIVE, the Cloud Router will initiate the BFD session for this BGP peer. If set to PASSIVE, the Cloud Router will wait for the peer router to initiate the BFD session for this BGP peer. If set to DISABLED, BFD is disabled for this BGP peer. The default is PASSIVE. func (o RouterBgpPeerBfdPtrOutput) SessionInitializationMode() RouterBgpPeerBfdSessionInitializationModePtrOutput { return o.ApplyT(func(v *RouterBgpPeerBfd) *RouterBgpPeerBfdSessionInitializationMode { if v == nil { return nil } return v.SessionInitializationMode }).(RouterBgpPeerBfdSessionInitializationModePtrOutput) } type RouterBgpPeerBfdResponse struct { // The minimum interval, in milliseconds, between BFD control packets received from the peer router. The actual value is negotiated between the two routers and is equal to the greater of this value and the transmit interval of the other router. If set, this value must be between 1000 and 30000. The default is 1000. MinReceiveInterval int `pulumi:"minReceiveInterval"` // The minimum interval, in milliseconds, between BFD control packets transmitted to the peer router. The actual value is negotiated between the two routers and is equal to the greater of this value and the corresponding receive interval of the other router. If set, this value must be between 1000 and 30000. The default is 1000. MinTransmitInterval int `pulumi:"minTransmitInterval"` // The number of consecutive BFD packets that must be missed before BFD declares that a peer is unavailable. If set, the value must be a value between 5 and 16. The default is 5. Multiplier int `pulumi:"multiplier"` // The BFD session initialization mode for this BGP peer. If set to ACTIVE, the Cloud Router will initiate the BFD session for this BGP peer. If set to PASSIVE, the Cloud Router will wait for the peer router to initiate the BFD session for this BGP peer. If set to DISABLED, BFD is disabled for this BGP peer. The default is PASSIVE. SessionInitializationMode string `pulumi:"sessionInitializationMode"` } type RouterBgpPeerBfdResponseOutput struct{ *pulumi.OutputState } func (RouterBgpPeerBfdResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*RouterBgpPeerBfdResponse)(nil)).Elem() } func (o RouterBgpPeerBfdResponseOutput) ToRouterBgpPeerBfdResponseOutput() RouterBgpPeerBfdResponseOutput { return o } func (o RouterBgpPeerBfdResponseOutput) ToRouterBgpPeerBfdResponseOutputWithContext(ctx context.Context) RouterBgpPeerBfdResponseOutput { return o } // The minimum interval, in milliseconds, between BFD control packets received from the peer router. The actual value is negotiated between the two routers and is equal to the greater of this value and the transmit interval of the other router. If set, this value must be between 1000 and 30000. The default is 1000. func (o RouterBgpPeerBfdResponseOutput) MinReceiveInterval() pulumi.IntOutput { return o.ApplyT(func(v RouterBgpPeerBfdResponse) int { return v.MinReceiveInterval }).(pulumi.IntOutput) } // The minimum interval, in milliseconds, between BFD control packets transmitted to the peer router. The actual value is negotiated between the two routers and is equal to the greater of this value and the corresponding receive interval of the other router. If set, this value must be between 1000 and 30000. The default is 1000. func (o RouterBgpPeerBfdResponseOutput) MinTransmitInterval() pulumi.IntOutput { return o.ApplyT(func(v RouterBgpPeerBfdResponse) int { return v.MinTransmitInterval }).(pulumi.IntOutput) } // The number of consecutive BFD packets that must be missed before BFD declares that a peer is unavailable. If set, the value must be a value between 5 and 16. The default is 5. func (o RouterBgpPeerBfdResponseOutput) Multiplier() pulumi.IntOutput { return o.ApplyT(func(v RouterBgpPeerBfdResponse) int { return v.Multiplier }).(pulumi.IntOutput) } // The BFD session initialization mode for this BGP peer. If set to ACTIVE, the Cloud Router will initiate the BFD session for this BGP peer. If set to PASSIVE, the Cloud Router will wait for the peer router to initiate the BFD session for this BGP peer. If set to DISABLED, BFD is disabled for this BGP peer. The default is PASSIVE. func (o RouterBgpPeerBfdResponseOutput) SessionInitializationMode() pulumi.StringOutput { return o.ApplyT(func(v RouterBgpPeerBfdResponse) string { return v.SessionInitializationMode }).(pulumi.StringOutput) } type RouterBgpPeerResponse struct { // User-specified flag to indicate which mode to use for advertisement. AdvertiseMode string `pulumi:"advertiseMode"` // User-specified list of prefix groups to advertise in custom mode, which can take one of the following options: - ALL_SUBNETS: Advertises all available subnets, including peer VPC subnets. - ALL_VPC_SUBNETS: Advertises the router's own VPC subnets. Note that this field can only be populated if advertise_mode is CUSTOM and overrides the list defined for the router (in the "bgp" message). These groups are advertised in addition to any specified prefixes. Leave this field blank to advertise no custom groups. AdvertisedGroups []string `pulumi:"advertisedGroups"` // User-specified list of individual IP ranges to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and overrides the list defined for the router (in the "bgp" message). These IP ranges are advertised in addition to any specified groups. Leave this field blank to advertise no custom IP ranges. AdvertisedIpRanges []RouterAdvertisedIpRangeResponse `pulumi:"advertisedIpRanges"` // The priority of routes advertised to this BGP peer. Where there is more than one matching route of maximum length, the routes with the lowest priority value win. AdvertisedRoutePriority int `pulumi:"advertisedRoutePriority"` // BFD configuration for the BGP peering. Bfd RouterBgpPeerBfdResponse `pulumi:"bfd"` // The status of the BGP peer connection. If set to FALSE, any active session with the peer is terminated and all associated routing information is removed. If set to TRUE, the peer connection can be established with routing information. The default is TRUE. Enable string `pulumi:"enable"` // Enable IPv6 traffic over BGP Peer. If not specified, it is disabled by default. EnableIpv6 bool `pulumi:"enableIpv6"` // Name of the interface the BGP peer is associated with. InterfaceName string `pulumi:"interfaceName"` // IP address of the interface inside Google Cloud Platform. Only IPv4 is supported. IpAddress string `pulumi:"ipAddress"` // IPv6 address of the interface inside Google Cloud Platform. Ipv6NexthopAddress string `pulumi:"ipv6NexthopAddress"` // The resource that configures and manages this BGP peer. - MANAGED_BY_USER is the default value and can be managed by you or other users - MANAGED_BY_ATTACHMENT is a BGP peer that is configured and managed by Cloud Interconnect, specifically by an InterconnectAttachment of type PARTNER. Google automatically creates, updates, and deletes this type of BGP peer when the PARTNER InterconnectAttachment is created, updated, or deleted. ManagementType string `pulumi:"managementType"` // Name of this BGP peer. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. Name string `pulumi:"name"` // Peer BGP Autonomous System Number (ASN). Each BGP interface may use a different value. PeerAsn int `pulumi:"peerAsn"` // IP address of the BGP interface outside Google Cloud Platform. Only IPv4 is supported. PeerIpAddress string `pulumi:"peerIpAddress"` // IPv6 address of the BGP interface outside Google Cloud Platform. PeerIpv6NexthopAddress string `pulumi:"peerIpv6NexthopAddress"` // URI of the VM instance that is used as third-party router appliances such as Next Gen Firewalls, Virtual Routers, or Router Appliances. The VM instance must be located in zones contained in the same region as this Cloud Router. The VM instance is the peer side of the BGP session. RouterApplianceInstance string `pulumi:"routerApplianceInstance"` } type RouterBgpPeerResponseOutput struct{ *pulumi.OutputState } func (RouterBgpPeerResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*RouterBgpPeerResponse)(nil)).Elem() } func (o RouterBgpPeerResponseOutput) ToRouterBgpPeerResponseOutput() RouterBgpPeerResponseOutput { return o } func (o RouterBgpPeerResponseOutput) ToRouterBgpPeerResponseOutputWithContext(ctx context.Context) RouterBgpPeerResponseOutput { return o } // User-specified flag to indicate which mode to use for advertisement. func (o RouterBgpPeerResponseOutput) AdvertiseMode() pulumi.StringOutput { return o.ApplyT(func(v RouterBgpPeerResponse) string { return v.AdvertiseMode }).(pulumi.StringOutput) } // User-specified list of prefix groups to advertise in custom mode, which can take one of the following options: - ALL_SUBNETS: Advertises all available subnets, including peer VPC subnets. - ALL_VPC_SUBNETS: Advertises the router's own VPC subnets. Note that this field can only be populated if advertise_mode is CUSTOM and overrides the list defined for the router (in the "bgp" message). These groups are advertised in addition to any specified prefixes. Leave this field blank to advertise no custom groups. func (o RouterBgpPeerResponseOutput) AdvertisedGroups() pulumi.StringArrayOutput { return o.ApplyT(func(v RouterBgpPeerResponse) []string { return v.AdvertisedGroups }).(pulumi.StringArrayOutput) } // User-specified list of individual IP ranges to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and overrides the list defined for the router (in the "bgp" message). These IP ranges are advertised in addition to any specified groups. Leave this field blank to advertise no custom IP ranges. func (o RouterBgpPeerResponseOutput) AdvertisedIpRanges() RouterAdvertisedIpRangeResponseArrayOutput { return o.ApplyT(func(v RouterBgpPeerResponse) []RouterAdvertisedIpRangeResponse { return v.AdvertisedIpRanges }).(RouterAdvertisedIpRangeResponseArrayOutput) } // The priority of routes advertised to this BGP peer. Where there is more than one matching route of maximum length, the routes with the lowest priority value win. func (o RouterBgpPeerResponseOutput) AdvertisedRoutePriority() pulumi.IntOutput { return o.ApplyT(func(v RouterBgpPeerResponse) int { return v.AdvertisedRoutePriority }).(pulumi.IntOutput) } // BFD configuration for the BGP peering. func (o RouterBgpPeerResponseOutput) Bfd() RouterBgpPeerBfdResponseOutput { return o.ApplyT(func(v RouterBgpPeerResponse) RouterBgpPeerBfdResponse { return v.Bfd }).(RouterBgpPeerBfdResponseOutput) } // The status of the BGP peer connection. If set to FALSE, any active session with the peer is terminated and all associated routing information is removed. If set to TRUE, the peer connection can be established with routing information. The default is TRUE. func (o RouterBgpPeerResponseOutput) Enable() pulumi.StringOutput { return o.ApplyT(func(v RouterBgpPeerResponse) string { return v.Enable }).(pulumi.StringOutput) } // Enable IPv6 traffic over BGP Peer. If not specified, it is disabled by default. func (o RouterBgpPeerResponseOutput) EnableIpv6() pulumi.BoolOutput { return o.ApplyT(func(v RouterBgpPeerResponse) bool { return v.EnableIpv6 }).(pulumi.BoolOutput) } // Name of the interface the BGP peer is associated with. func (o RouterBgpPeerResponseOutput) InterfaceName() pulumi.StringOutput { return o.ApplyT(func(v RouterBgpPeerResponse) string { return v.InterfaceName }).(pulumi.StringOutput) } // IP address of the interface inside Google Cloud Platform. Only IPv4 is supported. func (o RouterBgpPeerResponseOutput) IpAddress() pulumi.StringOutput { return o.ApplyT(func(v RouterBgpPeerResponse) string { return v.IpAddress }).(pulumi.StringOutput) } // IPv6 address of the interface inside Google Cloud Platform. func (o RouterBgpPeerResponseOutput) Ipv6NexthopAddress() pulumi.StringOutput { return o.ApplyT(func(v RouterBgpPeerResponse) string { return v.Ipv6NexthopAddress }).(pulumi.StringOutput) } // The resource that configures and manages this BGP peer. - MANAGED_BY_USER is the default value and can be managed by you or other users - MANAGED_BY_ATTACHMENT is a BGP peer that is configured and managed by Cloud Interconnect, specifically by an InterconnectAttachment of type PARTNER. Google automatically creates, updates, and deletes this type of BGP peer when the PARTNER InterconnectAttachment is created, updated, or deleted. func (o RouterBgpPeerResponseOutput) ManagementType() pulumi.StringOutput { return o.ApplyT(func(v RouterBgpPeerResponse) string { return v.ManagementType }).(pulumi.StringOutput) } // Name of this BGP peer. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. func (o RouterBgpPeerResponseOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v RouterBgpPeerResponse) string { return v.Name }).(pulumi.StringOutput) } // Peer BGP Autonomous System Number (ASN). Each BGP interface may use a different value. func (o RouterBgpPeerResponseOutput) PeerAsn() pulumi.IntOutput { return o.ApplyT(func(v RouterBgpPeerResponse) int { return v.PeerAsn }).(pulumi.IntOutput) } // IP address of the BGP interface outside Google Cloud Platform. Only IPv4 is supported. func (o RouterBgpPeerResponseOutput) PeerIpAddress() pulumi.StringOutput { return o.ApplyT(func(v RouterBgpPeerResponse) string { return v.PeerIpAddress }).(pulumi.StringOutput) } // IPv6 address of the BGP interface outside Google Cloud Platform. func (o RouterBgpPeerResponseOutput) PeerIpv6NexthopAddress() pulumi.StringOutput { return o.ApplyT(func(v RouterBgpPeerResponse) string { return v.PeerIpv6NexthopAddress }).(pulumi.StringOutput) } // URI of the VM instance that is used as third-party router appliances such as Next Gen Firewalls, Virtual Routers, or Router Appliances. The VM instance must be located in zones contained in the same region as this Cloud Router. The VM instance is the peer side of the BGP session. func (o RouterBgpPeerResponseOutput) RouterApplianceInstance() pulumi.StringOutput { return o.ApplyT(func(v RouterBgpPeerResponse) string { return v.RouterApplianceInstance }).(pulumi.StringOutput) } type RouterBgpPeerResponseArrayOutput struct{ *pulumi.OutputState } func (RouterBgpPeerResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]RouterBgpPeerResponse)(nil)).Elem() } func (o RouterBgpPeerResponseArrayOutput) ToRouterBgpPeerResponseArrayOutput() RouterBgpPeerResponseArrayOutput { return o } func (o RouterBgpPeerResponseArrayOutput) ToRouterBgpPeerResponseArrayOutputWithContext(ctx context.Context) RouterBgpPeerResponseArrayOutput { return o } func (o RouterBgpPeerResponseArrayOutput) Index(i pulumi.IntInput) RouterBgpPeerResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouterBgpPeerResponse { return vs[0].([]RouterBgpPeerResponse)[vs[1].(int)] }).(RouterBgpPeerResponseOutput) } type RouterBgpResponse struct { // User-specified flag to indicate which mode to use for advertisement. The options are DEFAULT or CUSTOM. AdvertiseMode string `pulumi:"advertiseMode"` // User-specified list of prefix groups to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and is advertised to all peers of the router. These groups will be advertised in addition to any specified prefixes. Leave this field blank to advertise no custom groups. AdvertisedGroups []string `pulumi:"advertisedGroups"` // User-specified list of individual IP ranges to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and is advertised to all peers of the router. These IP ranges will be advertised in addition to any specified groups. Leave this field blank to advertise no custom IP ranges. AdvertisedIpRanges []RouterAdvertisedIpRangeResponse `pulumi:"advertisedIpRanges"` // Local BGP Autonomous System Number (ASN). Must be an RFC6996 private ASN, either 16-bit or 32-bit. The value will be fixed for this router resource. All VPN tunnels that link to this router will have the same local ASN. Asn int `pulumi:"asn"` // The interval in seconds between BGP keepalive messages that are sent to the peer. Hold time is three times the interval at which keepalive messages are sent, and the hold time is the maximum number of seconds allowed to elapse between successive keepalive messages that BGP receives from a peer. BGP will use the smaller of either the local hold time value or the peer's hold time value as the hold time for the BGP connection between the two peers. If set, this value must be between 20 and 60. The default is 20. KeepaliveInterval int `pulumi:"keepaliveInterval"` } type RouterBgpResponseOutput struct{ *pulumi.OutputState } func (RouterBgpResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*RouterBgpResponse)(nil)).Elem() } func (o RouterBgpResponseOutput) ToRouterBgpResponseOutput() RouterBgpResponseOutput { return o } func (o RouterBgpResponseOutput) ToRouterBgpResponseOutputWithContext(ctx context.Context) RouterBgpResponseOutput { return o } // User-specified flag to indicate which mode to use for advertisement. The options are DEFAULT or CUSTOM. func (o RouterBgpResponseOutput) AdvertiseMode() pulumi.StringOutput { return o.ApplyT(func(v RouterBgpResponse) string { return v.AdvertiseMode }).(pulumi.StringOutput) } // User-specified list of prefix groups to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and is advertised to all peers of the router. These groups will be advertised in addition to any specified prefixes. Leave this field blank to advertise no custom groups. func (o RouterBgpResponseOutput) AdvertisedGroups() pulumi.StringArrayOutput { return o.ApplyT(func(v RouterBgpResponse) []string { return v.AdvertisedGroups }).(pulumi.StringArrayOutput) } // User-specified list of individual IP ranges to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and is advertised to all peers of the router. These IP ranges will be advertised in addition to any specified groups. Leave this field blank to advertise no custom IP ranges. func (o RouterBgpResponseOutput) AdvertisedIpRanges() RouterAdvertisedIpRangeResponseArrayOutput { return o.ApplyT(func(v RouterBgpResponse) []RouterAdvertisedIpRangeResponse { return v.AdvertisedIpRanges }).(RouterAdvertisedIpRangeResponseArrayOutput) } // Local BGP Autonomous System Number (ASN). Must be an RFC6996 private ASN, either 16-bit or 32-bit. The value will be fixed for this router resource. All VPN tunnels that link to this router will have the same local ASN. func (o RouterBgpResponseOutput) Asn() pulumi.IntOutput { return o.ApplyT(func(v RouterBgpResponse) int { return v.Asn }).(pulumi.IntOutput) } // The interval in seconds between BGP keepalive messages that are sent to the peer. Hold time is three times the interval at which keepalive messages are sent, and the hold time is the maximum number of seconds allowed to elapse between successive keepalive messages that BGP receives from a peer. BGP will use the smaller of either the local hold time value or the peer's hold time value as the hold time for the BGP connection between the two peers. If set, this value must be between 20 and 60. The default is 20. func (o RouterBgpResponseOutput) KeepaliveInterval() pulumi.IntOutput { return o.ApplyT(func(v RouterBgpResponse) int { return v.KeepaliveInterval }).(pulumi.IntOutput) } type RouterInterface struct { // IP address and range of the interface. The IP range must be in the RFC3927 link-local IP address space. The value must be a CIDR-formatted string, for example: 169.254.0.1/30. NOTE: Do not truncate the address as it represents the IP address of the interface. IpRange *string `pulumi:"ipRange"` // URI of the linked Interconnect attachment. It must be in the same region as the router. Each interface can have one linked resource, which can be a VPN tunnel, an Interconnect attachment, or a virtual machine instance. LinkedInterconnectAttachment *string `pulumi:"linkedInterconnectAttachment"` // URI of the linked VPN tunnel, which must be in the same region as the router. Each interface can have one linked resource, which can be a VPN tunnel, an Interconnect attachment, or a virtual machine instance. LinkedVpnTunnel *string `pulumi:"linkedVpnTunnel"` // Name of this interface entry. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. Name *string `pulumi:"name"` // The regional private internal IP address that is used to establish BGP sessions to a VM instance acting as a third-party Router Appliance, such as a Next Gen Firewall, a Virtual Router, or an SD-WAN VM. PrivateIpAddress *string `pulumi:"privateIpAddress"` // Name of the interface that will be redundant with the current interface you are creating. The redundantInterface must belong to the same Cloud Router as the interface here. To establish the BGP session to a Router Appliance VM, you must create two BGP peers. The two BGP peers must be attached to two separate interfaces that are redundant with each other. The redundant_interface must be 1-63 characters long, and comply with RFC1035. Specifically, the redundant_interface must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. RedundantInterface *string `pulumi:"redundantInterface"` // The URI of the subnetwork resource that this interface belongs to, which must be in the same region as the Cloud Router. When you establish a BGP session to a VM instance using this interface, the VM instance must belong to the same subnetwork as the subnetwork specified here. Subnetwork *string `pulumi:"subnetwork"` } // RouterInterfaceInput is an input type that accepts RouterInterfaceArgs and RouterInterfaceOutput values. // You can construct a concrete instance of `RouterInterfaceInput` via: // // RouterInterfaceArgs{...} type RouterInterfaceInput interface { pulumi.Input ToRouterInterfaceOutput() RouterInterfaceOutput ToRouterInterfaceOutputWithContext(context.Context) RouterInterfaceOutput } type RouterInterfaceArgs struct { // IP address and range of the interface. The IP range must be in the RFC3927 link-local IP address space. The value must be a CIDR-formatted string, for example: 169.254.0.1/30. NOTE: Do not truncate the address as it represents the IP address of the interface. IpRange pulumi.StringPtrInput `pulumi:"ipRange"` // URI of the linked Interconnect attachment. It must be in the same region as the router. Each interface can have one linked resource, which can be a VPN tunnel, an Interconnect attachment, or a virtual machine instance. LinkedInterconnectAttachment pulumi.StringPtrInput `pulumi:"linkedInterconnectAttachment"` // URI of the linked VPN tunnel, which must be in the same region as the router. Each interface can have one linked resource, which can be a VPN tunnel, an Interconnect attachment, or a virtual machine instance. LinkedVpnTunnel pulumi.StringPtrInput `pulumi:"linkedVpnTunnel"` // Name of this interface entry. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. Name pulumi.StringPtrInput `pulumi:"name"` // The regional private internal IP address that is used to establish BGP sessions to a VM instance acting as a third-party Router Appliance, such as a Next Gen Firewall, a Virtual Router, or an SD-WAN VM. PrivateIpAddress pulumi.StringPtrInput `pulumi:"privateIpAddress"` // Name of the interface that will be redundant with the current interface you are creating. The redundantInterface must belong to the same Cloud Router as the interface here. To establish the BGP session to a Router Appliance VM, you must create two BGP peers. The two BGP peers must be attached to two separate interfaces that are redundant with each other. The redundant_interface must be 1-63 characters long, and comply with RFC1035. Specifically, the redundant_interface must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. RedundantInterface pulumi.StringPtrInput `pulumi:"redundantInterface"` // The URI of the subnetwork resource that this interface belongs to, which must be in the same region as the Cloud Router. When you establish a BGP session to a VM instance using this interface, the VM instance must belong to the same subnetwork as the subnetwork specified here. Subnetwork pulumi.StringPtrInput `pulumi:"subnetwork"` } func (RouterInterfaceArgs) ElementType() reflect.Type { return reflect.TypeOf((*RouterInterface)(nil)).Elem() } func (i RouterInterfaceArgs) ToRouterInterfaceOutput() RouterInterfaceOutput { return i.ToRouterInterfaceOutputWithContext(context.Background()) } func (i RouterInterfaceArgs) ToRouterInterfaceOutputWithContext(ctx context.Context) RouterInterfaceOutput { return pulumi.ToOutputWithContext(ctx, i).(RouterInterfaceOutput) } // RouterInterfaceArrayInput is an input type that accepts RouterInterfaceArray and RouterInterfaceArrayOutput values. // You can construct a concrete instance of `RouterInterfaceArrayInput` via: // // RouterInterfaceArray{ RouterInterfaceArgs{...} } type RouterInterfaceArrayInput interface { pulumi.Input ToRouterInterfaceArrayOutput() RouterInterfaceArrayOutput ToRouterInterfaceArrayOutputWithContext(context.Context) RouterInterfaceArrayOutput } type RouterInterfaceArray []RouterInterfaceInput func (RouterInterfaceArray) ElementType() reflect.Type { return reflect.TypeOf((*[]RouterInterface)(nil)).Elem() } func (i RouterInterfaceArray) ToRouterInterfaceArrayOutput() RouterInterfaceArrayOutput { return i.ToRouterInterfaceArrayOutputWithContext(context.Background()) } func (i RouterInterfaceArray) ToRouterInterfaceArrayOutputWithContext(ctx context.Context) RouterInterfaceArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(RouterInterfaceArrayOutput) } type RouterInterfaceOutput struct{ *pulumi.OutputState } func (RouterInterfaceOutput) ElementType() reflect.Type { return reflect.TypeOf((*RouterInterface)(nil)).Elem() } func (o RouterInterfaceOutput) ToRouterInterfaceOutput() RouterInterfaceOutput { return o } func (o RouterInterfaceOutput) ToRouterInterfaceOutputWithContext(ctx context.Context) RouterInterfaceOutput { return o } // IP address and range of the interface. The IP range must be in the RFC3927 link-local IP address space. The value must be a CIDR-formatted string, for example: 169.254.0.1/30. NOTE: Do not truncate the address as it represents the IP address of the interface. func (o RouterInterfaceOutput) IpRange() pulumi.StringPtrOutput { return o.ApplyT(func(v RouterInterface) *string { return v.IpRange }).(pulumi.StringPtrOutput) } // URI of the linked Interconnect attachment. It must be in the same region as the router. Each interface can have one linked resource, which can be a VPN tunnel, an Interconnect attachment, or a virtual machine instance. func (o RouterInterfaceOutput) LinkedInterconnectAttachment() pulumi.StringPtrOutput { return o.ApplyT(func(v RouterInterface) *string { return v.LinkedInterconnectAttachment }).(pulumi.StringPtrOutput) } // URI of the linked VPN tunnel, which must be in the same region as the router. Each interface can have one linked resource, which can be a VPN tunnel, an Interconnect attachment, or a virtual machine instance. func (o RouterInterfaceOutput) LinkedVpnTunnel() pulumi.StringPtrOutput { return o.ApplyT(func(v RouterInterface) *string { return v.LinkedVpnTunnel }).(pulumi.StringPtrOutput) } // Name of this interface entry. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. func (o RouterInterfaceOutput) Name() pulumi.StringPtrOutput { return o.ApplyT(func(v RouterInterface) *string { return v.Name }).(pulumi.StringPtrOutput) } // The regional private internal IP address that is used to establish BGP sessions to a VM instance acting as a third-party Router Appliance, such as a Next Gen Firewall, a Virtual Router, or an SD-WAN VM. func (o RouterInterfaceOutput) PrivateIpAddress() pulumi.StringPtrOutput { return o.ApplyT(func(v RouterInterface) *string { return v.PrivateIpAddress }).(pulumi.StringPtrOutput) } // Name of the interface that will be redundant with the current interface you are creating. The redundantInterface must belong to the same Cloud Router as the interface here. To establish the BGP session to a Router Appliance VM, you must create two BGP peers. The two BGP peers must be attached to two separate interfaces that are redundant with each other. The redundant_interface must be 1-63 characters long, and comply with RFC1035. Specifically, the redundant_interface must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. func (o RouterInterfaceOutput) RedundantInterface() pulumi.StringPtrOutput { return o.ApplyT(func(v RouterInterface) *string { return v.RedundantInterface }).(pulumi.StringPtrOutput) } // The URI of the subnetwork resource that this interface belongs to, which must be in the same region as the Cloud Router. When you establish a BGP session to a VM instance using this interface, the VM instance must belong to the same subnetwork as the subnetwork specified here. func (o RouterInterfaceOutput) Subnetwork() pulumi.StringPtrOutput { return o.ApplyT(func(v RouterInterface) *string { return v.Subnetwork }).(pulumi.StringPtrOutput) } type RouterInterfaceArrayOutput struct{ *pulumi.OutputState } func (RouterInterfaceArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]RouterInterface)(nil)).Elem() } func (o RouterInterfaceArrayOutput) ToRouterInterfaceArrayOutput() RouterInterfaceArrayOutput { return o } func (o RouterInterfaceArrayOutput) ToRouterInterfaceArrayOutputWithContext(ctx context.Context) RouterInterfaceArrayOutput { return o } func (o RouterInterfaceArrayOutput) Index(i pulumi.IntInput) RouterInterfaceOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouterInterface { return vs[0].([]RouterInterface)[vs[1].(int)] }).(RouterInterfaceOutput) } type RouterInterfaceResponse struct { // IP address and range of the interface. The IP range must be in the RFC3927 link-local IP address space. The value must be a CIDR-formatted string, for example: 169.254.0.1/30. NOTE: Do not truncate the address as it represents the IP address of the interface. IpRange string `pulumi:"ipRange"` // URI of the linked Interconnect attachment. It must be in the same region as the router. Each interface can have one linked resource, which can be a VPN tunnel, an Interconnect attachment, or a virtual machine instance. LinkedInterconnectAttachment string `pulumi:"linkedInterconnectAttachment"` // URI of the linked VPN tunnel, which must be in the same region as the router. Each interface can have one linked resource, which can be a VPN tunnel, an Interconnect attachment, or a virtual machine instance. LinkedVpnTunnel string `pulumi:"linkedVpnTunnel"` // The resource that configures and manages this interface. - MANAGED_BY_USER is the default value and can be managed directly by users. - MANAGED_BY_ATTACHMENT is an interface that is configured and managed by Cloud Interconnect, specifically, by an InterconnectAttachment of type PARTNER. Google automatically creates, updates, and deletes this type of interface when the PARTNER InterconnectAttachment is created, updated, or deleted. ManagementType string `pulumi:"managementType"` // Name of this interface entry. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. Name string `pulumi:"name"` // The regional private internal IP address that is used to establish BGP sessions to a VM instance acting as a third-party Router Appliance, such as a Next Gen Firewall, a Virtual Router, or an SD-WAN VM. PrivateIpAddress string `pulumi:"privateIpAddress"` // Name of the interface that will be redundant with the current interface you are creating. The redundantInterface must belong to the same Cloud Router as the interface here. To establish the BGP session to a Router Appliance VM, you must create two BGP peers. The two BGP peers must be attached to two separate interfaces that are redundant with each other. The redundant_interface must be 1-63 characters long, and comply with RFC1035. Specifically, the redundant_interface must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. RedundantInterface string `pulumi:"redundantInterface"` // The URI of the subnetwork resource that this interface belongs to, which must be in the same region as the Cloud Router. When you establish a BGP session to a VM instance using this interface, the VM instance must belong to the same subnetwork as the subnetwork specified here. Subnetwork string `pulumi:"subnetwork"` } type RouterInterfaceResponseOutput struct{ *pulumi.OutputState } func (RouterInterfaceResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*RouterInterfaceResponse)(nil)).Elem() } func (o RouterInterfaceResponseOutput) ToRouterInterfaceResponseOutput() RouterInterfaceResponseOutput { return o } func (o RouterInterfaceResponseOutput) ToRouterInterfaceResponseOutputWithContext(ctx context.Context) RouterInterfaceResponseOutput { return o } // IP address and range of the interface. The IP range must be in the RFC3927 link-local IP address space. The value must be a CIDR-formatted string, for example: 169.254.0.1/30. NOTE: Do not truncate the address as it represents the IP address of the interface. func (o RouterInterfaceResponseOutput) IpRange() pulumi.StringOutput { return o.ApplyT(func(v RouterInterfaceResponse) string { return v.IpRange }).(pulumi.StringOutput) } // URI of the linked Interconnect attachment. It must be in the same region as the router. Each interface can have one linked resource, which can be a VPN tunnel, an Interconnect attachment, or a virtual machine instance. func (o RouterInterfaceResponseOutput) LinkedInterconnectAttachment() pulumi.StringOutput { return o.ApplyT(func(v RouterInterfaceResponse) string { return v.LinkedInterconnectAttachment }).(pulumi.StringOutput) } // URI of the linked VPN tunnel, which must be in the same region as the router. Each interface can have one linked resource, which can be a VPN tunnel, an Interconnect attachment, or a virtual machine instance. func (o RouterInterfaceResponseOutput) LinkedVpnTunnel() pulumi.StringOutput { return o.ApplyT(func(v RouterInterfaceResponse) string { return v.LinkedVpnTunnel }).(pulumi.StringOutput) } // The resource that configures and manages this interface. - MANAGED_BY_USER is the default value and can be managed directly by users. - MANAGED_BY_ATTACHMENT is an interface that is configured and managed by Cloud Interconnect, specifically, by an InterconnectAttachment of type PARTNER. Google automatically creates, updates, and deletes this type of interface when the PARTNER InterconnectAttachment is created, updated, or deleted. func (o RouterInterfaceResponseOutput) ManagementType() pulumi.StringOutput { return o.ApplyT(func(v RouterInterfaceResponse) string { return v.ManagementType }).(pulumi.StringOutput) } // Name of this interface entry. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. func (o RouterInterfaceResponseOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v RouterInterfaceResponse) string { return v.Name }).(pulumi.StringOutput) } // The regional private internal IP address that is used to establish BGP sessions to a VM instance acting as a third-party Router Appliance, such as a Next Gen Firewall, a Virtual Router, or an SD-WAN VM. func (o RouterInterfaceResponseOutput) PrivateIpAddress() pulumi.StringOutput { return o.ApplyT(func(v RouterInterfaceResponse) string { return v.PrivateIpAddress }).(pulumi.StringOutput) } // Name of the interface that will be redundant with the current interface you are creating. The redundantInterface must belong to the same Cloud Router as the interface here. To establish the BGP session to a Router Appliance VM, you must create two BGP peers. The two BGP peers must be attached to two separate interfaces that are redundant with each other. The redundant_interface must be 1-63 characters long, and comply with RFC1035. Specifically, the redundant_interface must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. func (o RouterInterfaceResponseOutput) RedundantInterface() pulumi.StringOutput { return o.ApplyT(func(v RouterInterfaceResponse) string { return v.RedundantInterface }).(pulumi.StringOutput) } // The URI of the subnetwork resource that this interface belongs to, which must be in the same region as the Cloud Router. When you establish a BGP session to a VM instance using this interface, the VM instance must belong to the same subnetwork as the subnetwork specified here. func (o RouterInterfaceResponseOutput) Subnetwork() pulumi.StringOutput { return o.ApplyT(func(v RouterInterfaceResponse) string { return v.Subnetwork }).(pulumi.StringOutput) } type RouterInterfaceResponseArrayOutput struct{ *pulumi.OutputState } func (RouterInterfaceResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]RouterInterfaceResponse)(nil)).Elem() } func (o RouterInterfaceResponseArrayOutput) ToRouterInterfaceResponseArrayOutput() RouterInterfaceResponseArrayOutput { return o } func (o RouterInterfaceResponseArrayOutput) ToRouterInterfaceResponseArrayOutputWithContext(ctx context.Context) RouterInterfaceResponseArrayOutput { return o } func (o RouterInterfaceResponseArrayOutput) Index(i pulumi.IntInput) RouterInterfaceResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouterInterfaceResponse { return vs[0].([]RouterInterfaceResponse)[vs[1].(int)] }).(RouterInterfaceResponseOutput) } // Represents a Nat resource. It enables the VMs within the specified subnetworks to access Internet without external IP addresses. It specifies a list of subnetworks (and the ranges within) that want to use NAT. Customers can also provide the external IPs that would be used for NAT. GCP would auto-allocate ephemeral IPs if no external IPs are provided. type RouterNat struct { // A list of URLs of the IP resources to be drained. These IPs must be valid static external IPs that have been assigned to the NAT. These IPs should be used for updating/patching a NAT only. DrainNatIps []string `pulumi:"drainNatIps"` // Enable Dynamic Port Allocation. If not specified, it is disabled by default. If set to true, - Dynamic Port Allocation will be enabled on this NAT config. - enableEndpointIndependentMapping cannot be set to true. - If minPorts is set, minPortsPerVm must be set to a power of two greater than or equal to 32. If minPortsPerVm is not set, a minimum of 32 ports will be allocated to a VM from this NAT config. EnableDynamicPortAllocation *bool `pulumi:"enableDynamicPortAllocation"` EnableEndpointIndependentMapping *bool `pulumi:"enableEndpointIndependentMapping"` // Timeout (in seconds) for ICMP connections. Defaults to 30s if not set. IcmpIdleTimeoutSec *int `pulumi:"icmpIdleTimeoutSec"` // Configure logging on this NAT. LogConfig *RouterNatLogConfig `pulumi:"logConfig"` // Maximum number of ports allocated to a VM from this NAT config when Dynamic Port Allocation is enabled. If Dynamic Port Allocation is not enabled, this field has no effect. If Dynamic Port Allocation is enabled, and this field is set, it must be set to a power of two greater than minPortsPerVm, or 64 if minPortsPerVm is not set. If Dynamic Port Allocation is enabled and this field is not set, a maximum of 65536 ports will be allocated to a VM from this NAT config. MaxPortsPerVm *int `pulumi:"maxPortsPerVm"` // Minimum number of ports allocated to a VM from this NAT config. If not set, a default number of ports is allocated to a VM. This is rounded up to the nearest power of 2. For example, if the value of this field is 50, at least 64 ports are allocated to a VM. MinPortsPerVm *int `pulumi:"minPortsPerVm"` // Unique name of this Nat service. The name must be 1-63 characters long and comply with RFC1035. Name *string `pulumi:"name"` // Specify the NatIpAllocateOption, which can take one of the following values: - MANUAL_ONLY: Uses only Nat IP addresses provided by customers. When there are not enough specified Nat IPs, the Nat service fails for new VMs. - AUTO_ONLY: Nat IPs are allocated by Google Cloud Platform; customers can't specify any Nat IPs. When choosing AUTO_ONLY, then nat_ip should be empty. NatIpAllocateOption *RouterNatNatIpAllocateOption `pulumi:"natIpAllocateOption"` // A list of URLs of the IP resources used for this Nat service. These IP addresses must be valid static external IP addresses assigned to the project. NatIps []string `pulumi:"natIps"` // A list of rules associated with this NAT. Rules []RouterNatRule `pulumi:"rules"` // Specify the Nat option, which can take one of the following values: - ALL_SUBNETWORKS_ALL_IP_RANGES: All of the IP ranges in every Subnetwork are allowed to Nat. - ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES: All of the primary IP ranges in every Subnetwork are allowed to Nat. - LIST_OF_SUBNETWORKS: A list of Subnetworks are allowed to Nat (specified in the field subnetwork below) The default is SUBNETWORK_IP_RANGE_TO_NAT_OPTION_UNSPECIFIED. Note that if this field contains ALL_SUBNETWORKS_ALL_IP_RANGES or ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES, then there should not be any other Router.Nat section in any Router for this network in this region. SourceSubnetworkIpRangesToNat *RouterNatSourceSubnetworkIpRangesToNat `pulumi:"sourceSubnetworkIpRangesToNat"` // A list of Subnetwork resources whose traffic should be translated by NAT Gateway. It is used only when LIST_OF_SUBNETWORKS is selected for the SubnetworkIpRangeToNatOption above. Subnetworks []RouterNatSubnetworkToNat `pulumi:"subnetworks"` // Timeout (in seconds) for TCP established connections. Defaults to 1200s if not set. TcpEstablishedIdleTimeoutSec *int `pulumi:"tcpEstablishedIdleTimeoutSec"` // Timeout (in seconds) for TCP connections that are in TIME_WAIT state. Defaults to 120s if not set. TcpTimeWaitTimeoutSec *int `pulumi:"tcpTimeWaitTimeoutSec"` // Timeout (in seconds) for TCP transitory connections. Defaults to 30s if not set. TcpTransitoryIdleTimeoutSec *int `pulumi:"tcpTransitoryIdleTimeoutSec"` // Timeout (in seconds) for UDP connections. Defaults to 30s if not set. UdpIdleTimeoutSec *int `pulumi:"udpIdleTimeoutSec"` } // RouterNatInput is an input type that accepts RouterNatArgs and RouterNatOutput values. // You can construct a concrete instance of `RouterNatInput` via: // // RouterNatArgs{...} type RouterNatInput interface { pulumi.Input ToRouterNatOutput() RouterNatOutput ToRouterNatOutputWithContext(context.Context) RouterNatOutput } // Represents a Nat resource. It enables the VMs within the specified subnetworks to access Internet without external IP addresses. It specifies a list of subnetworks (and the ranges within) that want to use NAT. Customers can also provide the external IPs that would be used for NAT. GCP would auto-allocate ephemeral IPs if no external IPs are provided. type RouterNatArgs struct { // A list of URLs of the IP resources to be drained. These IPs must be valid static external IPs that have been assigned to the NAT. These IPs should be used for updating/patching a NAT only. DrainNatIps pulumi.StringArrayInput `pulumi:"drainNatIps"` // Enable Dynamic Port Allocation. If not specified, it is disabled by default. If set to true, - Dynamic Port Allocation will be enabled on this NAT config. - enableEndpointIndependentMapping cannot be set to true. - If minPorts is set, minPortsPerVm must be set to a power of two greater than or equal to 32. If minPortsPerVm is not set, a minimum of 32 ports will be allocated to a VM from this NAT config. EnableDynamicPortAllocation pulumi.BoolPtrInput `pulumi:"enableDynamicPortAllocation"` EnableEndpointIndependentMapping pulumi.BoolPtrInput `pulumi:"enableEndpointIndependentMapping"` // Timeout (in seconds) for ICMP connections. Defaults to 30s if not set. IcmpIdleTimeoutSec pulumi.IntPtrInput `pulumi:"icmpIdleTimeoutSec"` // Configure logging on this NAT. LogConfig RouterNatLogConfigPtrInput `pulumi:"logConfig"` // Maximum number of ports allocated to a VM from this NAT config when Dynamic Port Allocation is enabled. If Dynamic Port Allocation is not enabled, this field has no effect. If Dynamic Port Allocation is enabled, and this field is set, it must be set to a power of two greater than minPortsPerVm, or 64 if minPortsPerVm is not set. If Dynamic Port Allocation is enabled and this field is not set, a maximum of 65536 ports will be allocated to a VM from this NAT config. MaxPortsPerVm pulumi.IntPtrInput `pulumi:"maxPortsPerVm"` // Minimum number of ports allocated to a VM from this NAT config. If not set, a default number of ports is allocated to a VM. This is rounded up to the nearest power of 2. For example, if the value of this field is 50, at least 64 ports are allocated to a VM. MinPortsPerVm pulumi.IntPtrInput `pulumi:"minPortsPerVm"` // Unique name of this Nat service. The name must be 1-63 characters long and comply with RFC1035. Name pulumi.StringPtrInput `pulumi:"name"` // Specify the NatIpAllocateOption, which can take one of the following values: - MANUAL_ONLY: Uses only Nat IP addresses provided by customers. When there are not enough specified Nat IPs, the Nat service fails for new VMs. - AUTO_ONLY: Nat IPs are allocated by Google Cloud Platform; customers can't specify any Nat IPs. When choosing AUTO_ONLY, then nat_ip should be empty. NatIpAllocateOption RouterNatNatIpAllocateOptionPtrInput `pulumi:"natIpAllocateOption"` // A list of URLs of the IP resources used for this Nat service. These IP addresses must be valid static external IP addresses assigned to the project. NatIps pulumi.StringArrayInput `pulumi:"natIps"` // A list of rules associated with this NAT. Rules RouterNatRuleArrayInput `pulumi:"rules"` // Specify the Nat option, which can take one of the following values: - ALL_SUBNETWORKS_ALL_IP_RANGES: All of the IP ranges in every Subnetwork are allowed to Nat. - ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES: All of the primary IP ranges in every Subnetwork are allowed to Nat. - LIST_OF_SUBNETWORKS: A list of Subnetworks are allowed to Nat (specified in the field subnetwork below) The default is SUBNETWORK_IP_RANGE_TO_NAT_OPTION_UNSPECIFIED. Note that if this field contains ALL_SUBNETWORKS_ALL_IP_RANGES or ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES, then there should not be any other Router.Nat section in any Router for this network in this region. SourceSubnetworkIpRangesToNat RouterNatSourceSubnetworkIpRangesToNatPtrInput `pulumi:"sourceSubnetworkIpRangesToNat"` // A list of Subnetwork resources whose traffic should be translated by NAT Gateway. It is used only when LIST_OF_SUBNETWORKS is selected for the SubnetworkIpRangeToNatOption above. Subnetworks RouterNatSubnetworkToNatArrayInput `pulumi:"subnetworks"` // Timeout (in seconds) for TCP established connections. Defaults to 1200s if not set. TcpEstablishedIdleTimeoutSec pulumi.IntPtrInput `pulumi:"tcpEstablishedIdleTimeoutSec"` // Timeout (in seconds) for TCP connections that are in TIME_WAIT state. Defaults to 120s if not set. TcpTimeWaitTimeoutSec pulumi.IntPtrInput `pulumi:"tcpTimeWaitTimeoutSec"` // Timeout (in seconds) for TCP transitory connections. Defaults to 30s if not set. TcpTransitoryIdleTimeoutSec pulumi.IntPtrInput `pulumi:"tcpTransitoryIdleTimeoutSec"` // Timeout (in seconds) for UDP connections. Defaults to 30s if not set. UdpIdleTimeoutSec pulumi.IntPtrInput `pulumi:"udpIdleTimeoutSec"` } func (RouterNatArgs) ElementType() reflect.Type { return reflect.TypeOf((*RouterNat)(nil)).Elem() } func (i RouterNatArgs) ToRouterNatOutput() RouterNatOutput { return i.ToRouterNatOutputWithContext(context.Background()) } func (i RouterNatArgs) ToRouterNatOutputWithContext(ctx context.Context) RouterNatOutput { return pulumi.ToOutputWithContext(ctx, i).(RouterNatOutput) } // RouterNatArrayInput is an input type that accepts RouterNatArray and RouterNatArrayOutput values. // You can construct a concrete instance of `RouterNatArrayInput` via: // // RouterNatArray{ RouterNatArgs{...} } type RouterNatArrayInput interface { pulumi.Input ToRouterNatArrayOutput() RouterNatArrayOutput ToRouterNatArrayOutputWithContext(context.Context) RouterNatArrayOutput } type RouterNatArray []RouterNatInput func (RouterNatArray) ElementType() reflect.Type { return reflect.TypeOf((*[]RouterNat)(nil)).Elem() } func (i RouterNatArray) ToRouterNatArrayOutput() RouterNatArrayOutput { return i.ToRouterNatArrayOutputWithContext(context.Background()) } func (i RouterNatArray) ToRouterNatArrayOutputWithContext(ctx context.Context) RouterNatArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(RouterNatArrayOutput) } // Represents a Nat resource. It enables the VMs within the specified subnetworks to access Internet without external IP addresses. It specifies a list of subnetworks (and the ranges within) that want to use NAT. Customers can also provide the external IPs that would be used for NAT. GCP would auto-allocate ephemeral IPs if no external IPs are provided. type RouterNatOutput struct{ *pulumi.OutputState } func (RouterNatOutput) ElementType() reflect.Type { return reflect.TypeOf((*RouterNat)(nil)).Elem() } func (o RouterNatOutput) ToRouterNatOutput() RouterNatOutput { return o } func (o RouterNatOutput) ToRouterNatOutputWithContext(ctx context.Context) RouterNatOutput { return o } // A list of URLs of the IP resources to be drained. These IPs must be valid static external IPs that have been assigned to the NAT. These IPs should be used for updating/patching a NAT only. func (o RouterNatOutput) DrainNatIps() pulumi.StringArrayOutput { return o.ApplyT(func(v RouterNat) []string { return v.DrainNatIps }).(pulumi.StringArrayOutput) } // Enable Dynamic Port Allocation. If not specified, it is disabled by default. If set to true, - Dynamic Port Allocation will be enabled on this NAT config. - enableEndpointIndependentMapping cannot be set to true. - If minPorts is set, minPortsPerVm must be set to a power of two greater than or equal to 32. If minPortsPerVm is not set, a minimum of 32 ports will be allocated to a VM from this NAT config. func (o RouterNatOutput) EnableDynamicPortAllocation() pulumi.BoolPtrOutput { return o.ApplyT(func(v RouterNat) *bool { return v.EnableDynamicPortAllocation }).(pulumi.BoolPtrOutput) } func (o RouterNatOutput) EnableEndpointIndependentMapping() pulumi.BoolPtrOutput { return o.ApplyT(func(v RouterNat) *bool { return v.EnableEndpointIndependentMapping }).(pulumi.BoolPtrOutput) } // Timeout (in seconds) for ICMP connections. Defaults to 30s if not set. func (o RouterNatOutput) IcmpIdleTimeoutSec() pulumi.IntPtrOutput { return o.ApplyT(func(v RouterNat) *int { return v.IcmpIdleTimeoutSec }).(pulumi.IntPtrOutput) } // Configure logging on this NAT. func (o RouterNatOutput) LogConfig() RouterNatLogConfigPtrOutput { return o.ApplyT(func(v RouterNat) *RouterNatLogConfig { return v.LogConfig }).(RouterNatLogConfigPtrOutput) } // Maximum number of ports allocated to a VM from this NAT config when Dynamic Port Allocation is enabled. If Dynamic Port Allocation is not enabled, this field has no effect. If Dynamic Port Allocation is enabled, and this field is set, it must be set to a power of two greater than minPortsPerVm, or 64 if minPortsPerVm is not set. If Dynamic Port Allocation is enabled and this field is not set, a maximum of 65536 ports will be allocated to a VM from this NAT config. func (o RouterNatOutput) MaxPortsPerVm() pulumi.IntPtrOutput { return o.ApplyT(func(v RouterNat) *int { return v.MaxPortsPerVm }).(pulumi.IntPtrOutput) } // Minimum number of ports allocated to a VM from this NAT config. If not set, a default number of ports is allocated to a VM. This is rounded up to the nearest power of 2. For example, if the value of this field is 50, at least 64 ports are allocated to a VM. func (o RouterNatOutput) MinPortsPerVm() pulumi.IntPtrOutput { return o.ApplyT(func(v RouterNat) *int { return v.MinPortsPerVm }).(pulumi.IntPtrOutput) } // Unique name of this Nat service. The name must be 1-63 characters long and comply with RFC1035. func (o RouterNatOutput) Name() pulumi.StringPtrOutput { return o.ApplyT(func(v RouterNat) *string { return v.Name }).(pulumi.StringPtrOutput) } // Specify the NatIpAllocateOption, which can take one of the following values: - MANUAL_ONLY: Uses only Nat IP addresses provided by customers. When there are not enough specified Nat IPs, the Nat service fails for new VMs. - AUTO_ONLY: Nat IPs are allocated by Google Cloud Platform; customers can't specify any Nat IPs. When choosing AUTO_ONLY, then nat_ip should be empty. func (o RouterNatOutput) NatIpAllocateOption() RouterNatNatIpAllocateOptionPtrOutput { return o.ApplyT(func(v RouterNat) *RouterNatNatIpAllocateOption { return v.NatIpAllocateOption }).(RouterNatNatIpAllocateOptionPtrOutput) } // A list of URLs of the IP resources used for this Nat service. These IP addresses must be valid static external IP addresses assigned to the project. func (o RouterNatOutput) NatIps() pulumi.StringArrayOutput { return o.ApplyT(func(v RouterNat) []string { return v.NatIps }).(pulumi.StringArrayOutput) } // A list of rules associated with this NAT. func (o RouterNatOutput) Rules() RouterNatRuleArrayOutput { return o.ApplyT(func(v RouterNat) []RouterNatRule { return v.Rules }).(RouterNatRuleArrayOutput) } // Specify the Nat option, which can take one of the following values: - ALL_SUBNETWORKS_ALL_IP_RANGES: All of the IP ranges in every Subnetwork are allowed to Nat. - ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES: All of the primary IP ranges in every Subnetwork are allowed to Nat. - LIST_OF_SUBNETWORKS: A list of Subnetworks are allowed to Nat (specified in the field subnetwork below) The default is SUBNETWORK_IP_RANGE_TO_NAT_OPTION_UNSPECIFIED. Note that if this field contains ALL_SUBNETWORKS_ALL_IP_RANGES or ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES, then there should not be any other Router.Nat section in any Router for this network in this region. func (o RouterNatOutput) SourceSubnetworkIpRangesToNat() RouterNatSourceSubnetworkIpRangesToNatPtrOutput { return o.ApplyT(func(v RouterNat) *RouterNatSourceSubnetworkIpRangesToNat { return v.SourceSubnetworkIpRangesToNat }).(RouterNatSourceSubnetworkIpRangesToNatPtrOutput) } // A list of Subnetwork resources whose traffic should be translated by NAT Gateway. It is used only when LIST_OF_SUBNETWORKS is selected for the SubnetworkIpRangeToNatOption above. func (o RouterNatOutput) Subnetworks() RouterNatSubnetworkToNatArrayOutput { return o.ApplyT(func(v RouterNat) []RouterNatSubnetworkToNat { return v.Subnetworks }).(RouterNatSubnetworkToNatArrayOutput) } // Timeout (in seconds) for TCP established connections. Defaults to 1200s if not set. func (o RouterNatOutput) TcpEstablishedIdleTimeoutSec() pulumi.IntPtrOutput { return o.ApplyT(func(v RouterNat) *int { return v.TcpEstablishedIdleTimeoutSec }).(pulumi.IntPtrOutput) } // Timeout (in seconds) for TCP connections that are in TIME_WAIT state. Defaults to 120s if not set. func (o RouterNatOutput) TcpTimeWaitTimeoutSec() pulumi.IntPtrOutput { return o.ApplyT(func(v RouterNat) *int { return v.TcpTimeWaitTimeoutSec }).(pulumi.IntPtrOutput) } // Timeout (in seconds) for TCP transitory connections. Defaults to 30s if not set. func (o RouterNatOutput) TcpTransitoryIdleTimeoutSec() pulumi.IntPtrOutput { return o.ApplyT(func(v RouterNat) *int { return v.TcpTransitoryIdleTimeoutSec }).(pulumi.IntPtrOutput) } // Timeout (in seconds) for UDP connections. Defaults to 30s if not set. func (o RouterNatOutput) UdpIdleTimeoutSec() pulumi.IntPtrOutput { return o.ApplyT(func(v RouterNat) *int { return v.UdpIdleTimeoutSec }).(pulumi.IntPtrOutput) } type RouterNatArrayOutput struct{ *pulumi.OutputState } func (RouterNatArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]RouterNat)(nil)).Elem() } func (o RouterNatArrayOutput) ToRouterNatArrayOutput() RouterNatArrayOutput { return o } func (o RouterNatArrayOutput) ToRouterNatArrayOutputWithContext(ctx context.Context) RouterNatArrayOutput { return o } func (o RouterNatArrayOutput) Index(i pulumi.IntInput) RouterNatOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouterNat { return vs[0].([]RouterNat)[vs[1].(int)] }).(RouterNatOutput) } // Configuration of logging on a NAT. type RouterNatLogConfig struct { // Indicates whether or not to export logs. This is false by default. Enable *bool `pulumi:"enable"` // Specify the desired filtering of logs on this NAT. If unspecified, logs are exported for all connections handled by this NAT. This option can take one of the following values: - ERRORS_ONLY: Export logs only for connection failures. - TRANSLATIONS_ONLY: Export logs only for successful connections. - ALL: Export logs for all connections, successful and unsuccessful. Filter *RouterNatLogConfigFilter `pulumi:"filter"` } // RouterNatLogConfigInput is an input type that accepts RouterNatLogConfigArgs and RouterNatLogConfigOutput values. // You can construct a concrete instance of `RouterNatLogConfigInput` via: // // RouterNatLogConfigArgs{...} type RouterNatLogConfigInput interface { pulumi.Input ToRouterNatLogConfigOutput() RouterNatLogConfigOutput ToRouterNatLogConfigOutputWithContext(context.Context) RouterNatLogConfigOutput } // Configuration of logging on a NAT. type RouterNatLogConfigArgs struct { // Indicates whether or not to export logs. This is false by default. Enable pulumi.BoolPtrInput `pulumi:"enable"` // Specify the desired filtering of logs on this NAT. If unspecified, logs are exported for all connections handled by this NAT. This option can take one of the following values: - ERRORS_ONLY: Export logs only for connection failures. - TRANSLATIONS_ONLY: Export logs only for successful connections. - ALL: Export logs for all connections, successful and unsuccessful. Filter RouterNatLogConfigFilterPtrInput `pulumi:"filter"` } func (RouterNatLogConfigArgs) ElementType() reflect.Type { return reflect.TypeOf((*RouterNatLogConfig)(nil)).Elem() } func (i RouterNatLogConfigArgs) ToRouterNatLogConfigOutput() RouterNatLogConfigOutput { return i.ToRouterNatLogConfigOutputWithContext(context.Background()) } func (i RouterNatLogConfigArgs) ToRouterNatLogConfigOutputWithContext(ctx context.Context) RouterNatLogConfigOutput { return pulumi.ToOutputWithContext(ctx, i).(RouterNatLogConfigOutput) } func (i RouterNatLogConfigArgs) ToRouterNatLogConfigPtrOutput() RouterNatLogConfigPtrOutput { return i.ToRouterNatLogConfigPtrOutputWithContext(context.Background()) } func (i RouterNatLogConfigArgs) ToRouterNatLogConfigPtrOutputWithContext(ctx context.Context) RouterNatLogConfigPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(RouterNatLogConfigOutput).ToRouterNatLogConfigPtrOutputWithContext(ctx) } // RouterNatLogConfigPtrInput is an input type that accepts RouterNatLogConfigArgs, RouterNatLogConfigPtr and RouterNatLogConfigPtrOutput values. // You can construct a concrete instance of `RouterNatLogConfigPtrInput` via: // // RouterNatLogConfigArgs{...} // // or: // // nil type RouterNatLogConfigPtrInput interface { pulumi.Input ToRouterNatLogConfigPtrOutput() RouterNatLogConfigPtrOutput ToRouterNatLogConfigPtrOutputWithContext(context.Context) RouterNatLogConfigPtrOutput } type routerNatLogConfigPtrType RouterNatLogConfigArgs func RouterNatLogConfigPtr(v *RouterNatLogConfigArgs) RouterNatLogConfigPtrInput { return (*routerNatLogConfigPtrType)(v) } func (*routerNatLogConfigPtrType) ElementType() reflect.Type { return reflect.TypeOf((**RouterNatLogConfig)(nil)).Elem() } func (i *routerNatLogConfigPtrType) ToRouterNatLogConfigPtrOutput() RouterNatLogConfigPtrOutput { return i.ToRouterNatLogConfigPtrOutputWithContext(context.Background()) } func (i *routerNatLogConfigPtrType) ToRouterNatLogConfigPtrOutputWithContext(ctx context.Context) RouterNatLogConfigPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(RouterNatLogConfigPtrOutput) } // Configuration of logging on a NAT. type RouterNatLogConfigOutput struct{ *pulumi.OutputState } func (RouterNatLogConfigOutput) ElementType() reflect.Type { return reflect.TypeOf((*RouterNatLogConfig)(nil)).Elem() } func (o RouterNatLogConfigOutput) ToRouterNatLogConfigOutput() RouterNatLogConfigOutput { return o } func (o RouterNatLogConfigOutput) ToRouterNatLogConfigOutputWithContext(ctx context.Context) RouterNatLogConfigOutput { return o } func (o RouterNatLogConfigOutput) ToRouterNatLogConfigPtrOutput() RouterNatLogConfigPtrOutput { return o.ToRouterNatLogConfigPtrOutputWithContext(context.Background()) } func (o RouterNatLogConfigOutput) ToRouterNatLogConfigPtrOutputWithContext(ctx context.Context) RouterNatLogConfigPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v RouterNatLogConfig) *RouterNatLogConfig { return &v }).(RouterNatLogConfigPtrOutput) } // Indicates whether or not to export logs. This is false by default. func (o RouterNatLogConfigOutput) Enable() pulumi.BoolPtrOutput { return o.ApplyT(func(v RouterNatLogConfig) *bool { return v.Enable }).(pulumi.BoolPtrOutput) } // Specify the desired filtering of logs on this NAT. If unspecified, logs are exported for all connections handled by this NAT. This option can take one of the following values: - ERRORS_ONLY: Export logs only for connection failures. - TRANSLATIONS_ONLY: Export logs only for successful connections. - ALL: Export logs for all connections, successful and unsuccessful. func (o RouterNatLogConfigOutput) Filter() RouterNatLogConfigFilterPtrOutput { return o.ApplyT(func(v RouterNatLogConfig) *RouterNatLogConfigFilter { return v.Filter }).(RouterNatLogConfigFilterPtrOutput) } type RouterNatLogConfigPtrOutput struct{ *pulumi.OutputState } func (RouterNatLogConfigPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**RouterNatLogConfig)(nil)).Elem() } func (o RouterNatLogConfigPtrOutput) ToRouterNatLogConfigPtrOutput() RouterNatLogConfigPtrOutput { return o } func (o RouterNatLogConfigPtrOutput) ToRouterNatLogConfigPtrOutputWithContext(ctx context.Context) RouterNatLogConfigPtrOutput { return o } func (o RouterNatLogConfigPtrOutput) Elem() RouterNatLogConfigOutput { return o.ApplyT(func(v *RouterNatLogConfig) RouterNatLogConfig { if v != nil { return *v } var ret RouterNatLogConfig return ret }).(RouterNatLogConfigOutput) } // Indicates whether or not to export logs. This is false by default. func (o RouterNatLogConfigPtrOutput) Enable() pulumi.BoolPtrOutput { return o.ApplyT(func(v *RouterNatLogConfig) *bool { if v == nil { return nil } return v.Enable }).(pulumi.BoolPtrOutput) } // Specify the desired filtering of logs on this NAT. If unspecified, logs are exported for all connections handled by this NAT. This option can take one of the following values: - ERRORS_ONLY: Export logs only for connection failures. - TRANSLATIONS_ONLY: Export logs only for successful connections. - ALL: Export logs for all connections, successful and unsuccessful. func (o RouterNatLogConfigPtrOutput) Filter() RouterNatLogConfigFilterPtrOutput { return o.ApplyT(func(v *RouterNatLogConfig) *RouterNatLogConfigFilter { if v == nil { return nil } return v.Filter }).(RouterNatLogConfigFilterPtrOutput) } // Configuration of logging on a NAT. type RouterNatLogConfigResponse struct { // Indicates whether or not to export logs. This is false by default. Enable bool `pulumi:"enable"` // Specify the desired filtering of logs on this NAT. If unspecified, logs are exported for all connections handled by this NAT. This option can take one of the following values: - ERRORS_ONLY: Export logs only for connection failures. - TRANSLATIONS_ONLY: Export logs only for successful connections. - ALL: Export logs for all connections, successful and unsuccessful. Filter string `pulumi:"filter"` } // Configuration of logging on a NAT. type RouterNatLogConfigResponseOutput struct{ *pulumi.OutputState } func (RouterNatLogConfigResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*RouterNatLogConfigResponse)(nil)).Elem() } func (o RouterNatLogConfigResponseOutput) ToRouterNatLogConfigResponseOutput() RouterNatLogConfigResponseOutput { return o } func (o RouterNatLogConfigResponseOutput) ToRouterNatLogConfigResponseOutputWithContext(ctx context.Context) RouterNatLogConfigResponseOutput { return o } // Indicates whether or not to export logs. This is false by default. func (o RouterNatLogConfigResponseOutput) Enable() pulumi.BoolOutput { return o.ApplyT(func(v RouterNatLogConfigResponse) bool { return v.Enable }).(pulumi.BoolOutput) } // Specify the desired filtering of logs on this NAT. If unspecified, logs are exported for all connections handled by this NAT. This option can take one of the following values: - ERRORS_ONLY: Export logs only for connection failures. - TRANSLATIONS_ONLY: Export logs only for successful connections. - ALL: Export logs for all connections, successful and unsuccessful. func (o RouterNatLogConfigResponseOutput) Filter() pulumi.StringOutput { return o.ApplyT(func(v RouterNatLogConfigResponse) string { return v.Filter }).(pulumi.StringOutput) } // Represents a Nat resource. It enables the VMs within the specified subnetworks to access Internet without external IP addresses. It specifies a list of subnetworks (and the ranges within) that want to use NAT. Customers can also provide the external IPs that would be used for NAT. GCP would auto-allocate ephemeral IPs if no external IPs are provided. type RouterNatResponse struct { // A list of URLs of the IP resources to be drained. These IPs must be valid static external IPs that have been assigned to the NAT. These IPs should be used for updating/patching a NAT only. DrainNatIps []string `pulumi:"drainNatIps"` // Enable Dynamic Port Allocation. If not specified, it is disabled by default. If set to true, - Dynamic Port Allocation will be enabled on this NAT config. - enableEndpointIndependentMapping cannot be set to true. - If minPorts is set, minPortsPerVm must be set to a power of two greater than or equal to 32. If minPortsPerVm is not set, a minimum of 32 ports will be allocated to a VM from this NAT config. EnableDynamicPortAllocation bool `pulumi:"enableDynamicPortAllocation"` EnableEndpointIndependentMapping bool `pulumi:"enableEndpointIndependentMapping"` // Timeout (in seconds) for ICMP connections. Defaults to 30s if not set. IcmpIdleTimeoutSec int `pulumi:"icmpIdleTimeoutSec"` // Configure logging on this NAT. LogConfig RouterNatLogConfigResponse `pulumi:"logConfig"` // Maximum number of ports allocated to a VM from this NAT config when Dynamic Port Allocation is enabled. If Dynamic Port Allocation is not enabled, this field has no effect. If Dynamic Port Allocation is enabled, and this field is set, it must be set to a power of two greater than minPortsPerVm, or 64 if minPortsPerVm is not set. If Dynamic Port Allocation is enabled and this field is not set, a maximum of 65536 ports will be allocated to a VM from this NAT config. MaxPortsPerVm int `pulumi:"maxPortsPerVm"` // Minimum number of ports allocated to a VM from this NAT config. If not set, a default number of ports is allocated to a VM. This is rounded up to the nearest power of 2. For example, if the value of this field is 50, at least 64 ports are allocated to a VM. MinPortsPerVm int `pulumi:"minPortsPerVm"` // Unique name of this Nat service. The name must be 1-63 characters long and comply with RFC1035. Name string `pulumi:"name"` // Specify the NatIpAllocateOption, which can take one of the following values: - MANUAL_ONLY: Uses only Nat IP addresses provided by customers. When there are not enough specified Nat IPs, the Nat service fails for new VMs. - AUTO_ONLY: Nat IPs are allocated by Google Cloud Platform; customers can't specify any Nat IPs. When choosing AUTO_ONLY, then nat_ip should be empty. NatIpAllocateOption string `pulumi:"natIpAllocateOption"` // A list of URLs of the IP resources used for this Nat service. These IP addresses must be valid static external IP addresses assigned to the project. NatIps []string `pulumi:"natIps"` // A list of rules associated with this NAT. Rules []RouterNatRuleResponse `pulumi:"rules"` // Specify the Nat option, which can take one of the following values: - ALL_SUBNETWORKS_ALL_IP_RANGES: All of the IP ranges in every Subnetwork are allowed to Nat. - ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES: All of the primary IP ranges in every Subnetwork are allowed to Nat. - LIST_OF_SUBNETWORKS: A list of Subnetworks are allowed to Nat (specified in the field subnetwork below) The default is SUBNETWORK_IP_RANGE_TO_NAT_OPTION_UNSPECIFIED. Note that if this field contains ALL_SUBNETWORKS_ALL_IP_RANGES or ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES, then there should not be any other Router.Nat section in any Router for this network in this region. SourceSubnetworkIpRangesToNat string `pulumi:"sourceSubnetworkIpRangesToNat"` // A list of Subnetwork resources whose traffic should be translated by NAT Gateway. It is used only when LIST_OF_SUBNETWORKS is selected for the SubnetworkIpRangeToNatOption above. Subnetworks []RouterNatSubnetworkToNatResponse `pulumi:"subnetworks"` // Timeout (in seconds) for TCP established connections. Defaults to 1200s if not set. TcpEstablishedIdleTimeoutSec int `pulumi:"tcpEstablishedIdleTimeoutSec"` // Timeout (in seconds) for TCP connections that are in TIME_WAIT state. Defaults to 120s if not set. TcpTimeWaitTimeoutSec int `pulumi:"tcpTimeWaitTimeoutSec"` // Timeout (in seconds) for TCP transitory connections. Defaults to 30s if not set. TcpTransitoryIdleTimeoutSec int `pulumi:"tcpTransitoryIdleTimeoutSec"` // Timeout (in seconds) for UDP connections. Defaults to 30s if not set. UdpIdleTimeoutSec int `pulumi:"udpIdleTimeoutSec"` } // Represents a Nat resource. It enables the VMs within the specified subnetworks to access Internet without external IP addresses. It specifies a list of subnetworks (and the ranges within) that want to use NAT. Customers can also provide the external IPs that would be used for NAT. GCP would auto-allocate ephemeral IPs if no external IPs are provided. type RouterNatResponseOutput struct{ *pulumi.OutputState } func (RouterNatResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*RouterNatResponse)(nil)).Elem() } func (o RouterNatResponseOutput) ToRouterNatResponseOutput() RouterNatResponseOutput { return o } func (o RouterNatResponseOutput) ToRouterNatResponseOutputWithContext(ctx context.Context) RouterNatResponseOutput { return o } // A list of URLs of the IP resources to be drained. These IPs must be valid static external IPs that have been assigned to the NAT. These IPs should be used for updating/patching a NAT only. func (o RouterNatResponseOutput) DrainNatIps() pulumi.StringArrayOutput { return o.ApplyT(func(v RouterNatResponse) []string { return v.DrainNatIps }).(pulumi.StringArrayOutput) } // Enable Dynamic Port Allocation. If not specified, it is disabled by default. If set to true, - Dynamic Port Allocation will be enabled on this NAT config. - enableEndpointIndependentMapping cannot be set to true. - If minPorts is set, minPortsPerVm must be set to a power of two greater than or equal to 32. If minPortsPerVm is not set, a minimum of 32 ports will be allocated to a VM from this NAT config. func (o RouterNatResponseOutput) EnableDynamicPortAllocation() pulumi.BoolOutput { return o.ApplyT(func(v RouterNatResponse) bool { return v.EnableDynamicPortAllocation }).(pulumi.BoolOutput) } func (o RouterNatResponseOutput) EnableEndpointIndependentMapping() pulumi.BoolOutput { return o.ApplyT(func(v RouterNatResponse) bool { return v.EnableEndpointIndependentMapping }).(pulumi.BoolOutput) } // Timeout (in seconds) for ICMP connections. Defaults to 30s if not set. func (o RouterNatResponseOutput) IcmpIdleTimeoutSec() pulumi.IntOutput { return o.ApplyT(func(v RouterNatResponse) int { return v.IcmpIdleTimeoutSec }).(pulumi.IntOutput) } // Configure logging on this NAT. func (o RouterNatResponseOutput) LogConfig() RouterNatLogConfigResponseOutput { return o.ApplyT(func(v RouterNatResponse) RouterNatLogConfigResponse { return v.LogConfig }).(RouterNatLogConfigResponseOutput) } // Maximum number of ports allocated to a VM from this NAT config when Dynamic Port Allocation is enabled. If Dynamic Port Allocation is not enabled, this field has no effect. If Dynamic Port Allocation is enabled, and this field is set, it must be set to a power of two greater than minPortsPerVm, or 64 if minPortsPerVm is not set. If Dynamic Port Allocation is enabled and this field is not set, a maximum of 65536 ports will be allocated to a VM from this NAT config. func (o RouterNatResponseOutput) MaxPortsPerVm() pulumi.IntOutput { return o.ApplyT(func(v RouterNatResponse) int { return v.MaxPortsPerVm }).(pulumi.IntOutput) } // Minimum number of ports allocated to a VM from this NAT config. If not set, a default number of ports is allocated to a VM. This is rounded up to the nearest power of 2. For example, if the value of this field is 50, at least 64 ports are allocated to a VM. func (o RouterNatResponseOutput) MinPortsPerVm() pulumi.IntOutput { return o.ApplyT(func(v RouterNatResponse) int { return v.MinPortsPerVm }).(pulumi.IntOutput) } // Unique name of this Nat service. The name must be 1-63 characters long and comply with RFC1035. func (o RouterNatResponseOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v RouterNatResponse) string { return v.Name }).(pulumi.StringOutput) } // Specify the NatIpAllocateOption, which can take one of the following values: - MANUAL_ONLY: Uses only Nat IP addresses provided by customers. When there are not enough specified Nat IPs, the Nat service fails for new VMs. - AUTO_ONLY: Nat IPs are allocated by Google Cloud Platform; customers can't specify any Nat IPs. When choosing AUTO_ONLY, then nat_ip should be empty. func (o RouterNatResponseOutput) NatIpAllocateOption() pulumi.StringOutput { return o.ApplyT(func(v RouterNatResponse) string { return v.NatIpAllocateOption }).(pulumi.StringOutput) } // A list of URLs of the IP resources used for this Nat service. These IP addresses must be valid static external IP addresses assigned to the project. func (o RouterNatResponseOutput) NatIps() pulumi.StringArrayOutput { return o.ApplyT(func(v RouterNatResponse) []string { return v.NatIps }).(pulumi.StringArrayOutput) } // A list of rules associated with this NAT. func (o RouterNatResponseOutput) Rules() RouterNatRuleResponseArrayOutput { return o.ApplyT(func(v RouterNatResponse) []RouterNatRuleResponse { return v.Rules }).(RouterNatRuleResponseArrayOutput) } // Specify the Nat option, which can take one of the following values: - ALL_SUBNETWORKS_ALL_IP_RANGES: All of the IP ranges in every Subnetwork are allowed to Nat. - ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES: All of the primary IP ranges in every Subnetwork are allowed to Nat. - LIST_OF_SUBNETWORKS: A list of Subnetworks are allowed to Nat (specified in the field subnetwork below) The default is SUBNETWORK_IP_RANGE_TO_NAT_OPTION_UNSPECIFIED. Note that if this field contains ALL_SUBNETWORKS_ALL_IP_RANGES or ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES, then there should not be any other Router.Nat section in any Router for this network in this region. func (o RouterNatResponseOutput) SourceSubnetworkIpRangesToNat() pulumi.StringOutput { return o.ApplyT(func(v RouterNatResponse) string { return v.SourceSubnetworkIpRangesToNat }).(pulumi.StringOutput) } // A list of Subnetwork resources whose traffic should be translated by NAT Gateway. It is used only when LIST_OF_SUBNETWORKS is selected for the SubnetworkIpRangeToNatOption above. func (o RouterNatResponseOutput) Subnetworks() RouterNatSubnetworkToNatResponseArrayOutput { return o.ApplyT(func(v RouterNatResponse) []RouterNatSubnetworkToNatResponse { return v.Subnetworks }).(RouterNatSubnetworkToNatResponseArrayOutput) } // Timeout (in seconds) for TCP established connections. Defaults to 1200s if not set. func (o RouterNatResponseOutput) TcpEstablishedIdleTimeoutSec() pulumi.IntOutput { return o.ApplyT(func(v RouterNatResponse) int { return v.TcpEstablishedIdleTimeoutSec }).(pulumi.IntOutput) } // Timeout (in seconds) for TCP connections that are in TIME_WAIT state. Defaults to 120s if not set. func (o RouterNatResponseOutput) TcpTimeWaitTimeoutSec() pulumi.IntOutput { return o.ApplyT(func(v RouterNatResponse) int { return v.TcpTimeWaitTimeoutSec }).(pulumi.IntOutput) } // Timeout (in seconds) for TCP transitory connections. Defaults to 30s if not set. func (o RouterNatResponseOutput) TcpTransitoryIdleTimeoutSec() pulumi.IntOutput { return o.ApplyT(func(v RouterNatResponse) int { return v.TcpTransitoryIdleTimeoutSec }).(pulumi.IntOutput) } // Timeout (in seconds) for UDP connections. Defaults to 30s if not set. func (o RouterNatResponseOutput) UdpIdleTimeoutSec() pulumi.IntOutput { return o.ApplyT(func(v RouterNatResponse) int { return v.UdpIdleTimeoutSec }).(pulumi.IntOutput) } type RouterNatResponseArrayOutput struct{ *pulumi.OutputState } func (RouterNatResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]RouterNatResponse)(nil)).Elem() } func (o RouterNatResponseArrayOutput) ToRouterNatResponseArrayOutput() RouterNatResponseArrayOutput { return o } func (o RouterNatResponseArrayOutput) ToRouterNatResponseArrayOutputWithContext(ctx context.Context) RouterNatResponseArrayOutput { return o } func (o RouterNatResponseArrayOutput) Index(i pulumi.IntInput) RouterNatResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouterNatResponse { return vs[0].([]RouterNatResponse)[vs[1].(int)] }).(RouterNatResponseOutput) } type RouterNatRule struct { // The action to be enforced for traffic that matches this rule. Action *RouterNatRuleAction `pulumi:"action"` // An optional description of this rule. Description *string `pulumi:"description"` // CEL expression that specifies the match condition that egress traffic from a VM is evaluated against. If it evaluates to true, the corresponding `action` is enforced. The following examples are valid match expressions for public NAT: "inIpRange(destination.ip, '1.1.0.0/16') || inIpRange(destination.ip, '2.2.0.0/16')" "destination.ip == '1.1.0.1' || destination.ip == '8.8.8.8'" The following example is a valid match expression for private NAT: "nexthop.hub == 'https://networkconnectivity.googleapis.com/v1alpha1/projects/my-project/global/hub/hub-1'" Match *string `pulumi:"match"` // An integer uniquely identifying a rule in the list. The rule number must be a positive value between 0 and 65000, and must be unique among rules within a NAT. RuleNumber *int `pulumi:"ruleNumber"` } // RouterNatRuleInput is an input type that accepts RouterNatRuleArgs and RouterNatRuleOutput values. // You can construct a concrete instance of `RouterNatRuleInput` via: // // RouterNatRuleArgs{...} type RouterNatRuleInput interface { pulumi.Input ToRouterNatRuleOutput() RouterNatRuleOutput ToRouterNatRuleOutputWithContext(context.Context) RouterNatRuleOutput } type RouterNatRuleArgs struct { // The action to be enforced for traffic that matches this rule. Action RouterNatRuleActionPtrInput `pulumi:"action"` // An optional description of this rule. Description pulumi.StringPtrInput `pulumi:"description"` // CEL expression that specifies the match condition that egress traffic from a VM is evaluated against. If it evaluates to true, the corresponding `action` is enforced. The following examples are valid match expressions for public NAT: "inIpRange(destination.ip, '1.1.0.0/16') || inIpRange(destination.ip, '2.2.0.0/16')" "destination.ip == '1.1.0.1' || destination.ip == '8.8.8.8'" The following example is a valid match expression for private NAT: "nexthop.hub == 'https://networkconnectivity.googleapis.com/v1alpha1/projects/my-project/global/hub/hub-1'" Match pulumi.StringPtrInput `pulumi:"match"` // An integer uniquely identifying a rule in the list. The rule number must be a positive value between 0 and 65000, and must be unique among rules within a NAT. RuleNumber pulumi.IntPtrInput `pulumi:"ruleNumber"` } func (RouterNatRuleArgs) ElementType() reflect.Type { return reflect.TypeOf((*RouterNatRule)(nil)).Elem() } func (i RouterNatRuleArgs) ToRouterNatRuleOutput() RouterNatRuleOutput { return i.ToRouterNatRuleOutputWithContext(context.Background()) } func (i RouterNatRuleArgs) ToRouterNatRuleOutputWithContext(ctx context.Context) RouterNatRuleOutput { return pulumi.ToOutputWithContext(ctx, i).(RouterNatRuleOutput) } // RouterNatRuleArrayInput is an input type that accepts RouterNatRuleArray and RouterNatRuleArrayOutput values. // You can construct a concrete instance of `RouterNatRuleArrayInput` via: // // RouterNatRuleArray{ RouterNatRuleArgs{...} } type RouterNatRuleArrayInput interface { pulumi.Input ToRouterNatRuleArrayOutput() RouterNatRuleArrayOutput ToRouterNatRuleArrayOutputWithContext(context.Context) RouterNatRuleArrayOutput } type RouterNatRuleArray []RouterNatRuleInput func (RouterNatRuleArray) ElementType() reflect.Type { return reflect.TypeOf((*[]RouterNatRule)(nil)).Elem() } func (i RouterNatRuleArray) ToRouterNatRuleArrayOutput() RouterNatRuleArrayOutput { return i.ToRouterNatRuleArrayOutputWithContext(context.Background()) } func (i RouterNatRuleArray) ToRouterNatRuleArrayOutputWithContext(ctx context.Context) RouterNatRuleArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(RouterNatRuleArrayOutput) } type RouterNatRuleOutput struct{ *pulumi.OutputState } func (RouterNatRuleOutput) ElementType() reflect.Type { return reflect.TypeOf((*RouterNatRule)(nil)).Elem() } func (o RouterNatRuleOutput) ToRouterNatRuleOutput() RouterNatRuleOutput { return o } func (o RouterNatRuleOutput) ToRouterNatRuleOutputWithContext(ctx context.Context) RouterNatRuleOutput { return o } // The action to be enforced for traffic that matches this rule. func (o RouterNatRuleOutput) Action() RouterNatRuleActionPtrOutput { return o.ApplyT(func(v RouterNatRule) *RouterNatRuleAction { return v.Action }).(RouterNatRuleActionPtrOutput) } // An optional description of this rule. func (o RouterNatRuleOutput) Description() pulumi.StringPtrOutput { return o.ApplyT(func(v RouterNatRule) *string { return v.Description }).(pulumi.StringPtrOutput) } // CEL expression that specifies the match condition that egress traffic from a VM is evaluated against. If it evaluates to true, the corresponding `action` is enforced. The following examples are valid match expressions for public NAT: "inIpRange(destination.ip, '1.1.0.0/16') || inIpRange(destination.ip, '2.2.0.0/16')" "destination.ip == '1.1.0.1' || destination.ip == '8.8.8.8'" The following example is a valid match expression for private NAT: "nexthop.hub == 'https://networkconnectivity.googleapis.com/v1alpha1/projects/my-project/global/hub/hub-1'" func (o RouterNatRuleOutput) Match() pulumi.StringPtrOutput { return o.ApplyT(func(v RouterNatRule) *string { return v.Match }).(pulumi.StringPtrOutput) } // An integer uniquely identifying a rule in the list. The rule number must be a positive value between 0 and 65000, and must be unique among rules within a NAT. func (o RouterNatRuleOutput) RuleNumber() pulumi.IntPtrOutput { return o.ApplyT(func(v RouterNatRule) *int { return v.RuleNumber }).(pulumi.IntPtrOutput) } type RouterNatRuleArrayOutput struct{ *pulumi.OutputState } func (RouterNatRuleArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]RouterNatRule)(nil)).Elem() } func (o RouterNatRuleArrayOutput) ToRouterNatRuleArrayOutput() RouterNatRuleArrayOutput { return o } func (o RouterNatRuleArrayOutput) ToRouterNatRuleArrayOutputWithContext(ctx context.Context) RouterNatRuleArrayOutput { return o } func (o RouterNatRuleArrayOutput) Index(i pulumi.IntInput) RouterNatRuleOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouterNatRule { return vs[0].([]RouterNatRule)[vs[1].(int)] }).(RouterNatRuleOutput) } type RouterNatRuleAction struct { // A list of URLs of the IP resources used for this NAT rule. These IP addresses must be valid static external IP addresses assigned to the project. This field is used for public NAT. SourceNatActiveIps []string `pulumi:"sourceNatActiveIps"` // A list of URLs of the IP resources to be drained. These IPs must be valid static external IPs that have been assigned to the NAT. These IPs should be used for updating/patching a NAT rule only. This field is used for public NAT. SourceNatDrainIps []string `pulumi:"sourceNatDrainIps"` } // RouterNatRuleActionInput is an input type that accepts RouterNatRuleActionArgs and RouterNatRuleActionOutput values. // You can construct a concrete instance of `RouterNatRuleActionInput` via: // // RouterNatRuleActionArgs{...} type RouterNatRuleActionInput interface { pulumi.Input ToRouterNatRuleActionOutput() RouterNatRuleActionOutput ToRouterNatRuleActionOutputWithContext(context.Context) RouterNatRuleActionOutput } type RouterNatRuleActionArgs struct { // A list of URLs of the IP resources used for this NAT rule. These IP addresses must be valid static external IP addresses assigned to the project. This field is used for public NAT. SourceNatActiveIps pulumi.StringArrayInput `pulumi:"sourceNatActiveIps"` // A list of URLs of the IP resources to be drained. These IPs must be valid static external IPs that have been assigned to the NAT. These IPs should be used for updating/patching a NAT rule only. This field is used for public NAT. SourceNatDrainIps pulumi.StringArrayInput `pulumi:"sourceNatDrainIps"` } func (RouterNatRuleActionArgs) ElementType() reflect.Type { return reflect.TypeOf((*RouterNatRuleAction)(nil)).Elem() } func (i RouterNatRuleActionArgs) ToRouterNatRuleActionOutput() RouterNatRuleActionOutput { return i.ToRouterNatRuleActionOutputWithContext(context.Background()) } func (i RouterNatRuleActionArgs) ToRouterNatRuleActionOutputWithContext(ctx context.Context) RouterNatRuleActionOutput { return pulumi.ToOutputWithContext(ctx, i).(RouterNatRuleActionOutput) } func (i RouterNatRuleActionArgs) ToRouterNatRuleActionPtrOutput() RouterNatRuleActionPtrOutput { return i.ToRouterNatRuleActionPtrOutputWithContext(context.Background()) } func (i RouterNatRuleActionArgs) ToRouterNatRuleActionPtrOutputWithContext(ctx context.Context) RouterNatRuleActionPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(RouterNatRuleActionOutput).ToRouterNatRuleActionPtrOutputWithContext(ctx) } // RouterNatRuleActionPtrInput is an input type that accepts RouterNatRuleActionArgs, RouterNatRuleActionPtr and RouterNatRuleActionPtrOutput values. // You can construct a concrete instance of `RouterNatRuleActionPtrInput` via: // // RouterNatRuleActionArgs{...} // // or: // // nil type RouterNatRuleActionPtrInput interface { pulumi.Input ToRouterNatRuleActionPtrOutput() RouterNatRuleActionPtrOutput ToRouterNatRuleActionPtrOutputWithContext(context.Context) RouterNatRuleActionPtrOutput } type routerNatRuleActionPtrType RouterNatRuleActionArgs func RouterNatRuleActionPtr(v *RouterNatRuleActionArgs) RouterNatRuleActionPtrInput { return (*routerNatRuleActionPtrType)(v) } func (*routerNatRuleActionPtrType) ElementType() reflect.Type { return reflect.TypeOf((**RouterNatRuleAction)(nil)).Elem() } func (i *routerNatRuleActionPtrType) ToRouterNatRuleActionPtrOutput() RouterNatRuleActionPtrOutput { return i.ToRouterNatRuleActionPtrOutputWithContext(context.Background()) } func (i *routerNatRuleActionPtrType) ToRouterNatRuleActionPtrOutputWithContext(ctx context.Context) RouterNatRuleActionPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(RouterNatRuleActionPtrOutput) } type RouterNatRuleActionOutput struct{ *pulumi.OutputState } func (RouterNatRuleActionOutput) ElementType() reflect.Type { return reflect.TypeOf((*RouterNatRuleAction)(nil)).Elem() } func (o RouterNatRuleActionOutput) ToRouterNatRuleActionOutput() RouterNatRuleActionOutput { return o } func (o RouterNatRuleActionOutput) ToRouterNatRuleActionOutputWithContext(ctx context.Context) RouterNatRuleActionOutput { return o } func (o RouterNatRuleActionOutput) ToRouterNatRuleActionPtrOutput() RouterNatRuleActionPtrOutput { return o.ToRouterNatRuleActionPtrOutputWithContext(context.Background()) } func (o RouterNatRuleActionOutput) ToRouterNatRuleActionPtrOutputWithContext(ctx context.Context) RouterNatRuleActionPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v RouterNatRuleAction) *RouterNatRuleAction { return &v }).(RouterNatRuleActionPtrOutput) } // A list of URLs of the IP resources used for this NAT rule. These IP addresses must be valid static external IP addresses assigned to the project. This field is used for public NAT. func (o RouterNatRuleActionOutput) SourceNatActiveIps() pulumi.StringArrayOutput { return o.ApplyT(func(v RouterNatRuleAction) []string { return v.SourceNatActiveIps }).(pulumi.StringArrayOutput) } // A list of URLs of the IP resources to be drained. These IPs must be valid static external IPs that have been assigned to the NAT. These IPs should be used for updating/patching a NAT rule only. This field is used for public NAT. func (o RouterNatRuleActionOutput) SourceNatDrainIps() pulumi.StringArrayOutput { return o.ApplyT(func(v RouterNatRuleAction) []string { return v.SourceNatDrainIps }).(pulumi.StringArrayOutput) } type RouterNatRuleActionPtrOutput struct{ *pulumi.OutputState } func (RouterNatRuleActionPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**RouterNatRuleAction)(nil)).Elem() } func (o RouterNatRuleActionPtrOutput) ToRouterNatRuleActionPtrOutput() RouterNatRuleActionPtrOutput { return o } func (o RouterNatRuleActionPtrOutput) ToRouterNatRuleActionPtrOutputWithContext(ctx context.Context) RouterNatRuleActionPtrOutput { return o } func (o RouterNatRuleActionPtrOutput) Elem() RouterNatRuleActionOutput { return o.ApplyT(func(v *RouterNatRuleAction) RouterNatRuleAction { if v != nil { return *v } var ret RouterNatRuleAction return ret }).(RouterNatRuleActionOutput) } // A list of URLs of the IP resources used for this NAT rule. These IP addresses must be valid static external IP addresses assigned to the project. This field is used for public NAT. func (o RouterNatRuleActionPtrOutput) SourceNatActiveIps() pulumi.StringArrayOutput { return o.ApplyT(func(v *RouterNatRuleAction) []string { if v == nil { return nil } return v.SourceNatActiveIps }).(pulumi.StringArrayOutput) } // A list of URLs of the IP resources to be drained. These IPs must be valid static external IPs that have been assigned to the NAT. These IPs should be used for updating/patching a NAT rule only. This field is used for public NAT. func (o RouterNatRuleActionPtrOutput) SourceNatDrainIps() pulumi.StringArrayOutput { return o.ApplyT(func(v *RouterNatRuleAction) []string { if v == nil { return nil } return v.SourceNatDrainIps }).(pulumi.StringArrayOutput) } type RouterNatRuleActionResponse struct { // A list of URLs of the IP resources used for this NAT rule. These IP addresses must be valid static external IP addresses assigned to the project. This field is used for public NAT. SourceNatActiveIps []string `pulumi:"sourceNatActiveIps"` // A list of URLs of the IP resources to be drained. These IPs must be valid static external IPs that have been assigned to the NAT. These IPs should be used for updating/patching a NAT rule only. This field is used for public NAT. SourceNatDrainIps []string `pulumi:"sourceNatDrainIps"` } type RouterNatRuleActionResponseOutput struct{ *pulumi.OutputState } func (RouterNatRuleActionResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*RouterNatRuleActionResponse)(nil)).Elem() } func (o RouterNatRuleActionResponseOutput) ToRouterNatRuleActionResponseOutput() RouterNatRuleActionResponseOutput { return o } func (o RouterNatRuleActionResponseOutput) ToRouterNatRuleActionResponseOutputWithContext(ctx context.Context) RouterNatRuleActionResponseOutput { return o } // A list of URLs of the IP resources used for this NAT rule. These IP addresses must be valid static external IP addresses assigned to the project. This field is used for public NAT. func (o RouterNatRuleActionResponseOutput) SourceNatActiveIps() pulumi.StringArrayOutput { return o.ApplyT(func(v RouterNatRuleActionResponse) []string { return v.SourceNatActiveIps }).(pulumi.StringArrayOutput) } // A list of URLs of the IP resources to be drained. These IPs must be valid static external IPs that have been assigned to the NAT. These IPs should be used for updating/patching a NAT rule only. This field is used for public NAT. func (o RouterNatRuleActionResponseOutput) SourceNatDrainIps() pulumi.StringArrayOutput { return o.ApplyT(func(v RouterNatRuleActionResponse) []string { return v.SourceNatDrainIps }).(pulumi.StringArrayOutput) } type RouterNatRuleResponse struct { // The action to be enforced for traffic that matches this rule. Action RouterNatRuleActionResponse `pulumi:"action"` // An optional description of this rule. Description string `pulumi:"description"` // CEL expression that specifies the match condition that egress traffic from a VM is evaluated against. If it evaluates to true, the corresponding `action` is enforced. The following examples are valid match expressions for public NAT: "inIpRange(destination.ip, '1.1.0.0/16') || inIpRange(destination.ip, '2.2.0.0/16')" "destination.ip == '1.1.0.1' || destination.ip == '8.8.8.8'" The following example is a valid match expression for private NAT: "nexthop.hub == 'https://networkconnectivity.googleapis.com/v1alpha1/projects/my-project/global/hub/hub-1'" Match string `pulumi:"match"` // An integer uniquely identifying a rule in the list. The rule number must be a positive value between 0 and 65000, and must be unique among rules within a NAT. RuleNumber int `pulumi:"ruleNumber"` } type RouterNatRuleResponseOutput struct{ *pulumi.OutputState } func (RouterNatRuleResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*RouterNatRuleResponse)(nil)).Elem() } func (o RouterNatRuleResponseOutput) ToRouterNatRuleResponseOutput() RouterNatRuleResponseOutput { return o } func (o RouterNatRuleResponseOutput) ToRouterNatRuleResponseOutputWithContext(ctx context.Context) RouterNatRuleResponseOutput { return o } // The action to be enforced for traffic that matches this rule. func (o RouterNatRuleResponseOutput) Action() RouterNatRuleActionResponseOutput { return o.ApplyT(func(v RouterNatRuleResponse) RouterNatRuleActionResponse { return v.Action }).(RouterNatRuleActionResponseOutput) } // An optional description of this rule. func (o RouterNatRuleResponseOutput) Description() pulumi.StringOutput { return o.ApplyT(func(v RouterNatRuleResponse) string { return v.Description }).(pulumi.StringOutput) } // CEL expression that specifies the match condition that egress traffic from a VM is evaluated against. If it evaluates to true, the corresponding `action` is enforced. The following examples are valid match expressions for public NAT: "inIpRange(destination.ip, '1.1.0.0/16') || inIpRange(destination.ip, '2.2.0.0/16')" "destination.ip == '1.1.0.1' || destination.ip == '8.8.8.8'" The following example is a valid match expression for private NAT: "nexthop.hub == 'https://networkconnectivity.googleapis.com/v1alpha1/projects/my-project/global/hub/hub-1'" func (o RouterNatRuleResponseOutput) Match() pulumi.StringOutput { return o.ApplyT(func(v RouterNatRuleResponse) string { return v.Match }).(pulumi.StringOutput) } // An integer uniquely identifying a rule in the list. The rule number must be a positive value between 0 and 65000, and must be unique among rules within a NAT. func (o RouterNatRuleResponseOutput) RuleNumber() pulumi.IntOutput { return o.ApplyT(func(v RouterNatRuleResponse) int { return v.RuleNumber }).(pulumi.IntOutput) } type RouterNatRuleResponseArrayOutput struct{ *pulumi.OutputState } func (RouterNatRuleResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]RouterNatRuleResponse)(nil)).Elem() } func (o RouterNatRuleResponseArrayOutput) ToRouterNatRuleResponseArrayOutput() RouterNatRuleResponseArrayOutput { return o } func (o RouterNatRuleResponseArrayOutput) ToRouterNatRuleResponseArrayOutputWithContext(ctx context.Context) RouterNatRuleResponseArrayOutput { return o } func (o RouterNatRuleResponseArrayOutput) Index(i pulumi.IntInput) RouterNatRuleResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouterNatRuleResponse { return vs[0].([]RouterNatRuleResponse)[vs[1].(int)] }).(RouterNatRuleResponseOutput) } // Defines the IP ranges that want to use NAT for a subnetwork. type RouterNatSubnetworkToNat struct { // URL for the subnetwork resource that will use NAT. Name *string `pulumi:"name"` // A list of the secondary ranges of the Subnetwork that are allowed to use NAT. This can be populated only if "LIST_OF_SECONDARY_IP_RANGES" is one of the values in source_ip_ranges_to_nat. SecondaryIpRangeNames []string `pulumi:"secondaryIpRangeNames"` // Specify the options for NAT ranges in the Subnetwork. All options of a single value are valid except NAT_IP_RANGE_OPTION_UNSPECIFIED. The only valid option with multiple values is: ["PRIMARY_IP_RANGE", "LIST_OF_SECONDARY_IP_RANGES"] Default: [ALL_IP_RANGES] SourceIpRangesToNat []RouterNatSubnetworkToNatSourceIpRangesToNatItem `pulumi:"sourceIpRangesToNat"` } // RouterNatSubnetworkToNatInput is an input type that accepts RouterNatSubnetworkToNatArgs and RouterNatSubnetworkToNatOutput values. // You can construct a concrete instance of `RouterNatSubnetworkToNatInput` via: // // RouterNatSubnetworkToNatArgs{...} type RouterNatSubnetworkToNatInput interface { pulumi.Input ToRouterNatSubnetworkToNatOutput() RouterNatSubnetworkToNatOutput ToRouterNatSubnetworkToNatOutputWithContext(context.Context) RouterNatSubnetworkToNatOutput } // Defines the IP ranges that want to use NAT for a subnetwork. type RouterNatSubnetworkToNatArgs struct { // URL for the subnetwork resource that will use NAT. Name pulumi.StringPtrInput `pulumi:"name"` // A list of the secondary ranges of the Subnetwork that are allowed to use NAT. This can be populated only if "LIST_OF_SECONDARY_IP_RANGES" is one of the values in source_ip_ranges_to_nat. SecondaryIpRangeNames pulumi.StringArrayInput `pulumi:"secondaryIpRangeNames"` // Specify the options for NAT ranges in the Subnetwork. All options of a single value are valid except NAT_IP_RANGE_OPTION_UNSPECIFIED. The only valid option with multiple values is: ["PRIMARY_IP_RANGE", "LIST_OF_SECONDARY_IP_RANGES"] Default: [ALL_IP_RANGES] SourceIpRangesToNat RouterNatSubnetworkToNatSourceIpRangesToNatItemArrayInput `pulumi:"sourceIpRangesToNat"` } func (RouterNatSubnetworkToNatArgs) ElementType() reflect.Type { return reflect.TypeOf((*RouterNatSubnetworkToNat)(nil)).Elem() } func (i RouterNatSubnetworkToNatArgs) ToRouterNatSubnetworkToNatOutput() RouterNatSubnetworkToNatOutput { return i.ToRouterNatSubnetworkToNatOutputWithContext(context.Background()) } func (i RouterNatSubnetworkToNatArgs) ToRouterNatSubnetworkToNatOutputWithContext(ctx context.Context) RouterNatSubnetworkToNatOutput { return pulumi.ToOutputWithContext(ctx, i).(RouterNatSubnetworkToNatOutput) } // RouterNatSubnetworkToNatArrayInput is an input type that accepts RouterNatSubnetworkToNatArray and RouterNatSubnetworkToNatArrayOutput values. // You can construct a concrete instance of `RouterNatSubnetworkToNatArrayInput` via: // // RouterNatSubnetworkToNatArray{ RouterNatSubnetworkToNatArgs{...} } type RouterNatSubnetworkToNatArrayInput interface { pulumi.Input ToRouterNatSubnetworkToNatArrayOutput() RouterNatSubnetworkToNatArrayOutput ToRouterNatSubnetworkToNatArrayOutputWithContext(context.Context) RouterNatSubnetworkToNatArrayOutput } type RouterNatSubnetworkToNatArray []RouterNatSubnetworkToNatInput func (RouterNatSubnetworkToNatArray) ElementType() reflect.Type { return reflect.TypeOf((*[]RouterNatSubnetworkToNat)(nil)).Elem() } func (i RouterNatSubnetworkToNatArray) ToRouterNatSubnetworkToNatArrayOutput() RouterNatSubnetworkToNatArrayOutput { return i.ToRouterNatSubnetworkToNatArrayOutputWithContext(context.Background()) } func (i RouterNatSubnetworkToNatArray) ToRouterNatSubnetworkToNatArrayOutputWithContext(ctx context.Context) RouterNatSubnetworkToNatArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(RouterNatSubnetworkToNatArrayOutput) } // Defines the IP ranges that want to use NAT for a subnetwork. type RouterNatSubnetworkToNatOutput struct{ *pulumi.OutputState } func (RouterNatSubnetworkToNatOutput) ElementType() reflect.Type { return reflect.TypeOf((*RouterNatSubnetworkToNat)(nil)).Elem() } func (o RouterNatSubnetworkToNatOutput) ToRouterNatSubnetworkToNatOutput() RouterNatSubnetworkToNatOutput { return o } func (o RouterNatSubnetworkToNatOutput) ToRouterNatSubnetworkToNatOutputWithContext(ctx context.Context) RouterNatSubnetworkToNatOutput { return o } // URL for the subnetwork resource that will use NAT. func (o RouterNatSubnetworkToNatOutput) Name() pulumi.StringPtrOutput { return o.ApplyT(func(v RouterNatSubnetworkToNat) *string { return v.Name }).(pulumi.StringPtrOutput) } // A list of the secondary ranges of the Subnetwork that are allowed to use NAT. This can be populated only if "LIST_OF_SECONDARY_IP_RANGES" is one of the values in source_ip_ranges_to_nat. func (o RouterNatSubnetworkToNatOutput) SecondaryIpRangeNames() pulumi.StringArrayOutput { return o.ApplyT(func(v RouterNatSubnetworkToNat) []string { return v.SecondaryIpRangeNames }).(pulumi.StringArrayOutput) } // Specify the options for NAT ranges in the Subnetwork. All options of a single value are valid except NAT_IP_RANGE_OPTION_UNSPECIFIED. The only valid option with multiple values is: ["PRIMARY_IP_RANGE", "LIST_OF_SECONDARY_IP_RANGES"] Default: [ALL_IP_RANGES] func (o RouterNatSubnetworkToNatOutput) SourceIpRangesToNat() RouterNatSubnetworkToNatSourceIpRangesToNatItemArrayOutput { return o.ApplyT(func(v RouterNatSubnetworkToNat) []RouterNatSubnetworkToNatSourceIpRangesToNatItem { return v.SourceIpRangesToNat }).(RouterNatSubnetworkToNatSourceIpRangesToNatItemArrayOutput) } type RouterNatSubnetworkToNatArrayOutput struct{ *pulumi.OutputState } func (RouterNatSubnetworkToNatArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]RouterNatSubnetworkToNat)(nil)).Elem() } func (o RouterNatSubnetworkToNatArrayOutput) ToRouterNatSubnetworkToNatArrayOutput() RouterNatSubnetworkToNatArrayOutput { return o } func (o RouterNatSubnetworkToNatArrayOutput) ToRouterNatSubnetworkToNatArrayOutputWithContext(ctx context.Context) RouterNatSubnetworkToNatArrayOutput { return o } func (o RouterNatSubnetworkToNatArrayOutput) Index(i pulumi.IntInput) RouterNatSubnetworkToNatOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouterNatSubnetworkToNat { return vs[0].([]RouterNatSubnetworkToNat)[vs[1].(int)] }).(RouterNatSubnetworkToNatOutput) } // Defines the IP ranges that want to use NAT for a subnetwork. type RouterNatSubnetworkToNatResponse struct { // URL for the subnetwork resource that will use NAT. Name string `pulumi:"name"` // A list of the secondary ranges of the Subnetwork that are allowed to use NAT. This can be populated only if "LIST_OF_SECONDARY_IP_RANGES" is one of the values in source_ip_ranges_to_nat. SecondaryIpRangeNames []string `pulumi:"secondaryIpRangeNames"` // Specify the options for NAT ranges in the Subnetwork. All options of a single value are valid except NAT_IP_RANGE_OPTION_UNSPECIFIED. The only valid option with multiple values is: ["PRIMARY_IP_RANGE", "LIST_OF_SECONDARY_IP_RANGES"] Default: [ALL_IP_RANGES] SourceIpRangesToNat []string `pulumi:"sourceIpRangesToNat"` } // Defines the IP ranges that want to use NAT for a subnetwork. type RouterNatSubnetworkToNatResponseOutput struct{ *pulumi.OutputState } func (RouterNatSubnetworkToNatResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*RouterNatSubnetworkToNatResponse)(nil)).Elem() } func (o RouterNatSubnetworkToNatResponseOutput) ToRouterNatSubnetworkToNatResponseOutput() RouterNatSubnetworkToNatResponseOutput { return o } func (o RouterNatSubnetworkToNatResponseOutput) ToRouterNatSubnetworkToNatResponseOutputWithContext(ctx context.Context) RouterNatSubnetworkToNatResponseOutput { return o } // URL for the subnetwork resource that will use NAT. func (o RouterNatSubnetworkToNatResponseOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v RouterNatSubnetworkToNatResponse) string { return v.Name }).(pulumi.StringOutput) } // A list of the secondary ranges of the Subnetwork that are allowed to use NAT. This can be populated only if "LIST_OF_SECONDARY_IP_RANGES" is one of the values in source_ip_ranges_to_nat. func (o RouterNatSubnetworkToNatResponseOutput) SecondaryIpRangeNames() pulumi.StringArrayOutput { return o.ApplyT(func(v RouterNatSubnetworkToNatResponse) []string { return v.SecondaryIpRangeNames }).(pulumi.StringArrayOutput) } // Specify the options for NAT ranges in the Subnetwork. All options of a single value are valid except NAT_IP_RANGE_OPTION_UNSPECIFIED. The only valid option with multiple values is: ["PRIMARY_IP_RANGE", "LIST_OF_SECONDARY_IP_RANGES"] Default: [ALL_IP_RANGES] func (o RouterNatSubnetworkToNatResponseOutput) SourceIpRangesToNat() pulumi.StringArrayOutput { return o.ApplyT(func(v RouterNatSubnetworkToNatResponse) []string { return v.SourceIpRangesToNat }).(pulumi.StringArrayOutput) } type RouterNatSubnetworkToNatResponseArrayOutput struct{ *pulumi.OutputState } func (RouterNatSubnetworkToNatResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]RouterNatSubnetworkToNatResponse)(nil)).Elem() } func (o RouterNatSubnetworkToNatResponseArrayOutput) ToRouterNatSubnetworkToNatResponseArrayOutput() RouterNatSubnetworkToNatResponseArrayOutput { return o } func (o RouterNatSubnetworkToNatResponseArrayOutput) ToRouterNatSubnetworkToNatResponseArrayOutputWithContext(ctx context.Context) RouterNatSubnetworkToNatResponseArrayOutput { return o } func (o RouterNatSubnetworkToNatResponseArrayOutput) Index(i pulumi.IntInput) RouterNatSubnetworkToNatResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouterNatSubnetworkToNatResponse { return vs[0].([]RouterNatSubnetworkToNatResponse)[vs[1].(int)] }).(RouterNatSubnetworkToNatResponseOutput) } // This is deprecated and has no effect. Do not use. type Rule struct { // This is deprecated and has no effect. Do not use. Action *RuleAction `pulumi:"action"` // This is deprecated and has no effect. Do not use. Conditions []Condition `pulumi:"conditions"` // This is deprecated and has no effect. Do not use. Description *string `pulumi:"description"` // This is deprecated and has no effect. Do not use. Ins []string `pulumi:"ins"` // This is deprecated and has no effect. Do not use. LogConfigs []LogConfig `pulumi:"logConfigs"` // This is deprecated and has no effect. Do not use. NotIns []string `pulumi:"notIns"` // This is deprecated and has no effect. Do not use. Permissions []string `pulumi:"permissions"` } // RuleInput is an input type that accepts RuleArgs and RuleOutput values. // You can construct a concrete instance of `RuleInput` via: // // RuleArgs{...} type RuleInput interface { pulumi.Input ToRuleOutput() RuleOutput ToRuleOutputWithContext(context.Context) RuleOutput } // This is deprecated and has no effect. Do not use. type RuleArgs struct { // This is deprecated and has no effect. Do not use. Action RuleActionPtrInput `pulumi:"action"` // This is deprecated and has no effect. Do not use. Conditions ConditionArrayInput `pulumi:"conditions"` // This is deprecated and has no effect. Do not use. Description pulumi.StringPtrInput `pulumi:"description"` // This is deprecated and has no effect. Do not use. Ins pulumi.StringArrayInput `pulumi:"ins"` // This is deprecated and has no effect. Do not use. LogConfigs LogConfigArrayInput `pulumi:"logConfigs"` // This is deprecated and has no effect. Do not use. NotIns pulumi.StringArrayInput `pulumi:"notIns"` // This is deprecated and has no effect. Do not use. Permissions pulumi.StringArrayInput `pulumi:"permissions"` } func (RuleArgs) ElementType() reflect.Type { return reflect.TypeOf((*Rule)(nil)).Elem() } func (i RuleArgs) ToRuleOutput() RuleOutput { return i.ToRuleOutputWithContext(context.Background()) } func (i RuleArgs) ToRuleOutputWithContext(ctx context.Context) RuleOutput { return pulumi.ToOutputWithContext(ctx, i).(RuleOutput) } // RuleArrayInput is an input type that accepts RuleArray and RuleArrayOutput values. // You can construct a concrete instance of `RuleArrayInput` via: // // RuleArray{ RuleArgs{...} } type RuleArrayInput interface { pulumi.Input ToRuleArrayOutput() RuleArrayOutput ToRuleArrayOutputWithContext(context.Context) RuleArrayOutput } type RuleArray []RuleInput func (RuleArray) ElementType() reflect.Type { return reflect.TypeOf((*[]Rule)(nil)).Elem() } func (i RuleArray) ToRuleArrayOutput() RuleArrayOutput { return i.ToRuleArrayOutputWithContext(context.Background()) } func (i RuleArray) ToRuleArrayOutputWithContext(ctx context.Context) RuleArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(RuleArrayOutput) } // This is deprecated and has no effect. Do not use. type RuleOutput struct{ *pulumi.OutputState } func (RuleOutput) ElementType() reflect.Type { return reflect.TypeOf((*Rule)(nil)).Elem() } func (o RuleOutput) ToRuleOutput() RuleOutput { return o } func (o RuleOutput) ToRuleOutputWithContext(ctx context.Context) RuleOutput { return o } // This is deprecated and has no effect. Do not use. func (o RuleOutput) Action() RuleActionPtrOutput { return o.ApplyT(func(v Rule) *RuleAction { return v.Action }).(RuleActionPtrOutput) } // This is deprecated and has no effect. Do not use. func (o RuleOutput) Conditions() ConditionArrayOutput { return o.ApplyT(func(v Rule) []Condition { return v.Conditions }).(ConditionArrayOutput) } // This is deprecated and has no effect. Do not use. func (o RuleOutput) Description() pulumi.StringPtrOutput { return o.ApplyT(func(v Rule) *string { return v.Description }).(pulumi.StringPtrOutput) } // This is deprecated and has no effect. Do not use. func (o RuleOutput) Ins() pulumi.StringArrayOutput { return o.ApplyT(func(v Rule) []string { return v.Ins }).(pulumi.StringArrayOutput) } // This is deprecated and has no effect. Do not use. func (o RuleOutput) LogConfigs() LogConfigArrayOutput { return o.ApplyT(func(v Rule) []LogConfig { return v.LogConfigs }).(LogConfigArrayOutput) } // This is deprecated and has no effect. Do not use. func (o RuleOutput) NotIns() pulumi.StringArrayOutput { return o.ApplyT(func(v Rule) []string { return v.NotIns }).(pulumi.StringArrayOutput) } // This is deprecated and has no effect. Do not use. func (o RuleOutput) Permissions() pulumi.StringArrayOutput { return o.ApplyT(func(v Rule) []string { return v.Permissions }).(pulumi.StringArrayOutput) } type RuleArrayOutput struct{ *pulumi.OutputState } func (RuleArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]Rule)(nil)).Elem() } func (o RuleArrayOutput) ToRuleArrayOutput() RuleArrayOutput { return o } func (o RuleArrayOutput) ToRuleArrayOutputWithContext(ctx context.Context) RuleArrayOutput { return o } func (o RuleArrayOutput) Index(i pulumi.IntInput) RuleOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) Rule { return vs[0].([]Rule)[vs[1].(int)] }).(RuleOutput) } // This is deprecated and has no effect. Do not use. type RuleResponse struct { // This is deprecated and has no effect. Do not use. Action string `pulumi:"action"` // This is deprecated and has no effect. Do not use. Conditions []ConditionResponse `pulumi:"conditions"` // This is deprecated and has no effect. Do not use. Description string `pulumi:"description"` // This is deprecated and has no effect. Do not use. Ins []string `pulumi:"ins"` // This is deprecated and has no effect. Do not use. LogConfigs []LogConfigResponse `pulumi:"logConfigs"` // This is deprecated and has no effect. Do not use. NotIns []string `pulumi:"notIns"` // This is deprecated and has no effect. Do not use. Permissions []string `pulumi:"permissions"` } // This is deprecated and has no effect. Do not use. type RuleResponseOutput struct{ *pulumi.OutputState } func (RuleResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*RuleResponse)(nil)).Elem() } func (o RuleResponseOutput) ToRuleResponseOutput() RuleResponseOutput { return o } func (o RuleResponseOutput) ToRuleResponseOutputWithContext(ctx context.Context) RuleResponseOutput { return o } // This is deprecated and has no effect. Do not use. func (o RuleResponseOutput) Action() pulumi.StringOutput { return o.ApplyT(func(v RuleResponse) string { return v.Action }).(pulumi.StringOutput) } // This is deprecated and has no effect. Do not use. func (o RuleResponseOutput) Conditions() ConditionResponseArrayOutput { return o.ApplyT(func(v RuleResponse) []ConditionResponse { return v.Conditions }).(ConditionResponseArrayOutput) } // This is deprecated and has no effect. Do not use. func (o RuleResponseOutput) Description() pulumi.StringOutput { return o.ApplyT(func(v RuleResponse) string { return v.Description }).(pulumi.StringOutput) } // This is deprecated and has no effect. Do not use. func (o RuleResponseOutput) Ins() pulumi.StringArrayOutput { return o.ApplyT(func(v RuleResponse) []string { return v.Ins }).(pulumi.StringArrayOutput) } // This is deprecated and has no effect. Do not use. func (o RuleResponseOutput) LogConfigs() LogConfigResponseArrayOutput { return o.ApplyT(func(v RuleResponse) []LogConfigResponse { return v.LogConfigs }).(LogConfigResponseArrayOutput) } // This is deprecated and has no effect. Do not use. func (o RuleResponseOutput) NotIns() pulumi.StringArrayOutput { return o.ApplyT(func(v RuleResponse) []string { return v.NotIns }).(pulumi.StringArrayOutput) } // This is deprecated and has no effect. Do not use. func (o RuleResponseOutput) Permissions() pulumi.StringArrayOutput { return o.ApplyT(func(v RuleResponse) []string { return v.Permissions }).(pulumi.StringArrayOutput) } type RuleResponseArrayOutput struct{ *pulumi.OutputState } func (RuleResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]RuleResponse)(nil)).Elem() } func (o RuleResponseArrayOutput) ToRuleResponseArrayOutput() RuleResponseArrayOutput { return o } func (o RuleResponseArrayOutput) ToRuleResponseArrayOutputWithContext(ctx context.Context) RuleResponseArrayOutput { return o } func (o RuleResponseArrayOutput) Index(i pulumi.IntInput) RuleResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) RuleResponse { return vs[0].([]RuleResponse)[vs[1].(int)] }).(RuleResponseOutput) } type SSLHealthCheck struct { // The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535. Port *int `pulumi:"port"` // Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence. PortName *string `pulumi:"portName"` // Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, SSL health check follows behavior specified in port and portName fields. PortSpecification *SSLHealthCheckPortSpecification `pulumi:"portSpecification"` // Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE. ProxyHeader *SSLHealthCheckProxyHeader `pulumi:"proxyHeader"` // The application data to send once the SSL connection has been established (default value is empty). If both request and response are empty, the connection establishment alone will indicate health. The request data can only be ASCII. Request *string `pulumi:"request"` // The bytes to match against the beginning of the response data. If left empty (the default value), any response will indicate health. The response data can only be ASCII. Response *string `pulumi:"response"` } // SSLHealthCheckInput is an input type that accepts SSLHealthCheckArgs and SSLHealthCheckOutput values. // You can construct a concrete instance of `SSLHealthCheckInput` via: // // SSLHealthCheckArgs{...} type SSLHealthCheckInput interface { pulumi.Input ToSSLHealthCheckOutput() SSLHealthCheckOutput ToSSLHealthCheckOutputWithContext(context.Context) SSLHealthCheckOutput } type SSLHealthCheckArgs struct { // The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535. Port pulumi.IntPtrInput `pulumi:"port"` // Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence. PortName pulumi.StringPtrInput `pulumi:"portName"` // Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, SSL health check follows behavior specified in port and portName fields. PortSpecification SSLHealthCheckPortSpecificationPtrInput `pulumi:"portSpecification"` // Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE. ProxyHeader SSLHealthCheckProxyHeaderPtrInput `pulumi:"proxyHeader"` // The application data to send once the SSL connection has been established (default value is empty). If both request and response are empty, the connection establishment alone will indicate health. The request data can only be ASCII. Request pulumi.StringPtrInput `pulumi:"request"` // The bytes to match against the beginning of the response data. If left empty (the default value), any response will indicate health. The response data can only be ASCII. Response pulumi.StringPtrInput `pulumi:"response"` } func (SSLHealthCheckArgs) ElementType() reflect.Type { return reflect.TypeOf((*SSLHealthCheck)(nil)).Elem() } func (i SSLHealthCheckArgs) ToSSLHealthCheckOutput() SSLHealthCheckOutput { return i.ToSSLHealthCheckOutputWithContext(context.Background()) } func (i SSLHealthCheckArgs) ToSSLHealthCheckOutputWithContext(ctx context.Context) SSLHealthCheckOutput { return pulumi.ToOutputWithContext(ctx, i).(SSLHealthCheckOutput) } func (i SSLHealthCheckArgs) ToSSLHealthCheckPtrOutput() SSLHealthCheckPtrOutput { return i.ToSSLHealthCheckPtrOutputWithContext(context.Background()) } func (i SSLHealthCheckArgs) ToSSLHealthCheckPtrOutputWithContext(ctx context.Context) SSLHealthCheckPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(SSLHealthCheckOutput).ToSSLHealthCheckPtrOutputWithContext(ctx) } // SSLHealthCheckPtrInput is an input type that accepts SSLHealthCheckArgs, SSLHealthCheckPtr and SSLHealthCheckPtrOutput values. // You can construct a concrete instance of `SSLHealthCheckPtrInput` via: // // SSLHealthCheckArgs{...} // // or: // // nil type SSLHealthCheckPtrInput interface { pulumi.Input ToSSLHealthCheckPtrOutput() SSLHealthCheckPtrOutput ToSSLHealthCheckPtrOutputWithContext(context.Context) SSLHealthCheckPtrOutput } type sslhealthCheckPtrType SSLHealthCheckArgs func SSLHealthCheckPtr(v *SSLHealthCheckArgs) SSLHealthCheckPtrInput { return (*sslhealthCheckPtrType)(v) } func (*sslhealthCheckPtrType) ElementType() reflect.Type { return reflect.TypeOf((**SSLHealthCheck)(nil)).Elem() } func (i *sslhealthCheckPtrType) ToSSLHealthCheckPtrOutput() SSLHealthCheckPtrOutput { return i.ToSSLHealthCheckPtrOutputWithContext(context.Background()) } func (i *sslhealthCheckPtrType) ToSSLHealthCheckPtrOutputWithContext(ctx context.Context) SSLHealthCheckPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(SSLHealthCheckPtrOutput) } type SSLHealthCheckOutput struct{ *pulumi.OutputState } func (SSLHealthCheckOutput) ElementType() reflect.Type { return reflect.TypeOf((*SSLHealthCheck)(nil)).Elem() } func (o SSLHealthCheckOutput) ToSSLHealthCheckOutput() SSLHealthCheckOutput { return o } func (o SSLHealthCheckOutput) ToSSLHealthCheckOutputWithContext(ctx context.Context) SSLHealthCheckOutput { return o } func (o SSLHealthCheckOutput) ToSSLHealthCheckPtrOutput() SSLHealthCheckPtrOutput { return o.ToSSLHealthCheckPtrOutputWithContext(context.Background()) } func (o SSLHealthCheckOutput) ToSSLHealthCheckPtrOutputWithContext(ctx context.Context) SSLHealthCheckPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v SSLHealthCheck) *SSLHealthCheck { return &v }).(SSLHealthCheckPtrOutput) } // The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535. func (o SSLHealthCheckOutput) Port() pulumi.IntPtrOutput { return o.ApplyT(func(v SSLHealthCheck) *int { return v.Port }).(pulumi.IntPtrOutput) } // Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence. func (o SSLHealthCheckOutput) PortName() pulumi.StringPtrOutput { return o.ApplyT(func(v SSLHealthCheck) *string { return v.PortName }).(pulumi.StringPtrOutput) } // Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, SSL health check follows behavior specified in port and portName fields. func (o SSLHealthCheckOutput) PortSpecification() SSLHealthCheckPortSpecificationPtrOutput { return o.ApplyT(func(v SSLHealthCheck) *SSLHealthCheckPortSpecification { return v.PortSpecification }).(SSLHealthCheckPortSpecificationPtrOutput) } // Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE. func (o SSLHealthCheckOutput) ProxyHeader() SSLHealthCheckProxyHeaderPtrOutput { return o.ApplyT(func(v SSLHealthCheck) *SSLHealthCheckProxyHeader { return v.ProxyHeader }).(SSLHealthCheckProxyHeaderPtrOutput) } // The application data to send once the SSL connection has been established (default value is empty). If both request and response are empty, the connection establishment alone will indicate health. The request data can only be ASCII. func (o SSLHealthCheckOutput) Request() pulumi.StringPtrOutput { return o.ApplyT(func(v SSLHealthCheck) *string { return v.Request }).(pulumi.StringPtrOutput) } // The bytes to match against the beginning of the response data. If left empty (the default value), any response will indicate health. The response data can only be ASCII. func (o SSLHealthCheckOutput) Response() pulumi.StringPtrOutput { return o.ApplyT(func(v SSLHealthCheck) *string { return v.Response }).(pulumi.StringPtrOutput) } type SSLHealthCheckPtrOutput struct{ *pulumi.OutputState } func (SSLHealthCheckPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**SSLHealthCheck)(nil)).Elem() } func (o SSLHealthCheckPtrOutput) ToSSLHealthCheckPtrOutput() SSLHealthCheckPtrOutput { return o } func (o SSLHealthCheckPtrOutput) ToSSLHealthCheckPtrOutputWithContext(ctx context.Context) SSLHealthCheckPtrOutput { return o } func (o SSLHealthCheckPtrOutput) Elem() SSLHealthCheckOutput { return o.ApplyT(func(v *SSLHealthCheck) SSLHealthCheck { if v != nil { return *v } var ret SSLHealthCheck return ret }).(SSLHealthCheckOutput) } // The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535. func (o SSLHealthCheckPtrOutput) Port() pulumi.IntPtrOutput { return o.ApplyT(func(v *SSLHealthCheck) *int { if v == nil { return nil } return v.Port }).(pulumi.IntPtrOutput) } // Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence. func (o SSLHealthCheckPtrOutput) PortName() pulumi.StringPtrOutput { return o.ApplyT(func(v *SSLHealthCheck) *string { if v == nil { return nil } return v.PortName }).(pulumi.StringPtrOutput) } // Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, SSL health check follows behavior specified in port and portName fields. func (o SSLHealthCheckPtrOutput) PortSpecification() SSLHealthCheckPortSpecificationPtrOutput { return o.ApplyT(func(v *SSLHealthCheck) *SSLHealthCheckPortSpecification { if v == nil { return nil } return v.PortSpecification }).(SSLHealthCheckPortSpecificationPtrOutput) } // Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE. func (o SSLHealthCheckPtrOutput) ProxyHeader() SSLHealthCheckProxyHeaderPtrOutput { return o.ApplyT(func(v *SSLHealthCheck) *SSLHealthCheckProxyHeader { if v == nil { return nil } return v.ProxyHeader }).(SSLHealthCheckProxyHeaderPtrOutput) } // The application data to send once the SSL connection has been established (default value is empty). If both request and response are empty, the connection establishment alone will indicate health. The request data can only be ASCII. func (o SSLHealthCheckPtrOutput) Request() pulumi.StringPtrOutput { return o.ApplyT(func(v *SSLHealthCheck) *string { if v == nil { return nil } return v.Request }).(pulumi.StringPtrOutput) } // The bytes to match against the beginning of the response data. If left empty (the default value), any response will indicate health. The response data can only be ASCII. func (o SSLHealthCheckPtrOutput) Response() pulumi.StringPtrOutput { return o.ApplyT(func(v *SSLHealthCheck) *string { if v == nil { return nil } return v.Response }).(pulumi.StringPtrOutput) } type SSLHealthCheckResponse struct { // The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535. Port int `pulumi:"port"` // Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence. PortName string `pulumi:"portName"` // Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, SSL health check follows behavior specified in port and portName fields. PortSpecification string `pulumi:"portSpecification"` // Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE. ProxyHeader string `pulumi:"proxyHeader"` // The application data to send once the SSL connection has been established (default value is empty). If both request and response are empty, the connection establishment alone will indicate health. The request data can only be ASCII. Request string `pulumi:"request"` // The bytes to match against the beginning of the response data. If left empty (the default value), any response will indicate health. The response data can only be ASCII. Response string `pulumi:"response"` } type SSLHealthCheckResponseOutput struct{ *pulumi.OutputState } func (SSLHealthCheckResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*SSLHealthCheckResponse)(nil)).Elem() } func (o SSLHealthCheckResponseOutput) ToSSLHealthCheckResponseOutput() SSLHealthCheckResponseOutput { return o } func (o SSLHealthCheckResponseOutput) ToSSLHealthCheckResponseOutputWithContext(ctx context.Context) SSLHealthCheckResponseOutput { return o } // The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535. func (o SSLHealthCheckResponseOutput) Port() pulumi.IntOutput { return o.ApplyT(func(v SSLHealthCheckResponse) int { return v.Port }).(pulumi.IntOutput) } // Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence. func (o SSLHealthCheckResponseOutput) PortName() pulumi.StringOutput { return o.ApplyT(func(v SSLHealthCheckResponse) string { return v.PortName }).(pulumi.StringOutput) } // Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, SSL health check follows behavior specified in port and portName fields. func (o SSLHealthCheckResponseOutput) PortSpecification() pulumi.StringOutput { return o.ApplyT(func(v SSLHealthCheckResponse) string { return v.PortSpecification }).(pulumi.StringOutput) } // Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE. func (o SSLHealthCheckResponseOutput) ProxyHeader() pulumi.StringOutput { return o.ApplyT(func(v SSLHealthCheckResponse) string { return v.ProxyHeader }).(pulumi.StringOutput) } // The application data to send once the SSL connection has been established (default value is empty). If both request and response are empty, the connection establishment alone will indicate health. The request data can only be ASCII. func (o SSLHealthCheckResponseOutput) Request() pulumi.StringOutput { return o.ApplyT(func(v SSLHealthCheckResponse) string { return v.Request }).(pulumi.StringOutput) } // The bytes to match against the beginning of the response data. If left empty (the default value), any response will indicate health. The response data can only be ASCII. func (o SSLHealthCheckResponseOutput) Response() pulumi.StringOutput { return o.ApplyT(func(v SSLHealthCheckResponse) string { return v.Response }).(pulumi.StringOutput) } // DEPRECATED: Please use compute#savedDisk instead. An instance-attached disk resource. type SavedAttachedDiskResponse struct { // Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance). AutoDelete bool `pulumi:"autoDelete"` // Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem. Boot bool `pulumi:"boot"` // Specifies the name of the disk attached to the source instance. DeviceName string `pulumi:"deviceName"` // The encryption key for the disk. DiskEncryptionKey CustomerEncryptionKeyResponse `pulumi:"diskEncryptionKey"` // The size of the disk in base-2 GB. DiskSizeGb string `pulumi:"diskSizeGb"` // URL of the disk type resource. For example: projects/project /zones/zone/diskTypes/pd-standard or pd-ssd DiskType string `pulumi:"diskType"` // A list of features to enable on the guest operating system. Applicable only for bootable images. Read Enabling guest operating system features to see a list of available options. GuestOsFeatures []GuestOsFeatureResponse `pulumi:"guestOsFeatures"` // Specifies zero-based index of the disk that is attached to the source instance. Index int `pulumi:"index"` // Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. Interface string `pulumi:"interface"` // Type of the resource. Always compute#attachedDisk for attached disks. Kind string `pulumi:"kind"` // Any valid publicly visible licenses. Licenses []string `pulumi:"licenses"` // The mode in which this disk is attached to the source instance, either READ_WRITE or READ_ONLY. Mode string `pulumi:"mode"` // Specifies a URL of the disk attached to the source instance. Source string `pulumi:"source"` // A size of the storage used by the disk's snapshot by this machine image. StorageBytes string `pulumi:"storageBytes"` // An indicator whether storageBytes is in a stable state or it is being adjusted as a result of shared storage reallocation. This status can either be UPDATING, meaning the size of the snapshot is being updated, or UP_TO_DATE, meaning the size of the snapshot is up-to-date. StorageBytesStatus string `pulumi:"storageBytesStatus"` // Specifies the type of the attached disk, either SCRATCH or PERSISTENT. Type string `pulumi:"type"` } // DEPRECATED: Please use compute#savedDisk instead. An instance-attached disk resource. type SavedAttachedDiskResponseOutput struct{ *pulumi.OutputState } func (SavedAttachedDiskResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*SavedAttachedDiskResponse)(nil)).Elem() } func (o SavedAttachedDiskResponseOutput) ToSavedAttachedDiskResponseOutput() SavedAttachedDiskResponseOutput { return o } func (o SavedAttachedDiskResponseOutput) ToSavedAttachedDiskResponseOutputWithContext(ctx context.Context) SavedAttachedDiskResponseOutput { return o } // Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance). func (o SavedAttachedDiskResponseOutput) AutoDelete() pulumi.BoolOutput { return o.ApplyT(func(v SavedAttachedDiskResponse) bool { return v.AutoDelete }).(pulumi.BoolOutput) } // Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem. func (o SavedAttachedDiskResponseOutput) Boot() pulumi.BoolOutput { return o.ApplyT(func(v SavedAttachedDiskResponse) bool { return v.Boot }).(pulumi.BoolOutput) } // Specifies the name of the disk attached to the source instance. func (o SavedAttachedDiskResponseOutput) DeviceName() pulumi.StringOutput { return o.ApplyT(func(v SavedAttachedDiskResponse) string { return v.DeviceName }).(pulumi.StringOutput) } // The encryption key for the disk. func (o SavedAttachedDiskResponseOutput) DiskEncryptionKey() CustomerEncryptionKeyResponseOutput { return o.ApplyT(func(v SavedAttachedDiskResponse) CustomerEncryptionKeyResponse { return v.DiskEncryptionKey }).(CustomerEncryptionKeyResponseOutput) } // The size of the disk in base-2 GB. func (o SavedAttachedDiskResponseOutput) DiskSizeGb() pulumi.StringOutput { return o.ApplyT(func(v SavedAttachedDiskResponse) string { return v.DiskSizeGb }).(pulumi.StringOutput) } // URL of the disk type resource. For example: projects/project /zones/zone/diskTypes/pd-standard or pd-ssd func (o SavedAttachedDiskResponseOutput) DiskType() pulumi.StringOutput { return o.ApplyT(func(v SavedAttachedDiskResponse) string { return v.DiskType }).(pulumi.StringOutput) } // A list of features to enable on the guest operating system. Applicable only for bootable images. Read Enabling guest operating system features to see a list of available options. func (o SavedAttachedDiskResponseOutput) GuestOsFeatures() GuestOsFeatureResponseArrayOutput { return o.ApplyT(func(v SavedAttachedDiskResponse) []GuestOsFeatureResponse { return v.GuestOsFeatures }).(GuestOsFeatureResponseArrayOutput) } // Specifies zero-based index of the disk that is attached to the source instance. func (o SavedAttachedDiskResponseOutput) Index() pulumi.IntOutput { return o.ApplyT(func(v SavedAttachedDiskResponse) int { return v.Index }).(pulumi.IntOutput) } // Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. func (o SavedAttachedDiskResponseOutput) Interface() pulumi.StringOutput { return o.ApplyT(func(v SavedAttachedDiskResponse) string { return v.Interface }).(pulumi.StringOutput) } // Type of the resource. Always compute#attachedDisk for attached disks. func (o SavedAttachedDiskResponseOutput) Kind() pulumi.StringOutput { return o.ApplyT(func(v SavedAttachedDiskResponse) string { return v.Kind }).(pulumi.StringOutput) } // Any valid publicly visible licenses. func (o SavedAttachedDiskResponseOutput) Licenses() pulumi.StringArrayOutput { return o.ApplyT(func(v SavedAttachedDiskResponse) []string { return v.Licenses }).(pulumi.StringArrayOutput) } // The mode in which this disk is attached to the source instance, either READ_WRITE or READ_ONLY. func (o SavedAttachedDiskResponseOutput) Mode() pulumi.StringOutput { return o.ApplyT(func(v SavedAttachedDiskResponse) string { return v.Mode }).(pulumi.StringOutput) } // Specifies a URL of the disk attached to the source instance. func (o SavedAttachedDiskResponseOutput) Source() pulumi.StringOutput { return o.ApplyT(func(v SavedAttachedDiskResponse) string { return v.Source }).(pulumi.StringOutput) } // A size of the storage used by the disk's snapshot by this machine image. func (o SavedAttachedDiskResponseOutput) StorageBytes() pulumi.StringOutput { return o.ApplyT(func(v SavedAttachedDiskResponse) string { return v.StorageBytes }).(pulumi.StringOutput) } // An indicator whether storageBytes is in a stable state or it is being adjusted as a result of shared storage reallocation. This status can either be UPDATING, meaning the size of the snapshot is being updated, or UP_TO_DATE, meaning the size of the snapshot is up-to-date. func (o SavedAttachedDiskResponseOutput) StorageBytesStatus() pulumi.StringOutput { return o.ApplyT(func(v SavedAttachedDiskResponse) string { return v.StorageBytesStatus }).(pulumi.StringOutput) } // Specifies the type of the attached disk, either SCRATCH or PERSISTENT. func (o SavedAttachedDiskResponseOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v SavedAttachedDiskResponse) string { return v.Type }).(pulumi.StringOutput) } type SavedAttachedDiskResponseArrayOutput struct{ *pulumi.OutputState } func (SavedAttachedDiskResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]SavedAttachedDiskResponse)(nil)).Elem() } func (o SavedAttachedDiskResponseArrayOutput) ToSavedAttachedDiskResponseArrayOutput() SavedAttachedDiskResponseArrayOutput { return o } func (o SavedAttachedDiskResponseArrayOutput) ToSavedAttachedDiskResponseArrayOutputWithContext(ctx context.Context) SavedAttachedDiskResponseArrayOutput { return o } func (o SavedAttachedDiskResponseArrayOutput) Index(i pulumi.IntInput) SavedAttachedDiskResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) SavedAttachedDiskResponse { return vs[0].([]SavedAttachedDiskResponse)[vs[1].(int)] }).(SavedAttachedDiskResponseOutput) } // An instance-attached disk resource. type SavedDisk struct { // Specifies a URL of the disk attached to the source instance. SourceDisk *string `pulumi:"sourceDisk"` } // SavedDiskInput is an input type that accepts SavedDiskArgs and SavedDiskOutput values. // You can construct a concrete instance of `SavedDiskInput` via: // // SavedDiskArgs{...} type SavedDiskInput interface { pulumi.Input ToSavedDiskOutput() SavedDiskOutput ToSavedDiskOutputWithContext(context.Context) SavedDiskOutput } // An instance-attached disk resource. type SavedDiskArgs struct { // Specifies a URL of the disk attached to the source instance. SourceDisk pulumi.StringPtrInput `pulumi:"sourceDisk"` } func (SavedDiskArgs) ElementType() reflect.Type { return reflect.TypeOf((*SavedDisk)(nil)).Elem() } func (i SavedDiskArgs) ToSavedDiskOutput() SavedDiskOutput { return i.ToSavedDiskOutputWithContext(context.Background()) } func (i SavedDiskArgs) ToSavedDiskOutputWithContext(ctx context.Context) SavedDiskOutput { return pulumi.ToOutputWithContext(ctx, i).(SavedDiskOutput) } // SavedDiskArrayInput is an input type that accepts SavedDiskArray and SavedDiskArrayOutput values. // You can construct a concrete instance of `SavedDiskArrayInput` via: // // SavedDiskArray{ SavedDiskArgs{...} } type SavedDiskArrayInput interface { pulumi.Input ToSavedDiskArrayOutput() SavedDiskArrayOutput ToSavedDiskArrayOutputWithContext(context.Context) SavedDiskArrayOutput } type SavedDiskArray []SavedDiskInput func (SavedDiskArray) ElementType() reflect.Type { return reflect.TypeOf((*[]SavedDisk)(nil)).Elem() } func (i SavedDiskArray) ToSavedDiskArrayOutput() SavedDiskArrayOutput { return i.ToSavedDiskArrayOutputWithContext(context.Background()) } func (i SavedDiskArray) ToSavedDiskArrayOutputWithContext(ctx context.Context) SavedDiskArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(SavedDiskArrayOutput) } // An instance-attached disk resource. type SavedDiskOutput struct{ *pulumi.OutputState } func (SavedDiskOutput) ElementType() reflect.Type { return reflect.TypeOf((*SavedDisk)(nil)).Elem() } func (o SavedDiskOutput) ToSavedDiskOutput() SavedDiskOutput { return o } func (o SavedDiskOutput) ToSavedDiskOutputWithContext(ctx context.Context) SavedDiskOutput { return o } // Specifies a URL of the disk attached to the source instance. func (o SavedDiskOutput) SourceDisk() pulumi.StringPtrOutput { return o.ApplyT(func(v SavedDisk) *string { return v.SourceDisk }).(pulumi.StringPtrOutput) } type SavedDiskArrayOutput struct{ *pulumi.OutputState } func (SavedDiskArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]SavedDisk)(nil)).Elem() } func (o SavedDiskArrayOutput) ToSavedDiskArrayOutput() SavedDiskArrayOutput { return o } func (o SavedDiskArrayOutput) ToSavedDiskArrayOutputWithContext(ctx context.Context) SavedDiskArrayOutput { return o } func (o SavedDiskArrayOutput) Index(i pulumi.IntInput) SavedDiskOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) SavedDisk { return vs[0].([]SavedDisk)[vs[1].(int)] }).(SavedDiskOutput) } // An instance-attached disk resource. type SavedDiskResponse struct { // Type of the resource. Always compute#savedDisk for attached disks. Kind string `pulumi:"kind"` // Specifies a URL of the disk attached to the source instance. SourceDisk string `pulumi:"sourceDisk"` // Size of the individual disk snapshot used by this machine image. StorageBytes string `pulumi:"storageBytes"` // An indicator whether storageBytes is in a stable state or it is being adjusted as a result of shared storage reallocation. This status can either be UPDATING, meaning the size of the snapshot is being updated, or UP_TO_DATE, meaning the size of the snapshot is up-to-date. StorageBytesStatus string `pulumi:"storageBytesStatus"` } // An instance-attached disk resource. type SavedDiskResponseOutput struct{ *pulumi.OutputState } func (SavedDiskResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*SavedDiskResponse)(nil)).Elem() } func (o SavedDiskResponseOutput) ToSavedDiskResponseOutput() SavedDiskResponseOutput { return o } func (o SavedDiskResponseOutput) ToSavedDiskResponseOutputWithContext(ctx context.Context) SavedDiskResponseOutput { return o } // Type of the resource. Always compute#savedDisk for attached disks. func (o SavedDiskResponseOutput) Kind() pulumi.StringOutput { return o.ApplyT(func(v SavedDiskResponse) string { return v.Kind }).(pulumi.StringOutput) } // Specifies a URL of the disk attached to the source instance. func (o SavedDiskResponseOutput) SourceDisk() pulumi.StringOutput { return o.ApplyT(func(v SavedDiskResponse) string { return v.SourceDisk }).(pulumi.StringOutput) } // Size of the individual disk snapshot used by this machine image. func (o SavedDiskResponseOutput) StorageBytes() pulumi.StringOutput { return o.ApplyT(func(v SavedDiskResponse) string { return v.StorageBytes }).(pulumi.StringOutput) } // An indicator whether storageBytes is in a stable state or it is being adjusted as a result of shared storage reallocation. This status can either be UPDATING, meaning the size of the snapshot is being updated, or UP_TO_DATE, meaning the size of the snapshot is up-to-date. func (o SavedDiskResponseOutput) StorageBytesStatus() pulumi.StringOutput { return o.ApplyT(func(v SavedDiskResponse) string { return v.StorageBytesStatus }).(pulumi.StringOutput) } type SavedDiskResponseArrayOutput struct{ *pulumi.OutputState } func (SavedDiskResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]SavedDiskResponse)(nil)).Elem() } func (o SavedDiskResponseArrayOutput) ToSavedDiskResponseArrayOutput() SavedDiskResponseArrayOutput { return o } func (o SavedDiskResponseArrayOutput) ToSavedDiskResponseArrayOutputWithContext(ctx context.Context) SavedDiskResponseArrayOutput { return o } func (o SavedDiskResponseArrayOutput) Index(i pulumi.IntInput) SavedDiskResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) SavedDiskResponse { return vs[0].([]SavedDiskResponse)[vs[1].(int)] }).(SavedDiskResponseOutput) } // Sets the scheduling options for an Instance. NextID: 21 type Scheduling struct { // Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted. By default, this is set to true so an instance is automatically restarted if it is terminated by Compute Engine. AutomaticRestart *bool `pulumi:"automaticRestart"` // Specifies the termination action for the instance. InstanceTerminationAction *SchedulingInstanceTerminationAction `pulumi:"instanceTerminationAction"` // An opaque location hint used to place the instance close to other resources. This field is for use by internal tools that use the public API. LocationHint *string `pulumi:"locationHint"` // The minimum number of virtual CPUs this instance will consume when running on a sole-tenant node. MinNodeCpus *int `pulumi:"minNodeCpus"` // A set of node affinity and anti-affinity configurations. Refer to Configuring node affinity for more information. Overrides reservationAffinity. NodeAffinities []SchedulingNodeAffinity `pulumi:"nodeAffinities"` // Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Set VM availability policies. OnHostMaintenance *SchedulingOnHostMaintenance `pulumi:"onHostMaintenance"` // Defines whether the instance is preemptible. This can only be set during instance creation or while the instance is stopped and therefore, in a `TERMINATED` state. See Instance Life Cycle for more information on the possible instance states. Preemptible *bool `pulumi:"preemptible"` // Specifies the provisioning model of the instance. ProvisioningModel *SchedulingProvisioningModel `pulumi:"provisioningModel"` } // SchedulingInput is an input type that accepts SchedulingArgs and SchedulingOutput values. // You can construct a concrete instance of `SchedulingInput` via: // // SchedulingArgs{...} type SchedulingInput interface { pulumi.Input ToSchedulingOutput() SchedulingOutput ToSchedulingOutputWithContext(context.Context) SchedulingOutput } // Sets the scheduling options for an Instance. NextID: 21 type SchedulingArgs struct { // Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted. By default, this is set to true so an instance is automatically restarted if it is terminated by Compute Engine. AutomaticRestart pulumi.BoolPtrInput `pulumi:"automaticRestart"` // Specifies the termination action for the instance. InstanceTerminationAction SchedulingInstanceTerminationActionPtrInput `pulumi:"instanceTerminationAction"` // An opaque location hint used to place the instance close to other resources. This field is for use by internal tools that use the public API. LocationHint pulumi.StringPtrInput `pulumi:"locationHint"` // The minimum number of virtual CPUs this instance will consume when running on a sole-tenant node. MinNodeCpus pulumi.IntPtrInput `pulumi:"minNodeCpus"` // A set of node affinity and anti-affinity configurations. Refer to Configuring node affinity for more information. Overrides reservationAffinity. NodeAffinities SchedulingNodeAffinityArrayInput `pulumi:"nodeAffinities"` // Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Set VM availability policies. OnHostMaintenance SchedulingOnHostMaintenancePtrInput `pulumi:"onHostMaintenance"` // Defines whether the instance is preemptible. This can only be set during instance creation or while the instance is stopped and therefore, in a `TERMINATED` state. See Instance Life Cycle for more information on the possible instance states. Preemptible pulumi.BoolPtrInput `pulumi:"preemptible"` // Specifies the provisioning model of the instance. ProvisioningModel SchedulingProvisioningModelPtrInput `pulumi:"provisioningModel"` } func (SchedulingArgs) ElementType() reflect.Type { return reflect.TypeOf((*Scheduling)(nil)).Elem() } func (i SchedulingArgs) ToSchedulingOutput() SchedulingOutput { return i.ToSchedulingOutputWithContext(context.Background()) } func (i SchedulingArgs) ToSchedulingOutputWithContext(ctx context.Context) SchedulingOutput { return pulumi.ToOutputWithContext(ctx, i).(SchedulingOutput) } func (i SchedulingArgs) ToSchedulingPtrOutput() SchedulingPtrOutput { return i.ToSchedulingPtrOutputWithContext(context.Background()) } func (i SchedulingArgs) ToSchedulingPtrOutputWithContext(ctx context.Context) SchedulingPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(SchedulingOutput).ToSchedulingPtrOutputWithContext(ctx) } // SchedulingPtrInput is an input type that accepts SchedulingArgs, SchedulingPtr and SchedulingPtrOutput values. // You can construct a concrete instance of `SchedulingPtrInput` via: // // SchedulingArgs{...} // // or: // // nil type SchedulingPtrInput interface { pulumi.Input ToSchedulingPtrOutput() SchedulingPtrOutput ToSchedulingPtrOutputWithContext(context.Context) SchedulingPtrOutput } type schedulingPtrType SchedulingArgs func SchedulingPtr(v *SchedulingArgs) SchedulingPtrInput { return (*schedulingPtrType)(v) } func (*schedulingPtrType) ElementType() reflect.Type { return reflect.TypeOf((**Scheduling)(nil)).Elem() } func (i *schedulingPtrType) ToSchedulingPtrOutput() SchedulingPtrOutput { return i.ToSchedulingPtrOutputWithContext(context.Background()) } func (i *schedulingPtrType) ToSchedulingPtrOutputWithContext(ctx context.Context) SchedulingPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(SchedulingPtrOutput) } // Sets the scheduling options for an Instance. NextID: 21 type SchedulingOutput struct{ *pulumi.OutputState } func (SchedulingOutput) ElementType() reflect.Type { return reflect.TypeOf((*Scheduling)(nil)).Elem() } func (o SchedulingOutput) ToSchedulingOutput() SchedulingOutput { return o } func (o SchedulingOutput) ToSchedulingOutputWithContext(ctx context.Context) SchedulingOutput { return o } func (o SchedulingOutput) ToSchedulingPtrOutput() SchedulingPtrOutput { return o.ToSchedulingPtrOutputWithContext(context.Background()) } func (o SchedulingOutput) ToSchedulingPtrOutputWithContext(ctx context.Context) SchedulingPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v Scheduling) *Scheduling { return &v }).(SchedulingPtrOutput) } // Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted. By default, this is set to true so an instance is automatically restarted if it is terminated by Compute Engine. func (o SchedulingOutput) AutomaticRestart() pulumi.BoolPtrOutput { return o.ApplyT(func(v Scheduling) *bool { return v.AutomaticRestart }).(pulumi.BoolPtrOutput) } // Specifies the termination action for the instance. func (o SchedulingOutput) InstanceTerminationAction() SchedulingInstanceTerminationActionPtrOutput { return o.ApplyT(func(v Scheduling) *SchedulingInstanceTerminationAction { return v.InstanceTerminationAction }).(SchedulingInstanceTerminationActionPtrOutput) } // An opaque location hint used to place the instance close to other resources. This field is for use by internal tools that use the public API. func (o SchedulingOutput) LocationHint() pulumi.StringPtrOutput { return o.ApplyT(func(v Scheduling) *string { return v.LocationHint }).(pulumi.StringPtrOutput) } // The minimum number of virtual CPUs this instance will consume when running on a sole-tenant node. func (o SchedulingOutput) MinNodeCpus() pulumi.IntPtrOutput { return o.ApplyT(func(v Scheduling) *int { return v.MinNodeCpus }).(pulumi.IntPtrOutput) } // A set of node affinity and anti-affinity configurations. Refer to Configuring node affinity for more information. Overrides reservationAffinity. func (o SchedulingOutput) NodeAffinities() SchedulingNodeAffinityArrayOutput { return o.ApplyT(func(v Scheduling) []SchedulingNodeAffinity { return v.NodeAffinities }).(SchedulingNodeAffinityArrayOutput) } // Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Set VM availability policies. func (o SchedulingOutput) OnHostMaintenance() SchedulingOnHostMaintenancePtrOutput { return o.ApplyT(func(v Scheduling) *SchedulingOnHostMaintenance { return v.OnHostMaintenance }).(SchedulingOnHostMaintenancePtrOutput) } // Defines whether the instance is preemptible. This can only be set during instance creation or while the instance is stopped and therefore, in a `TERMINATED` state. See Instance Life Cycle for more information on the possible instance states. func (o SchedulingOutput) Preemptible() pulumi.BoolPtrOutput { return o.ApplyT(func(v Scheduling) *bool { return v.Preemptible }).(pulumi.BoolPtrOutput) } // Specifies the provisioning model of the instance. func (o SchedulingOutput) ProvisioningModel() SchedulingProvisioningModelPtrOutput { return o.ApplyT(func(v Scheduling) *SchedulingProvisioningModel { return v.ProvisioningModel }).(SchedulingProvisioningModelPtrOutput) } type SchedulingPtrOutput struct{ *pulumi.OutputState } func (SchedulingPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**Scheduling)(nil)).Elem() } func (o SchedulingPtrOutput) ToSchedulingPtrOutput() SchedulingPtrOutput { return o } func (o SchedulingPtrOutput) ToSchedulingPtrOutputWithContext(ctx context.Context) SchedulingPtrOutput { return o } func (o SchedulingPtrOutput) Elem() SchedulingOutput { return o.ApplyT(func(v *Scheduling) Scheduling { if v != nil { return *v } var ret Scheduling return ret }).(SchedulingOutput) } // Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted. By default, this is set to true so an instance is automatically restarted if it is terminated by Compute Engine. func (o SchedulingPtrOutput) AutomaticRestart() pulumi.BoolPtrOutput { return o.ApplyT(func(v *Scheduling) *bool { if v == nil { return nil } return v.AutomaticRestart }).(pulumi.BoolPtrOutput) } // Specifies the termination action for the instance. func (o SchedulingPtrOutput) InstanceTerminationAction() SchedulingInstanceTerminationActionPtrOutput { return o.ApplyT(func(v *Scheduling) *SchedulingInstanceTerminationAction { if v == nil { return nil } return v.InstanceTerminationAction }).(SchedulingInstanceTerminationActionPtrOutput) } // An opaque location hint used to place the instance close to other resources. This field is for use by internal tools that use the public API. func (o SchedulingPtrOutput) LocationHint() pulumi.StringPtrOutput { return o.ApplyT(func(v *Scheduling) *string { if v == nil { return nil } return v.LocationHint }).(pulumi.StringPtrOutput) } // The minimum number of virtual CPUs this instance will consume when running on a sole-tenant node. func (o SchedulingPtrOutput) MinNodeCpus() pulumi.IntPtrOutput { return o.ApplyT(func(v *Scheduling) *int { if v == nil { return nil } return v.MinNodeCpus }).(pulumi.IntPtrOutput) } // A set of node affinity and anti-affinity configurations. Refer to Configuring node affinity for more information. Overrides reservationAffinity. func (o SchedulingPtrOutput) NodeAffinities() SchedulingNodeAffinityArrayOutput { return o.ApplyT(func(v *Scheduling) []SchedulingNodeAffinity { if v == nil { return nil } return v.NodeAffinities }).(SchedulingNodeAffinityArrayOutput) } // Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Set VM availability policies. func (o SchedulingPtrOutput) OnHostMaintenance() SchedulingOnHostMaintenancePtrOutput { return o.ApplyT(func(v *Scheduling) *SchedulingOnHostMaintenance { if v == nil { return nil } return v.OnHostMaintenance }).(SchedulingOnHostMaintenancePtrOutput) } // Defines whether the instance is preemptible. This can only be set during instance creation or while the instance is stopped and therefore, in a `TERMINATED` state. See Instance Life Cycle for more information on the possible instance states. func (o SchedulingPtrOutput) Preemptible() pulumi.BoolPtrOutput { return o.ApplyT(func(v *Scheduling) *bool { if v == nil { return nil } return v.Preemptible }).(pulumi.BoolPtrOutput) } // Specifies the provisioning model of the instance. func (o SchedulingPtrOutput) ProvisioningModel() SchedulingProvisioningModelPtrOutput { return o.ApplyT(func(v *Scheduling) *SchedulingProvisioningModel { if v == nil { return nil } return v.ProvisioningModel }).(SchedulingProvisioningModelPtrOutput) } // Node Affinity: the configuration of desired nodes onto which this Instance could be scheduled. type SchedulingNodeAffinity struct { // Corresponds to the label key of Node resource. Key *string `pulumi:"key"` // Defines the operation of node selection. Valid operators are IN for affinity and NOT_IN for anti-affinity. Operator *SchedulingNodeAffinityOperator `pulumi:"operator"` // Corresponds to the label values of Node resource. Values []string `pulumi:"values"` } // SchedulingNodeAffinityInput is an input type that accepts SchedulingNodeAffinityArgs and SchedulingNodeAffinityOutput values. // You can construct a concrete instance of `SchedulingNodeAffinityInput` via: // // SchedulingNodeAffinityArgs{...} type SchedulingNodeAffinityInput interface { pulumi.Input ToSchedulingNodeAffinityOutput() SchedulingNodeAffinityOutput ToSchedulingNodeAffinityOutputWithContext(context.Context) SchedulingNodeAffinityOutput } // Node Affinity: the configuration of desired nodes onto which this Instance could be scheduled. type SchedulingNodeAffinityArgs struct { // Corresponds to the label key of Node resource. Key pulumi.StringPtrInput `pulumi:"key"` // Defines the operation of node selection. Valid operators are IN for affinity and NOT_IN for anti-affinity. Operator SchedulingNodeAffinityOperatorPtrInput `pulumi:"operator"` // Corresponds to the label values of Node resource. Values pulumi.StringArrayInput `pulumi:"values"` } func (SchedulingNodeAffinityArgs) ElementType() reflect.Type { return reflect.TypeOf((*SchedulingNodeAffinity)(nil)).Elem() } func (i SchedulingNodeAffinityArgs) ToSchedulingNodeAffinityOutput() SchedulingNodeAffinityOutput { return i.ToSchedulingNodeAffinityOutputWithContext(context.Background()) } func (i SchedulingNodeAffinityArgs) ToSchedulingNodeAffinityOutputWithContext(ctx context.Context) SchedulingNodeAffinityOutput { return pulumi.ToOutputWithContext(ctx, i).(SchedulingNodeAffinityOutput) } // SchedulingNodeAffinityArrayInput is an input type that accepts SchedulingNodeAffinityArray and SchedulingNodeAffinityArrayOutput values. // You can construct a concrete instance of `SchedulingNodeAffinityArrayInput` via: // // SchedulingNodeAffinityArray{ SchedulingNodeAffinityArgs{...} } type SchedulingNodeAffinityArrayInput interface { pulumi.Input ToSchedulingNodeAffinityArrayOutput() SchedulingNodeAffinityArrayOutput ToSchedulingNodeAffinityArrayOutputWithContext(context.Context) SchedulingNodeAffinityArrayOutput } type SchedulingNodeAffinityArray []SchedulingNodeAffinityInput func (SchedulingNodeAffinityArray) ElementType() reflect.Type { return reflect.TypeOf((*[]SchedulingNodeAffinity)(nil)).Elem() } func (i SchedulingNodeAffinityArray) ToSchedulingNodeAffinityArrayOutput() SchedulingNodeAffinityArrayOutput { return i.ToSchedulingNodeAffinityArrayOutputWithContext(context.Background()) } func (i SchedulingNodeAffinityArray) ToSchedulingNodeAffinityArrayOutputWithContext(ctx context.Context) SchedulingNodeAffinityArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(SchedulingNodeAffinityArrayOutput) } // Node Affinity: the configuration of desired nodes onto which this Instance could be scheduled. type SchedulingNodeAffinityOutput struct{ *pulumi.OutputState } func (SchedulingNodeAffinityOutput) ElementType() reflect.Type { return reflect.TypeOf((*SchedulingNodeAffinity)(nil)).Elem() } func (o SchedulingNodeAffinityOutput) ToSchedulingNodeAffinityOutput() SchedulingNodeAffinityOutput { return o } func (o SchedulingNodeAffinityOutput) ToSchedulingNodeAffinityOutputWithContext(ctx context.Context) SchedulingNodeAffinityOutput { return o } // Corresponds to the label key of Node resource. func (o SchedulingNodeAffinityOutput) Key() pulumi.StringPtrOutput { return o.ApplyT(func(v SchedulingNodeAffinity) *string { return v.Key }).(pulumi.StringPtrOutput) } // Defines the operation of node selection. Valid operators are IN for affinity and NOT_IN for anti-affinity. func (o SchedulingNodeAffinityOutput) Operator() SchedulingNodeAffinityOperatorPtrOutput { return o.ApplyT(func(v SchedulingNodeAffinity) *SchedulingNodeAffinityOperator { return v.Operator }).(SchedulingNodeAffinityOperatorPtrOutput) } // Corresponds to the label values of Node resource. func (o SchedulingNodeAffinityOutput) Values() pulumi.StringArrayOutput { return o.ApplyT(func(v SchedulingNodeAffinity) []string { return v.Values }).(pulumi.StringArrayOutput) } type SchedulingNodeAffinityArrayOutput struct{ *pulumi.OutputState } func (SchedulingNodeAffinityArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]SchedulingNodeAffinity)(nil)).Elem() } func (o SchedulingNodeAffinityArrayOutput) ToSchedulingNodeAffinityArrayOutput() SchedulingNodeAffinityArrayOutput { return o } func (o SchedulingNodeAffinityArrayOutput) ToSchedulingNodeAffinityArrayOutputWithContext(ctx context.Context) SchedulingNodeAffinityArrayOutput { return o } func (o SchedulingNodeAffinityArrayOutput) Index(i pulumi.IntInput) SchedulingNodeAffinityOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) SchedulingNodeAffinity { return vs[0].([]SchedulingNodeAffinity)[vs[1].(int)] }).(SchedulingNodeAffinityOutput) } // Node Affinity: the configuration of desired nodes onto which this Instance could be scheduled. type SchedulingNodeAffinityResponse struct { // Corresponds to the label key of Node resource. Key string `pulumi:"key"` // Defines the operation of node selection. Valid operators are IN for affinity and NOT_IN for anti-affinity. Operator string `pulumi:"operator"` // Corresponds to the label values of Node resource. Values []string `pulumi:"values"` } // Node Affinity: the configuration of desired nodes onto which this Instance could be scheduled. type SchedulingNodeAffinityResponseOutput struct{ *pulumi.OutputState } func (SchedulingNodeAffinityResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*SchedulingNodeAffinityResponse)(nil)).Elem() } func (o SchedulingNodeAffinityResponseOutput) ToSchedulingNodeAffinityResponseOutput() SchedulingNodeAffinityResponseOutput { return o } func (o SchedulingNodeAffinityResponseOutput) ToSchedulingNodeAffinityResponseOutputWithContext(ctx context.Context) SchedulingNodeAffinityResponseOutput { return o } // Corresponds to the label key of Node resource. func (o SchedulingNodeAffinityResponseOutput) Key() pulumi.StringOutput { return o.ApplyT(func(v SchedulingNodeAffinityResponse) string { return v.Key }).(pulumi.StringOutput) } // Defines the operation of node selection. Valid operators are IN for affinity and NOT_IN for anti-affinity. func (o SchedulingNodeAffinityResponseOutput) Operator() pulumi.StringOutput { return o.ApplyT(func(v SchedulingNodeAffinityResponse) string { return v.Operator }).(pulumi.StringOutput) } // Corresponds to the label values of Node resource. func (o SchedulingNodeAffinityResponseOutput) Values() pulumi.StringArrayOutput { return o.ApplyT(func(v SchedulingNodeAffinityResponse) []string { return v.Values }).(pulumi.StringArrayOutput) } type SchedulingNodeAffinityResponseArrayOutput struct{ *pulumi.OutputState } func (SchedulingNodeAffinityResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]SchedulingNodeAffinityResponse)(nil)).Elem() } func (o SchedulingNodeAffinityResponseArrayOutput) ToSchedulingNodeAffinityResponseArrayOutput() SchedulingNodeAffinityResponseArrayOutput { return o } func (o SchedulingNodeAffinityResponseArrayOutput) ToSchedulingNodeAffinityResponseArrayOutputWithContext(ctx context.Context) SchedulingNodeAffinityResponseArrayOutput { return o } func (o SchedulingNodeAffinityResponseArrayOutput) Index(i pulumi.IntInput) SchedulingNodeAffinityResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) SchedulingNodeAffinityResponse { return vs[0].([]SchedulingNodeAffinityResponse)[vs[1].(int)] }).(SchedulingNodeAffinityResponseOutput) } // Sets the scheduling options for an Instance. NextID: 21 type SchedulingResponse struct { // Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted. By default, this is set to true so an instance is automatically restarted if it is terminated by Compute Engine. AutomaticRestart bool `pulumi:"automaticRestart"` // Specifies the termination action for the instance. InstanceTerminationAction string `pulumi:"instanceTerminationAction"` // An opaque location hint used to place the instance close to other resources. This field is for use by internal tools that use the public API. LocationHint string `pulumi:"locationHint"` // The minimum number of virtual CPUs this instance will consume when running on a sole-tenant node. MinNodeCpus int `pulumi:"minNodeCpus"` // A set of node affinity and anti-affinity configurations. Refer to Configuring node affinity for more information. Overrides reservationAffinity. NodeAffinities []SchedulingNodeAffinityResponse `pulumi:"nodeAffinities"` // Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Set VM availability policies. OnHostMaintenance string `pulumi:"onHostMaintenance"` // Defines whether the instance is preemptible. This can only be set during instance creation or while the instance is stopped and therefore, in a `TERMINATED` state. See Instance Life Cycle for more information on the possible instance states. Preemptible bool `pulumi:"preemptible"` // Specifies the provisioning model of the instance. ProvisioningModel string `pulumi:"provisioningModel"` } // Sets the scheduling options for an Instance. NextID: 21 type SchedulingResponseOutput struct{ *pulumi.OutputState } func (SchedulingResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*SchedulingResponse)(nil)).Elem() } func (o SchedulingResponseOutput) ToSchedulingResponseOutput() SchedulingResponseOutput { return o } func (o SchedulingResponseOutput) ToSchedulingResponseOutputWithContext(ctx context.Context) SchedulingResponseOutput { return o } // Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted. By default, this is set to true so an instance is automatically restarted if it is terminated by Compute Engine. func (o SchedulingResponseOutput) AutomaticRestart() pulumi.BoolOutput { return o.ApplyT(func(v SchedulingResponse) bool { return v.AutomaticRestart }).(pulumi.BoolOutput) } // Specifies the termination action for the instance. func (o SchedulingResponseOutput) InstanceTerminationAction() pulumi.StringOutput { return o.ApplyT(func(v SchedulingResponse) string { return v.InstanceTerminationAction }).(pulumi.StringOutput) } // An opaque location hint used to place the instance close to other resources. This field is for use by internal tools that use the public API. func (o SchedulingResponseOutput) LocationHint() pulumi.StringOutput { return o.ApplyT(func(v SchedulingResponse) string { return v.LocationHint }).(pulumi.StringOutput) } // The minimum number of virtual CPUs this instance will consume when running on a sole-tenant node. func (o SchedulingResponseOutput) MinNodeCpus() pulumi.IntOutput { return o.ApplyT(func(v SchedulingResponse) int { return v.MinNodeCpus }).(pulumi.IntOutput) } // A set of node affinity and anti-affinity configurations. Refer to Configuring node affinity for more information. Overrides reservationAffinity. func (o SchedulingResponseOutput) NodeAffinities() SchedulingNodeAffinityResponseArrayOutput { return o.ApplyT(func(v SchedulingResponse) []SchedulingNodeAffinityResponse { return v.NodeAffinities }).(SchedulingNodeAffinityResponseArrayOutput) } // Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Set VM availability policies. func (o SchedulingResponseOutput) OnHostMaintenance() pulumi.StringOutput { return o.ApplyT(func(v SchedulingResponse) string { return v.OnHostMaintenance }).(pulumi.StringOutput) } // Defines whether the instance is preemptible. This can only be set during instance creation or while the instance is stopped and therefore, in a `TERMINATED` state. See Instance Life Cycle for more information on the possible instance states. func (o SchedulingResponseOutput) Preemptible() pulumi.BoolOutput { return o.ApplyT(func(v SchedulingResponse) bool { return v.Preemptible }).(pulumi.BoolOutput) } // Specifies the provisioning model of the instance. func (o SchedulingResponseOutput) ProvisioningModel() pulumi.StringOutput { return o.ApplyT(func(v SchedulingResponse) string { return v.ProvisioningModel }).(pulumi.StringOutput) } // Configuration options for Cloud Armor Adaptive Protection (CAAP). type SecurityPolicyAdaptiveProtectionConfig struct { // If set to true, enables Cloud Armor Machine Learning. Layer7DdosDefenseConfig *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig `pulumi:"layer7DdosDefenseConfig"` } // SecurityPolicyAdaptiveProtectionConfigInput is an input type that accepts SecurityPolicyAdaptiveProtectionConfigArgs and SecurityPolicyAdaptiveProtectionConfigOutput values. // You can construct a concrete instance of `SecurityPolicyAdaptiveProtectionConfigInput` via: // // SecurityPolicyAdaptiveProtectionConfigArgs{...} type SecurityPolicyAdaptiveProtectionConfigInput interface { pulumi.Input ToSecurityPolicyAdaptiveProtectionConfigOutput() SecurityPolicyAdaptiveProtectionConfigOutput ToSecurityPolicyAdaptiveProtectionConfigOutputWithContext(context.Context) SecurityPolicyAdaptiveProtectionConfigOutput } // Configuration options for Cloud Armor Adaptive Protection (CAAP). type SecurityPolicyAdaptiveProtectionConfigArgs struct { // If set to true, enables Cloud Armor Machine Learning. Layer7DdosDefenseConfig SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrInput `pulumi:"layer7DdosDefenseConfig"` } func (SecurityPolicyAdaptiveProtectionConfigArgs) ElementType() reflect.Type { return reflect.TypeOf((*SecurityPolicyAdaptiveProtectionConfig)(nil)).Elem() } func (i SecurityPolicyAdaptiveProtectionConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigOutput() SecurityPolicyAdaptiveProtectionConfigOutput { return i.ToSecurityPolicyAdaptiveProtectionConfigOutputWithContext(context.Background()) } func (i SecurityPolicyAdaptiveProtectionConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigOutput { return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdaptiveProtectionConfigOutput) } func (i SecurityPolicyAdaptiveProtectionConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigPtrOutput { return i.ToSecurityPolicyAdaptiveProtectionConfigPtrOutputWithContext(context.Background()) } func (i SecurityPolicyAdaptiveProtectionConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdaptiveProtectionConfigOutput).ToSecurityPolicyAdaptiveProtectionConfigPtrOutputWithContext(ctx) } // SecurityPolicyAdaptiveProtectionConfigPtrInput is an input type that accepts SecurityPolicyAdaptiveProtectionConfigArgs, SecurityPolicyAdaptiveProtectionConfigPtr and SecurityPolicyAdaptiveProtectionConfigPtrOutput values. // You can construct a concrete instance of `SecurityPolicyAdaptiveProtectionConfigPtrInput` via: // // SecurityPolicyAdaptiveProtectionConfigArgs{...} // // or: // // nil type SecurityPolicyAdaptiveProtectionConfigPtrInput interface { pulumi.Input ToSecurityPolicyAdaptiveProtectionConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigPtrOutput ToSecurityPolicyAdaptiveProtectionConfigPtrOutputWithContext(context.Context) SecurityPolicyAdaptiveProtectionConfigPtrOutput } type securityPolicyAdaptiveProtectionConfigPtrType SecurityPolicyAdaptiveProtectionConfigArgs func SecurityPolicyAdaptiveProtectionConfigPtr(v *SecurityPolicyAdaptiveProtectionConfigArgs) SecurityPolicyAdaptiveProtectionConfigPtrInput { return (*securityPolicyAdaptiveProtectionConfigPtrType)(v) } func (*securityPolicyAdaptiveProtectionConfigPtrType) ElementType() reflect.Type { return reflect.TypeOf((**SecurityPolicyAdaptiveProtectionConfig)(nil)).Elem() } func (i *securityPolicyAdaptiveProtectionConfigPtrType) ToSecurityPolicyAdaptiveProtectionConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigPtrOutput { return i.ToSecurityPolicyAdaptiveProtectionConfigPtrOutputWithContext(context.Background()) } func (i *securityPolicyAdaptiveProtectionConfigPtrType) ToSecurityPolicyAdaptiveProtectionConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdaptiveProtectionConfigPtrOutput) } // Configuration options for Cloud Armor Adaptive Protection (CAAP). type SecurityPolicyAdaptiveProtectionConfigOutput struct{ *pulumi.OutputState } func (SecurityPolicyAdaptiveProtectionConfigOutput) ElementType() reflect.Type { return reflect.TypeOf((*SecurityPolicyAdaptiveProtectionConfig)(nil)).Elem() } func (o SecurityPolicyAdaptiveProtectionConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigOutput() SecurityPolicyAdaptiveProtectionConfigOutput { return o } func (o SecurityPolicyAdaptiveProtectionConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigOutput { return o } func (o SecurityPolicyAdaptiveProtectionConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigPtrOutput { return o.ToSecurityPolicyAdaptiveProtectionConfigPtrOutputWithContext(context.Background()) } func (o SecurityPolicyAdaptiveProtectionConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyAdaptiveProtectionConfig) *SecurityPolicyAdaptiveProtectionConfig { return &v }).(SecurityPolicyAdaptiveProtectionConfigPtrOutput) } // If set to true, enables Cloud Armor Machine Learning. func (o SecurityPolicyAdaptiveProtectionConfigOutput) Layer7DdosDefenseConfig() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput { return o.ApplyT(func(v SecurityPolicyAdaptiveProtectionConfig) *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig { return v.Layer7DdosDefenseConfig }).(SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput) } type SecurityPolicyAdaptiveProtectionConfigPtrOutput struct{ *pulumi.OutputState } func (SecurityPolicyAdaptiveProtectionConfigPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**SecurityPolicyAdaptiveProtectionConfig)(nil)).Elem() } func (o SecurityPolicyAdaptiveProtectionConfigPtrOutput) ToSecurityPolicyAdaptiveProtectionConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigPtrOutput { return o } func (o SecurityPolicyAdaptiveProtectionConfigPtrOutput) ToSecurityPolicyAdaptiveProtectionConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigPtrOutput { return o } func (o SecurityPolicyAdaptiveProtectionConfigPtrOutput) Elem() SecurityPolicyAdaptiveProtectionConfigOutput { return o.ApplyT(func(v *SecurityPolicyAdaptiveProtectionConfig) SecurityPolicyAdaptiveProtectionConfig { if v != nil { return *v } var ret SecurityPolicyAdaptiveProtectionConfig return ret }).(SecurityPolicyAdaptiveProtectionConfigOutput) } // If set to true, enables Cloud Armor Machine Learning. func (o SecurityPolicyAdaptiveProtectionConfigPtrOutput) Layer7DdosDefenseConfig() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput { return o.ApplyT(func(v *SecurityPolicyAdaptiveProtectionConfig) *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig { if v == nil { return nil } return v.Layer7DdosDefenseConfig }).(SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput) } // Configuration options for L7 DDoS detection. type SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig struct { // If set to true, enables CAAP for L7 DDoS detection. Enable *bool `pulumi:"enable"` // Rule visibility can be one of the following: STANDARD - opaque rules. (default) PREMIUM - transparent rules. RuleVisibility *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigRuleVisibility `pulumi:"ruleVisibility"` } // SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigInput is an input type that accepts SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs and SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput values. // You can construct a concrete instance of `SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigInput` via: // // SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs{...} type SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigInput interface { pulumi.Input ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutputWithContext(context.Context) SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput } // Configuration options for L7 DDoS detection. type SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs struct { // If set to true, enables CAAP for L7 DDoS detection. Enable pulumi.BoolPtrInput `pulumi:"enable"` // Rule visibility can be one of the following: STANDARD - opaque rules. (default) PREMIUM - transparent rules. RuleVisibility SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigRuleVisibilityPtrInput `pulumi:"ruleVisibility"` } func (SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs) ElementType() reflect.Type { return reflect.TypeOf((*SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig)(nil)).Elem() } func (i SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput { return i.ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutputWithContext(context.Background()) } func (i SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput { return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput) } func (i SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput { return i.ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutputWithContext(context.Background()) } func (i SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput).ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutputWithContext(ctx) } // SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrInput is an input type that accepts SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs, SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtr and SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput values. // You can construct a concrete instance of `SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrInput` via: // // SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs{...} // // or: // // nil type SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrInput interface { pulumi.Input ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutputWithContext(context.Context) SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput } type securityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrType SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs func SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtr(v *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs) SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrInput { return (*securityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrType)(v) } func (*securityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrType) ElementType() reflect.Type { return reflect.TypeOf((**SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig)(nil)).Elem() } func (i *securityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrType) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput { return i.ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutputWithContext(context.Background()) } func (i *securityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrType) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput) } // Configuration options for L7 DDoS detection. type SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput struct{ *pulumi.OutputState } func (SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput) ElementType() reflect.Type { return reflect.TypeOf((*SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig)(nil)).Elem() } func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput { return o } func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput { return o } func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput { return o.ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutputWithContext(context.Background()) } func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig) *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig { return &v }).(SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput) } // If set to true, enables CAAP for L7 DDoS detection. func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput) Enable() pulumi.BoolPtrOutput { return o.ApplyT(func(v SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig) *bool { return v.Enable }).(pulumi.BoolPtrOutput) } // Rule visibility can be one of the following: STANDARD - opaque rules. (default) PREMIUM - transparent rules. func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput) RuleVisibility() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigRuleVisibilityPtrOutput { return o.ApplyT(func(v SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig) *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigRuleVisibility { return v.RuleVisibility }).(SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigRuleVisibilityPtrOutput) } type SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput struct{ *pulumi.OutputState } func (SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig)(nil)).Elem() } func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput { return o } func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput { return o } func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput) Elem() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput { return o.ApplyT(func(v *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig) SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig { if v != nil { return *v } var ret SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig return ret }).(SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput) } // If set to true, enables CAAP for L7 DDoS detection. func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput) Enable() pulumi.BoolPtrOutput { return o.ApplyT(func(v *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig) *bool { if v == nil { return nil } return v.Enable }).(pulumi.BoolPtrOutput) } // Rule visibility can be one of the following: STANDARD - opaque rules. (default) PREMIUM - transparent rules. func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput) RuleVisibility() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigRuleVisibilityPtrOutput { return o.ApplyT(func(v *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig) *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigRuleVisibility { if v == nil { return nil } return v.RuleVisibility }).(SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigRuleVisibilityPtrOutput) } // Configuration options for L7 DDoS detection. type SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigResponse struct { // If set to true, enables CAAP for L7 DDoS detection. Enable bool `pulumi:"enable"` // Rule visibility can be one of the following: STANDARD - opaque rules. (default) PREMIUM - transparent rules. RuleVisibility string `pulumi:"ruleVisibility"` } // Configuration options for L7 DDoS detection. type SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigResponseOutput struct{ *pulumi.OutputState } func (SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigResponse)(nil)).Elem() } func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigResponseOutput) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigResponseOutput() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigResponseOutput { return o } func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigResponseOutput) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigResponseOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigResponseOutput { return o } // If set to true, enables CAAP for L7 DDoS detection. func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigResponseOutput) Enable() pulumi.BoolOutput { return o.ApplyT(func(v SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigResponse) bool { return v.Enable }).(pulumi.BoolOutput) } // Rule visibility can be one of the following: STANDARD - opaque rules. (default) PREMIUM - transparent rules. func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigResponseOutput) RuleVisibility() pulumi.StringOutput { return o.ApplyT(func(v SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigResponse) string { return v.RuleVisibility }).(pulumi.StringOutput) } // Configuration options for Cloud Armor Adaptive Protection (CAAP). type SecurityPolicyAdaptiveProtectionConfigResponse struct { // If set to true, enables Cloud Armor Machine Learning. Layer7DdosDefenseConfig SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigResponse `pulumi:"layer7DdosDefenseConfig"` } // Configuration options for Cloud Armor Adaptive Protection (CAAP). type SecurityPolicyAdaptiveProtectionConfigResponseOutput struct{ *pulumi.OutputState } func (SecurityPolicyAdaptiveProtectionConfigResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*SecurityPolicyAdaptiveProtectionConfigResponse)(nil)).Elem() } func (o SecurityPolicyAdaptiveProtectionConfigResponseOutput) ToSecurityPolicyAdaptiveProtectionConfigResponseOutput() SecurityPolicyAdaptiveProtectionConfigResponseOutput { return o } func (o SecurityPolicyAdaptiveProtectionConfigResponseOutput) ToSecurityPolicyAdaptiveProtectionConfigResponseOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigResponseOutput { return o } // If set to true, enables Cloud Armor Machine Learning. func (o SecurityPolicyAdaptiveProtectionConfigResponseOutput) Layer7DdosDefenseConfig() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigResponseOutput { return o.ApplyT(func(v SecurityPolicyAdaptiveProtectionConfigResponse) SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigResponse { return v.Layer7DdosDefenseConfig }).(SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigResponseOutput) } type SecurityPolicyAdvancedOptionsConfig struct { JsonParsing *SecurityPolicyAdvancedOptionsConfigJsonParsing `pulumi:"jsonParsing"` LogLevel *SecurityPolicyAdvancedOptionsConfigLogLevel `pulumi:"logLevel"` } // SecurityPolicyAdvancedOptionsConfigInput is an input type that accepts SecurityPolicyAdvancedOptionsConfigArgs and SecurityPolicyAdvancedOptionsConfigOutput values. // You can construct a concrete instance of `SecurityPolicyAdvancedOptionsConfigInput` via: // // SecurityPolicyAdvancedOptionsConfigArgs{...} type SecurityPolicyAdvancedOptionsConfigInput interface { pulumi.Input ToSecurityPolicyAdvancedOptionsConfigOutput() SecurityPolicyAdvancedOptionsConfigOutput ToSecurityPolicyAdvancedOptionsConfigOutputWithContext(context.Context) SecurityPolicyAdvancedOptionsConfigOutput } type SecurityPolicyAdvancedOptionsConfigArgs struct { JsonParsing SecurityPolicyAdvancedOptionsConfigJsonParsingPtrInput `pulumi:"jsonParsing"` LogLevel SecurityPolicyAdvancedOptionsConfigLogLevelPtrInput `pulumi:"logLevel"` } func (SecurityPolicyAdvancedOptionsConfigArgs) ElementType() reflect.Type { return reflect.TypeOf((*SecurityPolicyAdvancedOptionsConfig)(nil)).Elem() } func (i SecurityPolicyAdvancedOptionsConfigArgs) ToSecurityPolicyAdvancedOptionsConfigOutput() SecurityPolicyAdvancedOptionsConfigOutput { return i.ToSecurityPolicyAdvancedOptionsConfigOutputWithContext(context.Background()) } func (i SecurityPolicyAdvancedOptionsConfigArgs) ToSecurityPolicyAdvancedOptionsConfigOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigOutput { return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdvancedOptionsConfigOutput) } func (i SecurityPolicyAdvancedOptionsConfigArgs) ToSecurityPolicyAdvancedOptionsConfigPtrOutput() SecurityPolicyAdvancedOptionsConfigPtrOutput { return i.ToSecurityPolicyAdvancedOptionsConfigPtrOutputWithContext(context.Background()) } func (i SecurityPolicyAdvancedOptionsConfigArgs) ToSecurityPolicyAdvancedOptionsConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdvancedOptionsConfigOutput).ToSecurityPolicyAdvancedOptionsConfigPtrOutputWithContext(ctx) } // SecurityPolicyAdvancedOptionsConfigPtrInput is an input type that accepts SecurityPolicyAdvancedOptionsConfigArgs, SecurityPolicyAdvancedOptionsConfigPtr and SecurityPolicyAdvancedOptionsConfigPtrOutput values. // You can construct a concrete instance of `SecurityPolicyAdvancedOptionsConfigPtrInput` via: // // SecurityPolicyAdvancedOptionsConfigArgs{...} // // or: // // nil type SecurityPolicyAdvancedOptionsConfigPtrInput interface { pulumi.Input ToSecurityPolicyAdvancedOptionsConfigPtrOutput() SecurityPolicyAdvancedOptionsConfigPtrOutput ToSecurityPolicyAdvancedOptionsConfigPtrOutputWithContext(context.Context) SecurityPolicyAdvancedOptionsConfigPtrOutput } type securityPolicyAdvancedOptionsConfigPtrType SecurityPolicyAdvancedOptionsConfigArgs func SecurityPolicyAdvancedOptionsConfigPtr(v *SecurityPolicyAdvancedOptionsConfigArgs) SecurityPolicyAdvancedOptionsConfigPtrInput { return (*securityPolicyAdvancedOptionsConfigPtrType)(v) } func (*securityPolicyAdvancedOptionsConfigPtrType) ElementType() reflect.Type { return reflect.TypeOf((**SecurityPolicyAdvancedOptionsConfig)(nil)).Elem() } func (i *securityPolicyAdvancedOptionsConfigPtrType) ToSecurityPolicyAdvancedOptionsConfigPtrOutput() SecurityPolicyAdvancedOptionsConfigPtrOutput { return i.ToSecurityPolicyAdvancedOptionsConfigPtrOutputWithContext(context.Background()) } func (i *securityPolicyAdvancedOptionsConfigPtrType) ToSecurityPolicyAdvancedOptionsConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdvancedOptionsConfigPtrOutput) } type SecurityPolicyAdvancedOptionsConfigOutput struct{ *pulumi.OutputState } func (SecurityPolicyAdvancedOptionsConfigOutput) ElementType() reflect.Type { return reflect.TypeOf((*SecurityPolicyAdvancedOptionsConfig)(nil)).Elem() } func (o SecurityPolicyAdvancedOptionsConfigOutput) ToSecurityPolicyAdvancedOptionsConfigOutput() SecurityPolicyAdvancedOptionsConfigOutput { return o } func (o SecurityPolicyAdvancedOptionsConfigOutput) ToSecurityPolicyAdvancedOptionsConfigOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigOutput { return o } func (o SecurityPolicyAdvancedOptionsConfigOutput) ToSecurityPolicyAdvancedOptionsConfigPtrOutput() SecurityPolicyAdvancedOptionsConfigPtrOutput { return o.ToSecurityPolicyAdvancedOptionsConfigPtrOutputWithContext(context.Background()) } func (o SecurityPolicyAdvancedOptionsConfigOutput) ToSecurityPolicyAdvancedOptionsConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyAdvancedOptionsConfig) *SecurityPolicyAdvancedOptionsConfig { return &v }).(SecurityPolicyAdvancedOptionsConfigPtrOutput) } func (o SecurityPolicyAdvancedOptionsConfigOutput) JsonParsing() SecurityPolicyAdvancedOptionsConfigJsonParsingPtrOutput { return o.ApplyT(func(v SecurityPolicyAdvancedOptionsConfig) *SecurityPolicyAdvancedOptionsConfigJsonParsing { return v.JsonParsing }).(SecurityPolicyAdvancedOptionsConfigJsonParsingPtrOutput) } func (o SecurityPolicyAdvancedOptionsConfigOutput) LogLevel() SecurityPolicyAdvancedOptionsConfigLogLevelPtrOutput { return o.ApplyT(func(v SecurityPolicyAdvancedOptionsConfig) *SecurityPolicyAdvancedOptionsConfigLogLevel { return v.LogLevel }).(SecurityPolicyAdvancedOptionsConfigLogLevelPtrOutput) } type SecurityPolicyAdvancedOptionsConfigPtrOutput struct{ *pulumi.OutputState } func (SecurityPolicyAdvancedOptionsConfigPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**SecurityPolicyAdvancedOptionsConfig)(nil)).Elem() } func (o SecurityPolicyAdvancedOptionsConfigPtrOutput) ToSecurityPolicyAdvancedOptionsConfigPtrOutput() SecurityPolicyAdvancedOptionsConfigPtrOutput { return o } func (o SecurityPolicyAdvancedOptionsConfigPtrOutput) ToSecurityPolicyAdvancedOptionsConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigPtrOutput { return o } func (o SecurityPolicyAdvancedOptionsConfigPtrOutput) Elem() SecurityPolicyAdvancedOptionsConfigOutput { return o.ApplyT(func(v *SecurityPolicyAdvancedOptionsConfig) SecurityPolicyAdvancedOptionsConfig { if v != nil { return *v } var ret SecurityPolicyAdvancedOptionsConfig return ret }).(SecurityPolicyAdvancedOptionsConfigOutput) } func (o SecurityPolicyAdvancedOptionsConfigPtrOutput) JsonParsing() SecurityPolicyAdvancedOptionsConfigJsonParsingPtrOutput { return o.ApplyT(func(v *SecurityPolicyAdvancedOptionsConfig) *SecurityPolicyAdvancedOptionsConfigJsonParsing { if v == nil { return nil } return v.JsonParsing }).(SecurityPolicyAdvancedOptionsConfigJsonParsingPtrOutput) } func (o SecurityPolicyAdvancedOptionsConfigPtrOutput) LogLevel() SecurityPolicyAdvancedOptionsConfigLogLevelPtrOutput { return o.ApplyT(func(v *SecurityPolicyAdvancedOptionsConfig) *SecurityPolicyAdvancedOptionsConfigLogLevel { if v == nil { return nil } return v.LogLevel }).(SecurityPolicyAdvancedOptionsConfigLogLevelPtrOutput) } type SecurityPolicyAdvancedOptionsConfigResponse struct { JsonParsing string `pulumi:"jsonParsing"` LogLevel string `pulumi:"logLevel"` } type SecurityPolicyAdvancedOptionsConfigResponseOutput struct{ *pulumi.OutputState } func (SecurityPolicyAdvancedOptionsConfigResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*SecurityPolicyAdvancedOptionsConfigResponse)(nil)).Elem() } func (o SecurityPolicyAdvancedOptionsConfigResponseOutput) ToSecurityPolicyAdvancedOptionsConfigResponseOutput() SecurityPolicyAdvancedOptionsConfigResponseOutput { return o } func (o SecurityPolicyAdvancedOptionsConfigResponseOutput) ToSecurityPolicyAdvancedOptionsConfigResponseOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigResponseOutput { return o } func (o SecurityPolicyAdvancedOptionsConfigResponseOutput) JsonParsing() pulumi.StringOutput { return o.ApplyT(func(v SecurityPolicyAdvancedOptionsConfigResponse) string { return v.JsonParsing }).(pulumi.StringOutput) } func (o SecurityPolicyAdvancedOptionsConfigResponseOutput) LogLevel() pulumi.StringOutput { return o.ApplyT(func(v SecurityPolicyAdvancedOptionsConfigResponse) string { return v.LogLevel }).(pulumi.StringOutput) } type SecurityPolicyRecaptchaOptionsConfig struct { // An optional field to supply a reCAPTCHA site key to be used for all the rules using the redirect action with the type of GOOGLE_RECAPTCHA under the security policy. The specified site key needs to be created from the reCAPTCHA API. The user is responsible for the validity of the specified site key. If not specified, a Google-managed site key is used. RedirectSiteKey *string `pulumi:"redirectSiteKey"` } // SecurityPolicyRecaptchaOptionsConfigInput is an input type that accepts SecurityPolicyRecaptchaOptionsConfigArgs and SecurityPolicyRecaptchaOptionsConfigOutput values. // You can construct a concrete instance of `SecurityPolicyRecaptchaOptionsConfigInput` via: // // SecurityPolicyRecaptchaOptionsConfigArgs{...} type SecurityPolicyRecaptchaOptionsConfigInput interface { pulumi.Input ToSecurityPolicyRecaptchaOptionsConfigOutput() SecurityPolicyRecaptchaOptionsConfigOutput ToSecurityPolicyRecaptchaOptionsConfigOutputWithContext(context.Context) SecurityPolicyRecaptchaOptionsConfigOutput } type SecurityPolicyRecaptchaOptionsConfigArgs struct { // An optional field to supply a reCAPTCHA site key to be used for all the rules using the redirect action with the type of GOOGLE_RECAPTCHA under the security policy. The specified site key needs to be created from the reCAPTCHA API. The user is responsible for the validity of the specified site key. If not specified, a Google-managed site key is used. RedirectSiteKey pulumi.StringPtrInput `pulumi:"redirectSiteKey"` } func (SecurityPolicyRecaptchaOptionsConfigArgs) ElementType() reflect.Type { return reflect.TypeOf((*SecurityPolicyRecaptchaOptionsConfig)(nil)).Elem() } func (i SecurityPolicyRecaptchaOptionsConfigArgs) ToSecurityPolicyRecaptchaOptionsConfigOutput() SecurityPolicyRecaptchaOptionsConfigOutput { return i.ToSecurityPolicyRecaptchaOptionsConfigOutputWithContext(context.Background()) } func (i SecurityPolicyRecaptchaOptionsConfigArgs) ToSecurityPolicyRecaptchaOptionsConfigOutputWithContext(ctx context.Context) SecurityPolicyRecaptchaOptionsConfigOutput { return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRecaptchaOptionsConfigOutput) } func (i SecurityPolicyRecaptchaOptionsConfigArgs) ToSecurityPolicyRecaptchaOptionsConfigPtrOutput() SecurityPolicyRecaptchaOptionsConfigPtrOutput { return i.ToSecurityPolicyRecaptchaOptionsConfigPtrOutputWithContext(context.Background()) } func (i SecurityPolicyRecaptchaOptionsConfigArgs) ToSecurityPolicyRecaptchaOptionsConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRecaptchaOptionsConfigPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRecaptchaOptionsConfigOutput).ToSecurityPolicyRecaptchaOptionsConfigPtrOutputWithContext(ctx) } // SecurityPolicyRecaptchaOptionsConfigPtrInput is an input type that accepts SecurityPolicyRecaptchaOptionsConfigArgs, SecurityPolicyRecaptchaOptionsConfigPtr and SecurityPolicyRecaptchaOptionsConfigPtrOutput values. // You can construct a concrete instance of `SecurityPolicyRecaptchaOptionsConfigPtrInput` via: // // SecurityPolicyRecaptchaOptionsConfigArgs{...} // // or: // // nil type SecurityPolicyRecaptchaOptionsConfigPtrInput interface { pulumi.Input ToSecurityPolicyRecaptchaOptionsConfigPtrOutput() SecurityPolicyRecaptchaOptionsConfigPtrOutput ToSecurityPolicyRecaptchaOptionsConfigPtrOutputWithContext(context.Context) SecurityPolicyRecaptchaOptionsConfigPtrOutput } type securityPolicyRecaptchaOptionsConfigPtrType SecurityPolicyRecaptchaOptionsConfigArgs func SecurityPolicyRecaptchaOptionsConfigPtr(v *SecurityPolicyRecaptchaOptionsConfigArgs) SecurityPolicyRecaptchaOptionsConfigPtrInput { return (*securityPolicyRecaptchaOptionsConfigPtrType)(v) } func (*securityPolicyRecaptchaOptionsConfigPtrType) ElementType() reflect.Type { return reflect.TypeOf((**SecurityPolicyRecaptchaOptionsConfig)(nil)).Elem() } func (i *securityPolicyRecaptchaOptionsConfigPtrType) ToSecurityPolicyRecaptchaOptionsConfigPtrOutput() SecurityPolicyRecaptchaOptionsConfigPtrOutput { return i.ToSecurityPolicyRecaptchaOptionsConfigPtrOutputWithContext(context.Background()) } func (i *securityPolicyRecaptchaOptionsConfigPtrType) ToSecurityPolicyRecaptchaOptionsConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRecaptchaOptionsConfigPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRecaptchaOptionsConfigPtrOutput) } type SecurityPolicyRecaptchaOptionsConfigOutput struct{ *pulumi.OutputState } func (SecurityPolicyRecaptchaOptionsConfigOutput) ElementType() reflect.Type { return reflect.TypeOf((*SecurityPolicyRecaptchaOptionsConfig)(nil)).Elem() } func (o SecurityPolicyRecaptchaOptionsConfigOutput) ToSecurityPolicyRecaptchaOptionsConfigOutput() SecurityPolicyRecaptchaOptionsConfigOutput { return o } func (o SecurityPolicyRecaptchaOptionsConfigOutput) ToSecurityPolicyRecaptchaOptionsConfigOutputWithContext(ctx context.Context) SecurityPolicyRecaptchaOptionsConfigOutput { return o } func (o SecurityPolicyRecaptchaOptionsConfigOutput) ToSecurityPolicyRecaptchaOptionsConfigPtrOutput() SecurityPolicyRecaptchaOptionsConfigPtrOutput { return o.ToSecurityPolicyRecaptchaOptionsConfigPtrOutputWithContext(context.Background()) } func (o SecurityPolicyRecaptchaOptionsConfigOutput) ToSecurityPolicyRecaptchaOptionsConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRecaptchaOptionsConfigPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRecaptchaOptionsConfig) *SecurityPolicyRecaptchaOptionsConfig { return &v }).(SecurityPolicyRecaptchaOptionsConfigPtrOutput) } // An optional field to supply a reCAPTCHA site key to be used for all the rules using the redirect action with the type of GOOGLE_RECAPTCHA under the security policy. The specified site key needs to be created from the reCAPTCHA API. The user is responsible for the validity of the specified site key. If not specified, a Google-managed site key is used. func (o SecurityPolicyRecaptchaOptionsConfigOutput) RedirectSiteKey() pulumi.StringPtrOutput { return o.ApplyT(func(v SecurityPolicyRecaptchaOptionsConfig) *string { return v.RedirectSiteKey }).(pulumi.StringPtrOutput) } type SecurityPolicyRecaptchaOptionsConfigPtrOutput struct{ *pulumi.OutputState } func (SecurityPolicyRecaptchaOptionsConfigPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**SecurityPolicyRecaptchaOptionsConfig)(nil)).Elem() } func (o SecurityPolicyRecaptchaOptionsConfigPtrOutput) ToSecurityPolicyRecaptchaOptionsConfigPtrOutput() SecurityPolicyRecaptchaOptionsConfigPtrOutput { return o } func (o SecurityPolicyRecaptchaOptionsConfigPtrOutput) ToSecurityPolicyRecaptchaOptionsConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRecaptchaOptionsConfigPtrOutput { return o } func (o SecurityPolicyRecaptchaOptionsConfigPtrOutput) Elem() SecurityPolicyRecaptchaOptionsConfigOutput { return o.ApplyT(func(v *SecurityPolicyRecaptchaOptionsConfig) SecurityPolicyRecaptchaOptionsConfig { if v != nil { return *v } var ret SecurityPolicyRecaptchaOptionsConfig return ret }).(SecurityPolicyRecaptchaOptionsConfigOutput) } // An optional field to supply a reCAPTCHA site key to be used for all the rules using the redirect action with the type of GOOGLE_RECAPTCHA under the security policy. The specified site key needs to be created from the reCAPTCHA API. The user is responsible for the validity of the specified site key. If not specified, a Google-managed site key is used. func (o SecurityPolicyRecaptchaOptionsConfigPtrOutput) RedirectSiteKey() pulumi.StringPtrOutput { return o.ApplyT(func(v *SecurityPolicyRecaptchaOptionsConfig) *string { if v == nil { return nil } return v.RedirectSiteKey }).(pulumi.StringPtrOutput) } type SecurityPolicyRecaptchaOptionsConfigResponse struct { // An optional field to supply a reCAPTCHA site key to be used for all the rules using the redirect action with the type of GOOGLE_RECAPTCHA under the security policy. The specified site key needs to be created from the reCAPTCHA API. The user is responsible for the validity of the specified site key. If not specified, a Google-managed site key is used. RedirectSiteKey string `pulumi:"redirectSiteKey"` } type SecurityPolicyRecaptchaOptionsConfigResponseOutput struct{ *pulumi.OutputState } func (SecurityPolicyRecaptchaOptionsConfigResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*SecurityPolicyRecaptchaOptionsConfigResponse)(nil)).Elem() } func (o SecurityPolicyRecaptchaOptionsConfigResponseOutput) ToSecurityPolicyRecaptchaOptionsConfigResponseOutput() SecurityPolicyRecaptchaOptionsConfigResponseOutput { return o } func (o SecurityPolicyRecaptchaOptionsConfigResponseOutput) ToSecurityPolicyRecaptchaOptionsConfigResponseOutputWithContext(ctx context.Context) SecurityPolicyRecaptchaOptionsConfigResponseOutput { return o } // An optional field to supply a reCAPTCHA site key to be used for all the rules using the redirect action with the type of GOOGLE_RECAPTCHA under the security policy. The specified site key needs to be created from the reCAPTCHA API. The user is responsible for the validity of the specified site key. If not specified, a Google-managed site key is used. func (o SecurityPolicyRecaptchaOptionsConfigResponseOutput) RedirectSiteKey() pulumi.StringOutput { return o.ApplyT(func(v SecurityPolicyRecaptchaOptionsConfigResponse) string { return v.RedirectSiteKey }).(pulumi.StringOutput) } // Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny). type SecurityPolicyRule struct { // The Action to perform when the rule is matched. The following are the valid actions: - allow: allow access to target. - deny(): deny access to target, returns the HTTP response code specified (valid values are 403, 404, and 502). - rate_based_ban: limit client traffic to the configured threshold and ban the client if the traffic exceeds the threshold. Configure parameters for this action in RateLimitOptions. Requires rate_limit_options to be set. - redirect: redirect to a different target. This can either be an internal reCAPTCHA redirect, or an external URL-based redirect via a 302 response. Parameters for this action can be configured via redirectOptions. - throttle: limit client traffic to the configured threshold. Configure parameters for this action in rateLimitOptions. Requires rate_limit_options to be set for this. Action *string `pulumi:"action"` // An optional description of this resource. Provide this property when you create the resource. Description *string `pulumi:"description"` // Optional, additional actions that are performed on headers. HeaderAction *SecurityPolicyRuleHttpHeaderAction `pulumi:"headerAction"` // A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced. Match *SecurityPolicyRuleMatcher `pulumi:"match"` // If set to true, the specified action is not enforced. Preview *bool `pulumi:"preview"` // An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest priority. Priority *int `pulumi:"priority"` // Must be specified if the action is "rate_based_ban" or "throttle". Cannot be specified for any other actions. RateLimitOptions *SecurityPolicyRuleRateLimitOptions `pulumi:"rateLimitOptions"` // Parameters defining the redirect action. Cannot be specified for any other actions. RedirectOptions *SecurityPolicyRuleRedirectOptions `pulumi:"redirectOptions"` } // SecurityPolicyRuleInput is an input type that accepts SecurityPolicyRuleArgs and SecurityPolicyRuleOutput values. // You can construct a concrete instance of `SecurityPolicyRuleInput` via: // // SecurityPolicyRuleArgs{...} type SecurityPolicyRuleInput interface { pulumi.Input ToSecurityPolicyRuleOutput() SecurityPolicyRuleOutput ToSecurityPolicyRuleOutputWithContext(context.Context) SecurityPolicyRuleOutput } // Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny). type SecurityPolicyRuleArgs struct { // The Action to perform when the rule is matched. The following are the valid actions: - allow: allow access to target. - deny(): deny access to target, returns the HTTP response code specified (valid values are 403, 404, and 502). - rate_based_ban: limit client traffic to the configured threshold and ban the client if the traffic exceeds the threshold. Configure parameters for this action in RateLimitOptions. Requires rate_limit_options to be set. - redirect: redirect to a different target. This can either be an internal reCAPTCHA redirect, or an external URL-based redirect via a 302 response. Parameters for this action can be configured via redirectOptions. - throttle: limit client traffic to the configured threshold. Configure parameters for this action in rateLimitOptions. Requires rate_limit_options to be set for this. Action pulumi.StringPtrInput `pulumi:"action"` // An optional description of this resource. Provide this property when you create the resource. Description pulumi.StringPtrInput `pulumi:"description"` // Optional, additional actions that are performed on headers. HeaderAction SecurityPolicyRuleHttpHeaderActionPtrInput `pulumi:"headerAction"` // A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced. Match SecurityPolicyRuleMatcherPtrInput `pulumi:"match"` // If set to true, the specified action is not enforced. Preview pulumi.BoolPtrInput `pulumi:"preview"` // An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest priority. Priority pulumi.IntPtrInput `pulumi:"priority"` // Must be specified if the action is "rate_based_ban" or "throttle". Cannot be specified for any other actions. RateLimitOptions SecurityPolicyRuleRateLimitOptionsPtrInput `pulumi:"rateLimitOptions"` // Parameters defining the redirect action. Cannot be specified for any other actions. RedirectOptions SecurityPolicyRuleRedirectOptionsPtrInput `pulumi:"redirectOptions"` } func (SecurityPolicyRuleArgs) ElementType() reflect.Type { return reflect.TypeOf((*SecurityPolicyRule)(nil)).Elem() } func (i SecurityPolicyRuleArgs) ToSecurityPolicyRuleOutput() SecurityPolicyRuleOutput { return i.ToSecurityPolicyRuleOutputWithContext(context.Background()) } func (i SecurityPolicyRuleArgs) ToSecurityPolicyRuleOutputWithContext(ctx context.Context) SecurityPolicyRuleOutput { return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleOutput) } // SecurityPolicyRuleArrayInput is an input type that accepts SecurityPolicyRuleArray and SecurityPolicyRuleArrayOutput values. // You can construct a concrete instance of `SecurityPolicyRuleArrayInput` via: // // SecurityPolicyRuleArray{ SecurityPolicyRuleArgs{...} } type SecurityPolicyRuleArrayInput interface { pulumi.Input ToSecurityPolicyRuleArrayOutput() SecurityPolicyRuleArrayOutput ToSecurityPolicyRuleArrayOutputWithContext(context.Context) SecurityPolicyRuleArrayOutput } type SecurityPolicyRuleArray []SecurityPolicyRuleInput func (SecurityPolicyRuleArray) ElementType() reflect.Type { return reflect.TypeOf((*[]SecurityPolicyRule)(nil)).Elem() } func (i SecurityPolicyRuleArray) ToSecurityPolicyRuleArrayOutput() SecurityPolicyRuleArrayOutput { return i.ToSecurityPolicyRuleArrayOutputWithContext(context.Background()) } func (i SecurityPolicyRuleArray) ToSecurityPolicyRuleArrayOutputWithContext(ctx context.Context) SecurityPolicyRuleArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleArrayOutput) } // Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny). type SecurityPolicyRuleOutput struct{ *pulumi.OutputState } func (SecurityPolicyRuleOutput) ElementType() reflect.Type { return reflect.TypeOf((*SecurityPolicyRule)(nil)).Elem() } func (o SecurityPolicyRuleOutput) ToSecurityPolicyRuleOutput() SecurityPolicyRuleOutput { return o } func (o SecurityPolicyRuleOutput) ToSecurityPolicyRuleOutputWithContext(ctx context.Context) SecurityPolicyRuleOutput { return o } // The Action to perform when the rule is matched. The following are the valid actions: - allow: allow access to target. - deny(): deny access to target, returns the HTTP response code specified (valid values are 403, 404, and 502). - rate_based_ban: limit client traffic to the configured threshold and ban the client if the traffic exceeds the threshold. Configure parameters for this action in RateLimitOptions. Requires rate_limit_options to be set. - redirect: redirect to a different target. This can either be an internal reCAPTCHA redirect, or an external URL-based redirect via a 302 response. Parameters for this action can be configured via redirectOptions. - throttle: limit client traffic to the configured threshold. Configure parameters for this action in rateLimitOptions. Requires rate_limit_options to be set for this. func (o SecurityPolicyRuleOutput) Action() pulumi.StringPtrOutput { return o.ApplyT(func(v SecurityPolicyRule) *string { return v.Action }).(pulumi.StringPtrOutput) } // An optional description of this resource. Provide this property when you create the resource. func (o SecurityPolicyRuleOutput) Description() pulumi.StringPtrOutput { return o.ApplyT(func(v SecurityPolicyRule) *string { return v.Description }).(pulumi.StringPtrOutput) } // Optional, additional actions that are performed on headers. func (o SecurityPolicyRuleOutput) HeaderAction() SecurityPolicyRuleHttpHeaderActionPtrOutput { return o.ApplyT(func(v SecurityPolicyRule) *SecurityPolicyRuleHttpHeaderAction { return v.HeaderAction }).(SecurityPolicyRuleHttpHeaderActionPtrOutput) } // A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced. func (o SecurityPolicyRuleOutput) Match() SecurityPolicyRuleMatcherPtrOutput { return o.ApplyT(func(v SecurityPolicyRule) *SecurityPolicyRuleMatcher { return v.Match }).(SecurityPolicyRuleMatcherPtrOutput) } // If set to true, the specified action is not enforced. func (o SecurityPolicyRuleOutput) Preview() pulumi.BoolPtrOutput { return o.ApplyT(func(v SecurityPolicyRule) *bool { return v.Preview }).(pulumi.BoolPtrOutput) } // An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest priority. func (o SecurityPolicyRuleOutput) Priority() pulumi.IntPtrOutput { return o.ApplyT(func(v SecurityPolicyRule) *int { return v.Priority }).(pulumi.IntPtrOutput) } // Must be specified if the action is "rate_based_ban" or "throttle". Cannot be specified for any other actions. func (o SecurityPolicyRuleOutput) RateLimitOptions() SecurityPolicyRuleRateLimitOptionsPtrOutput { return o.ApplyT(func(v SecurityPolicyRule) *SecurityPolicyRuleRateLimitOptions { return v.RateLimitOptions }).(SecurityPolicyRuleRateLimitOptionsPtrOutput) } // Parameters defining the redirect action. Cannot be specified for any other actions. func (o SecurityPolicyRuleOutput) RedirectOptions() SecurityPolicyRuleRedirectOptionsPtrOutput { return o.ApplyT(func(v SecurityPolicyRule) *SecurityPolicyRuleRedirectOptions { return v.RedirectOptions }).(SecurityPolicyRuleRedirectOptionsPtrOutput) } type SecurityPolicyRuleArrayOutput struct{ *pulumi.OutputState } func (SecurityPolicyRuleArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]SecurityPolicyRule)(nil)).Elem() } func (o SecurityPolicyRuleArrayOutput) ToSecurityPolicyRuleArrayOutput() SecurityPolicyRuleArrayOutput { return o } func (o SecurityPolicyRuleArrayOutput) ToSecurityPolicyRuleArrayOutputWithContext(ctx context.Context) SecurityPolicyRuleArrayOutput { return o } func (o SecurityPolicyRuleArrayOutput) Index(i pulumi.IntInput) SecurityPolicyRuleOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) SecurityPolicyRule { return vs[0].([]SecurityPolicyRule)[vs[1].(int)] }).(SecurityPolicyRuleOutput) } type SecurityPolicyRuleHttpHeaderAction struct { // The list of request headers to add or overwrite if they're already present. RequestHeadersToAdds []SecurityPolicyRuleHttpHeaderActionHttpHeaderOption `pulumi:"requestHeadersToAdds"` } // SecurityPolicyRuleHttpHeaderActionInput is an input type that accepts SecurityPolicyRuleHttpHeaderActionArgs and SecurityPolicyRuleHttpHeaderActionOutput values. // You can construct a concrete instance of `SecurityPolicyRuleHttpHeaderActionInput` via: // // SecurityPolicyRuleHttpHeaderActionArgs{...} type SecurityPolicyRuleHttpHeaderActionInput interface { pulumi.Input ToSecurityPolicyRuleHttpHeaderActionOutput() SecurityPolicyRuleHttpHeaderActionOutput ToSecurityPolicyRuleHttpHeaderActionOutputWithContext(context.Context) SecurityPolicyRuleHttpHeaderActionOutput } type SecurityPolicyRuleHttpHeaderActionArgs struct { // The list of request headers to add or overwrite if they're already present. RequestHeadersToAdds SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionArrayInput `pulumi:"requestHeadersToAdds"` } func (SecurityPolicyRuleHttpHeaderActionArgs) ElementType() reflect.Type { return reflect.TypeOf((*SecurityPolicyRuleHttpHeaderAction)(nil)).Elem() } func (i SecurityPolicyRuleHttpHeaderActionArgs) ToSecurityPolicyRuleHttpHeaderActionOutput() SecurityPolicyRuleHttpHeaderActionOutput { return i.ToSecurityPolicyRuleHttpHeaderActionOutputWithContext(context.Background()) } func (i SecurityPolicyRuleHttpHeaderActionArgs) ToSecurityPolicyRuleHttpHeaderActionOutputWithContext(ctx context.Context) SecurityPolicyRuleHttpHeaderActionOutput { return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleHttpHeaderActionOutput) } func (i SecurityPolicyRuleHttpHeaderActionArgs) ToSecurityPolicyRuleHttpHeaderActionPtrOutput() SecurityPolicyRuleHttpHeaderActionPtrOutput { return i.ToSecurityPolicyRuleHttpHeaderActionPtrOutputWithContext(context.Background()) } func (i SecurityPolicyRuleHttpHeaderActionArgs) ToSecurityPolicyRuleHttpHeaderActionPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleHttpHeaderActionPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleHttpHeaderActionOutput).ToSecurityPolicyRuleHttpHeaderActionPtrOutputWithContext(ctx) } // SecurityPolicyRuleHttpHeaderActionPtrInput is an input type that accepts SecurityPolicyRuleHttpHeaderActionArgs, SecurityPolicyRuleHttpHeaderActionPtr and SecurityPolicyRuleHttpHeaderActionPtrOutput values. // You can construct a concrete instance of `SecurityPolicyRuleHttpHeaderActionPtrInput` via: // // SecurityPolicyRuleHttpHeaderActionArgs{...} // // or: // // nil type SecurityPolicyRuleHttpHeaderActionPtrInput interface { pulumi.Input ToSecurityPolicyRuleHttpHeaderActionPtrOutput() SecurityPolicyRuleHttpHeaderActionPtrOutput ToSecurityPolicyRuleHttpHeaderActionPtrOutputWithContext(context.Context) SecurityPolicyRuleHttpHeaderActionPtrOutput } type securityPolicyRuleHttpHeaderActionPtrType SecurityPolicyRuleHttpHeaderActionArgs func SecurityPolicyRuleHttpHeaderActionPtr(v *SecurityPolicyRuleHttpHeaderActionArgs) SecurityPolicyRuleHttpHeaderActionPtrInput { return (*securityPolicyRuleHttpHeaderActionPtrType)(v) } func (*securityPolicyRuleHttpHeaderActionPtrType) ElementType() reflect.Type { return reflect.TypeOf((**SecurityPolicyRuleHttpHeaderAction)(nil)).Elem() } func (i *securityPolicyRuleHttpHeaderActionPtrType) ToSecurityPolicyRuleHttpHeaderActionPtrOutput() SecurityPolicyRuleHttpHeaderActionPtrOutput { return i.ToSecurityPolicyRuleHttpHeaderActionPtrOutputWithContext(context.Background()) } func (i *securityPolicyRuleHttpHeaderActionPtrType) ToSecurityPolicyRuleHttpHeaderActionPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleHttpHeaderActionPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleHttpHeaderActionPtrOutput) } type SecurityPolicyRuleHttpHeaderActionOutput struct{ *pulumi.OutputState } func (SecurityPolicyRuleHttpHeaderActionOutput) ElementType() reflect.Type { return reflect.TypeOf((*SecurityPolicyRuleHttpHeaderAction)(nil)).Elem() } func (o SecurityPolicyRuleHttpHeaderActionOutput) ToSecurityPolicyRuleHttpHeaderActionOutput() SecurityPolicyRuleHttpHeaderActionOutput { return o } func (o SecurityPolicyRuleHttpHeaderActionOutput) ToSecurityPolicyRuleHttpHeaderActionOutputWithContext(ctx context.Context) SecurityPolicyRuleHttpHeaderActionOutput { return o } func (o SecurityPolicyRuleHttpHeaderActionOutput) ToSecurityPolicyRuleHttpHeaderActionPtrOutput() SecurityPolicyRuleHttpHeaderActionPtrOutput { return o.ToSecurityPolicyRuleHttpHeaderActionPtrOutputWithContext(context.Background()) } func (o SecurityPolicyRuleHttpHeaderActionOutput) ToSecurityPolicyRuleHttpHeaderActionPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleHttpHeaderActionPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRuleHttpHeaderAction) *SecurityPolicyRuleHttpHeaderAction { return &v }).(SecurityPolicyRuleHttpHeaderActionPtrOutput) } // The list of request headers to add or overwrite if they're already present. func (o SecurityPolicyRuleHttpHeaderActionOutput) RequestHeadersToAdds() SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionArrayOutput { return o.ApplyT(func(v SecurityPolicyRuleHttpHeaderAction) []SecurityPolicyRuleHttpHeaderActionHttpHeaderOption { return v.RequestHeadersToAdds }).(SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionArrayOutput) } type SecurityPolicyRuleHttpHeaderActionPtrOutput struct{ *pulumi.OutputState } func (SecurityPolicyRuleHttpHeaderActionPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**SecurityPolicyRuleHttpHeaderAction)(nil)).Elem() } func (o SecurityPolicyRuleHttpHeaderActionPtrOutput) ToSecurityPolicyRuleHttpHeaderActionPtrOutput() SecurityPolicyRuleHttpHeaderActionPtrOutput { return o } func (o SecurityPolicyRuleHttpHeaderActionPtrOutput) ToSecurityPolicyRuleHttpHeaderActionPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleHttpHeaderActionPtrOutput { return o } func (o SecurityPolicyRuleHttpHeaderActionPtrOutput) Elem() SecurityPolicyRuleHttpHeaderActionOutput { return o.ApplyT(func(v *SecurityPolicyRuleHttpHeaderAction) SecurityPolicyRuleHttpHeaderAction { if v != nil { return *v } var ret SecurityPolicyRuleHttpHeaderAction return ret }).(SecurityPolicyRuleHttpHeaderActionOutput) } // The list of request headers to add or overwrite if they're already present. func (o SecurityPolicyRuleHttpHeaderActionPtrOutput) RequestHeadersToAdds() SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionArrayOutput { return o.ApplyT(func(v *SecurityPolicyRuleHttpHeaderAction) []SecurityPolicyRuleHttpHeaderActionHttpHeaderOption { if v == nil { return nil } return v.RequestHeadersToAdds }).(SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionArrayOutput) } type SecurityPolicyRuleHttpHeaderActionHttpHeaderOption struct { // The name of the header to set. HeaderName *string `pulumi:"headerName"` // The value to set the named header to. HeaderValue *string `pulumi:"headerValue"` } // SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionInput is an input type that accepts SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionArgs and SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionOutput values. // You can construct a concrete instance of `SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionInput` via: // // SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionArgs{...} type SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionInput interface { pulumi.Input ToSecurityPolicyRuleHttpHeaderActionHttpHeaderOptionOutput() SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionOutput ToSecurityPolicyRuleHttpHeaderActionHttpHeaderOptionOutputWithContext(context.Context) SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionOutput } type SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionArgs struct { // The name of the header to set. HeaderName pulumi.StringPtrInput `pulumi:"headerName"` // The value to set the named header to. HeaderValue pulumi.StringPtrInput `pulumi:"headerValue"` } func (SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionArgs) ElementType() reflect.Type { return reflect.TypeOf((*SecurityPolicyRuleHttpHeaderActionHttpHeaderOption)(nil)).Elem() } func (i SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionArgs) ToSecurityPolicyRuleHttpHeaderActionHttpHeaderOptionOutput() SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionOutput { return i.ToSecurityPolicyRuleHttpHeaderActionHttpHeaderOptionOutputWithContext(context.Background()) } func (i SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionArgs) ToSecurityPolicyRuleHttpHeaderActionHttpHeaderOptionOutputWithContext(ctx context.Context) SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionOutput { return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionOutput) } // SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionArrayInput is an input type that accepts SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionArray and SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionArrayOutput values. // You can construct a concrete instance of `SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionArrayInput` via: // // SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionArray{ SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionArgs{...} } type SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionArrayInput interface { pulumi.Input ToSecurityPolicyRuleHttpHeaderActionHttpHeaderOptionArrayOutput() SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionArrayOutput ToSecurityPolicyRuleHttpHeaderActionHttpHeaderOptionArrayOutputWithContext(context.Context) SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionArrayOutput } type SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionArray []SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionInput func (SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionArray) ElementType() reflect.Type { return reflect.TypeOf((*[]SecurityPolicyRuleHttpHeaderActionHttpHeaderOption)(nil)).Elem() } func (i SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionArray) ToSecurityPolicyRuleHttpHeaderActionHttpHeaderOptionArrayOutput() SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionArrayOutput { return i.ToSecurityPolicyRuleHttpHeaderActionHttpHeaderOptionArrayOutputWithContext(context.Background()) } func (i SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionArray) ToSecurityPolicyRuleHttpHeaderActionHttpHeaderOptionArrayOutputWithContext(ctx context.Context) SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionArrayOutput) } type SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionOutput struct{ *pulumi.OutputState } func (SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionOutput) ElementType() reflect.Type { return reflect.TypeOf((*SecurityPolicyRuleHttpHeaderActionHttpHeaderOption)(nil)).Elem() } func (o SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionOutput) ToSecurityPolicyRuleHttpHeaderActionHttpHeaderOptionOutput() SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionOutput { return o } func (o SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionOutput) ToSecurityPolicyRuleHttpHeaderActionHttpHeaderOptionOutputWithContext(ctx context.Context) SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionOutput { return o } // The name of the header to set. func (o SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionOutput) HeaderName() pulumi.StringPtrOutput { return o.ApplyT(func(v SecurityPolicyRuleHttpHeaderActionHttpHeaderOption) *string { return v.HeaderName }).(pulumi.StringPtrOutput) } // The value to set the named header to. func (o SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionOutput) HeaderValue() pulumi.StringPtrOutput { return o.ApplyT(func(v SecurityPolicyRuleHttpHeaderActionHttpHeaderOption) *string { return v.HeaderValue }).(pulumi.StringPtrOutput) } type SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionArrayOutput struct{ *pulumi.OutputState } func (SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]SecurityPolicyRuleHttpHeaderActionHttpHeaderOption)(nil)).Elem() } func (o SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionArrayOutput) ToSecurityPolicyRuleHttpHeaderActionHttpHeaderOptionArrayOutput() SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionArrayOutput { return o } func (o SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionArrayOutput) ToSecurityPolicyRuleHttpHeaderActionHttpHeaderOptionArrayOutputWithContext(ctx context.Context) SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionArrayOutput { return o } func (o SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionArrayOutput) Index(i pulumi.IntInput) SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) SecurityPolicyRuleHttpHeaderActionHttpHeaderOption { return vs[0].([]SecurityPolicyRuleHttpHeaderActionHttpHeaderOption)[vs[1].(int)] }).(SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionOutput) } type SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionResponse struct { // The name of the header to set. HeaderName string `pulumi:"headerName"` // The value to set the named header to. HeaderValue string `pulumi:"headerValue"` } type SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionResponseOutput struct{ *pulumi.OutputState } func (SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionResponse)(nil)).Elem() } func (o SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionResponseOutput) ToSecurityPolicyRuleHttpHeaderActionHttpHeaderOptionResponseOutput() SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionResponseOutput { return o } func (o SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionResponseOutput) ToSecurityPolicyRuleHttpHeaderActionHttpHeaderOptionResponseOutputWithContext(ctx context.Context) SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionResponseOutput { return o } // The name of the header to set. func (o SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionResponseOutput) HeaderName() pulumi.StringOutput { return o.ApplyT(func(v SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionResponse) string { return v.HeaderName }).(pulumi.StringOutput) } // The value to set the named header to. func (o SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionResponseOutput) HeaderValue() pulumi.StringOutput { return o.ApplyT(func(v SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionResponse) string { return v.HeaderValue }).(pulumi.StringOutput) } type SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionResponseArrayOutput struct{ *pulumi.OutputState } func (SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionResponse)(nil)).Elem() } func (o SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionResponseArrayOutput) ToSecurityPolicyRuleHttpHeaderActionHttpHeaderOptionResponseArrayOutput() SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionResponseArrayOutput { return o } func (o SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionResponseArrayOutput) ToSecurityPolicyRuleHttpHeaderActionHttpHeaderOptionResponseArrayOutputWithContext(ctx context.Context) SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionResponseArrayOutput { return o } func (o SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionResponseArrayOutput) Index(i pulumi.IntInput) SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionResponse { return vs[0].([]SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionResponse)[vs[1].(int)] }).(SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionResponseOutput) } type SecurityPolicyRuleHttpHeaderActionResponse struct { // The list of request headers to add or overwrite if they're already present. RequestHeadersToAdds []SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionResponse `pulumi:"requestHeadersToAdds"` } type SecurityPolicyRuleHttpHeaderActionResponseOutput struct{ *pulumi.OutputState } func (SecurityPolicyRuleHttpHeaderActionResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*SecurityPolicyRuleHttpHeaderActionResponse)(nil)).Elem() } func (o SecurityPolicyRuleHttpHeaderActionResponseOutput) ToSecurityPolicyRuleHttpHeaderActionResponseOutput() SecurityPolicyRuleHttpHeaderActionResponseOutput { return o } func (o SecurityPolicyRuleHttpHeaderActionResponseOutput) ToSecurityPolicyRuleHttpHeaderActionResponseOutputWithContext(ctx context.Context) SecurityPolicyRuleHttpHeaderActionResponseOutput { return o } // The list of request headers to add or overwrite if they're already present. func (o SecurityPolicyRuleHttpHeaderActionResponseOutput) RequestHeadersToAdds() SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionResponseArrayOutput { return o.ApplyT(func(v SecurityPolicyRuleHttpHeaderActionResponse) []SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionResponse { return v.RequestHeadersToAdds }).(SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionResponseArrayOutput) } // Represents a match condition that incoming traffic is evaluated against. Exactly one field must be specified. type SecurityPolicyRuleMatcher struct { // The configuration options available when specifying versioned_expr. This field must be specified if versioned_expr is specified and cannot be specified if versioned_expr is not specified. Config *SecurityPolicyRuleMatcherConfig `pulumi:"config"` // User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header. Expr *Expr `pulumi:"expr"` // Preconfigured versioned expression. If this field is specified, config must also be specified. Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding src_ip_range field in config. VersionedExpr *SecurityPolicyRuleMatcherVersionedExpr `pulumi:"versionedExpr"` } // SecurityPolicyRuleMatcherInput is an input type that accepts SecurityPolicyRuleMatcherArgs and SecurityPolicyRuleMatcherOutput values. // You can construct a concrete instance of `SecurityPolicyRuleMatcherInput` via: // // SecurityPolicyRuleMatcherArgs{...} type SecurityPolicyRuleMatcherInput interface { pulumi.Input ToSecurityPolicyRuleMatcherOutput() SecurityPolicyRuleMatcherOutput ToSecurityPolicyRuleMatcherOutputWithContext(context.Context) SecurityPolicyRuleMatcherOutput } // Represents a match condition that incoming traffic is evaluated against. Exactly one field must be specified. type SecurityPolicyRuleMatcherArgs struct { // The configuration options available when specifying versioned_expr. This field must be specified if versioned_expr is specified and cannot be specified if versioned_expr is not specified. Config SecurityPolicyRuleMatcherConfigPtrInput `pulumi:"config"` // User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header. Expr ExprPtrInput `pulumi:"expr"` // Preconfigured versioned expression. If this field is specified, config must also be specified. Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding src_ip_range field in config. VersionedExpr SecurityPolicyRuleMatcherVersionedExprPtrInput `pulumi:"versionedExpr"` } func (SecurityPolicyRuleMatcherArgs) ElementType() reflect.Type { return reflect.TypeOf((*SecurityPolicyRuleMatcher)(nil)).Elem() } func (i SecurityPolicyRuleMatcherArgs) ToSecurityPolicyRuleMatcherOutput() SecurityPolicyRuleMatcherOutput { return i.ToSecurityPolicyRuleMatcherOutputWithContext(context.Background()) } func (i SecurityPolicyRuleMatcherArgs) ToSecurityPolicyRuleMatcherOutputWithContext(ctx context.Context) SecurityPolicyRuleMatcherOutput { return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatcherOutput) } func (i SecurityPolicyRuleMatcherArgs) ToSecurityPolicyRuleMatcherPtrOutput() SecurityPolicyRuleMatcherPtrOutput { return i.ToSecurityPolicyRuleMatcherPtrOutputWithContext(context.Background()) } func (i SecurityPolicyRuleMatcherArgs) ToSecurityPolicyRuleMatcherPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatcherPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatcherOutput).ToSecurityPolicyRuleMatcherPtrOutputWithContext(ctx) } // SecurityPolicyRuleMatcherPtrInput is an input type that accepts SecurityPolicyRuleMatcherArgs, SecurityPolicyRuleMatcherPtr and SecurityPolicyRuleMatcherPtrOutput values. // You can construct a concrete instance of `SecurityPolicyRuleMatcherPtrInput` via: // // SecurityPolicyRuleMatcherArgs{...} // // or: // // nil type SecurityPolicyRuleMatcherPtrInput interface { pulumi.Input ToSecurityPolicyRuleMatcherPtrOutput() SecurityPolicyRuleMatcherPtrOutput ToSecurityPolicyRuleMatcherPtrOutputWithContext(context.Context) SecurityPolicyRuleMatcherPtrOutput } type securityPolicyRuleMatcherPtrType SecurityPolicyRuleMatcherArgs func SecurityPolicyRuleMatcherPtr(v *SecurityPolicyRuleMatcherArgs) SecurityPolicyRuleMatcherPtrInput { return (*securityPolicyRuleMatcherPtrType)(v) } func (*securityPolicyRuleMatcherPtrType) ElementType() reflect.Type { return reflect.TypeOf((**SecurityPolicyRuleMatcher)(nil)).Elem() } func (i *securityPolicyRuleMatcherPtrType) ToSecurityPolicyRuleMatcherPtrOutput() SecurityPolicyRuleMatcherPtrOutput { return i.ToSecurityPolicyRuleMatcherPtrOutputWithContext(context.Background()) } func (i *securityPolicyRuleMatcherPtrType) ToSecurityPolicyRuleMatcherPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatcherPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatcherPtrOutput) } // Represents a match condition that incoming traffic is evaluated against. Exactly one field must be specified. type SecurityPolicyRuleMatcherOutput struct{ *pulumi.OutputState } func (SecurityPolicyRuleMatcherOutput) ElementType() reflect.Type { return reflect.TypeOf((*SecurityPolicyRuleMatcher)(nil)).Elem() } func (o SecurityPolicyRuleMatcherOutput) ToSecurityPolicyRuleMatcherOutput() SecurityPolicyRuleMatcherOutput { return o } func (o SecurityPolicyRuleMatcherOutput) ToSecurityPolicyRuleMatcherOutputWithContext(ctx context.Context) SecurityPolicyRuleMatcherOutput { return o } func (o SecurityPolicyRuleMatcherOutput) ToSecurityPolicyRuleMatcherPtrOutput() SecurityPolicyRuleMatcherPtrOutput { return o.ToSecurityPolicyRuleMatcherPtrOutputWithContext(context.Background()) } func (o SecurityPolicyRuleMatcherOutput) ToSecurityPolicyRuleMatcherPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatcherPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRuleMatcher) *SecurityPolicyRuleMatcher { return &v }).(SecurityPolicyRuleMatcherPtrOutput) } // The configuration options available when specifying versioned_expr. This field must be specified if versioned_expr is specified and cannot be specified if versioned_expr is not specified. func (o SecurityPolicyRuleMatcherOutput) Config() SecurityPolicyRuleMatcherConfigPtrOutput { return o.ApplyT(func(v SecurityPolicyRuleMatcher) *SecurityPolicyRuleMatcherConfig { return v.Config }).(SecurityPolicyRuleMatcherConfigPtrOutput) } // User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header. func (o SecurityPolicyRuleMatcherOutput) Expr() ExprPtrOutput { return o.ApplyT(func(v SecurityPolicyRuleMatcher) *Expr { return v.Expr }).(ExprPtrOutput) } // Preconfigured versioned expression. If this field is specified, config must also be specified. Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding src_ip_range field in config. func (o SecurityPolicyRuleMatcherOutput) VersionedExpr() SecurityPolicyRuleMatcherVersionedExprPtrOutput { return o.ApplyT(func(v SecurityPolicyRuleMatcher) *SecurityPolicyRuleMatcherVersionedExpr { return v.VersionedExpr }).(SecurityPolicyRuleMatcherVersionedExprPtrOutput) } type SecurityPolicyRuleMatcherPtrOutput struct{ *pulumi.OutputState } func (SecurityPolicyRuleMatcherPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**SecurityPolicyRuleMatcher)(nil)).Elem() } func (o SecurityPolicyRuleMatcherPtrOutput) ToSecurityPolicyRuleMatcherPtrOutput() SecurityPolicyRuleMatcherPtrOutput { return o } func (o SecurityPolicyRuleMatcherPtrOutput) ToSecurityPolicyRuleMatcherPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatcherPtrOutput { return o } func (o SecurityPolicyRuleMatcherPtrOutput) Elem() SecurityPolicyRuleMatcherOutput { return o.ApplyT(func(v *SecurityPolicyRuleMatcher) SecurityPolicyRuleMatcher { if v != nil { return *v } var ret SecurityPolicyRuleMatcher return ret }).(SecurityPolicyRuleMatcherOutput) } // The configuration options available when specifying versioned_expr. This field must be specified if versioned_expr is specified and cannot be specified if versioned_expr is not specified. func (o SecurityPolicyRuleMatcherPtrOutput) Config() SecurityPolicyRuleMatcherConfigPtrOutput { return o.ApplyT(func(v *SecurityPolicyRuleMatcher) *SecurityPolicyRuleMatcherConfig { if v == nil { return nil } return v.Config }).(SecurityPolicyRuleMatcherConfigPtrOutput) } // User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header. func (o SecurityPolicyRuleMatcherPtrOutput) Expr() ExprPtrOutput { return o.ApplyT(func(v *SecurityPolicyRuleMatcher) *Expr { if v == nil { return nil } return v.Expr }).(ExprPtrOutput) } // Preconfigured versioned expression. If this field is specified, config must also be specified. Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding src_ip_range field in config. func (o SecurityPolicyRuleMatcherPtrOutput) VersionedExpr() SecurityPolicyRuleMatcherVersionedExprPtrOutput { return o.ApplyT(func(v *SecurityPolicyRuleMatcher) *SecurityPolicyRuleMatcherVersionedExpr { if v == nil { return nil } return v.VersionedExpr }).(SecurityPolicyRuleMatcherVersionedExprPtrOutput) } type SecurityPolicyRuleMatcherConfig struct { // CIDR IP address range. Maximum number of src_ip_ranges allowed is 10. SrcIpRanges []string `pulumi:"srcIpRanges"` } // SecurityPolicyRuleMatcherConfigInput is an input type that accepts SecurityPolicyRuleMatcherConfigArgs and SecurityPolicyRuleMatcherConfigOutput values. // You can construct a concrete instance of `SecurityPolicyRuleMatcherConfigInput` via: // // SecurityPolicyRuleMatcherConfigArgs{...} type SecurityPolicyRuleMatcherConfigInput interface { pulumi.Input ToSecurityPolicyRuleMatcherConfigOutput() SecurityPolicyRuleMatcherConfigOutput ToSecurityPolicyRuleMatcherConfigOutputWithContext(context.Context) SecurityPolicyRuleMatcherConfigOutput } type SecurityPolicyRuleMatcherConfigArgs struct { // CIDR IP address range. Maximum number of src_ip_ranges allowed is 10. SrcIpRanges pulumi.StringArrayInput `pulumi:"srcIpRanges"` } func (SecurityPolicyRuleMatcherConfigArgs) ElementType() reflect.Type { return reflect.TypeOf((*SecurityPolicyRuleMatcherConfig)(nil)).Elem() } func (i SecurityPolicyRuleMatcherConfigArgs) ToSecurityPolicyRuleMatcherConfigOutput() SecurityPolicyRuleMatcherConfigOutput { return i.ToSecurityPolicyRuleMatcherConfigOutputWithContext(context.Background()) } func (i SecurityPolicyRuleMatcherConfigArgs) ToSecurityPolicyRuleMatcherConfigOutputWithContext(ctx context.Context) SecurityPolicyRuleMatcherConfigOutput { return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatcherConfigOutput) } func (i SecurityPolicyRuleMatcherConfigArgs) ToSecurityPolicyRuleMatcherConfigPtrOutput() SecurityPolicyRuleMatcherConfigPtrOutput { return i.ToSecurityPolicyRuleMatcherConfigPtrOutputWithContext(context.Background()) } func (i SecurityPolicyRuleMatcherConfigArgs) ToSecurityPolicyRuleMatcherConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatcherConfigPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatcherConfigOutput).ToSecurityPolicyRuleMatcherConfigPtrOutputWithContext(ctx) } // SecurityPolicyRuleMatcherConfigPtrInput is an input type that accepts SecurityPolicyRuleMatcherConfigArgs, SecurityPolicyRuleMatcherConfigPtr and SecurityPolicyRuleMatcherConfigPtrOutput values. // You can construct a concrete instance of `SecurityPolicyRuleMatcherConfigPtrInput` via: // // SecurityPolicyRuleMatcherConfigArgs{...} // // or: // // nil type SecurityPolicyRuleMatcherConfigPtrInput interface { pulumi.Input ToSecurityPolicyRuleMatcherConfigPtrOutput() SecurityPolicyRuleMatcherConfigPtrOutput ToSecurityPolicyRuleMatcherConfigPtrOutputWithContext(context.Context) SecurityPolicyRuleMatcherConfigPtrOutput } type securityPolicyRuleMatcherConfigPtrType SecurityPolicyRuleMatcherConfigArgs func SecurityPolicyRuleMatcherConfigPtr(v *SecurityPolicyRuleMatcherConfigArgs) SecurityPolicyRuleMatcherConfigPtrInput { return (*securityPolicyRuleMatcherConfigPtrType)(v) } func (*securityPolicyRuleMatcherConfigPtrType) ElementType() reflect.Type { return reflect.TypeOf((**SecurityPolicyRuleMatcherConfig)(nil)).Elem() } func (i *securityPolicyRuleMatcherConfigPtrType) ToSecurityPolicyRuleMatcherConfigPtrOutput() SecurityPolicyRuleMatcherConfigPtrOutput { return i.ToSecurityPolicyRuleMatcherConfigPtrOutputWithContext(context.Background()) } func (i *securityPolicyRuleMatcherConfigPtrType) ToSecurityPolicyRuleMatcherConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatcherConfigPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatcherConfigPtrOutput) } type SecurityPolicyRuleMatcherConfigOutput struct{ *pulumi.OutputState } func (SecurityPolicyRuleMatcherConfigOutput) ElementType() reflect.Type { return reflect.TypeOf((*SecurityPolicyRuleMatcherConfig)(nil)).Elem() } func (o SecurityPolicyRuleMatcherConfigOutput) ToSecurityPolicyRuleMatcherConfigOutput() SecurityPolicyRuleMatcherConfigOutput { return o } func (o SecurityPolicyRuleMatcherConfigOutput) ToSecurityPolicyRuleMatcherConfigOutputWithContext(ctx context.Context) SecurityPolicyRuleMatcherConfigOutput { return o } func (o SecurityPolicyRuleMatcherConfigOutput) ToSecurityPolicyRuleMatcherConfigPtrOutput() SecurityPolicyRuleMatcherConfigPtrOutput { return o.ToSecurityPolicyRuleMatcherConfigPtrOutputWithContext(context.Background()) } func (o SecurityPolicyRuleMatcherConfigOutput) ToSecurityPolicyRuleMatcherConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatcherConfigPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRuleMatcherConfig) *SecurityPolicyRuleMatcherConfig { return &v }).(SecurityPolicyRuleMatcherConfigPtrOutput) } // CIDR IP address range. Maximum number of src_ip_ranges allowed is 10. func (o SecurityPolicyRuleMatcherConfigOutput) SrcIpRanges() pulumi.StringArrayOutput { return o.ApplyT(func(v SecurityPolicyRuleMatcherConfig) []string { return v.SrcIpRanges }).(pulumi.StringArrayOutput) } type SecurityPolicyRuleMatcherConfigPtrOutput struct{ *pulumi.OutputState } func (SecurityPolicyRuleMatcherConfigPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**SecurityPolicyRuleMatcherConfig)(nil)).Elem() } func (o SecurityPolicyRuleMatcherConfigPtrOutput) ToSecurityPolicyRuleMatcherConfigPtrOutput() SecurityPolicyRuleMatcherConfigPtrOutput { return o } func (o SecurityPolicyRuleMatcherConfigPtrOutput) ToSecurityPolicyRuleMatcherConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatcherConfigPtrOutput { return o } func (o SecurityPolicyRuleMatcherConfigPtrOutput) Elem() SecurityPolicyRuleMatcherConfigOutput { return o.ApplyT(func(v *SecurityPolicyRuleMatcherConfig) SecurityPolicyRuleMatcherConfig { if v != nil { return *v } var ret SecurityPolicyRuleMatcherConfig return ret }).(SecurityPolicyRuleMatcherConfigOutput) } // CIDR IP address range. Maximum number of src_ip_ranges allowed is 10. func (o SecurityPolicyRuleMatcherConfigPtrOutput) SrcIpRanges() pulumi.StringArrayOutput { return o.ApplyT(func(v *SecurityPolicyRuleMatcherConfig) []string { if v == nil { return nil } return v.SrcIpRanges }).(pulumi.StringArrayOutput) } type SecurityPolicyRuleMatcherConfigResponse struct { // CIDR IP address range. Maximum number of src_ip_ranges allowed is 10. SrcIpRanges []string `pulumi:"srcIpRanges"` } type SecurityPolicyRuleMatcherConfigResponseOutput struct{ *pulumi.OutputState } func (SecurityPolicyRuleMatcherConfigResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*SecurityPolicyRuleMatcherConfigResponse)(nil)).Elem() } func (o SecurityPolicyRuleMatcherConfigResponseOutput) ToSecurityPolicyRuleMatcherConfigResponseOutput() SecurityPolicyRuleMatcherConfigResponseOutput { return o } func (o SecurityPolicyRuleMatcherConfigResponseOutput) ToSecurityPolicyRuleMatcherConfigResponseOutputWithContext(ctx context.Context) SecurityPolicyRuleMatcherConfigResponseOutput { return o } // CIDR IP address range. Maximum number of src_ip_ranges allowed is 10. func (o SecurityPolicyRuleMatcherConfigResponseOutput) SrcIpRanges() pulumi.StringArrayOutput { return o.ApplyT(func(v SecurityPolicyRuleMatcherConfigResponse) []string { return v.SrcIpRanges }).(pulumi.StringArrayOutput) } // Represents a match condition that incoming traffic is evaluated against. Exactly one field must be specified. type SecurityPolicyRuleMatcherResponse struct { // The configuration options available when specifying versioned_expr. This field must be specified if versioned_expr is specified and cannot be specified if versioned_expr is not specified. Config SecurityPolicyRuleMatcherConfigResponse `pulumi:"config"` // User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header. Expr ExprResponse `pulumi:"expr"` // Preconfigured versioned expression. If this field is specified, config must also be specified. Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding src_ip_range field in config. VersionedExpr string `pulumi:"versionedExpr"` } // Represents a match condition that incoming traffic is evaluated against. Exactly one field must be specified. type SecurityPolicyRuleMatcherResponseOutput struct{ *pulumi.OutputState } func (SecurityPolicyRuleMatcherResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*SecurityPolicyRuleMatcherResponse)(nil)).Elem() } func (o SecurityPolicyRuleMatcherResponseOutput) ToSecurityPolicyRuleMatcherResponseOutput() SecurityPolicyRuleMatcherResponseOutput { return o } func (o SecurityPolicyRuleMatcherResponseOutput) ToSecurityPolicyRuleMatcherResponseOutputWithContext(ctx context.Context) SecurityPolicyRuleMatcherResponseOutput { return o } // The configuration options available when specifying versioned_expr. This field must be specified if versioned_expr is specified and cannot be specified if versioned_expr is not specified. func (o SecurityPolicyRuleMatcherResponseOutput) Config() SecurityPolicyRuleMatcherConfigResponseOutput { return o.ApplyT(func(v SecurityPolicyRuleMatcherResponse) SecurityPolicyRuleMatcherConfigResponse { return v.Config }).(SecurityPolicyRuleMatcherConfigResponseOutput) } // User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header. func (o SecurityPolicyRuleMatcherResponseOutput) Expr() ExprResponseOutput { return o.ApplyT(func(v SecurityPolicyRuleMatcherResponse) ExprResponse { return v.Expr }).(ExprResponseOutput) } // Preconfigured versioned expression. If this field is specified, config must also be specified. Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding src_ip_range field in config. func (o SecurityPolicyRuleMatcherResponseOutput) VersionedExpr() pulumi.StringOutput { return o.ApplyT(func(v SecurityPolicyRuleMatcherResponse) string { return v.VersionedExpr }).(pulumi.StringOutput) } type SecurityPolicyRuleRateLimitOptions struct { // Can only be specified if the action for the rule is "rate_based_ban". If specified, determines the time (in seconds) the traffic will continue to be banned by the rate limit after the rate falls below the threshold. BanDurationSec *int `pulumi:"banDurationSec"` // Can only be specified if the action for the rule is "rate_based_ban". If specified, the key will be banned for the configured 'ban_duration_sec' when the number of requests that exceed the 'rate_limit_threshold' also exceed this 'ban_threshold'. BanThreshold *SecurityPolicyRuleRateLimitOptionsThreshold `pulumi:"banThreshold"` // Action to take for requests that are under the configured rate limit threshold. Valid option is "allow" only. ConformAction *string `pulumi:"conformAction"` // Determines the key to enforce the rate_limit_threshold on. Possible values are: - ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if this field 'enforce_on_key' is not configured. - IP: The source IP address of the request is the key. Each IP has this limit enforced separately. - HTTP_HEADER: The value of the HTTP header whose name is configured under "enforce_on_key_name". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. - XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key type defaults to ALL. - HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforce_on_key_name". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. EnforceOnKey *SecurityPolicyRuleRateLimitOptionsEnforceOnKey `pulumi:"enforceOnKey"` // Rate limit key name applicable only for the following key types: HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value. HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value. EnforceOnKeyName *string `pulumi:"enforceOnKeyName"` // Action to take for requests that are above the configured rate limit threshold, to either deny with a specified HTTP response code, or redirect to a different endpoint. Valid options are "deny()" where valid values for status are 403, 404, 429, and 502, and "redirect" where the redirect parameters come from exceed_redirect_options below. ExceedAction *string `pulumi:"exceedAction"` // Parameters defining the redirect action that is used as the exceed action. Cannot be specified if the exceed action is not redirect. ExceedRedirectOptions *SecurityPolicyRuleRedirectOptions `pulumi:"exceedRedirectOptions"` // Threshold at which to begin ratelimiting. RateLimitThreshold *SecurityPolicyRuleRateLimitOptionsThreshold `pulumi:"rateLimitThreshold"` } // SecurityPolicyRuleRateLimitOptionsInput is an input type that accepts SecurityPolicyRuleRateLimitOptionsArgs and SecurityPolicyRuleRateLimitOptionsOutput values. // You can construct a concrete instance of `SecurityPolicyRuleRateLimitOptionsInput` via: // // SecurityPolicyRuleRateLimitOptionsArgs{...} type SecurityPolicyRuleRateLimitOptionsInput interface { pulumi.Input ToSecurityPolicyRuleRateLimitOptionsOutput() SecurityPolicyRuleRateLimitOptionsOutput ToSecurityPolicyRuleRateLimitOptionsOutputWithContext(context.Context) SecurityPolicyRuleRateLimitOptionsOutput } type SecurityPolicyRuleRateLimitOptionsArgs struct { // Can only be specified if the action for the rule is "rate_based_ban". If specified, determines the time (in seconds) the traffic will continue to be banned by the rate limit after the rate falls below the threshold. BanDurationSec pulumi.IntPtrInput `pulumi:"banDurationSec"` // Can only be specified if the action for the rule is "rate_based_ban". If specified, the key will be banned for the configured 'ban_duration_sec' when the number of requests that exceed the 'rate_limit_threshold' also exceed this 'ban_threshold'. BanThreshold SecurityPolicyRuleRateLimitOptionsThresholdPtrInput `pulumi:"banThreshold"` // Action to take for requests that are under the configured rate limit threshold. Valid option is "allow" only. ConformAction pulumi.StringPtrInput `pulumi:"conformAction"` // Determines the key to enforce the rate_limit_threshold on. Possible values are: - ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if this field 'enforce_on_key' is not configured. - IP: The source IP address of the request is the key. Each IP has this limit enforced separately. - HTTP_HEADER: The value of the HTTP header whose name is configured under "enforce_on_key_name". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. - XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key type defaults to ALL. - HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforce_on_key_name". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. EnforceOnKey SecurityPolicyRuleRateLimitOptionsEnforceOnKeyPtrInput `pulumi:"enforceOnKey"` // Rate limit key name applicable only for the following key types: HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value. HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value. EnforceOnKeyName pulumi.StringPtrInput `pulumi:"enforceOnKeyName"` // Action to take for requests that are above the configured rate limit threshold, to either deny with a specified HTTP response code, or redirect to a different endpoint. Valid options are "deny()" where valid values for status are 403, 404, 429, and 502, and "redirect" where the redirect parameters come from exceed_redirect_options below. ExceedAction pulumi.StringPtrInput `pulumi:"exceedAction"` // Parameters defining the redirect action that is used as the exceed action. Cannot be specified if the exceed action is not redirect. ExceedRedirectOptions SecurityPolicyRuleRedirectOptionsPtrInput `pulumi:"exceedRedirectOptions"` // Threshold at which to begin ratelimiting. RateLimitThreshold SecurityPolicyRuleRateLimitOptionsThresholdPtrInput `pulumi:"rateLimitThreshold"` } func (SecurityPolicyRuleRateLimitOptionsArgs) ElementType() reflect.Type { return reflect.TypeOf((*SecurityPolicyRuleRateLimitOptions)(nil)).Elem() } func (i SecurityPolicyRuleRateLimitOptionsArgs) ToSecurityPolicyRuleRateLimitOptionsOutput() SecurityPolicyRuleRateLimitOptionsOutput { return i.ToSecurityPolicyRuleRateLimitOptionsOutputWithContext(context.Background()) } func (i SecurityPolicyRuleRateLimitOptionsArgs) ToSecurityPolicyRuleRateLimitOptionsOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsOutput { return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsOutput) } func (i SecurityPolicyRuleRateLimitOptionsArgs) ToSecurityPolicyRuleRateLimitOptionsPtrOutput() SecurityPolicyRuleRateLimitOptionsPtrOutput { return i.ToSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(context.Background()) } func (i SecurityPolicyRuleRateLimitOptionsArgs) ToSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsOutput).ToSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(ctx) } // SecurityPolicyRuleRateLimitOptionsPtrInput is an input type that accepts SecurityPolicyRuleRateLimitOptionsArgs, SecurityPolicyRuleRateLimitOptionsPtr and SecurityPolicyRuleRateLimitOptionsPtrOutput values. // You can construct a concrete instance of `SecurityPolicyRuleRateLimitOptionsPtrInput` via: // // SecurityPolicyRuleRateLimitOptionsArgs{...} // // or: // // nil type SecurityPolicyRuleRateLimitOptionsPtrInput interface { pulumi.Input ToSecurityPolicyRuleRateLimitOptionsPtrOutput() SecurityPolicyRuleRateLimitOptionsPtrOutput ToSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(context.Context) SecurityPolicyRuleRateLimitOptionsPtrOutput } type securityPolicyRuleRateLimitOptionsPtrType SecurityPolicyRuleRateLimitOptionsArgs func SecurityPolicyRuleRateLimitOptionsPtr(v *SecurityPolicyRuleRateLimitOptionsArgs) SecurityPolicyRuleRateLimitOptionsPtrInput { return (*securityPolicyRuleRateLimitOptionsPtrType)(v) } func (*securityPolicyRuleRateLimitOptionsPtrType) ElementType() reflect.Type { return reflect.TypeOf((**SecurityPolicyRuleRateLimitOptions)(nil)).Elem() } func (i *securityPolicyRuleRateLimitOptionsPtrType) ToSecurityPolicyRuleRateLimitOptionsPtrOutput() SecurityPolicyRuleRateLimitOptionsPtrOutput { return i.ToSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(context.Background()) } func (i *securityPolicyRuleRateLimitOptionsPtrType) ToSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsPtrOutput) } type SecurityPolicyRuleRateLimitOptionsOutput struct{ *pulumi.OutputState } func (SecurityPolicyRuleRateLimitOptionsOutput) ElementType() reflect.Type { return reflect.TypeOf((*SecurityPolicyRuleRateLimitOptions)(nil)).Elem() } func (o SecurityPolicyRuleRateLimitOptionsOutput) ToSecurityPolicyRuleRateLimitOptionsOutput() SecurityPolicyRuleRateLimitOptionsOutput { return o } func (o SecurityPolicyRuleRateLimitOptionsOutput) ToSecurityPolicyRuleRateLimitOptionsOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsOutput { return o } func (o SecurityPolicyRuleRateLimitOptionsOutput) ToSecurityPolicyRuleRateLimitOptionsPtrOutput() SecurityPolicyRuleRateLimitOptionsPtrOutput { return o.ToSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(context.Background()) } func (o SecurityPolicyRuleRateLimitOptionsOutput) ToSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRuleRateLimitOptions) *SecurityPolicyRuleRateLimitOptions { return &v }).(SecurityPolicyRuleRateLimitOptionsPtrOutput) } // Can only be specified if the action for the rule is "rate_based_ban". If specified, determines the time (in seconds) the traffic will continue to be banned by the rate limit after the rate falls below the threshold. func (o SecurityPolicyRuleRateLimitOptionsOutput) BanDurationSec() pulumi.IntPtrOutput { return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptions) *int { return v.BanDurationSec }).(pulumi.IntPtrOutput) } // Can only be specified if the action for the rule is "rate_based_ban". If specified, the key will be banned for the configured 'ban_duration_sec' when the number of requests that exceed the 'rate_limit_threshold' also exceed this 'ban_threshold'. func (o SecurityPolicyRuleRateLimitOptionsOutput) BanThreshold() SecurityPolicyRuleRateLimitOptionsThresholdPtrOutput { return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptions) *SecurityPolicyRuleRateLimitOptionsThreshold { return v.BanThreshold }).(SecurityPolicyRuleRateLimitOptionsThresholdPtrOutput) } // Action to take for requests that are under the configured rate limit threshold. Valid option is "allow" only. func (o SecurityPolicyRuleRateLimitOptionsOutput) ConformAction() pulumi.StringPtrOutput { return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptions) *string { return v.ConformAction }).(pulumi.StringPtrOutput) } // Determines the key to enforce the rate_limit_threshold on. Possible values are: - ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if this field 'enforce_on_key' is not configured. - IP: The source IP address of the request is the key. Each IP has this limit enforced separately. - HTTP_HEADER: The value of the HTTP header whose name is configured under "enforce_on_key_name". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. - XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key type defaults to ALL. - HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforce_on_key_name". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. func (o SecurityPolicyRuleRateLimitOptionsOutput) EnforceOnKey() SecurityPolicyRuleRateLimitOptionsEnforceOnKeyPtrOutput { return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptions) *SecurityPolicyRuleRateLimitOptionsEnforceOnKey { return v.EnforceOnKey }).(SecurityPolicyRuleRateLimitOptionsEnforceOnKeyPtrOutput) } // Rate limit key name applicable only for the following key types: HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value. HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value. func (o SecurityPolicyRuleRateLimitOptionsOutput) EnforceOnKeyName() pulumi.StringPtrOutput { return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptions) *string { return v.EnforceOnKeyName }).(pulumi.StringPtrOutput) } // Action to take for requests that are above the configured rate limit threshold, to either deny with a specified HTTP response code, or redirect to a different endpoint. Valid options are "deny()" where valid values for status are 403, 404, 429, and 502, and "redirect" where the redirect parameters come from exceed_redirect_options below. func (o SecurityPolicyRuleRateLimitOptionsOutput) ExceedAction() pulumi.StringPtrOutput { return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptions) *string { return v.ExceedAction }).(pulumi.StringPtrOutput) } // Parameters defining the redirect action that is used as the exceed action. Cannot be specified if the exceed action is not redirect. func (o SecurityPolicyRuleRateLimitOptionsOutput) ExceedRedirectOptions() SecurityPolicyRuleRedirectOptionsPtrOutput { return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptions) *SecurityPolicyRuleRedirectOptions { return v.ExceedRedirectOptions }).(SecurityPolicyRuleRedirectOptionsPtrOutput) } // Threshold at which to begin ratelimiting. func (o SecurityPolicyRuleRateLimitOptionsOutput) RateLimitThreshold() SecurityPolicyRuleRateLimitOptionsThresholdPtrOutput { return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptions) *SecurityPolicyRuleRateLimitOptionsThreshold { return v.RateLimitThreshold }).(SecurityPolicyRuleRateLimitOptionsThresholdPtrOutput) } type SecurityPolicyRuleRateLimitOptionsPtrOutput struct{ *pulumi.OutputState } func (SecurityPolicyRuleRateLimitOptionsPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**SecurityPolicyRuleRateLimitOptions)(nil)).Elem() } func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) ToSecurityPolicyRuleRateLimitOptionsPtrOutput() SecurityPolicyRuleRateLimitOptionsPtrOutput { return o } func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) ToSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsPtrOutput { return o } func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) Elem() SecurityPolicyRuleRateLimitOptionsOutput { return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptions) SecurityPolicyRuleRateLimitOptions { if v != nil { return *v } var ret SecurityPolicyRuleRateLimitOptions return ret }).(SecurityPolicyRuleRateLimitOptionsOutput) } // Can only be specified if the action for the rule is "rate_based_ban". If specified, determines the time (in seconds) the traffic will continue to be banned by the rate limit after the rate falls below the threshold. func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) BanDurationSec() pulumi.IntPtrOutput { return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptions) *int { if v == nil { return nil } return v.BanDurationSec }).(pulumi.IntPtrOutput) } // Can only be specified if the action for the rule is "rate_based_ban". If specified, the key will be banned for the configured 'ban_duration_sec' when the number of requests that exceed the 'rate_limit_threshold' also exceed this 'ban_threshold'. func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) BanThreshold() SecurityPolicyRuleRateLimitOptionsThresholdPtrOutput { return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptions) *SecurityPolicyRuleRateLimitOptionsThreshold { if v == nil { return nil } return v.BanThreshold }).(SecurityPolicyRuleRateLimitOptionsThresholdPtrOutput) } // Action to take for requests that are under the configured rate limit threshold. Valid option is "allow" only. func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) ConformAction() pulumi.StringPtrOutput { return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptions) *string { if v == nil { return nil } return v.ConformAction }).(pulumi.StringPtrOutput) } // Determines the key to enforce the rate_limit_threshold on. Possible values are: - ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if this field 'enforce_on_key' is not configured. - IP: The source IP address of the request is the key. Each IP has this limit enforced separately. - HTTP_HEADER: The value of the HTTP header whose name is configured under "enforce_on_key_name". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. - XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key type defaults to ALL. - HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforce_on_key_name". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) EnforceOnKey() SecurityPolicyRuleRateLimitOptionsEnforceOnKeyPtrOutput { return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptions) *SecurityPolicyRuleRateLimitOptionsEnforceOnKey { if v == nil { return nil } return v.EnforceOnKey }).(SecurityPolicyRuleRateLimitOptionsEnforceOnKeyPtrOutput) } // Rate limit key name applicable only for the following key types: HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value. HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value. func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) EnforceOnKeyName() pulumi.StringPtrOutput { return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptions) *string { if v == nil { return nil } return v.EnforceOnKeyName }).(pulumi.StringPtrOutput) } // Action to take for requests that are above the configured rate limit threshold, to either deny with a specified HTTP response code, or redirect to a different endpoint. Valid options are "deny()" where valid values for status are 403, 404, 429, and 502, and "redirect" where the redirect parameters come from exceed_redirect_options below. func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) ExceedAction() pulumi.StringPtrOutput { return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptions) *string { if v == nil { return nil } return v.ExceedAction }).(pulumi.StringPtrOutput) } // Parameters defining the redirect action that is used as the exceed action. Cannot be specified if the exceed action is not redirect. func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) ExceedRedirectOptions() SecurityPolicyRuleRedirectOptionsPtrOutput { return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptions) *SecurityPolicyRuleRedirectOptions { if v == nil { return nil } return v.ExceedRedirectOptions }).(SecurityPolicyRuleRedirectOptionsPtrOutput) } // Threshold at which to begin ratelimiting. func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) RateLimitThreshold() SecurityPolicyRuleRateLimitOptionsThresholdPtrOutput { return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptions) *SecurityPolicyRuleRateLimitOptionsThreshold { if v == nil { return nil } return v.RateLimitThreshold }).(SecurityPolicyRuleRateLimitOptionsThresholdPtrOutput) } type SecurityPolicyRuleRateLimitOptionsResponse struct { // Can only be specified if the action for the rule is "rate_based_ban". If specified, determines the time (in seconds) the traffic will continue to be banned by the rate limit after the rate falls below the threshold. BanDurationSec int `pulumi:"banDurationSec"` // Can only be specified if the action for the rule is "rate_based_ban". If specified, the key will be banned for the configured 'ban_duration_sec' when the number of requests that exceed the 'rate_limit_threshold' also exceed this 'ban_threshold'. BanThreshold SecurityPolicyRuleRateLimitOptionsThresholdResponse `pulumi:"banThreshold"` // Action to take for requests that are under the configured rate limit threshold. Valid option is "allow" only. ConformAction string `pulumi:"conformAction"` // Determines the key to enforce the rate_limit_threshold on. Possible values are: - ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if this field 'enforce_on_key' is not configured. - IP: The source IP address of the request is the key. Each IP has this limit enforced separately. - HTTP_HEADER: The value of the HTTP header whose name is configured under "enforce_on_key_name". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. - XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key type defaults to ALL. - HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforce_on_key_name". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. EnforceOnKey string `pulumi:"enforceOnKey"` // Rate limit key name applicable only for the following key types: HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value. HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value. EnforceOnKeyName string `pulumi:"enforceOnKeyName"` // Action to take for requests that are above the configured rate limit threshold, to either deny with a specified HTTP response code, or redirect to a different endpoint. Valid options are "deny()" where valid values for status are 403, 404, 429, and 502, and "redirect" where the redirect parameters come from exceed_redirect_options below. ExceedAction string `pulumi:"exceedAction"` // Parameters defining the redirect action that is used as the exceed action. Cannot be specified if the exceed action is not redirect. ExceedRedirectOptions SecurityPolicyRuleRedirectOptionsResponse `pulumi:"exceedRedirectOptions"` // Threshold at which to begin ratelimiting. RateLimitThreshold SecurityPolicyRuleRateLimitOptionsThresholdResponse `pulumi:"rateLimitThreshold"` } type SecurityPolicyRuleRateLimitOptionsResponseOutput struct{ *pulumi.OutputState } func (SecurityPolicyRuleRateLimitOptionsResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsResponse)(nil)).Elem() } func (o SecurityPolicyRuleRateLimitOptionsResponseOutput) ToSecurityPolicyRuleRateLimitOptionsResponseOutput() SecurityPolicyRuleRateLimitOptionsResponseOutput { return o } func (o SecurityPolicyRuleRateLimitOptionsResponseOutput) ToSecurityPolicyRuleRateLimitOptionsResponseOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsResponseOutput { return o } // Can only be specified if the action for the rule is "rate_based_ban". If specified, determines the time (in seconds) the traffic will continue to be banned by the rate limit after the rate falls below the threshold. func (o SecurityPolicyRuleRateLimitOptionsResponseOutput) BanDurationSec() pulumi.IntOutput { return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptionsResponse) int { return v.BanDurationSec }).(pulumi.IntOutput) } // Can only be specified if the action for the rule is "rate_based_ban". If specified, the key will be banned for the configured 'ban_duration_sec' when the number of requests that exceed the 'rate_limit_threshold' also exceed this 'ban_threshold'. func (o SecurityPolicyRuleRateLimitOptionsResponseOutput) BanThreshold() SecurityPolicyRuleRateLimitOptionsThresholdResponseOutput { return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptionsResponse) SecurityPolicyRuleRateLimitOptionsThresholdResponse { return v.BanThreshold }).(SecurityPolicyRuleRateLimitOptionsThresholdResponseOutput) } // Action to take for requests that are under the configured rate limit threshold. Valid option is "allow" only. func (o SecurityPolicyRuleRateLimitOptionsResponseOutput) ConformAction() pulumi.StringOutput { return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptionsResponse) string { return v.ConformAction }).(pulumi.StringOutput) } // Determines the key to enforce the rate_limit_threshold on. Possible values are: - ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if this field 'enforce_on_key' is not configured. - IP: The source IP address of the request is the key. Each IP has this limit enforced separately. - HTTP_HEADER: The value of the HTTP header whose name is configured under "enforce_on_key_name". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. - XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key type defaults to ALL. - HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforce_on_key_name". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. func (o SecurityPolicyRuleRateLimitOptionsResponseOutput) EnforceOnKey() pulumi.StringOutput { return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptionsResponse) string { return v.EnforceOnKey }).(pulumi.StringOutput) } // Rate limit key name applicable only for the following key types: HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value. HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value. func (o SecurityPolicyRuleRateLimitOptionsResponseOutput) EnforceOnKeyName() pulumi.StringOutput { return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptionsResponse) string { return v.EnforceOnKeyName }).(pulumi.StringOutput) } // Action to take for requests that are above the configured rate limit threshold, to either deny with a specified HTTP response code, or redirect to a different endpoint. Valid options are "deny()" where valid values for status are 403, 404, 429, and 502, and "redirect" where the redirect parameters come from exceed_redirect_options below. func (o SecurityPolicyRuleRateLimitOptionsResponseOutput) ExceedAction() pulumi.StringOutput { return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptionsResponse) string { return v.ExceedAction }).(pulumi.StringOutput) } // Parameters defining the redirect action that is used as the exceed action. Cannot be specified if the exceed action is not redirect. func (o SecurityPolicyRuleRateLimitOptionsResponseOutput) ExceedRedirectOptions() SecurityPolicyRuleRedirectOptionsResponseOutput { return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptionsResponse) SecurityPolicyRuleRedirectOptionsResponse { return v.ExceedRedirectOptions }).(SecurityPolicyRuleRedirectOptionsResponseOutput) } // Threshold at which to begin ratelimiting. func (o SecurityPolicyRuleRateLimitOptionsResponseOutput) RateLimitThreshold() SecurityPolicyRuleRateLimitOptionsThresholdResponseOutput { return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptionsResponse) SecurityPolicyRuleRateLimitOptionsThresholdResponse { return v.RateLimitThreshold }).(SecurityPolicyRuleRateLimitOptionsThresholdResponseOutput) } type SecurityPolicyRuleRateLimitOptionsThreshold struct { // Number of HTTP(S) requests for calculating the threshold. Count *int `pulumi:"count"` // Interval over which the threshold is computed. IntervalSec *int `pulumi:"intervalSec"` } // SecurityPolicyRuleRateLimitOptionsThresholdInput is an input type that accepts SecurityPolicyRuleRateLimitOptionsThresholdArgs and SecurityPolicyRuleRateLimitOptionsThresholdOutput values. // You can construct a concrete instance of `SecurityPolicyRuleRateLimitOptionsThresholdInput` via: // // SecurityPolicyRuleRateLimitOptionsThresholdArgs{...} type SecurityPolicyRuleRateLimitOptionsThresholdInput interface { pulumi.Input ToSecurityPolicyRuleRateLimitOptionsThresholdOutput() SecurityPolicyRuleRateLimitOptionsThresholdOutput ToSecurityPolicyRuleRateLimitOptionsThresholdOutputWithContext(context.Context) SecurityPolicyRuleRateLimitOptionsThresholdOutput } type SecurityPolicyRuleRateLimitOptionsThresholdArgs struct { // Number of HTTP(S) requests for calculating the threshold. Count pulumi.IntPtrInput `pulumi:"count"` // Interval over which the threshold is computed. IntervalSec pulumi.IntPtrInput `pulumi:"intervalSec"` } func (SecurityPolicyRuleRateLimitOptionsThresholdArgs) ElementType() reflect.Type { return reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsThreshold)(nil)).Elem() } func (i SecurityPolicyRuleRateLimitOptionsThresholdArgs) ToSecurityPolicyRuleRateLimitOptionsThresholdOutput() SecurityPolicyRuleRateLimitOptionsThresholdOutput { return i.ToSecurityPolicyRuleRateLimitOptionsThresholdOutputWithContext(context.Background()) } func (i SecurityPolicyRuleRateLimitOptionsThresholdArgs) ToSecurityPolicyRuleRateLimitOptionsThresholdOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsThresholdOutput { return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsThresholdOutput) } func (i SecurityPolicyRuleRateLimitOptionsThresholdArgs) ToSecurityPolicyRuleRateLimitOptionsThresholdPtrOutput() SecurityPolicyRuleRateLimitOptionsThresholdPtrOutput { return i.ToSecurityPolicyRuleRateLimitOptionsThresholdPtrOutputWithContext(context.Background()) } func (i SecurityPolicyRuleRateLimitOptionsThresholdArgs) ToSecurityPolicyRuleRateLimitOptionsThresholdPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsThresholdPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsThresholdOutput).ToSecurityPolicyRuleRateLimitOptionsThresholdPtrOutputWithContext(ctx) } // SecurityPolicyRuleRateLimitOptionsThresholdPtrInput is an input type that accepts SecurityPolicyRuleRateLimitOptionsThresholdArgs, SecurityPolicyRuleRateLimitOptionsThresholdPtr and SecurityPolicyRuleRateLimitOptionsThresholdPtrOutput values. // You can construct a concrete instance of `SecurityPolicyRuleRateLimitOptionsThresholdPtrInput` via: // // SecurityPolicyRuleRateLimitOptionsThresholdArgs{...} // // or: // // nil type SecurityPolicyRuleRateLimitOptionsThresholdPtrInput interface { pulumi.Input ToSecurityPolicyRuleRateLimitOptionsThresholdPtrOutput() SecurityPolicyRuleRateLimitOptionsThresholdPtrOutput ToSecurityPolicyRuleRateLimitOptionsThresholdPtrOutputWithContext(context.Context) SecurityPolicyRuleRateLimitOptionsThresholdPtrOutput } type securityPolicyRuleRateLimitOptionsThresholdPtrType SecurityPolicyRuleRateLimitOptionsThresholdArgs func SecurityPolicyRuleRateLimitOptionsThresholdPtr(v *SecurityPolicyRuleRateLimitOptionsThresholdArgs) SecurityPolicyRuleRateLimitOptionsThresholdPtrInput { return (*securityPolicyRuleRateLimitOptionsThresholdPtrType)(v) } func (*securityPolicyRuleRateLimitOptionsThresholdPtrType) ElementType() reflect.Type { return reflect.TypeOf((**SecurityPolicyRuleRateLimitOptionsThreshold)(nil)).Elem() } func (i *securityPolicyRuleRateLimitOptionsThresholdPtrType) ToSecurityPolicyRuleRateLimitOptionsThresholdPtrOutput() SecurityPolicyRuleRateLimitOptionsThresholdPtrOutput { return i.ToSecurityPolicyRuleRateLimitOptionsThresholdPtrOutputWithContext(context.Background()) } func (i *securityPolicyRuleRateLimitOptionsThresholdPtrType) ToSecurityPolicyRuleRateLimitOptionsThresholdPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsThresholdPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsThresholdPtrOutput) } type SecurityPolicyRuleRateLimitOptionsThresholdOutput struct{ *pulumi.OutputState } func (SecurityPolicyRuleRateLimitOptionsThresholdOutput) ElementType() reflect.Type { return reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsThreshold)(nil)).Elem() } func (o SecurityPolicyRuleRateLimitOptionsThresholdOutput) ToSecurityPolicyRuleRateLimitOptionsThresholdOutput() SecurityPolicyRuleRateLimitOptionsThresholdOutput { return o } func (o SecurityPolicyRuleRateLimitOptionsThresholdOutput) ToSecurityPolicyRuleRateLimitOptionsThresholdOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsThresholdOutput { return o } func (o SecurityPolicyRuleRateLimitOptionsThresholdOutput) ToSecurityPolicyRuleRateLimitOptionsThresholdPtrOutput() SecurityPolicyRuleRateLimitOptionsThresholdPtrOutput { return o.ToSecurityPolicyRuleRateLimitOptionsThresholdPtrOutputWithContext(context.Background()) } func (o SecurityPolicyRuleRateLimitOptionsThresholdOutput) ToSecurityPolicyRuleRateLimitOptionsThresholdPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsThresholdPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRuleRateLimitOptionsThreshold) *SecurityPolicyRuleRateLimitOptionsThreshold { return &v }).(SecurityPolicyRuleRateLimitOptionsThresholdPtrOutput) } // Number of HTTP(S) requests for calculating the threshold. func (o SecurityPolicyRuleRateLimitOptionsThresholdOutput) Count() pulumi.IntPtrOutput { return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptionsThreshold) *int { return v.Count }).(pulumi.IntPtrOutput) } // Interval over which the threshold is computed. func (o SecurityPolicyRuleRateLimitOptionsThresholdOutput) IntervalSec() pulumi.IntPtrOutput { return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptionsThreshold) *int { return v.IntervalSec }).(pulumi.IntPtrOutput) } type SecurityPolicyRuleRateLimitOptionsThresholdPtrOutput struct{ *pulumi.OutputState } func (SecurityPolicyRuleRateLimitOptionsThresholdPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**SecurityPolicyRuleRateLimitOptionsThreshold)(nil)).Elem() } func (o SecurityPolicyRuleRateLimitOptionsThresholdPtrOutput) ToSecurityPolicyRuleRateLimitOptionsThresholdPtrOutput() SecurityPolicyRuleRateLimitOptionsThresholdPtrOutput { return o } func (o SecurityPolicyRuleRateLimitOptionsThresholdPtrOutput) ToSecurityPolicyRuleRateLimitOptionsThresholdPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsThresholdPtrOutput { return o } func (o SecurityPolicyRuleRateLimitOptionsThresholdPtrOutput) Elem() SecurityPolicyRuleRateLimitOptionsThresholdOutput { return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptionsThreshold) SecurityPolicyRuleRateLimitOptionsThreshold { if v != nil { return *v } var ret SecurityPolicyRuleRateLimitOptionsThreshold return ret }).(SecurityPolicyRuleRateLimitOptionsThresholdOutput) } // Number of HTTP(S) requests for calculating the threshold. func (o SecurityPolicyRuleRateLimitOptionsThresholdPtrOutput) Count() pulumi.IntPtrOutput { return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptionsThreshold) *int { if v == nil { return nil } return v.Count }).(pulumi.IntPtrOutput) } // Interval over which the threshold is computed. func (o SecurityPolicyRuleRateLimitOptionsThresholdPtrOutput) IntervalSec() pulumi.IntPtrOutput { return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptionsThreshold) *int { if v == nil { return nil } return v.IntervalSec }).(pulumi.IntPtrOutput) } type SecurityPolicyRuleRateLimitOptionsThresholdResponse struct { // Number of HTTP(S) requests for calculating the threshold. Count int `pulumi:"count"` // Interval over which the threshold is computed. IntervalSec int `pulumi:"intervalSec"` } type SecurityPolicyRuleRateLimitOptionsThresholdResponseOutput struct{ *pulumi.OutputState } func (SecurityPolicyRuleRateLimitOptionsThresholdResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsThresholdResponse)(nil)).Elem() } func (o SecurityPolicyRuleRateLimitOptionsThresholdResponseOutput) ToSecurityPolicyRuleRateLimitOptionsThresholdResponseOutput() SecurityPolicyRuleRateLimitOptionsThresholdResponseOutput { return o } func (o SecurityPolicyRuleRateLimitOptionsThresholdResponseOutput) ToSecurityPolicyRuleRateLimitOptionsThresholdResponseOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsThresholdResponseOutput { return o } // Number of HTTP(S) requests for calculating the threshold. func (o SecurityPolicyRuleRateLimitOptionsThresholdResponseOutput) Count() pulumi.IntOutput { return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptionsThresholdResponse) int { return v.Count }).(pulumi.IntOutput) } // Interval over which the threshold is computed. func (o SecurityPolicyRuleRateLimitOptionsThresholdResponseOutput) IntervalSec() pulumi.IntOutput { return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptionsThresholdResponse) int { return v.IntervalSec }).(pulumi.IntOutput) } type SecurityPolicyRuleRedirectOptions struct { // Target for the redirect action. This is required if the type is EXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA. Target *string `pulumi:"target"` // Type of the redirect action. Type *SecurityPolicyRuleRedirectOptionsType `pulumi:"type"` } // SecurityPolicyRuleRedirectOptionsInput is an input type that accepts SecurityPolicyRuleRedirectOptionsArgs and SecurityPolicyRuleRedirectOptionsOutput values. // You can construct a concrete instance of `SecurityPolicyRuleRedirectOptionsInput` via: // // SecurityPolicyRuleRedirectOptionsArgs{...} type SecurityPolicyRuleRedirectOptionsInput interface { pulumi.Input ToSecurityPolicyRuleRedirectOptionsOutput() SecurityPolicyRuleRedirectOptionsOutput ToSecurityPolicyRuleRedirectOptionsOutputWithContext(context.Context) SecurityPolicyRuleRedirectOptionsOutput } type SecurityPolicyRuleRedirectOptionsArgs struct { // Target for the redirect action. This is required if the type is EXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA. Target pulumi.StringPtrInput `pulumi:"target"` // Type of the redirect action. Type SecurityPolicyRuleRedirectOptionsTypePtrInput `pulumi:"type"` } func (SecurityPolicyRuleRedirectOptionsArgs) ElementType() reflect.Type { return reflect.TypeOf((*SecurityPolicyRuleRedirectOptions)(nil)).Elem() } func (i SecurityPolicyRuleRedirectOptionsArgs) ToSecurityPolicyRuleRedirectOptionsOutput() SecurityPolicyRuleRedirectOptionsOutput { return i.ToSecurityPolicyRuleRedirectOptionsOutputWithContext(context.Background()) } func (i SecurityPolicyRuleRedirectOptionsArgs) ToSecurityPolicyRuleRedirectOptionsOutputWithContext(ctx context.Context) SecurityPolicyRuleRedirectOptionsOutput { return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRedirectOptionsOutput) } func (i SecurityPolicyRuleRedirectOptionsArgs) ToSecurityPolicyRuleRedirectOptionsPtrOutput() SecurityPolicyRuleRedirectOptionsPtrOutput { return i.ToSecurityPolicyRuleRedirectOptionsPtrOutputWithContext(context.Background()) } func (i SecurityPolicyRuleRedirectOptionsArgs) ToSecurityPolicyRuleRedirectOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRedirectOptionsPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRedirectOptionsOutput).ToSecurityPolicyRuleRedirectOptionsPtrOutputWithContext(ctx) } // SecurityPolicyRuleRedirectOptionsPtrInput is an input type that accepts SecurityPolicyRuleRedirectOptionsArgs, SecurityPolicyRuleRedirectOptionsPtr and SecurityPolicyRuleRedirectOptionsPtrOutput values. // You can construct a concrete instance of `SecurityPolicyRuleRedirectOptionsPtrInput` via: // // SecurityPolicyRuleRedirectOptionsArgs{...} // // or: // // nil type SecurityPolicyRuleRedirectOptionsPtrInput interface { pulumi.Input ToSecurityPolicyRuleRedirectOptionsPtrOutput() SecurityPolicyRuleRedirectOptionsPtrOutput ToSecurityPolicyRuleRedirectOptionsPtrOutputWithContext(context.Context) SecurityPolicyRuleRedirectOptionsPtrOutput } type securityPolicyRuleRedirectOptionsPtrType SecurityPolicyRuleRedirectOptionsArgs func SecurityPolicyRuleRedirectOptionsPtr(v *SecurityPolicyRuleRedirectOptionsArgs) SecurityPolicyRuleRedirectOptionsPtrInput { return (*securityPolicyRuleRedirectOptionsPtrType)(v) } func (*securityPolicyRuleRedirectOptionsPtrType) ElementType() reflect.Type { return reflect.TypeOf((**SecurityPolicyRuleRedirectOptions)(nil)).Elem() } func (i *securityPolicyRuleRedirectOptionsPtrType) ToSecurityPolicyRuleRedirectOptionsPtrOutput() SecurityPolicyRuleRedirectOptionsPtrOutput { return i.ToSecurityPolicyRuleRedirectOptionsPtrOutputWithContext(context.Background()) } func (i *securityPolicyRuleRedirectOptionsPtrType) ToSecurityPolicyRuleRedirectOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRedirectOptionsPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRedirectOptionsPtrOutput) } type SecurityPolicyRuleRedirectOptionsOutput struct{ *pulumi.OutputState } func (SecurityPolicyRuleRedirectOptionsOutput) ElementType() reflect.Type { return reflect.TypeOf((*SecurityPolicyRuleRedirectOptions)(nil)).Elem() } func (o SecurityPolicyRuleRedirectOptionsOutput) ToSecurityPolicyRuleRedirectOptionsOutput() SecurityPolicyRuleRedirectOptionsOutput { return o } func (o SecurityPolicyRuleRedirectOptionsOutput) ToSecurityPolicyRuleRedirectOptionsOutputWithContext(ctx context.Context) SecurityPolicyRuleRedirectOptionsOutput { return o } func (o SecurityPolicyRuleRedirectOptionsOutput) ToSecurityPolicyRuleRedirectOptionsPtrOutput() SecurityPolicyRuleRedirectOptionsPtrOutput { return o.ToSecurityPolicyRuleRedirectOptionsPtrOutputWithContext(context.Background()) } func (o SecurityPolicyRuleRedirectOptionsOutput) ToSecurityPolicyRuleRedirectOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRedirectOptionsPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRuleRedirectOptions) *SecurityPolicyRuleRedirectOptions { return &v }).(SecurityPolicyRuleRedirectOptionsPtrOutput) } // Target for the redirect action. This is required if the type is EXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA. func (o SecurityPolicyRuleRedirectOptionsOutput) Target() pulumi.StringPtrOutput { return o.ApplyT(func(v SecurityPolicyRuleRedirectOptions) *string { return v.Target }).(pulumi.StringPtrOutput) } // Type of the redirect action. func (o SecurityPolicyRuleRedirectOptionsOutput) Type() SecurityPolicyRuleRedirectOptionsTypePtrOutput { return o.ApplyT(func(v SecurityPolicyRuleRedirectOptions) *SecurityPolicyRuleRedirectOptionsType { return v.Type }).(SecurityPolicyRuleRedirectOptionsTypePtrOutput) } type SecurityPolicyRuleRedirectOptionsPtrOutput struct{ *pulumi.OutputState } func (SecurityPolicyRuleRedirectOptionsPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**SecurityPolicyRuleRedirectOptions)(nil)).Elem() } func (o SecurityPolicyRuleRedirectOptionsPtrOutput) ToSecurityPolicyRuleRedirectOptionsPtrOutput() SecurityPolicyRuleRedirectOptionsPtrOutput { return o } func (o SecurityPolicyRuleRedirectOptionsPtrOutput) ToSecurityPolicyRuleRedirectOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRedirectOptionsPtrOutput { return o } func (o SecurityPolicyRuleRedirectOptionsPtrOutput) Elem() SecurityPolicyRuleRedirectOptionsOutput { return o.ApplyT(func(v *SecurityPolicyRuleRedirectOptions) SecurityPolicyRuleRedirectOptions { if v != nil { return *v } var ret SecurityPolicyRuleRedirectOptions return ret }).(SecurityPolicyRuleRedirectOptionsOutput) } // Target for the redirect action. This is required if the type is EXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA. func (o SecurityPolicyRuleRedirectOptionsPtrOutput) Target() pulumi.StringPtrOutput { return o.ApplyT(func(v *SecurityPolicyRuleRedirectOptions) *string { if v == nil { return nil } return v.Target }).(pulumi.StringPtrOutput) } // Type of the redirect action. func (o SecurityPolicyRuleRedirectOptionsPtrOutput) Type() SecurityPolicyRuleRedirectOptionsTypePtrOutput { return o.ApplyT(func(v *SecurityPolicyRuleRedirectOptions) *SecurityPolicyRuleRedirectOptionsType { if v == nil { return nil } return v.Type }).(SecurityPolicyRuleRedirectOptionsTypePtrOutput) } type SecurityPolicyRuleRedirectOptionsResponse struct { // Target for the redirect action. This is required if the type is EXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA. Target string `pulumi:"target"` // Type of the redirect action. Type string `pulumi:"type"` } type SecurityPolicyRuleRedirectOptionsResponseOutput struct{ *pulumi.OutputState } func (SecurityPolicyRuleRedirectOptionsResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*SecurityPolicyRuleRedirectOptionsResponse)(nil)).Elem() } func (o SecurityPolicyRuleRedirectOptionsResponseOutput) ToSecurityPolicyRuleRedirectOptionsResponseOutput() SecurityPolicyRuleRedirectOptionsResponseOutput { return o } func (o SecurityPolicyRuleRedirectOptionsResponseOutput) ToSecurityPolicyRuleRedirectOptionsResponseOutputWithContext(ctx context.Context) SecurityPolicyRuleRedirectOptionsResponseOutput { return o } // Target for the redirect action. This is required if the type is EXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA. func (o SecurityPolicyRuleRedirectOptionsResponseOutput) Target() pulumi.StringOutput { return o.ApplyT(func(v SecurityPolicyRuleRedirectOptionsResponse) string { return v.Target }).(pulumi.StringOutput) } // Type of the redirect action. func (o SecurityPolicyRuleRedirectOptionsResponseOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v SecurityPolicyRuleRedirectOptionsResponse) string { return v.Type }).(pulumi.StringOutput) } // Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny). type SecurityPolicyRuleResponse struct { // The Action to perform when the rule is matched. The following are the valid actions: - allow: allow access to target. - deny(): deny access to target, returns the HTTP response code specified (valid values are 403, 404, and 502). - rate_based_ban: limit client traffic to the configured threshold and ban the client if the traffic exceeds the threshold. Configure parameters for this action in RateLimitOptions. Requires rate_limit_options to be set. - redirect: redirect to a different target. This can either be an internal reCAPTCHA redirect, or an external URL-based redirect via a 302 response. Parameters for this action can be configured via redirectOptions. - throttle: limit client traffic to the configured threshold. Configure parameters for this action in rateLimitOptions. Requires rate_limit_options to be set for this. Action string `pulumi:"action"` // An optional description of this resource. Provide this property when you create the resource. Description string `pulumi:"description"` // Optional, additional actions that are performed on headers. HeaderAction SecurityPolicyRuleHttpHeaderActionResponse `pulumi:"headerAction"` // [Output only] Type of the resource. Always compute#securityPolicyRule for security policy rules Kind string `pulumi:"kind"` // A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced. Match SecurityPolicyRuleMatcherResponse `pulumi:"match"` // If set to true, the specified action is not enforced. Preview bool `pulumi:"preview"` // An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest priority. Priority int `pulumi:"priority"` // Must be specified if the action is "rate_based_ban" or "throttle". Cannot be specified for any other actions. RateLimitOptions SecurityPolicyRuleRateLimitOptionsResponse `pulumi:"rateLimitOptions"` // Parameters defining the redirect action. Cannot be specified for any other actions. RedirectOptions SecurityPolicyRuleRedirectOptionsResponse `pulumi:"redirectOptions"` } // Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny). type SecurityPolicyRuleResponseOutput struct{ *pulumi.OutputState } func (SecurityPolicyRuleResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*SecurityPolicyRuleResponse)(nil)).Elem() } func (o SecurityPolicyRuleResponseOutput) ToSecurityPolicyRuleResponseOutput() SecurityPolicyRuleResponseOutput { return o } func (o SecurityPolicyRuleResponseOutput) ToSecurityPolicyRuleResponseOutputWithContext(ctx context.Context) SecurityPolicyRuleResponseOutput { return o } // The Action to perform when the rule is matched. The following are the valid actions: - allow: allow access to target. - deny(): deny access to target, returns the HTTP response code specified (valid values are 403, 404, and 502). - rate_based_ban: limit client traffic to the configured threshold and ban the client if the traffic exceeds the threshold. Configure parameters for this action in RateLimitOptions. Requires rate_limit_options to be set. - redirect: redirect to a different target. This can either be an internal reCAPTCHA redirect, or an external URL-based redirect via a 302 response. Parameters for this action can be configured via redirectOptions. - throttle: limit client traffic to the configured threshold. Configure parameters for this action in rateLimitOptions. Requires rate_limit_options to be set for this. func (o SecurityPolicyRuleResponseOutput) Action() pulumi.StringOutput { return o.ApplyT(func(v SecurityPolicyRuleResponse) string { return v.Action }).(pulumi.StringOutput) } // An optional description of this resource. Provide this property when you create the resource. func (o SecurityPolicyRuleResponseOutput) Description() pulumi.StringOutput { return o.ApplyT(func(v SecurityPolicyRuleResponse) string { return v.Description }).(pulumi.StringOutput) } // Optional, additional actions that are performed on headers. func (o SecurityPolicyRuleResponseOutput) HeaderAction() SecurityPolicyRuleHttpHeaderActionResponseOutput { return o.ApplyT(func(v SecurityPolicyRuleResponse) SecurityPolicyRuleHttpHeaderActionResponse { return v.HeaderAction }).(SecurityPolicyRuleHttpHeaderActionResponseOutput) } // [Output only] Type of the resource. Always compute#securityPolicyRule for security policy rules func (o SecurityPolicyRuleResponseOutput) Kind() pulumi.StringOutput { return o.ApplyT(func(v SecurityPolicyRuleResponse) string { return v.Kind }).(pulumi.StringOutput) } // A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced. func (o SecurityPolicyRuleResponseOutput) Match() SecurityPolicyRuleMatcherResponseOutput { return o.ApplyT(func(v SecurityPolicyRuleResponse) SecurityPolicyRuleMatcherResponse { return v.Match }).(SecurityPolicyRuleMatcherResponseOutput) } // If set to true, the specified action is not enforced. func (o SecurityPolicyRuleResponseOutput) Preview() pulumi.BoolOutput { return o.ApplyT(func(v SecurityPolicyRuleResponse) bool { return v.Preview }).(pulumi.BoolOutput) } // An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest priority. func (o SecurityPolicyRuleResponseOutput) Priority() pulumi.IntOutput { return o.ApplyT(func(v SecurityPolicyRuleResponse) int { return v.Priority }).(pulumi.IntOutput) } // Must be specified if the action is "rate_based_ban" or "throttle". Cannot be specified for any other actions. func (o SecurityPolicyRuleResponseOutput) RateLimitOptions() SecurityPolicyRuleRateLimitOptionsResponseOutput { return o.ApplyT(func(v SecurityPolicyRuleResponse) SecurityPolicyRuleRateLimitOptionsResponse { return v.RateLimitOptions }).(SecurityPolicyRuleRateLimitOptionsResponseOutput) } // Parameters defining the redirect action. Cannot be specified for any other actions. func (o SecurityPolicyRuleResponseOutput) RedirectOptions() SecurityPolicyRuleRedirectOptionsResponseOutput { return o.ApplyT(func(v SecurityPolicyRuleResponse) SecurityPolicyRuleRedirectOptionsResponse { return v.RedirectOptions }).(SecurityPolicyRuleRedirectOptionsResponseOutput) } type SecurityPolicyRuleResponseArrayOutput struct{ *pulumi.OutputState } func (SecurityPolicyRuleResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]SecurityPolicyRuleResponse)(nil)).Elem() } func (o SecurityPolicyRuleResponseArrayOutput) ToSecurityPolicyRuleResponseArrayOutput() SecurityPolicyRuleResponseArrayOutput { return o } func (o SecurityPolicyRuleResponseArrayOutput) ToSecurityPolicyRuleResponseArrayOutputWithContext(ctx context.Context) SecurityPolicyRuleResponseArrayOutput { return o } func (o SecurityPolicyRuleResponseArrayOutput) Index(i pulumi.IntInput) SecurityPolicyRuleResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) SecurityPolicyRuleResponse { return vs[0].([]SecurityPolicyRuleResponse)[vs[1].(int)] }).(SecurityPolicyRuleResponseOutput) } // The authentication and authorization settings for a BackendService. type SecuritySettings struct { // Optional. A URL referring to a networksecurity.ClientTlsPolicy resource that describes how clients should authenticate with this service's backends. clientTlsPolicy only applies to a global BackendService with the loadBalancingScheme set to INTERNAL_SELF_MANAGED. If left blank, communications are not encrypted. Note: This field currently has no impact. ClientTlsPolicy *string `pulumi:"clientTlsPolicy"` // Optional. A list of Subject Alternative Names (SANs) that the client verifies during a mutual TLS handshake with an server/endpoint for this BackendService. When the server presents its X.509 certificate to the client, the client inspects the certificate's subjectAltName field. If the field contains one of the specified values, the communication continues. Otherwise, it fails. This additional check enables the client to verify that the server is authorized to run the requested service. Note that the contents of the server certificate's subjectAltName field are configured by the Public Key Infrastructure which provisions server identities. Only applies to a global BackendService with loadBalancingScheme set to INTERNAL_SELF_MANAGED. Only applies when BackendService has an attached clientTlsPolicy with clientCertificate (mTLS mode). Note: This field currently has no impact. SubjectAltNames []string `pulumi:"subjectAltNames"` } // SecuritySettingsInput is an input type that accepts SecuritySettingsArgs and SecuritySettingsOutput values. // You can construct a concrete instance of `SecuritySettingsInput` via: // // SecuritySettingsArgs{...} type SecuritySettingsInput interface { pulumi.Input ToSecuritySettingsOutput() SecuritySettingsOutput ToSecuritySettingsOutputWithContext(context.Context) SecuritySettingsOutput } // The authentication and authorization settings for a BackendService. type SecuritySettingsArgs struct { // Optional. A URL referring to a networksecurity.ClientTlsPolicy resource that describes how clients should authenticate with this service's backends. clientTlsPolicy only applies to a global BackendService with the loadBalancingScheme set to INTERNAL_SELF_MANAGED. If left blank, communications are not encrypted. Note: This field currently has no impact. ClientTlsPolicy pulumi.StringPtrInput `pulumi:"clientTlsPolicy"` // Optional. A list of Subject Alternative Names (SANs) that the client verifies during a mutual TLS handshake with an server/endpoint for this BackendService. When the server presents its X.509 certificate to the client, the client inspects the certificate's subjectAltName field. If the field contains one of the specified values, the communication continues. Otherwise, it fails. This additional check enables the client to verify that the server is authorized to run the requested service. Note that the contents of the server certificate's subjectAltName field are configured by the Public Key Infrastructure which provisions server identities. Only applies to a global BackendService with loadBalancingScheme set to INTERNAL_SELF_MANAGED. Only applies when BackendService has an attached clientTlsPolicy with clientCertificate (mTLS mode). Note: This field currently has no impact. SubjectAltNames pulumi.StringArrayInput `pulumi:"subjectAltNames"` } func (SecuritySettingsArgs) ElementType() reflect.Type { return reflect.TypeOf((*SecuritySettings)(nil)).Elem() } func (i SecuritySettingsArgs) ToSecuritySettingsOutput() SecuritySettingsOutput { return i.ToSecuritySettingsOutputWithContext(context.Background()) } func (i SecuritySettingsArgs) ToSecuritySettingsOutputWithContext(ctx context.Context) SecuritySettingsOutput { return pulumi.ToOutputWithContext(ctx, i).(SecuritySettingsOutput) } func (i SecuritySettingsArgs) ToSecuritySettingsPtrOutput() SecuritySettingsPtrOutput { return i.ToSecuritySettingsPtrOutputWithContext(context.Background()) } func (i SecuritySettingsArgs) ToSecuritySettingsPtrOutputWithContext(ctx context.Context) SecuritySettingsPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(SecuritySettingsOutput).ToSecuritySettingsPtrOutputWithContext(ctx) } // SecuritySettingsPtrInput is an input type that accepts SecuritySettingsArgs, SecuritySettingsPtr and SecuritySettingsPtrOutput values. // You can construct a concrete instance of `SecuritySettingsPtrInput` via: // // SecuritySettingsArgs{...} // // or: // // nil type SecuritySettingsPtrInput interface { pulumi.Input ToSecuritySettingsPtrOutput() SecuritySettingsPtrOutput ToSecuritySettingsPtrOutputWithContext(context.Context) SecuritySettingsPtrOutput } type securitySettingsPtrType SecuritySettingsArgs func SecuritySettingsPtr(v *SecuritySettingsArgs) SecuritySettingsPtrInput { return (*securitySettingsPtrType)(v) } func (*securitySettingsPtrType) ElementType() reflect.Type { return reflect.TypeOf((**SecuritySettings)(nil)).Elem() } func (i *securitySettingsPtrType) ToSecuritySettingsPtrOutput() SecuritySettingsPtrOutput { return i.ToSecuritySettingsPtrOutputWithContext(context.Background()) } func (i *securitySettingsPtrType) ToSecuritySettingsPtrOutputWithContext(ctx context.Context) SecuritySettingsPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(SecuritySettingsPtrOutput) } // The authentication and authorization settings for a BackendService. type SecuritySettingsOutput struct{ *pulumi.OutputState } func (SecuritySettingsOutput) ElementType() reflect.Type { return reflect.TypeOf((*SecuritySettings)(nil)).Elem() } func (o SecuritySettingsOutput) ToSecuritySettingsOutput() SecuritySettingsOutput { return o } func (o SecuritySettingsOutput) ToSecuritySettingsOutputWithContext(ctx context.Context) SecuritySettingsOutput { return o } func (o SecuritySettingsOutput) ToSecuritySettingsPtrOutput() SecuritySettingsPtrOutput { return o.ToSecuritySettingsPtrOutputWithContext(context.Background()) } func (o SecuritySettingsOutput) ToSecuritySettingsPtrOutputWithContext(ctx context.Context) SecuritySettingsPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v SecuritySettings) *SecuritySettings { return &v }).(SecuritySettingsPtrOutput) } // Optional. A URL referring to a networksecurity.ClientTlsPolicy resource that describes how clients should authenticate with this service's backends. clientTlsPolicy only applies to a global BackendService with the loadBalancingScheme set to INTERNAL_SELF_MANAGED. If left blank, communications are not encrypted. Note: This field currently has no impact. func (o SecuritySettingsOutput) ClientTlsPolicy() pulumi.StringPtrOutput { return o.ApplyT(func(v SecuritySettings) *string { return v.ClientTlsPolicy }).(pulumi.StringPtrOutput) } // Optional. A list of Subject Alternative Names (SANs) that the client verifies during a mutual TLS handshake with an server/endpoint for this BackendService. When the server presents its X.509 certificate to the client, the client inspects the certificate's subjectAltName field. If the field contains one of the specified values, the communication continues. Otherwise, it fails. This additional check enables the client to verify that the server is authorized to run the requested service. Note that the contents of the server certificate's subjectAltName field are configured by the Public Key Infrastructure which provisions server identities. Only applies to a global BackendService with loadBalancingScheme set to INTERNAL_SELF_MANAGED. Only applies when BackendService has an attached clientTlsPolicy with clientCertificate (mTLS mode). Note: This field currently has no impact. func (o SecuritySettingsOutput) SubjectAltNames() pulumi.StringArrayOutput { return o.ApplyT(func(v SecuritySettings) []string { return v.SubjectAltNames }).(pulumi.StringArrayOutput) } type SecuritySettingsPtrOutput struct{ *pulumi.OutputState } func (SecuritySettingsPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**SecuritySettings)(nil)).Elem() } func (o SecuritySettingsPtrOutput) ToSecuritySettingsPtrOutput() SecuritySettingsPtrOutput { return o } func (o SecuritySettingsPtrOutput) ToSecuritySettingsPtrOutputWithContext(ctx context.Context) SecuritySettingsPtrOutput { return o } func (o SecuritySettingsPtrOutput) Elem() SecuritySettingsOutput { return o.ApplyT(func(v *SecuritySettings) SecuritySettings { if v != nil { return *v } var ret SecuritySettings return ret }).(SecuritySettingsOutput) } // Optional. A URL referring to a networksecurity.ClientTlsPolicy resource that describes how clients should authenticate with this service's backends. clientTlsPolicy only applies to a global BackendService with the loadBalancingScheme set to INTERNAL_SELF_MANAGED. If left blank, communications are not encrypted. Note: This field currently has no impact. func (o SecuritySettingsPtrOutput) ClientTlsPolicy() pulumi.StringPtrOutput { return o.ApplyT(func(v *SecuritySettings) *string { if v == nil { return nil } return v.ClientTlsPolicy }).(pulumi.StringPtrOutput) } // Optional. A list of Subject Alternative Names (SANs) that the client verifies during a mutual TLS handshake with an server/endpoint for this BackendService. When the server presents its X.509 certificate to the client, the client inspects the certificate's subjectAltName field. If the field contains one of the specified values, the communication continues. Otherwise, it fails. This additional check enables the client to verify that the server is authorized to run the requested service. Note that the contents of the server certificate's subjectAltName field are configured by the Public Key Infrastructure which provisions server identities. Only applies to a global BackendService with loadBalancingScheme set to INTERNAL_SELF_MANAGED. Only applies when BackendService has an attached clientTlsPolicy with clientCertificate (mTLS mode). Note: This field currently has no impact. func (o SecuritySettingsPtrOutput) SubjectAltNames() pulumi.StringArrayOutput { return o.ApplyT(func(v *SecuritySettings) []string { if v == nil { return nil } return v.SubjectAltNames }).(pulumi.StringArrayOutput) } // The authentication and authorization settings for a BackendService. type SecuritySettingsResponse struct { // Optional. A URL referring to a networksecurity.ClientTlsPolicy resource that describes how clients should authenticate with this service's backends. clientTlsPolicy only applies to a global BackendService with the loadBalancingScheme set to INTERNAL_SELF_MANAGED. If left blank, communications are not encrypted. Note: This field currently has no impact. ClientTlsPolicy string `pulumi:"clientTlsPolicy"` // Optional. A list of Subject Alternative Names (SANs) that the client verifies during a mutual TLS handshake with an server/endpoint for this BackendService. When the server presents its X.509 certificate to the client, the client inspects the certificate's subjectAltName field. If the field contains one of the specified values, the communication continues. Otherwise, it fails. This additional check enables the client to verify that the server is authorized to run the requested service. Note that the contents of the server certificate's subjectAltName field are configured by the Public Key Infrastructure which provisions server identities. Only applies to a global BackendService with loadBalancingScheme set to INTERNAL_SELF_MANAGED. Only applies when BackendService has an attached clientTlsPolicy with clientCertificate (mTLS mode). Note: This field currently has no impact. SubjectAltNames []string `pulumi:"subjectAltNames"` } // The authentication and authorization settings for a BackendService. type SecuritySettingsResponseOutput struct{ *pulumi.OutputState } func (SecuritySettingsResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*SecuritySettingsResponse)(nil)).Elem() } func (o SecuritySettingsResponseOutput) ToSecuritySettingsResponseOutput() SecuritySettingsResponseOutput { return o } func (o SecuritySettingsResponseOutput) ToSecuritySettingsResponseOutputWithContext(ctx context.Context) SecuritySettingsResponseOutput { return o } // Optional. A URL referring to a networksecurity.ClientTlsPolicy resource that describes how clients should authenticate with this service's backends. clientTlsPolicy only applies to a global BackendService with the loadBalancingScheme set to INTERNAL_SELF_MANAGED. If left blank, communications are not encrypted. Note: This field currently has no impact. func (o SecuritySettingsResponseOutput) ClientTlsPolicy() pulumi.StringOutput { return o.ApplyT(func(v SecuritySettingsResponse) string { return v.ClientTlsPolicy }).(pulumi.StringOutput) } // Optional. A list of Subject Alternative Names (SANs) that the client verifies during a mutual TLS handshake with an server/endpoint for this BackendService. When the server presents its X.509 certificate to the client, the client inspects the certificate's subjectAltName field. If the field contains one of the specified values, the communication continues. Otherwise, it fails. This additional check enables the client to verify that the server is authorized to run the requested service. Note that the contents of the server certificate's subjectAltName field are configured by the Public Key Infrastructure which provisions server identities. Only applies to a global BackendService with loadBalancingScheme set to INTERNAL_SELF_MANAGED. Only applies when BackendService has an attached clientTlsPolicy with clientCertificate (mTLS mode). Note: This field currently has no impact. func (o SecuritySettingsResponseOutput) SubjectAltNames() pulumi.StringArrayOutput { return o.ApplyT(func(v SecuritySettingsResponse) []string { return v.SubjectAltNames }).(pulumi.StringArrayOutput) } type ServerBinding struct { Type *ServerBindingType `pulumi:"type"` } // ServerBindingInput is an input type that accepts ServerBindingArgs and ServerBindingOutput values. // You can construct a concrete instance of `ServerBindingInput` via: // // ServerBindingArgs{...} type ServerBindingInput interface { pulumi.Input ToServerBindingOutput() ServerBindingOutput ToServerBindingOutputWithContext(context.Context) ServerBindingOutput } type ServerBindingArgs struct { Type ServerBindingTypePtrInput `pulumi:"type"` } func (ServerBindingArgs) ElementType() reflect.Type { return reflect.TypeOf((*ServerBinding)(nil)).Elem() } func (i ServerBindingArgs) ToServerBindingOutput() ServerBindingOutput { return i.ToServerBindingOutputWithContext(context.Background()) } func (i ServerBindingArgs) ToServerBindingOutputWithContext(ctx context.Context) ServerBindingOutput { return pulumi.ToOutputWithContext(ctx, i).(ServerBindingOutput) } func (i ServerBindingArgs) ToServerBindingPtrOutput() ServerBindingPtrOutput { return i.ToServerBindingPtrOutputWithContext(context.Background()) } func (i ServerBindingArgs) ToServerBindingPtrOutputWithContext(ctx context.Context) ServerBindingPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(ServerBindingOutput).ToServerBindingPtrOutputWithContext(ctx) } // ServerBindingPtrInput is an input type that accepts ServerBindingArgs, ServerBindingPtr and ServerBindingPtrOutput values. // You can construct a concrete instance of `ServerBindingPtrInput` via: // // ServerBindingArgs{...} // // or: // // nil type ServerBindingPtrInput interface { pulumi.Input ToServerBindingPtrOutput() ServerBindingPtrOutput ToServerBindingPtrOutputWithContext(context.Context) ServerBindingPtrOutput } type serverBindingPtrType ServerBindingArgs func ServerBindingPtr(v *ServerBindingArgs) ServerBindingPtrInput { return (*serverBindingPtrType)(v) } func (*serverBindingPtrType) ElementType() reflect.Type { return reflect.TypeOf((**ServerBinding)(nil)).Elem() } func (i *serverBindingPtrType) ToServerBindingPtrOutput() ServerBindingPtrOutput { return i.ToServerBindingPtrOutputWithContext(context.Background()) } func (i *serverBindingPtrType) ToServerBindingPtrOutputWithContext(ctx context.Context) ServerBindingPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(ServerBindingPtrOutput) } type ServerBindingOutput struct{ *pulumi.OutputState } func (ServerBindingOutput) ElementType() reflect.Type { return reflect.TypeOf((*ServerBinding)(nil)).Elem() } func (o ServerBindingOutput) ToServerBindingOutput() ServerBindingOutput { return o } func (o ServerBindingOutput) ToServerBindingOutputWithContext(ctx context.Context) ServerBindingOutput { return o } func (o ServerBindingOutput) ToServerBindingPtrOutput() ServerBindingPtrOutput { return o.ToServerBindingPtrOutputWithContext(context.Background()) } func (o ServerBindingOutput) ToServerBindingPtrOutputWithContext(ctx context.Context) ServerBindingPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v ServerBinding) *ServerBinding { return &v }).(ServerBindingPtrOutput) } func (o ServerBindingOutput) Type() ServerBindingTypePtrOutput { return o.ApplyT(func(v ServerBinding) *ServerBindingType { return v.Type }).(ServerBindingTypePtrOutput) } type ServerBindingPtrOutput struct{ *pulumi.OutputState } func (ServerBindingPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**ServerBinding)(nil)).Elem() } func (o ServerBindingPtrOutput) ToServerBindingPtrOutput() ServerBindingPtrOutput { return o } func (o ServerBindingPtrOutput) ToServerBindingPtrOutputWithContext(ctx context.Context) ServerBindingPtrOutput { return o } func (o ServerBindingPtrOutput) Elem() ServerBindingOutput { return o.ApplyT(func(v *ServerBinding) ServerBinding { if v != nil { return *v } var ret ServerBinding return ret }).(ServerBindingOutput) } func (o ServerBindingPtrOutput) Type() ServerBindingTypePtrOutput { return o.ApplyT(func(v *ServerBinding) *ServerBindingType { if v == nil { return nil } return v.Type }).(ServerBindingTypePtrOutput) } type ServerBindingResponse struct { Type string `pulumi:"type"` } type ServerBindingResponseOutput struct{ *pulumi.OutputState } func (ServerBindingResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*ServerBindingResponse)(nil)).Elem() } func (o ServerBindingResponseOutput) ToServerBindingResponseOutput() ServerBindingResponseOutput { return o } func (o ServerBindingResponseOutput) ToServerBindingResponseOutputWithContext(ctx context.Context) ServerBindingResponseOutput { return o } func (o ServerBindingResponseOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v ServerBindingResponse) string { return v.Type }).(pulumi.StringOutput) } // A service account. type ServiceAccount struct { // Email address of the service account. Email *string `pulumi:"email"` // The list of scopes to be made available for this service account. Scopes []string `pulumi:"scopes"` } // ServiceAccountInput is an input type that accepts ServiceAccountArgs and ServiceAccountOutput values. // You can construct a concrete instance of `ServiceAccountInput` via: // // ServiceAccountArgs{...} type ServiceAccountInput interface { pulumi.Input ToServiceAccountOutput() ServiceAccountOutput ToServiceAccountOutputWithContext(context.Context) ServiceAccountOutput } // A service account. type ServiceAccountArgs struct { // Email address of the service account. Email pulumi.StringPtrInput `pulumi:"email"` // The list of scopes to be made available for this service account. Scopes pulumi.StringArrayInput `pulumi:"scopes"` } func (ServiceAccountArgs) ElementType() reflect.Type { return reflect.TypeOf((*ServiceAccount)(nil)).Elem() } func (i ServiceAccountArgs) ToServiceAccountOutput() ServiceAccountOutput { return i.ToServiceAccountOutputWithContext(context.Background()) } func (i ServiceAccountArgs) ToServiceAccountOutputWithContext(ctx context.Context) ServiceAccountOutput { return pulumi.ToOutputWithContext(ctx, i).(ServiceAccountOutput) } // ServiceAccountArrayInput is an input type that accepts ServiceAccountArray and ServiceAccountArrayOutput values. // You can construct a concrete instance of `ServiceAccountArrayInput` via: // // ServiceAccountArray{ ServiceAccountArgs{...} } type ServiceAccountArrayInput interface { pulumi.Input ToServiceAccountArrayOutput() ServiceAccountArrayOutput ToServiceAccountArrayOutputWithContext(context.Context) ServiceAccountArrayOutput } type ServiceAccountArray []ServiceAccountInput func (ServiceAccountArray) ElementType() reflect.Type { return reflect.TypeOf((*[]ServiceAccount)(nil)).Elem() } func (i ServiceAccountArray) ToServiceAccountArrayOutput() ServiceAccountArrayOutput { return i.ToServiceAccountArrayOutputWithContext(context.Background()) } func (i ServiceAccountArray) ToServiceAccountArrayOutputWithContext(ctx context.Context) ServiceAccountArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(ServiceAccountArrayOutput) } // A service account. type ServiceAccountOutput struct{ *pulumi.OutputState } func (ServiceAccountOutput) ElementType() reflect.Type { return reflect.TypeOf((*ServiceAccount)(nil)).Elem() } func (o ServiceAccountOutput) ToServiceAccountOutput() ServiceAccountOutput { return o } func (o ServiceAccountOutput) ToServiceAccountOutputWithContext(ctx context.Context) ServiceAccountOutput { return o } // Email address of the service account. func (o ServiceAccountOutput) Email() pulumi.StringPtrOutput { return o.ApplyT(func(v ServiceAccount) *string { return v.Email }).(pulumi.StringPtrOutput) } // The list of scopes to be made available for this service account. func (o ServiceAccountOutput) Scopes() pulumi.StringArrayOutput { return o.ApplyT(func(v ServiceAccount) []string { return v.Scopes }).(pulumi.StringArrayOutput) } type ServiceAccountArrayOutput struct{ *pulumi.OutputState } func (ServiceAccountArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]ServiceAccount)(nil)).Elem() } func (o ServiceAccountArrayOutput) ToServiceAccountArrayOutput() ServiceAccountArrayOutput { return o } func (o ServiceAccountArrayOutput) ToServiceAccountArrayOutputWithContext(ctx context.Context) ServiceAccountArrayOutput { return o } func (o ServiceAccountArrayOutput) Index(i pulumi.IntInput) ServiceAccountOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) ServiceAccount { return vs[0].([]ServiceAccount)[vs[1].(int)] }).(ServiceAccountOutput) } // A service account. type ServiceAccountResponse struct { // Email address of the service account. Email string `pulumi:"email"` // The list of scopes to be made available for this service account. Scopes []string `pulumi:"scopes"` } // A service account. type ServiceAccountResponseOutput struct{ *pulumi.OutputState } func (ServiceAccountResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*ServiceAccountResponse)(nil)).Elem() } func (o ServiceAccountResponseOutput) ToServiceAccountResponseOutput() ServiceAccountResponseOutput { return o } func (o ServiceAccountResponseOutput) ToServiceAccountResponseOutputWithContext(ctx context.Context) ServiceAccountResponseOutput { return o } // Email address of the service account. func (o ServiceAccountResponseOutput) Email() pulumi.StringOutput { return o.ApplyT(func(v ServiceAccountResponse) string { return v.Email }).(pulumi.StringOutput) } // The list of scopes to be made available for this service account. func (o ServiceAccountResponseOutput) Scopes() pulumi.StringArrayOutput { return o.ApplyT(func(v ServiceAccountResponse) []string { return v.Scopes }).(pulumi.StringArrayOutput) } type ServiceAccountResponseArrayOutput struct{ *pulumi.OutputState } func (ServiceAccountResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]ServiceAccountResponse)(nil)).Elem() } func (o ServiceAccountResponseArrayOutput) ToServiceAccountResponseArrayOutput() ServiceAccountResponseArrayOutput { return o } func (o ServiceAccountResponseArrayOutput) ToServiceAccountResponseArrayOutputWithContext(ctx context.Context) ServiceAccountResponseArrayOutput { return o } func (o ServiceAccountResponseArrayOutput) Index(i pulumi.IntInput) ServiceAccountResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) ServiceAccountResponse { return vs[0].([]ServiceAccountResponse)[vs[1].(int)] }).(ServiceAccountResponseOutput) } // [Output Only] A connection connected to this service attachment. type ServiceAttachmentConnectedEndpointResponse struct { // The url of a connected endpoint. Endpoint string `pulumi:"endpoint"` // The PSC connection id of the connected endpoint. PscConnectionId string `pulumi:"pscConnectionId"` // The status of a connected endpoint to this service attachment. Status string `pulumi:"status"` } // [Output Only] A connection connected to this service attachment. type ServiceAttachmentConnectedEndpointResponseOutput struct{ *pulumi.OutputState } func (ServiceAttachmentConnectedEndpointResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*ServiceAttachmentConnectedEndpointResponse)(nil)).Elem() } func (o ServiceAttachmentConnectedEndpointResponseOutput) ToServiceAttachmentConnectedEndpointResponseOutput() ServiceAttachmentConnectedEndpointResponseOutput { return o } func (o ServiceAttachmentConnectedEndpointResponseOutput) ToServiceAttachmentConnectedEndpointResponseOutputWithContext(ctx context.Context) ServiceAttachmentConnectedEndpointResponseOutput { return o } // The url of a connected endpoint. func (o ServiceAttachmentConnectedEndpointResponseOutput) Endpoint() pulumi.StringOutput { return o.ApplyT(func(v ServiceAttachmentConnectedEndpointResponse) string { return v.Endpoint }).(pulumi.StringOutput) } // The PSC connection id of the connected endpoint. func (o ServiceAttachmentConnectedEndpointResponseOutput) PscConnectionId() pulumi.StringOutput { return o.ApplyT(func(v ServiceAttachmentConnectedEndpointResponse) string { return v.PscConnectionId }).(pulumi.StringOutput) } // The status of a connected endpoint to this service attachment. func (o ServiceAttachmentConnectedEndpointResponseOutput) Status() pulumi.StringOutput { return o.ApplyT(func(v ServiceAttachmentConnectedEndpointResponse) string { return v.Status }).(pulumi.StringOutput) } type ServiceAttachmentConnectedEndpointResponseArrayOutput struct{ *pulumi.OutputState } func (ServiceAttachmentConnectedEndpointResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]ServiceAttachmentConnectedEndpointResponse)(nil)).Elem() } func (o ServiceAttachmentConnectedEndpointResponseArrayOutput) ToServiceAttachmentConnectedEndpointResponseArrayOutput() ServiceAttachmentConnectedEndpointResponseArrayOutput { return o } func (o ServiceAttachmentConnectedEndpointResponseArrayOutput) ToServiceAttachmentConnectedEndpointResponseArrayOutputWithContext(ctx context.Context) ServiceAttachmentConnectedEndpointResponseArrayOutput { return o } func (o ServiceAttachmentConnectedEndpointResponseArrayOutput) Index(i pulumi.IntInput) ServiceAttachmentConnectedEndpointResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) ServiceAttachmentConnectedEndpointResponse { return vs[0].([]ServiceAttachmentConnectedEndpointResponse)[vs[1].(int)] }).(ServiceAttachmentConnectedEndpointResponseOutput) } type ServiceAttachmentConsumerProjectLimit struct { // The value of the limit to set. ConnectionLimit *int `pulumi:"connectionLimit"` // The project id or number for the project to set the limit for. ProjectIdOrNum *string `pulumi:"projectIdOrNum"` } // ServiceAttachmentConsumerProjectLimitInput is an input type that accepts ServiceAttachmentConsumerProjectLimitArgs and ServiceAttachmentConsumerProjectLimitOutput values. // You can construct a concrete instance of `ServiceAttachmentConsumerProjectLimitInput` via: // // ServiceAttachmentConsumerProjectLimitArgs{...} type ServiceAttachmentConsumerProjectLimitInput interface { pulumi.Input ToServiceAttachmentConsumerProjectLimitOutput() ServiceAttachmentConsumerProjectLimitOutput ToServiceAttachmentConsumerProjectLimitOutputWithContext(context.Context) ServiceAttachmentConsumerProjectLimitOutput } type ServiceAttachmentConsumerProjectLimitArgs struct { // The value of the limit to set. ConnectionLimit pulumi.IntPtrInput `pulumi:"connectionLimit"` // The project id or number for the project to set the limit for. ProjectIdOrNum pulumi.StringPtrInput `pulumi:"projectIdOrNum"` } func (ServiceAttachmentConsumerProjectLimitArgs) ElementType() reflect.Type { return reflect.TypeOf((*ServiceAttachmentConsumerProjectLimit)(nil)).Elem() } func (i ServiceAttachmentConsumerProjectLimitArgs) ToServiceAttachmentConsumerProjectLimitOutput() ServiceAttachmentConsumerProjectLimitOutput { return i.ToServiceAttachmentConsumerProjectLimitOutputWithContext(context.Background()) } func (i ServiceAttachmentConsumerProjectLimitArgs) ToServiceAttachmentConsumerProjectLimitOutputWithContext(ctx context.Context) ServiceAttachmentConsumerProjectLimitOutput { return pulumi.ToOutputWithContext(ctx, i).(ServiceAttachmentConsumerProjectLimitOutput) } // ServiceAttachmentConsumerProjectLimitArrayInput is an input type that accepts ServiceAttachmentConsumerProjectLimitArray and ServiceAttachmentConsumerProjectLimitArrayOutput values. // You can construct a concrete instance of `ServiceAttachmentConsumerProjectLimitArrayInput` via: // // ServiceAttachmentConsumerProjectLimitArray{ ServiceAttachmentConsumerProjectLimitArgs{...} } type ServiceAttachmentConsumerProjectLimitArrayInput interface { pulumi.Input ToServiceAttachmentConsumerProjectLimitArrayOutput() ServiceAttachmentConsumerProjectLimitArrayOutput ToServiceAttachmentConsumerProjectLimitArrayOutputWithContext(context.Context) ServiceAttachmentConsumerProjectLimitArrayOutput } type ServiceAttachmentConsumerProjectLimitArray []ServiceAttachmentConsumerProjectLimitInput func (ServiceAttachmentConsumerProjectLimitArray) ElementType() reflect.Type { return reflect.TypeOf((*[]ServiceAttachmentConsumerProjectLimit)(nil)).Elem() } func (i ServiceAttachmentConsumerProjectLimitArray) ToServiceAttachmentConsumerProjectLimitArrayOutput() ServiceAttachmentConsumerProjectLimitArrayOutput { return i.ToServiceAttachmentConsumerProjectLimitArrayOutputWithContext(context.Background()) } func (i ServiceAttachmentConsumerProjectLimitArray) ToServiceAttachmentConsumerProjectLimitArrayOutputWithContext(ctx context.Context) ServiceAttachmentConsumerProjectLimitArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(ServiceAttachmentConsumerProjectLimitArrayOutput) } type ServiceAttachmentConsumerProjectLimitOutput struct{ *pulumi.OutputState } func (ServiceAttachmentConsumerProjectLimitOutput) ElementType() reflect.Type { return reflect.TypeOf((*ServiceAttachmentConsumerProjectLimit)(nil)).Elem() } func (o ServiceAttachmentConsumerProjectLimitOutput) ToServiceAttachmentConsumerProjectLimitOutput() ServiceAttachmentConsumerProjectLimitOutput { return o } func (o ServiceAttachmentConsumerProjectLimitOutput) ToServiceAttachmentConsumerProjectLimitOutputWithContext(ctx context.Context) ServiceAttachmentConsumerProjectLimitOutput { return o } // The value of the limit to set. func (o ServiceAttachmentConsumerProjectLimitOutput) ConnectionLimit() pulumi.IntPtrOutput { return o.ApplyT(func(v ServiceAttachmentConsumerProjectLimit) *int { return v.ConnectionLimit }).(pulumi.IntPtrOutput) } // The project id or number for the project to set the limit for. func (o ServiceAttachmentConsumerProjectLimitOutput) ProjectIdOrNum() pulumi.StringPtrOutput { return o.ApplyT(func(v ServiceAttachmentConsumerProjectLimit) *string { return v.ProjectIdOrNum }).(pulumi.StringPtrOutput) } type ServiceAttachmentConsumerProjectLimitArrayOutput struct{ *pulumi.OutputState } func (ServiceAttachmentConsumerProjectLimitArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]ServiceAttachmentConsumerProjectLimit)(nil)).Elem() } func (o ServiceAttachmentConsumerProjectLimitArrayOutput) ToServiceAttachmentConsumerProjectLimitArrayOutput() ServiceAttachmentConsumerProjectLimitArrayOutput { return o } func (o ServiceAttachmentConsumerProjectLimitArrayOutput) ToServiceAttachmentConsumerProjectLimitArrayOutputWithContext(ctx context.Context) ServiceAttachmentConsumerProjectLimitArrayOutput { return o } func (o ServiceAttachmentConsumerProjectLimitArrayOutput) Index(i pulumi.IntInput) ServiceAttachmentConsumerProjectLimitOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) ServiceAttachmentConsumerProjectLimit { return vs[0].([]ServiceAttachmentConsumerProjectLimit)[vs[1].(int)] }).(ServiceAttachmentConsumerProjectLimitOutput) } type ServiceAttachmentConsumerProjectLimitResponse struct { // The value of the limit to set. ConnectionLimit int `pulumi:"connectionLimit"` // The project id or number for the project to set the limit for. ProjectIdOrNum string `pulumi:"projectIdOrNum"` } type ServiceAttachmentConsumerProjectLimitResponseOutput struct{ *pulumi.OutputState } func (ServiceAttachmentConsumerProjectLimitResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*ServiceAttachmentConsumerProjectLimitResponse)(nil)).Elem() } func (o ServiceAttachmentConsumerProjectLimitResponseOutput) ToServiceAttachmentConsumerProjectLimitResponseOutput() ServiceAttachmentConsumerProjectLimitResponseOutput { return o } func (o ServiceAttachmentConsumerProjectLimitResponseOutput) ToServiceAttachmentConsumerProjectLimitResponseOutputWithContext(ctx context.Context) ServiceAttachmentConsumerProjectLimitResponseOutput { return o } // The value of the limit to set. func (o ServiceAttachmentConsumerProjectLimitResponseOutput) ConnectionLimit() pulumi.IntOutput { return o.ApplyT(func(v ServiceAttachmentConsumerProjectLimitResponse) int { return v.ConnectionLimit }).(pulumi.IntOutput) } // The project id or number for the project to set the limit for. func (o ServiceAttachmentConsumerProjectLimitResponseOutput) ProjectIdOrNum() pulumi.StringOutput { return o.ApplyT(func(v ServiceAttachmentConsumerProjectLimitResponse) string { return v.ProjectIdOrNum }).(pulumi.StringOutput) } type ServiceAttachmentConsumerProjectLimitResponseArrayOutput struct{ *pulumi.OutputState } func (ServiceAttachmentConsumerProjectLimitResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]ServiceAttachmentConsumerProjectLimitResponse)(nil)).Elem() } func (o ServiceAttachmentConsumerProjectLimitResponseArrayOutput) ToServiceAttachmentConsumerProjectLimitResponseArrayOutput() ServiceAttachmentConsumerProjectLimitResponseArrayOutput { return o } func (o ServiceAttachmentConsumerProjectLimitResponseArrayOutput) ToServiceAttachmentConsumerProjectLimitResponseArrayOutputWithContext(ctx context.Context) ServiceAttachmentConsumerProjectLimitResponseArrayOutput { return o } func (o ServiceAttachmentConsumerProjectLimitResponseArrayOutput) Index(i pulumi.IntInput) ServiceAttachmentConsumerProjectLimitResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) ServiceAttachmentConsumerProjectLimitResponse { return vs[0].([]ServiceAttachmentConsumerProjectLimitResponse)[vs[1].(int)] }).(ServiceAttachmentConsumerProjectLimitResponseOutput) } // The share setting for reservations and sole tenancy node groups. type ShareSettings struct { // A map of project id and project config. This is only valid when share_type's value is SPECIFIC_PROJECTS. ProjectMap map[string]string `pulumi:"projectMap"` // Type of sharing for this shared-reservation ShareType *ShareSettingsShareType `pulumi:"shareType"` } // ShareSettingsInput is an input type that accepts ShareSettingsArgs and ShareSettingsOutput values. // You can construct a concrete instance of `ShareSettingsInput` via: // // ShareSettingsArgs{...} type ShareSettingsInput interface { pulumi.Input ToShareSettingsOutput() ShareSettingsOutput ToShareSettingsOutputWithContext(context.Context) ShareSettingsOutput } // The share setting for reservations and sole tenancy node groups. type ShareSettingsArgs struct { // A map of project id and project config. This is only valid when share_type's value is SPECIFIC_PROJECTS. ProjectMap pulumi.StringMapInput `pulumi:"projectMap"` // Type of sharing for this shared-reservation ShareType ShareSettingsShareTypePtrInput `pulumi:"shareType"` } func (ShareSettingsArgs) ElementType() reflect.Type { return reflect.TypeOf((*ShareSettings)(nil)).Elem() } func (i ShareSettingsArgs) ToShareSettingsOutput() ShareSettingsOutput { return i.ToShareSettingsOutputWithContext(context.Background()) } func (i ShareSettingsArgs) ToShareSettingsOutputWithContext(ctx context.Context) ShareSettingsOutput { return pulumi.ToOutputWithContext(ctx, i).(ShareSettingsOutput) } func (i ShareSettingsArgs) ToShareSettingsPtrOutput() ShareSettingsPtrOutput { return i.ToShareSettingsPtrOutputWithContext(context.Background()) } func (i ShareSettingsArgs) ToShareSettingsPtrOutputWithContext(ctx context.Context) ShareSettingsPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(ShareSettingsOutput).ToShareSettingsPtrOutputWithContext(ctx) } // ShareSettingsPtrInput is an input type that accepts ShareSettingsArgs, ShareSettingsPtr and ShareSettingsPtrOutput values. // You can construct a concrete instance of `ShareSettingsPtrInput` via: // // ShareSettingsArgs{...} // // or: // // nil type ShareSettingsPtrInput interface { pulumi.Input ToShareSettingsPtrOutput() ShareSettingsPtrOutput ToShareSettingsPtrOutputWithContext(context.Context) ShareSettingsPtrOutput } type shareSettingsPtrType ShareSettingsArgs func ShareSettingsPtr(v *ShareSettingsArgs) ShareSettingsPtrInput { return (*shareSettingsPtrType)(v) } func (*shareSettingsPtrType) ElementType() reflect.Type { return reflect.TypeOf((**ShareSettings)(nil)).Elem() } func (i *shareSettingsPtrType) ToShareSettingsPtrOutput() ShareSettingsPtrOutput { return i.ToShareSettingsPtrOutputWithContext(context.Background()) } func (i *shareSettingsPtrType) ToShareSettingsPtrOutputWithContext(ctx context.Context) ShareSettingsPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(ShareSettingsPtrOutput) } // The share setting for reservations and sole tenancy node groups. type ShareSettingsOutput struct{ *pulumi.OutputState } func (ShareSettingsOutput) ElementType() reflect.Type { return reflect.TypeOf((*ShareSettings)(nil)).Elem() } func (o ShareSettingsOutput) ToShareSettingsOutput() ShareSettingsOutput { return o } func (o ShareSettingsOutput) ToShareSettingsOutputWithContext(ctx context.Context) ShareSettingsOutput { return o } func (o ShareSettingsOutput) ToShareSettingsPtrOutput() ShareSettingsPtrOutput { return o.ToShareSettingsPtrOutputWithContext(context.Background()) } func (o ShareSettingsOutput) ToShareSettingsPtrOutputWithContext(ctx context.Context) ShareSettingsPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v ShareSettings) *ShareSettings { return &v }).(ShareSettingsPtrOutput) } // A map of project id and project config. This is only valid when share_type's value is SPECIFIC_PROJECTS. func (o ShareSettingsOutput) ProjectMap() pulumi.StringMapOutput { return o.ApplyT(func(v ShareSettings) map[string]string { return v.ProjectMap }).(pulumi.StringMapOutput) } // Type of sharing for this shared-reservation func (o ShareSettingsOutput) ShareType() ShareSettingsShareTypePtrOutput { return o.ApplyT(func(v ShareSettings) *ShareSettingsShareType { return v.ShareType }).(ShareSettingsShareTypePtrOutput) } type ShareSettingsPtrOutput struct{ *pulumi.OutputState } func (ShareSettingsPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**ShareSettings)(nil)).Elem() } func (o ShareSettingsPtrOutput) ToShareSettingsPtrOutput() ShareSettingsPtrOutput { return o } func (o ShareSettingsPtrOutput) ToShareSettingsPtrOutputWithContext(ctx context.Context) ShareSettingsPtrOutput { return o } func (o ShareSettingsPtrOutput) Elem() ShareSettingsOutput { return o.ApplyT(func(v *ShareSettings) ShareSettings { if v != nil { return *v } var ret ShareSettings return ret }).(ShareSettingsOutput) } // A map of project id and project config. This is only valid when share_type's value is SPECIFIC_PROJECTS. func (o ShareSettingsPtrOutput) ProjectMap() pulumi.StringMapOutput { return o.ApplyT(func(v *ShareSettings) map[string]string { if v == nil { return nil } return v.ProjectMap }).(pulumi.StringMapOutput) } // Type of sharing for this shared-reservation func (o ShareSettingsPtrOutput) ShareType() ShareSettingsShareTypePtrOutput { return o.ApplyT(func(v *ShareSettings) *ShareSettingsShareType { if v == nil { return nil } return v.ShareType }).(ShareSettingsShareTypePtrOutput) } // The share setting for reservations and sole tenancy node groups. type ShareSettingsResponse struct { // A map of project id and project config. This is only valid when share_type's value is SPECIFIC_PROJECTS. ProjectMap map[string]string `pulumi:"projectMap"` // Type of sharing for this shared-reservation ShareType string `pulumi:"shareType"` } // The share setting for reservations and sole tenancy node groups. type ShareSettingsResponseOutput struct{ *pulumi.OutputState } func (ShareSettingsResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*ShareSettingsResponse)(nil)).Elem() } func (o ShareSettingsResponseOutput) ToShareSettingsResponseOutput() ShareSettingsResponseOutput { return o } func (o ShareSettingsResponseOutput) ToShareSettingsResponseOutputWithContext(ctx context.Context) ShareSettingsResponseOutput { return o } // A map of project id and project config. This is only valid when share_type's value is SPECIFIC_PROJECTS. func (o ShareSettingsResponseOutput) ProjectMap() pulumi.StringMapOutput { return o.ApplyT(func(v ShareSettingsResponse) map[string]string { return v.ProjectMap }).(pulumi.StringMapOutput) } // Type of sharing for this shared-reservation func (o ShareSettingsResponseOutput) ShareType() pulumi.StringOutput { return o.ApplyT(func(v ShareSettingsResponse) string { return v.ShareType }).(pulumi.StringOutput) } // A set of Shielded Instance options. type ShieldedInstanceConfig struct { // Defines whether the instance has integrity monitoring enabled. Enabled by default. EnableIntegrityMonitoring *bool `pulumi:"enableIntegrityMonitoring"` // Defines whether the instance has Secure Boot enabled. Disabled by default. EnableSecureBoot *bool `pulumi:"enableSecureBoot"` // Defines whether the instance has the vTPM enabled. Enabled by default. EnableVtpm *bool `pulumi:"enableVtpm"` } // ShieldedInstanceConfigInput is an input type that accepts ShieldedInstanceConfigArgs and ShieldedInstanceConfigOutput values. // You can construct a concrete instance of `ShieldedInstanceConfigInput` via: // // ShieldedInstanceConfigArgs{...} type ShieldedInstanceConfigInput interface { pulumi.Input ToShieldedInstanceConfigOutput() ShieldedInstanceConfigOutput ToShieldedInstanceConfigOutputWithContext(context.Context) ShieldedInstanceConfigOutput } // A set of Shielded Instance options. type ShieldedInstanceConfigArgs struct { // Defines whether the instance has integrity monitoring enabled. Enabled by default. EnableIntegrityMonitoring pulumi.BoolPtrInput `pulumi:"enableIntegrityMonitoring"` // Defines whether the instance has Secure Boot enabled. Disabled by default. EnableSecureBoot pulumi.BoolPtrInput `pulumi:"enableSecureBoot"` // Defines whether the instance has the vTPM enabled. Enabled by default. EnableVtpm pulumi.BoolPtrInput `pulumi:"enableVtpm"` } func (ShieldedInstanceConfigArgs) ElementType() reflect.Type { return reflect.TypeOf((*ShieldedInstanceConfig)(nil)).Elem() } func (i ShieldedInstanceConfigArgs) ToShieldedInstanceConfigOutput() ShieldedInstanceConfigOutput { return i.ToShieldedInstanceConfigOutputWithContext(context.Background()) } func (i ShieldedInstanceConfigArgs) ToShieldedInstanceConfigOutputWithContext(ctx context.Context) ShieldedInstanceConfigOutput { return pulumi.ToOutputWithContext(ctx, i).(ShieldedInstanceConfigOutput) } func (i ShieldedInstanceConfigArgs) ToShieldedInstanceConfigPtrOutput() ShieldedInstanceConfigPtrOutput { return i.ToShieldedInstanceConfigPtrOutputWithContext(context.Background()) } func (i ShieldedInstanceConfigArgs) ToShieldedInstanceConfigPtrOutputWithContext(ctx context.Context) ShieldedInstanceConfigPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(ShieldedInstanceConfigOutput).ToShieldedInstanceConfigPtrOutputWithContext(ctx) } // ShieldedInstanceConfigPtrInput is an input type that accepts ShieldedInstanceConfigArgs, ShieldedInstanceConfigPtr and ShieldedInstanceConfigPtrOutput values. // You can construct a concrete instance of `ShieldedInstanceConfigPtrInput` via: // // ShieldedInstanceConfigArgs{...} // // or: // // nil type ShieldedInstanceConfigPtrInput interface { pulumi.Input ToShieldedInstanceConfigPtrOutput() ShieldedInstanceConfigPtrOutput ToShieldedInstanceConfigPtrOutputWithContext(context.Context) ShieldedInstanceConfigPtrOutput } type shieldedInstanceConfigPtrType ShieldedInstanceConfigArgs func ShieldedInstanceConfigPtr(v *ShieldedInstanceConfigArgs) ShieldedInstanceConfigPtrInput { return (*shieldedInstanceConfigPtrType)(v) } func (*shieldedInstanceConfigPtrType) ElementType() reflect.Type { return reflect.TypeOf((**ShieldedInstanceConfig)(nil)).Elem() } func (i *shieldedInstanceConfigPtrType) ToShieldedInstanceConfigPtrOutput() ShieldedInstanceConfigPtrOutput { return i.ToShieldedInstanceConfigPtrOutputWithContext(context.Background()) } func (i *shieldedInstanceConfigPtrType) ToShieldedInstanceConfigPtrOutputWithContext(ctx context.Context) ShieldedInstanceConfigPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(ShieldedInstanceConfigPtrOutput) } // A set of Shielded Instance options. type ShieldedInstanceConfigOutput struct{ *pulumi.OutputState } func (ShieldedInstanceConfigOutput) ElementType() reflect.Type { return reflect.TypeOf((*ShieldedInstanceConfig)(nil)).Elem() } func (o ShieldedInstanceConfigOutput) ToShieldedInstanceConfigOutput() ShieldedInstanceConfigOutput { return o } func (o ShieldedInstanceConfigOutput) ToShieldedInstanceConfigOutputWithContext(ctx context.Context) ShieldedInstanceConfigOutput { return o } func (o ShieldedInstanceConfigOutput) ToShieldedInstanceConfigPtrOutput() ShieldedInstanceConfigPtrOutput { return o.ToShieldedInstanceConfigPtrOutputWithContext(context.Background()) } func (o ShieldedInstanceConfigOutput) ToShieldedInstanceConfigPtrOutputWithContext(ctx context.Context) ShieldedInstanceConfigPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v ShieldedInstanceConfig) *ShieldedInstanceConfig { return &v }).(ShieldedInstanceConfigPtrOutput) } // Defines whether the instance has integrity monitoring enabled. Enabled by default. func (o ShieldedInstanceConfigOutput) EnableIntegrityMonitoring() pulumi.BoolPtrOutput { return o.ApplyT(func(v ShieldedInstanceConfig) *bool { return v.EnableIntegrityMonitoring }).(pulumi.BoolPtrOutput) } // Defines whether the instance has Secure Boot enabled. Disabled by default. func (o ShieldedInstanceConfigOutput) EnableSecureBoot() pulumi.BoolPtrOutput { return o.ApplyT(func(v ShieldedInstanceConfig) *bool { return v.EnableSecureBoot }).(pulumi.BoolPtrOutput) } // Defines whether the instance has the vTPM enabled. Enabled by default. func (o ShieldedInstanceConfigOutput) EnableVtpm() pulumi.BoolPtrOutput { return o.ApplyT(func(v ShieldedInstanceConfig) *bool { return v.EnableVtpm }).(pulumi.BoolPtrOutput) } type ShieldedInstanceConfigPtrOutput struct{ *pulumi.OutputState } func (ShieldedInstanceConfigPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**ShieldedInstanceConfig)(nil)).Elem() } func (o ShieldedInstanceConfigPtrOutput) ToShieldedInstanceConfigPtrOutput() ShieldedInstanceConfigPtrOutput { return o } func (o ShieldedInstanceConfigPtrOutput) ToShieldedInstanceConfigPtrOutputWithContext(ctx context.Context) ShieldedInstanceConfigPtrOutput { return o } func (o ShieldedInstanceConfigPtrOutput) Elem() ShieldedInstanceConfigOutput { return o.ApplyT(func(v *ShieldedInstanceConfig) ShieldedInstanceConfig { if v != nil { return *v } var ret ShieldedInstanceConfig return ret }).(ShieldedInstanceConfigOutput) } // Defines whether the instance has integrity monitoring enabled. Enabled by default. func (o ShieldedInstanceConfigPtrOutput) EnableIntegrityMonitoring() pulumi.BoolPtrOutput { return o.ApplyT(func(v *ShieldedInstanceConfig) *bool { if v == nil { return nil } return v.EnableIntegrityMonitoring }).(pulumi.BoolPtrOutput) } // Defines whether the instance has Secure Boot enabled. Disabled by default. func (o ShieldedInstanceConfigPtrOutput) EnableSecureBoot() pulumi.BoolPtrOutput { return o.ApplyT(func(v *ShieldedInstanceConfig) *bool { if v == nil { return nil } return v.EnableSecureBoot }).(pulumi.BoolPtrOutput) } // Defines whether the instance has the vTPM enabled. Enabled by default. func (o ShieldedInstanceConfigPtrOutput) EnableVtpm() pulumi.BoolPtrOutput { return o.ApplyT(func(v *ShieldedInstanceConfig) *bool { if v == nil { return nil } return v.EnableVtpm }).(pulumi.BoolPtrOutput) } // A set of Shielded Instance options. type ShieldedInstanceConfigResponse struct { // Defines whether the instance has integrity monitoring enabled. Enabled by default. EnableIntegrityMonitoring bool `pulumi:"enableIntegrityMonitoring"` // Defines whether the instance has Secure Boot enabled. Disabled by default. EnableSecureBoot bool `pulumi:"enableSecureBoot"` // Defines whether the instance has the vTPM enabled. Enabled by default. EnableVtpm bool `pulumi:"enableVtpm"` } // A set of Shielded Instance options. type ShieldedInstanceConfigResponseOutput struct{ *pulumi.OutputState } func (ShieldedInstanceConfigResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*ShieldedInstanceConfigResponse)(nil)).Elem() } func (o ShieldedInstanceConfigResponseOutput) ToShieldedInstanceConfigResponseOutput() ShieldedInstanceConfigResponseOutput { return o } func (o ShieldedInstanceConfigResponseOutput) ToShieldedInstanceConfigResponseOutputWithContext(ctx context.Context) ShieldedInstanceConfigResponseOutput { return o } // Defines whether the instance has integrity monitoring enabled. Enabled by default. func (o ShieldedInstanceConfigResponseOutput) EnableIntegrityMonitoring() pulumi.BoolOutput { return o.ApplyT(func(v ShieldedInstanceConfigResponse) bool { return v.EnableIntegrityMonitoring }).(pulumi.BoolOutput) } // Defines whether the instance has Secure Boot enabled. Disabled by default. func (o ShieldedInstanceConfigResponseOutput) EnableSecureBoot() pulumi.BoolOutput { return o.ApplyT(func(v ShieldedInstanceConfigResponse) bool { return v.EnableSecureBoot }).(pulumi.BoolOutput) } // Defines whether the instance has the vTPM enabled. Enabled by default. func (o ShieldedInstanceConfigResponseOutput) EnableVtpm() pulumi.BoolOutput { return o.ApplyT(func(v ShieldedInstanceConfigResponse) bool { return v.EnableVtpm }).(pulumi.BoolOutput) } // The policy describes the baseline against which Instance boot integrity is measured. type ShieldedInstanceIntegrityPolicy struct { // Updates the integrity policy baseline using the measurements from the VM instance's most recent boot. UpdateAutoLearnPolicy *bool `pulumi:"updateAutoLearnPolicy"` } // ShieldedInstanceIntegrityPolicyInput is an input type that accepts ShieldedInstanceIntegrityPolicyArgs and ShieldedInstanceIntegrityPolicyOutput values. // You can construct a concrete instance of `ShieldedInstanceIntegrityPolicyInput` via: // // ShieldedInstanceIntegrityPolicyArgs{...} type ShieldedInstanceIntegrityPolicyInput interface { pulumi.Input ToShieldedInstanceIntegrityPolicyOutput() ShieldedInstanceIntegrityPolicyOutput ToShieldedInstanceIntegrityPolicyOutputWithContext(context.Context) ShieldedInstanceIntegrityPolicyOutput } // The policy describes the baseline against which Instance boot integrity is measured. type ShieldedInstanceIntegrityPolicyArgs struct { // Updates the integrity policy baseline using the measurements from the VM instance's most recent boot. UpdateAutoLearnPolicy pulumi.BoolPtrInput `pulumi:"updateAutoLearnPolicy"` } func (ShieldedInstanceIntegrityPolicyArgs) ElementType() reflect.Type { return reflect.TypeOf((*ShieldedInstanceIntegrityPolicy)(nil)).Elem() } func (i ShieldedInstanceIntegrityPolicyArgs) ToShieldedInstanceIntegrityPolicyOutput() ShieldedInstanceIntegrityPolicyOutput { return i.ToShieldedInstanceIntegrityPolicyOutputWithContext(context.Background()) } func (i ShieldedInstanceIntegrityPolicyArgs) ToShieldedInstanceIntegrityPolicyOutputWithContext(ctx context.Context) ShieldedInstanceIntegrityPolicyOutput { return pulumi.ToOutputWithContext(ctx, i).(ShieldedInstanceIntegrityPolicyOutput) } func (i ShieldedInstanceIntegrityPolicyArgs) ToShieldedInstanceIntegrityPolicyPtrOutput() ShieldedInstanceIntegrityPolicyPtrOutput { return i.ToShieldedInstanceIntegrityPolicyPtrOutputWithContext(context.Background()) } func (i ShieldedInstanceIntegrityPolicyArgs) ToShieldedInstanceIntegrityPolicyPtrOutputWithContext(ctx context.Context) ShieldedInstanceIntegrityPolicyPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(ShieldedInstanceIntegrityPolicyOutput).ToShieldedInstanceIntegrityPolicyPtrOutputWithContext(ctx) } // ShieldedInstanceIntegrityPolicyPtrInput is an input type that accepts ShieldedInstanceIntegrityPolicyArgs, ShieldedInstanceIntegrityPolicyPtr and ShieldedInstanceIntegrityPolicyPtrOutput values. // You can construct a concrete instance of `ShieldedInstanceIntegrityPolicyPtrInput` via: // // ShieldedInstanceIntegrityPolicyArgs{...} // // or: // // nil type ShieldedInstanceIntegrityPolicyPtrInput interface { pulumi.Input ToShieldedInstanceIntegrityPolicyPtrOutput() ShieldedInstanceIntegrityPolicyPtrOutput ToShieldedInstanceIntegrityPolicyPtrOutputWithContext(context.Context) ShieldedInstanceIntegrityPolicyPtrOutput } type shieldedInstanceIntegrityPolicyPtrType ShieldedInstanceIntegrityPolicyArgs func ShieldedInstanceIntegrityPolicyPtr(v *ShieldedInstanceIntegrityPolicyArgs) ShieldedInstanceIntegrityPolicyPtrInput { return (*shieldedInstanceIntegrityPolicyPtrType)(v) } func (*shieldedInstanceIntegrityPolicyPtrType) ElementType() reflect.Type { return reflect.TypeOf((**ShieldedInstanceIntegrityPolicy)(nil)).Elem() } func (i *shieldedInstanceIntegrityPolicyPtrType) ToShieldedInstanceIntegrityPolicyPtrOutput() ShieldedInstanceIntegrityPolicyPtrOutput { return i.ToShieldedInstanceIntegrityPolicyPtrOutputWithContext(context.Background()) } func (i *shieldedInstanceIntegrityPolicyPtrType) ToShieldedInstanceIntegrityPolicyPtrOutputWithContext(ctx context.Context) ShieldedInstanceIntegrityPolicyPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(ShieldedInstanceIntegrityPolicyPtrOutput) } // The policy describes the baseline against which Instance boot integrity is measured. type ShieldedInstanceIntegrityPolicyOutput struct{ *pulumi.OutputState } func (ShieldedInstanceIntegrityPolicyOutput) ElementType() reflect.Type { return reflect.TypeOf((*ShieldedInstanceIntegrityPolicy)(nil)).Elem() } func (o ShieldedInstanceIntegrityPolicyOutput) ToShieldedInstanceIntegrityPolicyOutput() ShieldedInstanceIntegrityPolicyOutput { return o } func (o ShieldedInstanceIntegrityPolicyOutput) ToShieldedInstanceIntegrityPolicyOutputWithContext(ctx context.Context) ShieldedInstanceIntegrityPolicyOutput { return o } func (o ShieldedInstanceIntegrityPolicyOutput) ToShieldedInstanceIntegrityPolicyPtrOutput() ShieldedInstanceIntegrityPolicyPtrOutput { return o.ToShieldedInstanceIntegrityPolicyPtrOutputWithContext(context.Background()) } func (o ShieldedInstanceIntegrityPolicyOutput) ToShieldedInstanceIntegrityPolicyPtrOutputWithContext(ctx context.Context) ShieldedInstanceIntegrityPolicyPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v ShieldedInstanceIntegrityPolicy) *ShieldedInstanceIntegrityPolicy { return &v }).(ShieldedInstanceIntegrityPolicyPtrOutput) } // Updates the integrity policy baseline using the measurements from the VM instance's most recent boot. func (o ShieldedInstanceIntegrityPolicyOutput) UpdateAutoLearnPolicy() pulumi.BoolPtrOutput { return o.ApplyT(func(v ShieldedInstanceIntegrityPolicy) *bool { return v.UpdateAutoLearnPolicy }).(pulumi.BoolPtrOutput) } type ShieldedInstanceIntegrityPolicyPtrOutput struct{ *pulumi.OutputState } func (ShieldedInstanceIntegrityPolicyPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**ShieldedInstanceIntegrityPolicy)(nil)).Elem() } func (o ShieldedInstanceIntegrityPolicyPtrOutput) ToShieldedInstanceIntegrityPolicyPtrOutput() ShieldedInstanceIntegrityPolicyPtrOutput { return o } func (o ShieldedInstanceIntegrityPolicyPtrOutput) ToShieldedInstanceIntegrityPolicyPtrOutputWithContext(ctx context.Context) ShieldedInstanceIntegrityPolicyPtrOutput { return o } func (o ShieldedInstanceIntegrityPolicyPtrOutput) Elem() ShieldedInstanceIntegrityPolicyOutput { return o.ApplyT(func(v *ShieldedInstanceIntegrityPolicy) ShieldedInstanceIntegrityPolicy { if v != nil { return *v } var ret ShieldedInstanceIntegrityPolicy return ret }).(ShieldedInstanceIntegrityPolicyOutput) } // Updates the integrity policy baseline using the measurements from the VM instance's most recent boot. func (o ShieldedInstanceIntegrityPolicyPtrOutput) UpdateAutoLearnPolicy() pulumi.BoolPtrOutput { return o.ApplyT(func(v *ShieldedInstanceIntegrityPolicy) *bool { if v == nil { return nil } return v.UpdateAutoLearnPolicy }).(pulumi.BoolPtrOutput) } // The policy describes the baseline against which Instance boot integrity is measured. type ShieldedInstanceIntegrityPolicyResponse struct { // Updates the integrity policy baseline using the measurements from the VM instance's most recent boot. UpdateAutoLearnPolicy bool `pulumi:"updateAutoLearnPolicy"` } // The policy describes the baseline against which Instance boot integrity is measured. type ShieldedInstanceIntegrityPolicyResponseOutput struct{ *pulumi.OutputState } func (ShieldedInstanceIntegrityPolicyResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*ShieldedInstanceIntegrityPolicyResponse)(nil)).Elem() } func (o ShieldedInstanceIntegrityPolicyResponseOutput) ToShieldedInstanceIntegrityPolicyResponseOutput() ShieldedInstanceIntegrityPolicyResponseOutput { return o } func (o ShieldedInstanceIntegrityPolicyResponseOutput) ToShieldedInstanceIntegrityPolicyResponseOutputWithContext(ctx context.Context) ShieldedInstanceIntegrityPolicyResponseOutput { return o } // Updates the integrity policy baseline using the measurements from the VM instance's most recent boot. func (o ShieldedInstanceIntegrityPolicyResponseOutput) UpdateAutoLearnPolicy() pulumi.BoolOutput { return o.ApplyT(func(v ShieldedInstanceIntegrityPolicyResponse) bool { return v.UpdateAutoLearnPolicy }).(pulumi.BoolOutput) } type SourceDiskEncryptionKey struct { // The customer-supplied encryption key of the source disk. Required if the source disk is protected by a customer-supplied encryption key. DiskEncryptionKey *CustomerEncryptionKey `pulumi:"diskEncryptionKey"` // URL of the disk attached to the source instance. This can be a full or valid partial URL. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /disks/disk - projects/project/zones/zone/disks/disk - zones/zone/disks/disk SourceDisk *string `pulumi:"sourceDisk"` } // SourceDiskEncryptionKeyInput is an input type that accepts SourceDiskEncryptionKeyArgs and SourceDiskEncryptionKeyOutput values. // You can construct a concrete instance of `SourceDiskEncryptionKeyInput` via: // // SourceDiskEncryptionKeyArgs{...} type SourceDiskEncryptionKeyInput interface { pulumi.Input ToSourceDiskEncryptionKeyOutput() SourceDiskEncryptionKeyOutput ToSourceDiskEncryptionKeyOutputWithContext(context.Context) SourceDiskEncryptionKeyOutput } type SourceDiskEncryptionKeyArgs struct { // The customer-supplied encryption key of the source disk. Required if the source disk is protected by a customer-supplied encryption key. DiskEncryptionKey CustomerEncryptionKeyPtrInput `pulumi:"diskEncryptionKey"` // URL of the disk attached to the source instance. This can be a full or valid partial URL. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /disks/disk - projects/project/zones/zone/disks/disk - zones/zone/disks/disk SourceDisk pulumi.StringPtrInput `pulumi:"sourceDisk"` } func (SourceDiskEncryptionKeyArgs) ElementType() reflect.Type { return reflect.TypeOf((*SourceDiskEncryptionKey)(nil)).Elem() } func (i SourceDiskEncryptionKeyArgs) ToSourceDiskEncryptionKeyOutput() SourceDiskEncryptionKeyOutput { return i.ToSourceDiskEncryptionKeyOutputWithContext(context.Background()) } func (i SourceDiskEncryptionKeyArgs) ToSourceDiskEncryptionKeyOutputWithContext(ctx context.Context) SourceDiskEncryptionKeyOutput { return pulumi.ToOutputWithContext(ctx, i).(SourceDiskEncryptionKeyOutput) } // SourceDiskEncryptionKeyArrayInput is an input type that accepts SourceDiskEncryptionKeyArray and SourceDiskEncryptionKeyArrayOutput values. // You can construct a concrete instance of `SourceDiskEncryptionKeyArrayInput` via: // // SourceDiskEncryptionKeyArray{ SourceDiskEncryptionKeyArgs{...} } type SourceDiskEncryptionKeyArrayInput interface { pulumi.Input ToSourceDiskEncryptionKeyArrayOutput() SourceDiskEncryptionKeyArrayOutput ToSourceDiskEncryptionKeyArrayOutputWithContext(context.Context) SourceDiskEncryptionKeyArrayOutput } type SourceDiskEncryptionKeyArray []SourceDiskEncryptionKeyInput func (SourceDiskEncryptionKeyArray) ElementType() reflect.Type { return reflect.TypeOf((*[]SourceDiskEncryptionKey)(nil)).Elem() } func (i SourceDiskEncryptionKeyArray) ToSourceDiskEncryptionKeyArrayOutput() SourceDiskEncryptionKeyArrayOutput { return i.ToSourceDiskEncryptionKeyArrayOutputWithContext(context.Background()) } func (i SourceDiskEncryptionKeyArray) ToSourceDiskEncryptionKeyArrayOutputWithContext(ctx context.Context) SourceDiskEncryptionKeyArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(SourceDiskEncryptionKeyArrayOutput) } type SourceDiskEncryptionKeyOutput struct{ *pulumi.OutputState } func (SourceDiskEncryptionKeyOutput) ElementType() reflect.Type { return reflect.TypeOf((*SourceDiskEncryptionKey)(nil)).Elem() } func (o SourceDiskEncryptionKeyOutput) ToSourceDiskEncryptionKeyOutput() SourceDiskEncryptionKeyOutput { return o } func (o SourceDiskEncryptionKeyOutput) ToSourceDiskEncryptionKeyOutputWithContext(ctx context.Context) SourceDiskEncryptionKeyOutput { return o } // The customer-supplied encryption key of the source disk. Required if the source disk is protected by a customer-supplied encryption key. func (o SourceDiskEncryptionKeyOutput) DiskEncryptionKey() CustomerEncryptionKeyPtrOutput { return o.ApplyT(func(v SourceDiskEncryptionKey) *CustomerEncryptionKey { return v.DiskEncryptionKey }).(CustomerEncryptionKeyPtrOutput) } // URL of the disk attached to the source instance. This can be a full or valid partial URL. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /disks/disk - projects/project/zones/zone/disks/disk - zones/zone/disks/disk func (o SourceDiskEncryptionKeyOutput) SourceDisk() pulumi.StringPtrOutput { return o.ApplyT(func(v SourceDiskEncryptionKey) *string { return v.SourceDisk }).(pulumi.StringPtrOutput) } type SourceDiskEncryptionKeyArrayOutput struct{ *pulumi.OutputState } func (SourceDiskEncryptionKeyArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]SourceDiskEncryptionKey)(nil)).Elem() } func (o SourceDiskEncryptionKeyArrayOutput) ToSourceDiskEncryptionKeyArrayOutput() SourceDiskEncryptionKeyArrayOutput { return o } func (o SourceDiskEncryptionKeyArrayOutput) ToSourceDiskEncryptionKeyArrayOutputWithContext(ctx context.Context) SourceDiskEncryptionKeyArrayOutput { return o } func (o SourceDiskEncryptionKeyArrayOutput) Index(i pulumi.IntInput) SourceDiskEncryptionKeyOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) SourceDiskEncryptionKey { return vs[0].([]SourceDiskEncryptionKey)[vs[1].(int)] }).(SourceDiskEncryptionKeyOutput) } type SourceDiskEncryptionKeyResponse struct { // The customer-supplied encryption key of the source disk. Required if the source disk is protected by a customer-supplied encryption key. DiskEncryptionKey CustomerEncryptionKeyResponse `pulumi:"diskEncryptionKey"` // URL of the disk attached to the source instance. This can be a full or valid partial URL. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /disks/disk - projects/project/zones/zone/disks/disk - zones/zone/disks/disk SourceDisk string `pulumi:"sourceDisk"` } type SourceDiskEncryptionKeyResponseOutput struct{ *pulumi.OutputState } func (SourceDiskEncryptionKeyResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*SourceDiskEncryptionKeyResponse)(nil)).Elem() } func (o SourceDiskEncryptionKeyResponseOutput) ToSourceDiskEncryptionKeyResponseOutput() SourceDiskEncryptionKeyResponseOutput { return o } func (o SourceDiskEncryptionKeyResponseOutput) ToSourceDiskEncryptionKeyResponseOutputWithContext(ctx context.Context) SourceDiskEncryptionKeyResponseOutput { return o } // The customer-supplied encryption key of the source disk. Required if the source disk is protected by a customer-supplied encryption key. func (o SourceDiskEncryptionKeyResponseOutput) DiskEncryptionKey() CustomerEncryptionKeyResponseOutput { return o.ApplyT(func(v SourceDiskEncryptionKeyResponse) CustomerEncryptionKeyResponse { return v.DiskEncryptionKey }).(CustomerEncryptionKeyResponseOutput) } // URL of the disk attached to the source instance. This can be a full or valid partial URL. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /disks/disk - projects/project/zones/zone/disks/disk - zones/zone/disks/disk func (o SourceDiskEncryptionKeyResponseOutput) SourceDisk() pulumi.StringOutput { return o.ApplyT(func(v SourceDiskEncryptionKeyResponse) string { return v.SourceDisk }).(pulumi.StringOutput) } type SourceDiskEncryptionKeyResponseArrayOutput struct{ *pulumi.OutputState } func (SourceDiskEncryptionKeyResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]SourceDiskEncryptionKeyResponse)(nil)).Elem() } func (o SourceDiskEncryptionKeyResponseArrayOutput) ToSourceDiskEncryptionKeyResponseArrayOutput() SourceDiskEncryptionKeyResponseArrayOutput { return o } func (o SourceDiskEncryptionKeyResponseArrayOutput) ToSourceDiskEncryptionKeyResponseArrayOutputWithContext(ctx context.Context) SourceDiskEncryptionKeyResponseArrayOutput { return o } func (o SourceDiskEncryptionKeyResponseArrayOutput) Index(i pulumi.IntInput) SourceDiskEncryptionKeyResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) SourceDiskEncryptionKeyResponse { return vs[0].([]SourceDiskEncryptionKeyResponse)[vs[1].(int)] }).(SourceDiskEncryptionKeyResponseOutput) } // A specification of the parameters to use when creating the instance template from a source instance. type SourceInstanceParams struct { // Attached disks configuration. If not provided, defaults are applied: For boot disk and any other R/W disks, new custom images will be created from each disk. For read-only disks, they will be attached in read-only mode. Local SSD disks will be created as blank volumes. DiskConfigs []DiskInstantiationConfig `pulumi:"diskConfigs"` } // SourceInstanceParamsInput is an input type that accepts SourceInstanceParamsArgs and SourceInstanceParamsOutput values. // You can construct a concrete instance of `SourceInstanceParamsInput` via: // // SourceInstanceParamsArgs{...} type SourceInstanceParamsInput interface { pulumi.Input ToSourceInstanceParamsOutput() SourceInstanceParamsOutput ToSourceInstanceParamsOutputWithContext(context.Context) SourceInstanceParamsOutput } // A specification of the parameters to use when creating the instance template from a source instance. type SourceInstanceParamsArgs struct { // Attached disks configuration. If not provided, defaults are applied: For boot disk and any other R/W disks, new custom images will be created from each disk. For read-only disks, they will be attached in read-only mode. Local SSD disks will be created as blank volumes. DiskConfigs DiskInstantiationConfigArrayInput `pulumi:"diskConfigs"` } func (SourceInstanceParamsArgs) ElementType() reflect.Type { return reflect.TypeOf((*SourceInstanceParams)(nil)).Elem() } func (i SourceInstanceParamsArgs) ToSourceInstanceParamsOutput() SourceInstanceParamsOutput { return i.ToSourceInstanceParamsOutputWithContext(context.Background()) } func (i SourceInstanceParamsArgs) ToSourceInstanceParamsOutputWithContext(ctx context.Context) SourceInstanceParamsOutput { return pulumi.ToOutputWithContext(ctx, i).(SourceInstanceParamsOutput) } func (i SourceInstanceParamsArgs) ToSourceInstanceParamsPtrOutput() SourceInstanceParamsPtrOutput { return i.ToSourceInstanceParamsPtrOutputWithContext(context.Background()) } func (i SourceInstanceParamsArgs) ToSourceInstanceParamsPtrOutputWithContext(ctx context.Context) SourceInstanceParamsPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(SourceInstanceParamsOutput).ToSourceInstanceParamsPtrOutputWithContext(ctx) } // SourceInstanceParamsPtrInput is an input type that accepts SourceInstanceParamsArgs, SourceInstanceParamsPtr and SourceInstanceParamsPtrOutput values. // You can construct a concrete instance of `SourceInstanceParamsPtrInput` via: // // SourceInstanceParamsArgs{...} // // or: // // nil type SourceInstanceParamsPtrInput interface { pulumi.Input ToSourceInstanceParamsPtrOutput() SourceInstanceParamsPtrOutput ToSourceInstanceParamsPtrOutputWithContext(context.Context) SourceInstanceParamsPtrOutput } type sourceInstanceParamsPtrType SourceInstanceParamsArgs func SourceInstanceParamsPtr(v *SourceInstanceParamsArgs) SourceInstanceParamsPtrInput { return (*sourceInstanceParamsPtrType)(v) } func (*sourceInstanceParamsPtrType) ElementType() reflect.Type { return reflect.TypeOf((**SourceInstanceParams)(nil)).Elem() } func (i *sourceInstanceParamsPtrType) ToSourceInstanceParamsPtrOutput() SourceInstanceParamsPtrOutput { return i.ToSourceInstanceParamsPtrOutputWithContext(context.Background()) } func (i *sourceInstanceParamsPtrType) ToSourceInstanceParamsPtrOutputWithContext(ctx context.Context) SourceInstanceParamsPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(SourceInstanceParamsPtrOutput) } // A specification of the parameters to use when creating the instance template from a source instance. type SourceInstanceParamsOutput struct{ *pulumi.OutputState } func (SourceInstanceParamsOutput) ElementType() reflect.Type { return reflect.TypeOf((*SourceInstanceParams)(nil)).Elem() } func (o SourceInstanceParamsOutput) ToSourceInstanceParamsOutput() SourceInstanceParamsOutput { return o } func (o SourceInstanceParamsOutput) ToSourceInstanceParamsOutputWithContext(ctx context.Context) SourceInstanceParamsOutput { return o } func (o SourceInstanceParamsOutput) ToSourceInstanceParamsPtrOutput() SourceInstanceParamsPtrOutput { return o.ToSourceInstanceParamsPtrOutputWithContext(context.Background()) } func (o SourceInstanceParamsOutput) ToSourceInstanceParamsPtrOutputWithContext(ctx context.Context) SourceInstanceParamsPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v SourceInstanceParams) *SourceInstanceParams { return &v }).(SourceInstanceParamsPtrOutput) } // Attached disks configuration. If not provided, defaults are applied: For boot disk and any other R/W disks, new custom images will be created from each disk. For read-only disks, they will be attached in read-only mode. Local SSD disks will be created as blank volumes. func (o SourceInstanceParamsOutput) DiskConfigs() DiskInstantiationConfigArrayOutput { return o.ApplyT(func(v SourceInstanceParams) []DiskInstantiationConfig { return v.DiskConfigs }).(DiskInstantiationConfigArrayOutput) } type SourceInstanceParamsPtrOutput struct{ *pulumi.OutputState } func (SourceInstanceParamsPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**SourceInstanceParams)(nil)).Elem() } func (o SourceInstanceParamsPtrOutput) ToSourceInstanceParamsPtrOutput() SourceInstanceParamsPtrOutput { return o } func (o SourceInstanceParamsPtrOutput) ToSourceInstanceParamsPtrOutputWithContext(ctx context.Context) SourceInstanceParamsPtrOutput { return o } func (o SourceInstanceParamsPtrOutput) Elem() SourceInstanceParamsOutput { return o.ApplyT(func(v *SourceInstanceParams) SourceInstanceParams { if v != nil { return *v } var ret SourceInstanceParams return ret }).(SourceInstanceParamsOutput) } // Attached disks configuration. If not provided, defaults are applied: For boot disk and any other R/W disks, new custom images will be created from each disk. For read-only disks, they will be attached in read-only mode. Local SSD disks will be created as blank volumes. func (o SourceInstanceParamsPtrOutput) DiskConfigs() DiskInstantiationConfigArrayOutput { return o.ApplyT(func(v *SourceInstanceParams) []DiskInstantiationConfig { if v == nil { return nil } return v.DiskConfigs }).(DiskInstantiationConfigArrayOutput) } // A specification of the parameters to use when creating the instance template from a source instance. type SourceInstanceParamsResponse struct { // Attached disks configuration. If not provided, defaults are applied: For boot disk and any other R/W disks, new custom images will be created from each disk. For read-only disks, they will be attached in read-only mode. Local SSD disks will be created as blank volumes. DiskConfigs []DiskInstantiationConfigResponse `pulumi:"diskConfigs"` } // A specification of the parameters to use when creating the instance template from a source instance. type SourceInstanceParamsResponseOutput struct{ *pulumi.OutputState } func (SourceInstanceParamsResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*SourceInstanceParamsResponse)(nil)).Elem() } func (o SourceInstanceParamsResponseOutput) ToSourceInstanceParamsResponseOutput() SourceInstanceParamsResponseOutput { return o } func (o SourceInstanceParamsResponseOutput) ToSourceInstanceParamsResponseOutputWithContext(ctx context.Context) SourceInstanceParamsResponseOutput { return o } // Attached disks configuration. If not provided, defaults are applied: For boot disk and any other R/W disks, new custom images will be created from each disk. For read-only disks, they will be attached in read-only mode. Local SSD disks will be created as blank volumes. func (o SourceInstanceParamsResponseOutput) DiskConfigs() DiskInstantiationConfigResponseArrayOutput { return o.ApplyT(func(v SourceInstanceParamsResponse) []DiskInstantiationConfigResponse { return v.DiskConfigs }).(DiskInstantiationConfigResponseArrayOutput) } // DEPRECATED: Please use compute#instanceProperties instead. New properties will not be added to this field. type SourceInstancePropertiesResponse struct { // Enables instances created based on this machine image to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding documentation for more information. CanIpForward bool `pulumi:"canIpForward"` // Whether the instance created from this machine image should be protected against deletion. DeletionProtection bool `pulumi:"deletionProtection"` // An optional text description for the instances that are created from this machine image. Description string `pulumi:"description"` // An array of disks that are associated with the instances that are created from this machine image. Disks []SavedAttachedDiskResponse `pulumi:"disks"` // A list of guest accelerator cards' type and count to use for instances created from this machine image. GuestAccelerators []AcceleratorConfigResponse `pulumi:"guestAccelerators"` // Labels to apply to instances that are created from this machine image. Labels map[string]string `pulumi:"labels"` // The machine type to use for instances that are created from this machine image. MachineType string `pulumi:"machineType"` // The metadata key/value pairs to assign to instances that are created from this machine image. These pairs can consist of custom metadata or predefined keys. See Project and instance metadata for more information. Metadata MetadataResponse `pulumi:"metadata"` // Minimum cpu/platform to be used by instances created from this machine image. The instance may be scheduled on the specified or newer cpu/platform. Applicable values are the friendly names of CPU platforms, such as minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy Bridge". For more information, read Specifying a Minimum CPU Platform. MinCpuPlatform string `pulumi:"minCpuPlatform"` // An array of network access configurations for this interface. NetworkInterfaces []NetworkInterfaceResponse `pulumi:"networkInterfaces"` // Specifies the scheduling options for the instances that are created from this machine image. Scheduling SchedulingResponse `pulumi:"scheduling"` // A list of service accounts with specified scopes. Access tokens for these service accounts are available to the instances that are created from this machine image. Use metadata queries to obtain the access tokens for these instances. ServiceAccounts []ServiceAccountResponse `pulumi:"serviceAccounts"` // A list of tags to apply to the instances that are created from this machine image. The tags identify valid sources or targets for network firewalls. The setTags method can modify this list of tags. Each tag within the list must comply with RFC1035. Tags TagsResponse `pulumi:"tags"` } // DEPRECATED: Please use compute#instanceProperties instead. New properties will not be added to this field. type SourceInstancePropertiesResponseOutput struct{ *pulumi.OutputState } func (SourceInstancePropertiesResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*SourceInstancePropertiesResponse)(nil)).Elem() } func (o SourceInstancePropertiesResponseOutput) ToSourceInstancePropertiesResponseOutput() SourceInstancePropertiesResponseOutput { return o } func (o SourceInstancePropertiesResponseOutput) ToSourceInstancePropertiesResponseOutputWithContext(ctx context.Context) SourceInstancePropertiesResponseOutput { return o } // Enables instances created based on this machine image to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding documentation for more information. func (o SourceInstancePropertiesResponseOutput) CanIpForward() pulumi.BoolOutput { return o.ApplyT(func(v SourceInstancePropertiesResponse) bool { return v.CanIpForward }).(pulumi.BoolOutput) } // Whether the instance created from this machine image should be protected against deletion. func (o SourceInstancePropertiesResponseOutput) DeletionProtection() pulumi.BoolOutput { return o.ApplyT(func(v SourceInstancePropertiesResponse) bool { return v.DeletionProtection }).(pulumi.BoolOutput) } // An optional text description for the instances that are created from this machine image. func (o SourceInstancePropertiesResponseOutput) Description() pulumi.StringOutput { return o.ApplyT(func(v SourceInstancePropertiesResponse) string { return v.Description }).(pulumi.StringOutput) } // An array of disks that are associated with the instances that are created from this machine image. func (o SourceInstancePropertiesResponseOutput) Disks() SavedAttachedDiskResponseArrayOutput { return o.ApplyT(func(v SourceInstancePropertiesResponse) []SavedAttachedDiskResponse { return v.Disks }).(SavedAttachedDiskResponseArrayOutput) } // A list of guest accelerator cards' type and count to use for instances created from this machine image. func (o SourceInstancePropertiesResponseOutput) GuestAccelerators() AcceleratorConfigResponseArrayOutput { return o.ApplyT(func(v SourceInstancePropertiesResponse) []AcceleratorConfigResponse { return v.GuestAccelerators }).(AcceleratorConfigResponseArrayOutput) } // Labels to apply to instances that are created from this machine image. func (o SourceInstancePropertiesResponseOutput) Labels() pulumi.StringMapOutput { return o.ApplyT(func(v SourceInstancePropertiesResponse) map[string]string { return v.Labels }).(pulumi.StringMapOutput) } // The machine type to use for instances that are created from this machine image. func (o SourceInstancePropertiesResponseOutput) MachineType() pulumi.StringOutput { return o.ApplyT(func(v SourceInstancePropertiesResponse) string { return v.MachineType }).(pulumi.StringOutput) } // The metadata key/value pairs to assign to instances that are created from this machine image. These pairs can consist of custom metadata or predefined keys. See Project and instance metadata for more information. func (o SourceInstancePropertiesResponseOutput) Metadata() MetadataResponseOutput { return o.ApplyT(func(v SourceInstancePropertiesResponse) MetadataResponse { return v.Metadata }).(MetadataResponseOutput) } // Minimum cpu/platform to be used by instances created from this machine image. The instance may be scheduled on the specified or newer cpu/platform. Applicable values are the friendly names of CPU platforms, such as minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy Bridge". For more information, read Specifying a Minimum CPU Platform. func (o SourceInstancePropertiesResponseOutput) MinCpuPlatform() pulumi.StringOutput { return o.ApplyT(func(v SourceInstancePropertiesResponse) string { return v.MinCpuPlatform }).(pulumi.StringOutput) } // An array of network access configurations for this interface. func (o SourceInstancePropertiesResponseOutput) NetworkInterfaces() NetworkInterfaceResponseArrayOutput { return o.ApplyT(func(v SourceInstancePropertiesResponse) []NetworkInterfaceResponse { return v.NetworkInterfaces }).(NetworkInterfaceResponseArrayOutput) } // Specifies the scheduling options for the instances that are created from this machine image. func (o SourceInstancePropertiesResponseOutput) Scheduling() SchedulingResponseOutput { return o.ApplyT(func(v SourceInstancePropertiesResponse) SchedulingResponse { return v.Scheduling }).(SchedulingResponseOutput) } // A list of service accounts with specified scopes. Access tokens for these service accounts are available to the instances that are created from this machine image. Use metadata queries to obtain the access tokens for these instances. func (o SourceInstancePropertiesResponseOutput) ServiceAccounts() ServiceAccountResponseArrayOutput { return o.ApplyT(func(v SourceInstancePropertiesResponse) []ServiceAccountResponse { return v.ServiceAccounts }).(ServiceAccountResponseArrayOutput) } // A list of tags to apply to the instances that are created from this machine image. The tags identify valid sources or targets for network firewalls. The setTags method can modify this list of tags. Each tag within the list must comply with RFC1035. func (o SourceInstancePropertiesResponseOutput) Tags() TagsResponseOutput { return o.ApplyT(func(v SourceInstancePropertiesResponse) TagsResponse { return v.Tags }).(TagsResponseOutput) } // Configuration and status of a managed SSL certificate. type SslCertificateManagedSslCertificate struct { // The domains for which a managed SSL certificate will be generated. Each Google-managed SSL certificate supports up to the [maximum number of domains per Google-managed SSL certificate](/load-balancing/docs/quotas#ssl_certificates). Domains []string `pulumi:"domains"` } // SslCertificateManagedSslCertificateInput is an input type that accepts SslCertificateManagedSslCertificateArgs and SslCertificateManagedSslCertificateOutput values. // You can construct a concrete instance of `SslCertificateManagedSslCertificateInput` via: // // SslCertificateManagedSslCertificateArgs{...} type SslCertificateManagedSslCertificateInput interface { pulumi.Input ToSslCertificateManagedSslCertificateOutput() SslCertificateManagedSslCertificateOutput ToSslCertificateManagedSslCertificateOutputWithContext(context.Context) SslCertificateManagedSslCertificateOutput } // Configuration and status of a managed SSL certificate. type SslCertificateManagedSslCertificateArgs struct { // The domains for which a managed SSL certificate will be generated. Each Google-managed SSL certificate supports up to the [maximum number of domains per Google-managed SSL certificate](/load-balancing/docs/quotas#ssl_certificates). Domains pulumi.StringArrayInput `pulumi:"domains"` } func (SslCertificateManagedSslCertificateArgs) ElementType() reflect.Type { return reflect.TypeOf((*SslCertificateManagedSslCertificate)(nil)).Elem() } func (i SslCertificateManagedSslCertificateArgs) ToSslCertificateManagedSslCertificateOutput() SslCertificateManagedSslCertificateOutput { return i.ToSslCertificateManagedSslCertificateOutputWithContext(context.Background()) } func (i SslCertificateManagedSslCertificateArgs) ToSslCertificateManagedSslCertificateOutputWithContext(ctx context.Context) SslCertificateManagedSslCertificateOutput { return pulumi.ToOutputWithContext(ctx, i).(SslCertificateManagedSslCertificateOutput) } func (i SslCertificateManagedSslCertificateArgs) ToSslCertificateManagedSslCertificatePtrOutput() SslCertificateManagedSslCertificatePtrOutput { return i.ToSslCertificateManagedSslCertificatePtrOutputWithContext(context.Background()) } func (i SslCertificateManagedSslCertificateArgs) ToSslCertificateManagedSslCertificatePtrOutputWithContext(ctx context.Context) SslCertificateManagedSslCertificatePtrOutput { return pulumi.ToOutputWithContext(ctx, i).(SslCertificateManagedSslCertificateOutput).ToSslCertificateManagedSslCertificatePtrOutputWithContext(ctx) } // SslCertificateManagedSslCertificatePtrInput is an input type that accepts SslCertificateManagedSslCertificateArgs, SslCertificateManagedSslCertificatePtr and SslCertificateManagedSslCertificatePtrOutput values. // You can construct a concrete instance of `SslCertificateManagedSslCertificatePtrInput` via: // // SslCertificateManagedSslCertificateArgs{...} // // or: // // nil type SslCertificateManagedSslCertificatePtrInput interface { pulumi.Input ToSslCertificateManagedSslCertificatePtrOutput() SslCertificateManagedSslCertificatePtrOutput ToSslCertificateManagedSslCertificatePtrOutputWithContext(context.Context) SslCertificateManagedSslCertificatePtrOutput } type sslCertificateManagedSslCertificatePtrType SslCertificateManagedSslCertificateArgs func SslCertificateManagedSslCertificatePtr(v *SslCertificateManagedSslCertificateArgs) SslCertificateManagedSslCertificatePtrInput { return (*sslCertificateManagedSslCertificatePtrType)(v) } func (*sslCertificateManagedSslCertificatePtrType) ElementType() reflect.Type { return reflect.TypeOf((**SslCertificateManagedSslCertificate)(nil)).Elem() } func (i *sslCertificateManagedSslCertificatePtrType) ToSslCertificateManagedSslCertificatePtrOutput() SslCertificateManagedSslCertificatePtrOutput { return i.ToSslCertificateManagedSslCertificatePtrOutputWithContext(context.Background()) } func (i *sslCertificateManagedSslCertificatePtrType) ToSslCertificateManagedSslCertificatePtrOutputWithContext(ctx context.Context) SslCertificateManagedSslCertificatePtrOutput { return pulumi.ToOutputWithContext(ctx, i).(SslCertificateManagedSslCertificatePtrOutput) } // Configuration and status of a managed SSL certificate. type SslCertificateManagedSslCertificateOutput struct{ *pulumi.OutputState } func (SslCertificateManagedSslCertificateOutput) ElementType() reflect.Type { return reflect.TypeOf((*SslCertificateManagedSslCertificate)(nil)).Elem() } func (o SslCertificateManagedSslCertificateOutput) ToSslCertificateManagedSslCertificateOutput() SslCertificateManagedSslCertificateOutput { return o } func (o SslCertificateManagedSslCertificateOutput) ToSslCertificateManagedSslCertificateOutputWithContext(ctx context.Context) SslCertificateManagedSslCertificateOutput { return o } func (o SslCertificateManagedSslCertificateOutput) ToSslCertificateManagedSslCertificatePtrOutput() SslCertificateManagedSslCertificatePtrOutput { return o.ToSslCertificateManagedSslCertificatePtrOutputWithContext(context.Background()) } func (o SslCertificateManagedSslCertificateOutput) ToSslCertificateManagedSslCertificatePtrOutputWithContext(ctx context.Context) SslCertificateManagedSslCertificatePtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v SslCertificateManagedSslCertificate) *SslCertificateManagedSslCertificate { return &v }).(SslCertificateManagedSslCertificatePtrOutput) } // The domains for which a managed SSL certificate will be generated. Each Google-managed SSL certificate supports up to the [maximum number of domains per Google-managed SSL certificate](/load-balancing/docs/quotas#ssl_certificates). func (o SslCertificateManagedSslCertificateOutput) Domains() pulumi.StringArrayOutput { return o.ApplyT(func(v SslCertificateManagedSslCertificate) []string { return v.Domains }).(pulumi.StringArrayOutput) } type SslCertificateManagedSslCertificatePtrOutput struct{ *pulumi.OutputState } func (SslCertificateManagedSslCertificatePtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**SslCertificateManagedSslCertificate)(nil)).Elem() } func (o SslCertificateManagedSslCertificatePtrOutput) ToSslCertificateManagedSslCertificatePtrOutput() SslCertificateManagedSslCertificatePtrOutput { return o } func (o SslCertificateManagedSslCertificatePtrOutput) ToSslCertificateManagedSslCertificatePtrOutputWithContext(ctx context.Context) SslCertificateManagedSslCertificatePtrOutput { return o } func (o SslCertificateManagedSslCertificatePtrOutput) Elem() SslCertificateManagedSslCertificateOutput { return o.ApplyT(func(v *SslCertificateManagedSslCertificate) SslCertificateManagedSslCertificate { if v != nil { return *v } var ret SslCertificateManagedSslCertificate return ret }).(SslCertificateManagedSslCertificateOutput) } // The domains for which a managed SSL certificate will be generated. Each Google-managed SSL certificate supports up to the [maximum number of domains per Google-managed SSL certificate](/load-balancing/docs/quotas#ssl_certificates). func (o SslCertificateManagedSslCertificatePtrOutput) Domains() pulumi.StringArrayOutput { return o.ApplyT(func(v *SslCertificateManagedSslCertificate) []string { if v == nil { return nil } return v.Domains }).(pulumi.StringArrayOutput) } // Configuration and status of a managed SSL certificate. type SslCertificateManagedSslCertificateResponse struct { // [Output only] Detailed statuses of the domains specified for managed certificate resource. DomainStatus map[string]string `pulumi:"domainStatus"` // The domains for which a managed SSL certificate will be generated. Each Google-managed SSL certificate supports up to the [maximum number of domains per Google-managed SSL certificate](/load-balancing/docs/quotas#ssl_certificates). Domains []string `pulumi:"domains"` // [Output only] Status of the managed certificate resource. Status string `pulumi:"status"` } // Configuration and status of a managed SSL certificate. type SslCertificateManagedSslCertificateResponseOutput struct{ *pulumi.OutputState } func (SslCertificateManagedSslCertificateResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*SslCertificateManagedSslCertificateResponse)(nil)).Elem() } func (o SslCertificateManagedSslCertificateResponseOutput) ToSslCertificateManagedSslCertificateResponseOutput() SslCertificateManagedSslCertificateResponseOutput { return o } func (o SslCertificateManagedSslCertificateResponseOutput) ToSslCertificateManagedSslCertificateResponseOutputWithContext(ctx context.Context) SslCertificateManagedSslCertificateResponseOutput { return o } // [Output only] Detailed statuses of the domains specified for managed certificate resource. func (o SslCertificateManagedSslCertificateResponseOutput) DomainStatus() pulumi.StringMapOutput { return o.ApplyT(func(v SslCertificateManagedSslCertificateResponse) map[string]string { return v.DomainStatus }).(pulumi.StringMapOutput) } // The domains for which a managed SSL certificate will be generated. Each Google-managed SSL certificate supports up to the [maximum number of domains per Google-managed SSL certificate](/load-balancing/docs/quotas#ssl_certificates). func (o SslCertificateManagedSslCertificateResponseOutput) Domains() pulumi.StringArrayOutput { return o.ApplyT(func(v SslCertificateManagedSslCertificateResponse) []string { return v.Domains }).(pulumi.StringArrayOutput) } // [Output only] Status of the managed certificate resource. func (o SslCertificateManagedSslCertificateResponseOutput) Status() pulumi.StringOutput { return o.ApplyT(func(v SslCertificateManagedSslCertificateResponse) string { return v.Status }).(pulumi.StringOutput) } // Configuration and status of a self-managed SSL certificate. type SslCertificateSelfManagedSslCertificate struct { // A local certificate file. The certificate must be in PEM format. The certificate chain must be no greater than 5 certs long. The chain must include at least one intermediate cert. Certificate *string `pulumi:"certificate"` // A write-only private key in PEM format. Only insert requests will include this field. PrivateKey *string `pulumi:"privateKey"` } // SslCertificateSelfManagedSslCertificateInput is an input type that accepts SslCertificateSelfManagedSslCertificateArgs and SslCertificateSelfManagedSslCertificateOutput values. // You can construct a concrete instance of `SslCertificateSelfManagedSslCertificateInput` via: // // SslCertificateSelfManagedSslCertificateArgs{...} type SslCertificateSelfManagedSslCertificateInput interface { pulumi.Input ToSslCertificateSelfManagedSslCertificateOutput() SslCertificateSelfManagedSslCertificateOutput ToSslCertificateSelfManagedSslCertificateOutputWithContext(context.Context) SslCertificateSelfManagedSslCertificateOutput } // Configuration and status of a self-managed SSL certificate. type SslCertificateSelfManagedSslCertificateArgs struct { // A local certificate file. The certificate must be in PEM format. The certificate chain must be no greater than 5 certs long. The chain must include at least one intermediate cert. Certificate pulumi.StringPtrInput `pulumi:"certificate"` // A write-only private key in PEM format. Only insert requests will include this field. PrivateKey pulumi.StringPtrInput `pulumi:"privateKey"` } func (SslCertificateSelfManagedSslCertificateArgs) ElementType() reflect.Type { return reflect.TypeOf((*SslCertificateSelfManagedSslCertificate)(nil)).Elem() } func (i SslCertificateSelfManagedSslCertificateArgs) ToSslCertificateSelfManagedSslCertificateOutput() SslCertificateSelfManagedSslCertificateOutput { return i.ToSslCertificateSelfManagedSslCertificateOutputWithContext(context.Background()) } func (i SslCertificateSelfManagedSslCertificateArgs) ToSslCertificateSelfManagedSslCertificateOutputWithContext(ctx context.Context) SslCertificateSelfManagedSslCertificateOutput { return pulumi.ToOutputWithContext(ctx, i).(SslCertificateSelfManagedSslCertificateOutput) } func (i SslCertificateSelfManagedSslCertificateArgs) ToSslCertificateSelfManagedSslCertificatePtrOutput() SslCertificateSelfManagedSslCertificatePtrOutput { return i.ToSslCertificateSelfManagedSslCertificatePtrOutputWithContext(context.Background()) } func (i SslCertificateSelfManagedSslCertificateArgs) ToSslCertificateSelfManagedSslCertificatePtrOutputWithContext(ctx context.Context) SslCertificateSelfManagedSslCertificatePtrOutput { return pulumi.ToOutputWithContext(ctx, i).(SslCertificateSelfManagedSslCertificateOutput).ToSslCertificateSelfManagedSslCertificatePtrOutputWithContext(ctx) } // SslCertificateSelfManagedSslCertificatePtrInput is an input type that accepts SslCertificateSelfManagedSslCertificateArgs, SslCertificateSelfManagedSslCertificatePtr and SslCertificateSelfManagedSslCertificatePtrOutput values. // You can construct a concrete instance of `SslCertificateSelfManagedSslCertificatePtrInput` via: // // SslCertificateSelfManagedSslCertificateArgs{...} // // or: // // nil type SslCertificateSelfManagedSslCertificatePtrInput interface { pulumi.Input ToSslCertificateSelfManagedSslCertificatePtrOutput() SslCertificateSelfManagedSslCertificatePtrOutput ToSslCertificateSelfManagedSslCertificatePtrOutputWithContext(context.Context) SslCertificateSelfManagedSslCertificatePtrOutput } type sslCertificateSelfManagedSslCertificatePtrType SslCertificateSelfManagedSslCertificateArgs func SslCertificateSelfManagedSslCertificatePtr(v *SslCertificateSelfManagedSslCertificateArgs) SslCertificateSelfManagedSslCertificatePtrInput { return (*sslCertificateSelfManagedSslCertificatePtrType)(v) } func (*sslCertificateSelfManagedSslCertificatePtrType) ElementType() reflect.Type { return reflect.TypeOf((**SslCertificateSelfManagedSslCertificate)(nil)).Elem() } func (i *sslCertificateSelfManagedSslCertificatePtrType) ToSslCertificateSelfManagedSslCertificatePtrOutput() SslCertificateSelfManagedSslCertificatePtrOutput { return i.ToSslCertificateSelfManagedSslCertificatePtrOutputWithContext(context.Background()) } func (i *sslCertificateSelfManagedSslCertificatePtrType) ToSslCertificateSelfManagedSslCertificatePtrOutputWithContext(ctx context.Context) SslCertificateSelfManagedSslCertificatePtrOutput { return pulumi.ToOutputWithContext(ctx, i).(SslCertificateSelfManagedSslCertificatePtrOutput) } // Configuration and status of a self-managed SSL certificate. type SslCertificateSelfManagedSslCertificateOutput struct{ *pulumi.OutputState } func (SslCertificateSelfManagedSslCertificateOutput) ElementType() reflect.Type { return reflect.TypeOf((*SslCertificateSelfManagedSslCertificate)(nil)).Elem() } func (o SslCertificateSelfManagedSslCertificateOutput) ToSslCertificateSelfManagedSslCertificateOutput() SslCertificateSelfManagedSslCertificateOutput { return o } func (o SslCertificateSelfManagedSslCertificateOutput) ToSslCertificateSelfManagedSslCertificateOutputWithContext(ctx context.Context) SslCertificateSelfManagedSslCertificateOutput { return o } func (o SslCertificateSelfManagedSslCertificateOutput) ToSslCertificateSelfManagedSslCertificatePtrOutput() SslCertificateSelfManagedSslCertificatePtrOutput { return o.ToSslCertificateSelfManagedSslCertificatePtrOutputWithContext(context.Background()) } func (o SslCertificateSelfManagedSslCertificateOutput) ToSslCertificateSelfManagedSslCertificatePtrOutputWithContext(ctx context.Context) SslCertificateSelfManagedSslCertificatePtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v SslCertificateSelfManagedSslCertificate) *SslCertificateSelfManagedSslCertificate { return &v }).(SslCertificateSelfManagedSslCertificatePtrOutput) } // A local certificate file. The certificate must be in PEM format. The certificate chain must be no greater than 5 certs long. The chain must include at least one intermediate cert. func (o SslCertificateSelfManagedSslCertificateOutput) Certificate() pulumi.StringPtrOutput { return o.ApplyT(func(v SslCertificateSelfManagedSslCertificate) *string { return v.Certificate }).(pulumi.StringPtrOutput) } // A write-only private key in PEM format. Only insert requests will include this field. func (o SslCertificateSelfManagedSslCertificateOutput) PrivateKey() pulumi.StringPtrOutput { return o.ApplyT(func(v SslCertificateSelfManagedSslCertificate) *string { return v.PrivateKey }).(pulumi.StringPtrOutput) } type SslCertificateSelfManagedSslCertificatePtrOutput struct{ *pulumi.OutputState } func (SslCertificateSelfManagedSslCertificatePtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**SslCertificateSelfManagedSslCertificate)(nil)).Elem() } func (o SslCertificateSelfManagedSslCertificatePtrOutput) ToSslCertificateSelfManagedSslCertificatePtrOutput() SslCertificateSelfManagedSslCertificatePtrOutput { return o } func (o SslCertificateSelfManagedSslCertificatePtrOutput) ToSslCertificateSelfManagedSslCertificatePtrOutputWithContext(ctx context.Context) SslCertificateSelfManagedSslCertificatePtrOutput { return o } func (o SslCertificateSelfManagedSslCertificatePtrOutput) Elem() SslCertificateSelfManagedSslCertificateOutput { return o.ApplyT(func(v *SslCertificateSelfManagedSslCertificate) SslCertificateSelfManagedSslCertificate { if v != nil { return *v } var ret SslCertificateSelfManagedSslCertificate return ret }).(SslCertificateSelfManagedSslCertificateOutput) } // A local certificate file. The certificate must be in PEM format. The certificate chain must be no greater than 5 certs long. The chain must include at least one intermediate cert. func (o SslCertificateSelfManagedSslCertificatePtrOutput) Certificate() pulumi.StringPtrOutput { return o.ApplyT(func(v *SslCertificateSelfManagedSslCertificate) *string { if v == nil { return nil } return v.Certificate }).(pulumi.StringPtrOutput) } // A write-only private key in PEM format. Only insert requests will include this field. func (o SslCertificateSelfManagedSslCertificatePtrOutput) PrivateKey() pulumi.StringPtrOutput { return o.ApplyT(func(v *SslCertificateSelfManagedSslCertificate) *string { if v == nil { return nil } return v.PrivateKey }).(pulumi.StringPtrOutput) } // Configuration and status of a self-managed SSL certificate. type SslCertificateSelfManagedSslCertificateResponse struct { // A local certificate file. The certificate must be in PEM format. The certificate chain must be no greater than 5 certs long. The chain must include at least one intermediate cert. Certificate string `pulumi:"certificate"` // A write-only private key in PEM format. Only insert requests will include this field. PrivateKey string `pulumi:"privateKey"` } // Configuration and status of a self-managed SSL certificate. type SslCertificateSelfManagedSslCertificateResponseOutput struct{ *pulumi.OutputState } func (SslCertificateSelfManagedSslCertificateResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*SslCertificateSelfManagedSslCertificateResponse)(nil)).Elem() } func (o SslCertificateSelfManagedSslCertificateResponseOutput) ToSslCertificateSelfManagedSslCertificateResponseOutput() SslCertificateSelfManagedSslCertificateResponseOutput { return o } func (o SslCertificateSelfManagedSslCertificateResponseOutput) ToSslCertificateSelfManagedSslCertificateResponseOutputWithContext(ctx context.Context) SslCertificateSelfManagedSslCertificateResponseOutput { return o } // A local certificate file. The certificate must be in PEM format. The certificate chain must be no greater than 5 certs long. The chain must include at least one intermediate cert. func (o SslCertificateSelfManagedSslCertificateResponseOutput) Certificate() pulumi.StringOutput { return o.ApplyT(func(v SslCertificateSelfManagedSslCertificateResponse) string { return v.Certificate }).(pulumi.StringOutput) } // A write-only private key in PEM format. Only insert requests will include this field. func (o SslCertificateSelfManagedSslCertificateResponseOutput) PrivateKey() pulumi.StringOutput { return o.ApplyT(func(v SslCertificateSelfManagedSslCertificateResponse) string { return v.PrivateKey }).(pulumi.StringOutput) } type SslPolicyWarningsItemDataItemResponse struct { // A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding). Key string `pulumi:"key"` // A warning data value corresponding to the key. Value string `pulumi:"value"` } type SslPolicyWarningsItemDataItemResponseOutput struct{ *pulumi.OutputState } func (SslPolicyWarningsItemDataItemResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*SslPolicyWarningsItemDataItemResponse)(nil)).Elem() } func (o SslPolicyWarningsItemDataItemResponseOutput) ToSslPolicyWarningsItemDataItemResponseOutput() SslPolicyWarningsItemDataItemResponseOutput { return o } func (o SslPolicyWarningsItemDataItemResponseOutput) ToSslPolicyWarningsItemDataItemResponseOutputWithContext(ctx context.Context) SslPolicyWarningsItemDataItemResponseOutput { return o } // A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding). func (o SslPolicyWarningsItemDataItemResponseOutput) Key() pulumi.StringOutput { return o.ApplyT(func(v SslPolicyWarningsItemDataItemResponse) string { return v.Key }).(pulumi.StringOutput) } // A warning data value corresponding to the key. func (o SslPolicyWarningsItemDataItemResponseOutput) Value() pulumi.StringOutput { return o.ApplyT(func(v SslPolicyWarningsItemDataItemResponse) string { return v.Value }).(pulumi.StringOutput) } type SslPolicyWarningsItemDataItemResponseArrayOutput struct{ *pulumi.OutputState } func (SslPolicyWarningsItemDataItemResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]SslPolicyWarningsItemDataItemResponse)(nil)).Elem() } func (o SslPolicyWarningsItemDataItemResponseArrayOutput) ToSslPolicyWarningsItemDataItemResponseArrayOutput() SslPolicyWarningsItemDataItemResponseArrayOutput { return o } func (o SslPolicyWarningsItemDataItemResponseArrayOutput) ToSslPolicyWarningsItemDataItemResponseArrayOutputWithContext(ctx context.Context) SslPolicyWarningsItemDataItemResponseArrayOutput { return o } func (o SslPolicyWarningsItemDataItemResponseArrayOutput) Index(i pulumi.IntInput) SslPolicyWarningsItemDataItemResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) SslPolicyWarningsItemDataItemResponse { return vs[0].([]SslPolicyWarningsItemDataItemResponse)[vs[1].(int)] }).(SslPolicyWarningsItemDataItemResponseOutput) } type SslPolicyWarningsItemResponse struct { // A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response. Code string `pulumi:"code"` // Metadata about this warning in key: value format. For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } Data []SslPolicyWarningsItemDataItemResponse `pulumi:"data"` // A human-readable description of the warning code. Message string `pulumi:"message"` } type SslPolicyWarningsItemResponseOutput struct{ *pulumi.OutputState } func (SslPolicyWarningsItemResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*SslPolicyWarningsItemResponse)(nil)).Elem() } func (o SslPolicyWarningsItemResponseOutput) ToSslPolicyWarningsItemResponseOutput() SslPolicyWarningsItemResponseOutput { return o } func (o SslPolicyWarningsItemResponseOutput) ToSslPolicyWarningsItemResponseOutputWithContext(ctx context.Context) SslPolicyWarningsItemResponseOutput { return o } // A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response. func (o SslPolicyWarningsItemResponseOutput) Code() pulumi.StringOutput { return o.ApplyT(func(v SslPolicyWarningsItemResponse) string { return v.Code }).(pulumi.StringOutput) } // Metadata about this warning in key: value format. For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" } func (o SslPolicyWarningsItemResponseOutput) Data() SslPolicyWarningsItemDataItemResponseArrayOutput { return o.ApplyT(func(v SslPolicyWarningsItemResponse) []SslPolicyWarningsItemDataItemResponse { return v.Data }).(SslPolicyWarningsItemDataItemResponseArrayOutput) } // A human-readable description of the warning code. func (o SslPolicyWarningsItemResponseOutput) Message() pulumi.StringOutput { return o.ApplyT(func(v SslPolicyWarningsItemResponse) string { return v.Message }).(pulumi.StringOutput) } type SslPolicyWarningsItemResponseArrayOutput struct{ *pulumi.OutputState } func (SslPolicyWarningsItemResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]SslPolicyWarningsItemResponse)(nil)).Elem() } func (o SslPolicyWarningsItemResponseArrayOutput) ToSslPolicyWarningsItemResponseArrayOutput() SslPolicyWarningsItemResponseArrayOutput { return o } func (o SslPolicyWarningsItemResponseArrayOutput) ToSslPolicyWarningsItemResponseArrayOutputWithContext(ctx context.Context) SslPolicyWarningsItemResponseArrayOutput { return o } func (o SslPolicyWarningsItemResponseArrayOutput) Index(i pulumi.IntInput) SslPolicyWarningsItemResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) SslPolicyWarningsItemResponse { return vs[0].([]SslPolicyWarningsItemResponse)[vs[1].(int)] }).(SslPolicyWarningsItemResponseOutput) } type StatefulPolicy struct { PreservedState *StatefulPolicyPreservedState `pulumi:"preservedState"` } // StatefulPolicyInput is an input type that accepts StatefulPolicyArgs and StatefulPolicyOutput values. // You can construct a concrete instance of `StatefulPolicyInput` via: // // StatefulPolicyArgs{...} type StatefulPolicyInput interface { pulumi.Input ToStatefulPolicyOutput() StatefulPolicyOutput ToStatefulPolicyOutputWithContext(context.Context) StatefulPolicyOutput } type StatefulPolicyArgs struct { PreservedState StatefulPolicyPreservedStatePtrInput `pulumi:"preservedState"` } func (StatefulPolicyArgs) ElementType() reflect.Type { return reflect.TypeOf((*StatefulPolicy)(nil)).Elem() } func (i StatefulPolicyArgs) ToStatefulPolicyOutput() StatefulPolicyOutput { return i.ToStatefulPolicyOutputWithContext(context.Background()) } func (i StatefulPolicyArgs) ToStatefulPolicyOutputWithContext(ctx context.Context) StatefulPolicyOutput { return pulumi.ToOutputWithContext(ctx, i).(StatefulPolicyOutput) } func (i StatefulPolicyArgs) ToStatefulPolicyPtrOutput() StatefulPolicyPtrOutput { return i.ToStatefulPolicyPtrOutputWithContext(context.Background()) } func (i StatefulPolicyArgs) ToStatefulPolicyPtrOutputWithContext(ctx context.Context) StatefulPolicyPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(StatefulPolicyOutput).ToStatefulPolicyPtrOutputWithContext(ctx) } // StatefulPolicyPtrInput is an input type that accepts StatefulPolicyArgs, StatefulPolicyPtr and StatefulPolicyPtrOutput values. // You can construct a concrete instance of `StatefulPolicyPtrInput` via: // // StatefulPolicyArgs{...} // // or: // // nil type StatefulPolicyPtrInput interface { pulumi.Input ToStatefulPolicyPtrOutput() StatefulPolicyPtrOutput ToStatefulPolicyPtrOutputWithContext(context.Context) StatefulPolicyPtrOutput } type statefulPolicyPtrType StatefulPolicyArgs func StatefulPolicyPtr(v *StatefulPolicyArgs) StatefulPolicyPtrInput { return (*statefulPolicyPtrType)(v) } func (*statefulPolicyPtrType) ElementType() reflect.Type { return reflect.TypeOf((**StatefulPolicy)(nil)).Elem() } func (i *statefulPolicyPtrType) ToStatefulPolicyPtrOutput() StatefulPolicyPtrOutput { return i.ToStatefulPolicyPtrOutputWithContext(context.Background()) } func (i *statefulPolicyPtrType) ToStatefulPolicyPtrOutputWithContext(ctx context.Context) StatefulPolicyPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(StatefulPolicyPtrOutput) } type StatefulPolicyOutput struct{ *pulumi.OutputState } func (StatefulPolicyOutput) ElementType() reflect.Type { return reflect.TypeOf((*StatefulPolicy)(nil)).Elem() } func (o StatefulPolicyOutput) ToStatefulPolicyOutput() StatefulPolicyOutput { return o } func (o StatefulPolicyOutput) ToStatefulPolicyOutputWithContext(ctx context.Context) StatefulPolicyOutput { return o } func (o StatefulPolicyOutput) ToStatefulPolicyPtrOutput() StatefulPolicyPtrOutput { return o.ToStatefulPolicyPtrOutputWithContext(context.Background()) } func (o StatefulPolicyOutput) ToStatefulPolicyPtrOutputWithContext(ctx context.Context) StatefulPolicyPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v StatefulPolicy) *StatefulPolicy { return &v }).(StatefulPolicyPtrOutput) } func (o StatefulPolicyOutput) PreservedState() StatefulPolicyPreservedStatePtrOutput { return o.ApplyT(func(v StatefulPolicy) *StatefulPolicyPreservedState { return v.PreservedState }).(StatefulPolicyPreservedStatePtrOutput) } type StatefulPolicyPtrOutput struct{ *pulumi.OutputState } func (StatefulPolicyPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**StatefulPolicy)(nil)).Elem() } func (o StatefulPolicyPtrOutput) ToStatefulPolicyPtrOutput() StatefulPolicyPtrOutput { return o } func (o StatefulPolicyPtrOutput) ToStatefulPolicyPtrOutputWithContext(ctx context.Context) StatefulPolicyPtrOutput { return o } func (o StatefulPolicyPtrOutput) Elem() StatefulPolicyOutput { return o.ApplyT(func(v *StatefulPolicy) StatefulPolicy { if v != nil { return *v } var ret StatefulPolicy return ret }).(StatefulPolicyOutput) } func (o StatefulPolicyPtrOutput) PreservedState() StatefulPolicyPreservedStatePtrOutput { return o.ApplyT(func(v *StatefulPolicy) *StatefulPolicyPreservedState { if v == nil { return nil } return v.PreservedState }).(StatefulPolicyPreservedStatePtrOutput) } // Configuration of preserved resources. type StatefulPolicyPreservedState struct { // Disks created on the instances that will be preserved on instance delete, update, etc. This map is keyed with the device names of the disks. Disks map[string]string `pulumi:"disks"` } // StatefulPolicyPreservedStateInput is an input type that accepts StatefulPolicyPreservedStateArgs and StatefulPolicyPreservedStateOutput values. // You can construct a concrete instance of `StatefulPolicyPreservedStateInput` via: // // StatefulPolicyPreservedStateArgs{...} type StatefulPolicyPreservedStateInput interface { pulumi.Input ToStatefulPolicyPreservedStateOutput() StatefulPolicyPreservedStateOutput ToStatefulPolicyPreservedStateOutputWithContext(context.Context) StatefulPolicyPreservedStateOutput } // Configuration of preserved resources. type StatefulPolicyPreservedStateArgs struct { // Disks created on the instances that will be preserved on instance delete, update, etc. This map is keyed with the device names of the disks. Disks pulumi.StringMapInput `pulumi:"disks"` } func (StatefulPolicyPreservedStateArgs) ElementType() reflect.Type { return reflect.TypeOf((*StatefulPolicyPreservedState)(nil)).Elem() } func (i StatefulPolicyPreservedStateArgs) ToStatefulPolicyPreservedStateOutput() StatefulPolicyPreservedStateOutput { return i.ToStatefulPolicyPreservedStateOutputWithContext(context.Background()) } func (i StatefulPolicyPreservedStateArgs) ToStatefulPolicyPreservedStateOutputWithContext(ctx context.Context) StatefulPolicyPreservedStateOutput { return pulumi.ToOutputWithContext(ctx, i).(StatefulPolicyPreservedStateOutput) } func (i StatefulPolicyPreservedStateArgs) ToStatefulPolicyPreservedStatePtrOutput() StatefulPolicyPreservedStatePtrOutput { return i.ToStatefulPolicyPreservedStatePtrOutputWithContext(context.Background()) } func (i StatefulPolicyPreservedStateArgs) ToStatefulPolicyPreservedStatePtrOutputWithContext(ctx context.Context) StatefulPolicyPreservedStatePtrOutput { return pulumi.ToOutputWithContext(ctx, i).(StatefulPolicyPreservedStateOutput).ToStatefulPolicyPreservedStatePtrOutputWithContext(ctx) } // StatefulPolicyPreservedStatePtrInput is an input type that accepts StatefulPolicyPreservedStateArgs, StatefulPolicyPreservedStatePtr and StatefulPolicyPreservedStatePtrOutput values. // You can construct a concrete instance of `StatefulPolicyPreservedStatePtrInput` via: // // StatefulPolicyPreservedStateArgs{...} // // or: // // nil type StatefulPolicyPreservedStatePtrInput interface { pulumi.Input ToStatefulPolicyPreservedStatePtrOutput() StatefulPolicyPreservedStatePtrOutput ToStatefulPolicyPreservedStatePtrOutputWithContext(context.Context) StatefulPolicyPreservedStatePtrOutput } type statefulPolicyPreservedStatePtrType StatefulPolicyPreservedStateArgs func StatefulPolicyPreservedStatePtr(v *StatefulPolicyPreservedStateArgs) StatefulPolicyPreservedStatePtrInput { return (*statefulPolicyPreservedStatePtrType)(v) } func (*statefulPolicyPreservedStatePtrType) ElementType() reflect.Type { return reflect.TypeOf((**StatefulPolicyPreservedState)(nil)).Elem() } func (i *statefulPolicyPreservedStatePtrType) ToStatefulPolicyPreservedStatePtrOutput() StatefulPolicyPreservedStatePtrOutput { return i.ToStatefulPolicyPreservedStatePtrOutputWithContext(context.Background()) } func (i *statefulPolicyPreservedStatePtrType) ToStatefulPolicyPreservedStatePtrOutputWithContext(ctx context.Context) StatefulPolicyPreservedStatePtrOutput { return pulumi.ToOutputWithContext(ctx, i).(StatefulPolicyPreservedStatePtrOutput) } // Configuration of preserved resources. type StatefulPolicyPreservedStateOutput struct{ *pulumi.OutputState } func (StatefulPolicyPreservedStateOutput) ElementType() reflect.Type { return reflect.TypeOf((*StatefulPolicyPreservedState)(nil)).Elem() } func (o StatefulPolicyPreservedStateOutput) ToStatefulPolicyPreservedStateOutput() StatefulPolicyPreservedStateOutput { return o } func (o StatefulPolicyPreservedStateOutput) ToStatefulPolicyPreservedStateOutputWithContext(ctx context.Context) StatefulPolicyPreservedStateOutput { return o } func (o StatefulPolicyPreservedStateOutput) ToStatefulPolicyPreservedStatePtrOutput() StatefulPolicyPreservedStatePtrOutput { return o.ToStatefulPolicyPreservedStatePtrOutputWithContext(context.Background()) } func (o StatefulPolicyPreservedStateOutput) ToStatefulPolicyPreservedStatePtrOutputWithContext(ctx context.Context) StatefulPolicyPreservedStatePtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v StatefulPolicyPreservedState) *StatefulPolicyPreservedState { return &v }).(StatefulPolicyPreservedStatePtrOutput) } // Disks created on the instances that will be preserved on instance delete, update, etc. This map is keyed with the device names of the disks. func (o StatefulPolicyPreservedStateOutput) Disks() pulumi.StringMapOutput { return o.ApplyT(func(v StatefulPolicyPreservedState) map[string]string { return v.Disks }).(pulumi.StringMapOutput) } type StatefulPolicyPreservedStatePtrOutput struct{ *pulumi.OutputState } func (StatefulPolicyPreservedStatePtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**StatefulPolicyPreservedState)(nil)).Elem() } func (o StatefulPolicyPreservedStatePtrOutput) ToStatefulPolicyPreservedStatePtrOutput() StatefulPolicyPreservedStatePtrOutput { return o } func (o StatefulPolicyPreservedStatePtrOutput) ToStatefulPolicyPreservedStatePtrOutputWithContext(ctx context.Context) StatefulPolicyPreservedStatePtrOutput { return o } func (o StatefulPolicyPreservedStatePtrOutput) Elem() StatefulPolicyPreservedStateOutput { return o.ApplyT(func(v *StatefulPolicyPreservedState) StatefulPolicyPreservedState { if v != nil { return *v } var ret StatefulPolicyPreservedState return ret }).(StatefulPolicyPreservedStateOutput) } // Disks created on the instances that will be preserved on instance delete, update, etc. This map is keyed with the device names of the disks. func (o StatefulPolicyPreservedStatePtrOutput) Disks() pulumi.StringMapOutput { return o.ApplyT(func(v *StatefulPolicyPreservedState) map[string]string { if v == nil { return nil } return v.Disks }).(pulumi.StringMapOutput) } // Configuration of preserved resources. type StatefulPolicyPreservedStateResponse struct { // Disks created on the instances that will be preserved on instance delete, update, etc. This map is keyed with the device names of the disks. Disks map[string]string `pulumi:"disks"` } // Configuration of preserved resources. type StatefulPolicyPreservedStateResponseOutput struct{ *pulumi.OutputState } func (StatefulPolicyPreservedStateResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*StatefulPolicyPreservedStateResponse)(nil)).Elem() } func (o StatefulPolicyPreservedStateResponseOutput) ToStatefulPolicyPreservedStateResponseOutput() StatefulPolicyPreservedStateResponseOutput { return o } func (o StatefulPolicyPreservedStateResponseOutput) ToStatefulPolicyPreservedStateResponseOutputWithContext(ctx context.Context) StatefulPolicyPreservedStateResponseOutput { return o } // Disks created on the instances that will be preserved on instance delete, update, etc. This map is keyed with the device names of the disks. func (o StatefulPolicyPreservedStateResponseOutput) Disks() pulumi.StringMapOutput { return o.ApplyT(func(v StatefulPolicyPreservedStateResponse) map[string]string { return v.Disks }).(pulumi.StringMapOutput) } type StatefulPolicyResponse struct { PreservedState StatefulPolicyPreservedStateResponse `pulumi:"preservedState"` } type StatefulPolicyResponseOutput struct{ *pulumi.OutputState } func (StatefulPolicyResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*StatefulPolicyResponse)(nil)).Elem() } func (o StatefulPolicyResponseOutput) ToStatefulPolicyResponseOutput() StatefulPolicyResponseOutput { return o } func (o StatefulPolicyResponseOutput) ToStatefulPolicyResponseOutputWithContext(ctx context.Context) StatefulPolicyResponseOutput { return o } func (o StatefulPolicyResponseOutput) PreservedState() StatefulPolicyPreservedStateResponseOutput { return o.ApplyT(func(v StatefulPolicyResponse) StatefulPolicyPreservedStateResponse { return v.PreservedState }).(StatefulPolicyPreservedStateResponseOutput) } // The available logging options for this subnetwork. type SubnetworkLogConfig struct { // Can only be specified if VPC flow logging for this subnetwork is enabled. Toggles the aggregation interval for collecting flow logs. Increasing the interval time will reduce the amount of generated flow logs for long lasting connections. Default is an interval of 5 seconds per connection. AggregationInterval *SubnetworkLogConfigAggregationInterval `pulumi:"aggregationInterval"` // Whether to enable flow logging for this subnetwork. If this field is not explicitly set, it will not appear in get listings. If not set the default behavior is determined by the org policy, if there is no org policy specified, then it will default to disabled. Enable *bool `pulumi:"enable"` // Can only be specified if VPC flow logs for this subnetwork is enabled. Export filter used to define which VPC flow logs should be logged. FilterExpr *string `pulumi:"filterExpr"` // Can only be specified if VPC flow logging for this subnetwork is enabled. The value of the field must be in [0, 1]. Set the sampling rate of VPC flow logs within the subnetwork where 1.0 means all collected logs are reported and 0.0 means no logs are reported. Default is 0.5 unless otherwise specified by the org policy, which means half of all collected logs are reported. FlowSampling *float64 `pulumi:"flowSampling"` // Can only be specified if VPC flow logs for this subnetwork is enabled. Configures whether all, none or a subset of metadata fields should be added to the reported VPC flow logs. Default is EXCLUDE_ALL_METADATA. Metadata *SubnetworkLogConfigMetadata `pulumi:"metadata"` // Can only be specified if VPC flow logs for this subnetwork is enabled and "metadata" was set to CUSTOM_METADATA. MetadataFields []string `pulumi:"metadataFields"` } // SubnetworkLogConfigInput is an input type that accepts SubnetworkLogConfigArgs and SubnetworkLogConfigOutput values. // You can construct a concrete instance of `SubnetworkLogConfigInput` via: // // SubnetworkLogConfigArgs{...} type SubnetworkLogConfigInput interface { pulumi.Input ToSubnetworkLogConfigOutput() SubnetworkLogConfigOutput ToSubnetworkLogConfigOutputWithContext(context.Context) SubnetworkLogConfigOutput } // The available logging options for this subnetwork. type SubnetworkLogConfigArgs struct { // Can only be specified if VPC flow logging for this subnetwork is enabled. Toggles the aggregation interval for collecting flow logs. Increasing the interval time will reduce the amount of generated flow logs for long lasting connections. Default is an interval of 5 seconds per connection. AggregationInterval SubnetworkLogConfigAggregationIntervalPtrInput `pulumi:"aggregationInterval"` // Whether to enable flow logging for this subnetwork. If this field is not explicitly set, it will not appear in get listings. If not set the default behavior is determined by the org policy, if there is no org policy specified, then it will default to disabled. Enable pulumi.BoolPtrInput `pulumi:"enable"` // Can only be specified if VPC flow logs for this subnetwork is enabled. Export filter used to define which VPC flow logs should be logged. FilterExpr pulumi.StringPtrInput `pulumi:"filterExpr"` // Can only be specified if VPC flow logging for this subnetwork is enabled. The value of the field must be in [0, 1]. Set the sampling rate of VPC flow logs within the subnetwork where 1.0 means all collected logs are reported and 0.0 means no logs are reported. Default is 0.5 unless otherwise specified by the org policy, which means half of all collected logs are reported. FlowSampling pulumi.Float64PtrInput `pulumi:"flowSampling"` // Can only be specified if VPC flow logs for this subnetwork is enabled. Configures whether all, none or a subset of metadata fields should be added to the reported VPC flow logs. Default is EXCLUDE_ALL_METADATA. Metadata SubnetworkLogConfigMetadataPtrInput `pulumi:"metadata"` // Can only be specified if VPC flow logs for this subnetwork is enabled and "metadata" was set to CUSTOM_METADATA. MetadataFields pulumi.StringArrayInput `pulumi:"metadataFields"` } func (SubnetworkLogConfigArgs) ElementType() reflect.Type { return reflect.TypeOf((*SubnetworkLogConfig)(nil)).Elem() } func (i SubnetworkLogConfigArgs) ToSubnetworkLogConfigOutput() SubnetworkLogConfigOutput { return i.ToSubnetworkLogConfigOutputWithContext(context.Background()) } func (i SubnetworkLogConfigArgs) ToSubnetworkLogConfigOutputWithContext(ctx context.Context) SubnetworkLogConfigOutput { return pulumi.ToOutputWithContext(ctx, i).(SubnetworkLogConfigOutput) } func (i SubnetworkLogConfigArgs) ToSubnetworkLogConfigPtrOutput() SubnetworkLogConfigPtrOutput { return i.ToSubnetworkLogConfigPtrOutputWithContext(context.Background()) } func (i SubnetworkLogConfigArgs) ToSubnetworkLogConfigPtrOutputWithContext(ctx context.Context) SubnetworkLogConfigPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(SubnetworkLogConfigOutput).ToSubnetworkLogConfigPtrOutputWithContext(ctx) } // SubnetworkLogConfigPtrInput is an input type that accepts SubnetworkLogConfigArgs, SubnetworkLogConfigPtr and SubnetworkLogConfigPtrOutput values. // You can construct a concrete instance of `SubnetworkLogConfigPtrInput` via: // // SubnetworkLogConfigArgs{...} // // or: // // nil type SubnetworkLogConfigPtrInput interface { pulumi.Input ToSubnetworkLogConfigPtrOutput() SubnetworkLogConfigPtrOutput ToSubnetworkLogConfigPtrOutputWithContext(context.Context) SubnetworkLogConfigPtrOutput } type subnetworkLogConfigPtrType SubnetworkLogConfigArgs func SubnetworkLogConfigPtr(v *SubnetworkLogConfigArgs) SubnetworkLogConfigPtrInput { return (*subnetworkLogConfigPtrType)(v) } func (*subnetworkLogConfigPtrType) ElementType() reflect.Type { return reflect.TypeOf((**SubnetworkLogConfig)(nil)).Elem() } func (i *subnetworkLogConfigPtrType) ToSubnetworkLogConfigPtrOutput() SubnetworkLogConfigPtrOutput { return i.ToSubnetworkLogConfigPtrOutputWithContext(context.Background()) } func (i *subnetworkLogConfigPtrType) ToSubnetworkLogConfigPtrOutputWithContext(ctx context.Context) SubnetworkLogConfigPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(SubnetworkLogConfigPtrOutput) } // The available logging options for this subnetwork. type SubnetworkLogConfigOutput struct{ *pulumi.OutputState } func (SubnetworkLogConfigOutput) ElementType() reflect.Type { return reflect.TypeOf((*SubnetworkLogConfig)(nil)).Elem() } func (o SubnetworkLogConfigOutput) ToSubnetworkLogConfigOutput() SubnetworkLogConfigOutput { return o } func (o SubnetworkLogConfigOutput) ToSubnetworkLogConfigOutputWithContext(ctx context.Context) SubnetworkLogConfigOutput { return o } func (o SubnetworkLogConfigOutput) ToSubnetworkLogConfigPtrOutput() SubnetworkLogConfigPtrOutput { return o.ToSubnetworkLogConfigPtrOutputWithContext(context.Background()) } func (o SubnetworkLogConfigOutput) ToSubnetworkLogConfigPtrOutputWithContext(ctx context.Context) SubnetworkLogConfigPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v SubnetworkLogConfig) *SubnetworkLogConfig { return &v }).(SubnetworkLogConfigPtrOutput) } // Can only be specified if VPC flow logging for this subnetwork is enabled. Toggles the aggregation interval for collecting flow logs. Increasing the interval time will reduce the amount of generated flow logs for long lasting connections. Default is an interval of 5 seconds per connection. func (o SubnetworkLogConfigOutput) AggregationInterval() SubnetworkLogConfigAggregationIntervalPtrOutput { return o.ApplyT(func(v SubnetworkLogConfig) *SubnetworkLogConfigAggregationInterval { return v.AggregationInterval }).(SubnetworkLogConfigAggregationIntervalPtrOutput) } // Whether to enable flow logging for this subnetwork. If this field is not explicitly set, it will not appear in get listings. If not set the default behavior is determined by the org policy, if there is no org policy specified, then it will default to disabled. func (o SubnetworkLogConfigOutput) Enable() pulumi.BoolPtrOutput { return o.ApplyT(func(v SubnetworkLogConfig) *bool { return v.Enable }).(pulumi.BoolPtrOutput) } // Can only be specified if VPC flow logs for this subnetwork is enabled. Export filter used to define which VPC flow logs should be logged. func (o SubnetworkLogConfigOutput) FilterExpr() pulumi.StringPtrOutput { return o.ApplyT(func(v SubnetworkLogConfig) *string { return v.FilterExpr }).(pulumi.StringPtrOutput) } // Can only be specified if VPC flow logging for this subnetwork is enabled. The value of the field must be in [0, 1]. Set the sampling rate of VPC flow logs within the subnetwork where 1.0 means all collected logs are reported and 0.0 means no logs are reported. Default is 0.5 unless otherwise specified by the org policy, which means half of all collected logs are reported. func (o SubnetworkLogConfigOutput) FlowSampling() pulumi.Float64PtrOutput { return o.ApplyT(func(v SubnetworkLogConfig) *float64 { return v.FlowSampling }).(pulumi.Float64PtrOutput) } // Can only be specified if VPC flow logs for this subnetwork is enabled. Configures whether all, none or a subset of metadata fields should be added to the reported VPC flow logs. Default is EXCLUDE_ALL_METADATA. func (o SubnetworkLogConfigOutput) Metadata() SubnetworkLogConfigMetadataPtrOutput { return o.ApplyT(func(v SubnetworkLogConfig) *SubnetworkLogConfigMetadata { return v.Metadata }).(SubnetworkLogConfigMetadataPtrOutput) } // Can only be specified if VPC flow logs for this subnetwork is enabled and "metadata" was set to CUSTOM_METADATA. func (o SubnetworkLogConfigOutput) MetadataFields() pulumi.StringArrayOutput { return o.ApplyT(func(v SubnetworkLogConfig) []string { return v.MetadataFields }).(pulumi.StringArrayOutput) } type SubnetworkLogConfigPtrOutput struct{ *pulumi.OutputState } func (SubnetworkLogConfigPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**SubnetworkLogConfig)(nil)).Elem() } func (o SubnetworkLogConfigPtrOutput) ToSubnetworkLogConfigPtrOutput() SubnetworkLogConfigPtrOutput { return o } func (o SubnetworkLogConfigPtrOutput) ToSubnetworkLogConfigPtrOutputWithContext(ctx context.Context) SubnetworkLogConfigPtrOutput { return o } func (o SubnetworkLogConfigPtrOutput) Elem() SubnetworkLogConfigOutput { return o.ApplyT(func(v *SubnetworkLogConfig) SubnetworkLogConfig { if v != nil { return *v } var ret SubnetworkLogConfig return ret }).(SubnetworkLogConfigOutput) } // Can only be specified if VPC flow logging for this subnetwork is enabled. Toggles the aggregation interval for collecting flow logs. Increasing the interval time will reduce the amount of generated flow logs for long lasting connections. Default is an interval of 5 seconds per connection. func (o SubnetworkLogConfigPtrOutput) AggregationInterval() SubnetworkLogConfigAggregationIntervalPtrOutput { return o.ApplyT(func(v *SubnetworkLogConfig) *SubnetworkLogConfigAggregationInterval { if v == nil { return nil } return v.AggregationInterval }).(SubnetworkLogConfigAggregationIntervalPtrOutput) } // Whether to enable flow logging for this subnetwork. If this field is not explicitly set, it will not appear in get listings. If not set the default behavior is determined by the org policy, if there is no org policy specified, then it will default to disabled. func (o SubnetworkLogConfigPtrOutput) Enable() pulumi.BoolPtrOutput { return o.ApplyT(func(v *SubnetworkLogConfig) *bool { if v == nil { return nil } return v.Enable }).(pulumi.BoolPtrOutput) } // Can only be specified if VPC flow logs for this subnetwork is enabled. Export filter used to define which VPC flow logs should be logged. func (o SubnetworkLogConfigPtrOutput) FilterExpr() pulumi.StringPtrOutput { return o.ApplyT(func(v *SubnetworkLogConfig) *string { if v == nil { return nil } return v.FilterExpr }).(pulumi.StringPtrOutput) } // Can only be specified if VPC flow logging for this subnetwork is enabled. The value of the field must be in [0, 1]. Set the sampling rate of VPC flow logs within the subnetwork where 1.0 means all collected logs are reported and 0.0 means no logs are reported. Default is 0.5 unless otherwise specified by the org policy, which means half of all collected logs are reported. func (o SubnetworkLogConfigPtrOutput) FlowSampling() pulumi.Float64PtrOutput { return o.ApplyT(func(v *SubnetworkLogConfig) *float64 { if v == nil { return nil } return v.FlowSampling }).(pulumi.Float64PtrOutput) } // Can only be specified if VPC flow logs for this subnetwork is enabled. Configures whether all, none or a subset of metadata fields should be added to the reported VPC flow logs. Default is EXCLUDE_ALL_METADATA. func (o SubnetworkLogConfigPtrOutput) Metadata() SubnetworkLogConfigMetadataPtrOutput { return o.ApplyT(func(v *SubnetworkLogConfig) *SubnetworkLogConfigMetadata { if v == nil { return nil } return v.Metadata }).(SubnetworkLogConfigMetadataPtrOutput) } // Can only be specified if VPC flow logs for this subnetwork is enabled and "metadata" was set to CUSTOM_METADATA. func (o SubnetworkLogConfigPtrOutput) MetadataFields() pulumi.StringArrayOutput { return o.ApplyT(func(v *SubnetworkLogConfig) []string { if v == nil { return nil } return v.MetadataFields }).(pulumi.StringArrayOutput) } // The available logging options for this subnetwork. type SubnetworkLogConfigResponse struct { // Can only be specified if VPC flow logging for this subnetwork is enabled. Toggles the aggregation interval for collecting flow logs. Increasing the interval time will reduce the amount of generated flow logs for long lasting connections. Default is an interval of 5 seconds per connection. AggregationInterval string `pulumi:"aggregationInterval"` // Whether to enable flow logging for this subnetwork. If this field is not explicitly set, it will not appear in get listings. If not set the default behavior is determined by the org policy, if there is no org policy specified, then it will default to disabled. Enable bool `pulumi:"enable"` // Can only be specified if VPC flow logs for this subnetwork is enabled. Export filter used to define which VPC flow logs should be logged. FilterExpr string `pulumi:"filterExpr"` // Can only be specified if VPC flow logging for this subnetwork is enabled. The value of the field must be in [0, 1]. Set the sampling rate of VPC flow logs within the subnetwork where 1.0 means all collected logs are reported and 0.0 means no logs are reported. Default is 0.5 unless otherwise specified by the org policy, which means half of all collected logs are reported. FlowSampling float64 `pulumi:"flowSampling"` // Can only be specified if VPC flow logs for this subnetwork is enabled. Configures whether all, none or a subset of metadata fields should be added to the reported VPC flow logs. Default is EXCLUDE_ALL_METADATA. Metadata string `pulumi:"metadata"` // Can only be specified if VPC flow logs for this subnetwork is enabled and "metadata" was set to CUSTOM_METADATA. MetadataFields []string `pulumi:"metadataFields"` } // The available logging options for this subnetwork. type SubnetworkLogConfigResponseOutput struct{ *pulumi.OutputState } func (SubnetworkLogConfigResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*SubnetworkLogConfigResponse)(nil)).Elem() } func (o SubnetworkLogConfigResponseOutput) ToSubnetworkLogConfigResponseOutput() SubnetworkLogConfigResponseOutput { return o } func (o SubnetworkLogConfigResponseOutput) ToSubnetworkLogConfigResponseOutputWithContext(ctx context.Context) SubnetworkLogConfigResponseOutput { return o } // Can only be specified if VPC flow logging for this subnetwork is enabled. Toggles the aggregation interval for collecting flow logs. Increasing the interval time will reduce the amount of generated flow logs for long lasting connections. Default is an interval of 5 seconds per connection. func (o SubnetworkLogConfigResponseOutput) AggregationInterval() pulumi.StringOutput { return o.ApplyT(func(v SubnetworkLogConfigResponse) string { return v.AggregationInterval }).(pulumi.StringOutput) } // Whether to enable flow logging for this subnetwork. If this field is not explicitly set, it will not appear in get listings. If not set the default behavior is determined by the org policy, if there is no org policy specified, then it will default to disabled. func (o SubnetworkLogConfigResponseOutput) Enable() pulumi.BoolOutput { return o.ApplyT(func(v SubnetworkLogConfigResponse) bool { return v.Enable }).(pulumi.BoolOutput) } // Can only be specified if VPC flow logs for this subnetwork is enabled. Export filter used to define which VPC flow logs should be logged. func (o SubnetworkLogConfigResponseOutput) FilterExpr() pulumi.StringOutput { return o.ApplyT(func(v SubnetworkLogConfigResponse) string { return v.FilterExpr }).(pulumi.StringOutput) } // Can only be specified if VPC flow logging for this subnetwork is enabled. The value of the field must be in [0, 1]. Set the sampling rate of VPC flow logs within the subnetwork where 1.0 means all collected logs are reported and 0.0 means no logs are reported. Default is 0.5 unless otherwise specified by the org policy, which means half of all collected logs are reported. func (o SubnetworkLogConfigResponseOutput) FlowSampling() pulumi.Float64Output { return o.ApplyT(func(v SubnetworkLogConfigResponse) float64 { return v.FlowSampling }).(pulumi.Float64Output) } // Can only be specified if VPC flow logs for this subnetwork is enabled. Configures whether all, none or a subset of metadata fields should be added to the reported VPC flow logs. Default is EXCLUDE_ALL_METADATA. func (o SubnetworkLogConfigResponseOutput) Metadata() pulumi.StringOutput { return o.ApplyT(func(v SubnetworkLogConfigResponse) string { return v.Metadata }).(pulumi.StringOutput) } // Can only be specified if VPC flow logs for this subnetwork is enabled and "metadata" was set to CUSTOM_METADATA. func (o SubnetworkLogConfigResponseOutput) MetadataFields() pulumi.StringArrayOutput { return o.ApplyT(func(v SubnetworkLogConfigResponse) []string { return v.MetadataFields }).(pulumi.StringArrayOutput) } // Represents a secondary IP range of a subnetwork. type SubnetworkSecondaryRange struct { // The range of IP addresses belonging to this subnetwork secondary range. Provide this property when you create the subnetwork. Ranges must be unique and non-overlapping with all primary and secondary IP ranges within a network. Only IPv4 is supported. The range can be any range listed in the Valid ranges list. IpCidrRange *string `pulumi:"ipCidrRange"` // The name associated with this subnetwork secondary range, used when adding an alias IP range to a VM instance. The name must be 1-63 characters long, and comply with RFC1035. The name must be unique within the subnetwork. RangeName *string `pulumi:"rangeName"` } // SubnetworkSecondaryRangeInput is an input type that accepts SubnetworkSecondaryRangeArgs and SubnetworkSecondaryRangeOutput values. // You can construct a concrete instance of `SubnetworkSecondaryRangeInput` via: // // SubnetworkSecondaryRangeArgs{...} type SubnetworkSecondaryRangeInput interface { pulumi.Input ToSubnetworkSecondaryRangeOutput() SubnetworkSecondaryRangeOutput ToSubnetworkSecondaryRangeOutputWithContext(context.Context) SubnetworkSecondaryRangeOutput } // Represents a secondary IP range of a subnetwork. type SubnetworkSecondaryRangeArgs struct { // The range of IP addresses belonging to this subnetwork secondary range. Provide this property when you create the subnetwork. Ranges must be unique and non-overlapping with all primary and secondary IP ranges within a network. Only IPv4 is supported. The range can be any range listed in the Valid ranges list. IpCidrRange pulumi.StringPtrInput `pulumi:"ipCidrRange"` // The name associated with this subnetwork secondary range, used when adding an alias IP range to a VM instance. The name must be 1-63 characters long, and comply with RFC1035. The name must be unique within the subnetwork. RangeName pulumi.StringPtrInput `pulumi:"rangeName"` } func (SubnetworkSecondaryRangeArgs) ElementType() reflect.Type { return reflect.TypeOf((*SubnetworkSecondaryRange)(nil)).Elem() } func (i SubnetworkSecondaryRangeArgs) ToSubnetworkSecondaryRangeOutput() SubnetworkSecondaryRangeOutput { return i.ToSubnetworkSecondaryRangeOutputWithContext(context.Background()) } func (i SubnetworkSecondaryRangeArgs) ToSubnetworkSecondaryRangeOutputWithContext(ctx context.Context) SubnetworkSecondaryRangeOutput { return pulumi.ToOutputWithContext(ctx, i).(SubnetworkSecondaryRangeOutput) } // SubnetworkSecondaryRangeArrayInput is an input type that accepts SubnetworkSecondaryRangeArray and SubnetworkSecondaryRangeArrayOutput values. // You can construct a concrete instance of `SubnetworkSecondaryRangeArrayInput` via: // // SubnetworkSecondaryRangeArray{ SubnetworkSecondaryRangeArgs{...} } type SubnetworkSecondaryRangeArrayInput interface { pulumi.Input ToSubnetworkSecondaryRangeArrayOutput() SubnetworkSecondaryRangeArrayOutput ToSubnetworkSecondaryRangeArrayOutputWithContext(context.Context) SubnetworkSecondaryRangeArrayOutput } type SubnetworkSecondaryRangeArray []SubnetworkSecondaryRangeInput func (SubnetworkSecondaryRangeArray) ElementType() reflect.Type { return reflect.TypeOf((*[]SubnetworkSecondaryRange)(nil)).Elem() } func (i SubnetworkSecondaryRangeArray) ToSubnetworkSecondaryRangeArrayOutput() SubnetworkSecondaryRangeArrayOutput { return i.ToSubnetworkSecondaryRangeArrayOutputWithContext(context.Background()) } func (i SubnetworkSecondaryRangeArray) ToSubnetworkSecondaryRangeArrayOutputWithContext(ctx context.Context) SubnetworkSecondaryRangeArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(SubnetworkSecondaryRangeArrayOutput) } // Represents a secondary IP range of a subnetwork. type SubnetworkSecondaryRangeOutput struct{ *pulumi.OutputState } func (SubnetworkSecondaryRangeOutput) ElementType() reflect.Type { return reflect.TypeOf((*SubnetworkSecondaryRange)(nil)).Elem() } func (o SubnetworkSecondaryRangeOutput) ToSubnetworkSecondaryRangeOutput() SubnetworkSecondaryRangeOutput { return o } func (o SubnetworkSecondaryRangeOutput) ToSubnetworkSecondaryRangeOutputWithContext(ctx context.Context) SubnetworkSecondaryRangeOutput { return o } // The range of IP addresses belonging to this subnetwork secondary range. Provide this property when you create the subnetwork. Ranges must be unique and non-overlapping with all primary and secondary IP ranges within a network. Only IPv4 is supported. The range can be any range listed in the Valid ranges list. func (o SubnetworkSecondaryRangeOutput) IpCidrRange() pulumi.StringPtrOutput { return o.ApplyT(func(v SubnetworkSecondaryRange) *string { return v.IpCidrRange }).(pulumi.StringPtrOutput) } // The name associated with this subnetwork secondary range, used when adding an alias IP range to a VM instance. The name must be 1-63 characters long, and comply with RFC1035. The name must be unique within the subnetwork. func (o SubnetworkSecondaryRangeOutput) RangeName() pulumi.StringPtrOutput { return o.ApplyT(func(v SubnetworkSecondaryRange) *string { return v.RangeName }).(pulumi.StringPtrOutput) } type SubnetworkSecondaryRangeArrayOutput struct{ *pulumi.OutputState } func (SubnetworkSecondaryRangeArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]SubnetworkSecondaryRange)(nil)).Elem() } func (o SubnetworkSecondaryRangeArrayOutput) ToSubnetworkSecondaryRangeArrayOutput() SubnetworkSecondaryRangeArrayOutput { return o } func (o SubnetworkSecondaryRangeArrayOutput) ToSubnetworkSecondaryRangeArrayOutputWithContext(ctx context.Context) SubnetworkSecondaryRangeArrayOutput { return o } func (o SubnetworkSecondaryRangeArrayOutput) Index(i pulumi.IntInput) SubnetworkSecondaryRangeOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) SubnetworkSecondaryRange { return vs[0].([]SubnetworkSecondaryRange)[vs[1].(int)] }).(SubnetworkSecondaryRangeOutput) } // Represents a secondary IP range of a subnetwork. type SubnetworkSecondaryRangeResponse struct { // The range of IP addresses belonging to this subnetwork secondary range. Provide this property when you create the subnetwork. Ranges must be unique and non-overlapping with all primary and secondary IP ranges within a network. Only IPv4 is supported. The range can be any range listed in the Valid ranges list. IpCidrRange string `pulumi:"ipCidrRange"` // The name associated with this subnetwork secondary range, used when adding an alias IP range to a VM instance. The name must be 1-63 characters long, and comply with RFC1035. The name must be unique within the subnetwork. RangeName string `pulumi:"rangeName"` } // Represents a secondary IP range of a subnetwork. type SubnetworkSecondaryRangeResponseOutput struct{ *pulumi.OutputState } func (SubnetworkSecondaryRangeResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*SubnetworkSecondaryRangeResponse)(nil)).Elem() } func (o SubnetworkSecondaryRangeResponseOutput) ToSubnetworkSecondaryRangeResponseOutput() SubnetworkSecondaryRangeResponseOutput { return o } func (o SubnetworkSecondaryRangeResponseOutput) ToSubnetworkSecondaryRangeResponseOutputWithContext(ctx context.Context) SubnetworkSecondaryRangeResponseOutput { return o } // The range of IP addresses belonging to this subnetwork secondary range. Provide this property when you create the subnetwork. Ranges must be unique and non-overlapping with all primary and secondary IP ranges within a network. Only IPv4 is supported. The range can be any range listed in the Valid ranges list. func (o SubnetworkSecondaryRangeResponseOutput) IpCidrRange() pulumi.StringOutput { return o.ApplyT(func(v SubnetworkSecondaryRangeResponse) string { return v.IpCidrRange }).(pulumi.StringOutput) } // The name associated with this subnetwork secondary range, used when adding an alias IP range to a VM instance. The name must be 1-63 characters long, and comply with RFC1035. The name must be unique within the subnetwork. func (o SubnetworkSecondaryRangeResponseOutput) RangeName() pulumi.StringOutput { return o.ApplyT(func(v SubnetworkSecondaryRangeResponse) string { return v.RangeName }).(pulumi.StringOutput) } type SubnetworkSecondaryRangeResponseArrayOutput struct{ *pulumi.OutputState } func (SubnetworkSecondaryRangeResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]SubnetworkSecondaryRangeResponse)(nil)).Elem() } func (o SubnetworkSecondaryRangeResponseArrayOutput) ToSubnetworkSecondaryRangeResponseArrayOutput() SubnetworkSecondaryRangeResponseArrayOutput { return o } func (o SubnetworkSecondaryRangeResponseArrayOutput) ToSubnetworkSecondaryRangeResponseArrayOutputWithContext(ctx context.Context) SubnetworkSecondaryRangeResponseArrayOutput { return o } func (o SubnetworkSecondaryRangeResponseArrayOutput) Index(i pulumi.IntInput) SubnetworkSecondaryRangeResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) SubnetworkSecondaryRangeResponse { return vs[0].([]SubnetworkSecondaryRangeResponse)[vs[1].(int)] }).(SubnetworkSecondaryRangeResponseOutput) } // Subsetting configuration for this BackendService. Currently this is applicable only for Internal TCP/UDP load balancing, Internal HTTP(S) load balancing and Traffic Director. type Subsetting struct { Policy *SubsettingPolicy `pulumi:"policy"` } // SubsettingInput is an input type that accepts SubsettingArgs and SubsettingOutput values. // You can construct a concrete instance of `SubsettingInput` via: // // SubsettingArgs{...} type SubsettingInput interface { pulumi.Input ToSubsettingOutput() SubsettingOutput ToSubsettingOutputWithContext(context.Context) SubsettingOutput } // Subsetting configuration for this BackendService. Currently this is applicable only for Internal TCP/UDP load balancing, Internal HTTP(S) load balancing and Traffic Director. type SubsettingArgs struct { Policy SubsettingPolicyPtrInput `pulumi:"policy"` } func (SubsettingArgs) ElementType() reflect.Type { return reflect.TypeOf((*Subsetting)(nil)).Elem() } func (i SubsettingArgs) ToSubsettingOutput() SubsettingOutput { return i.ToSubsettingOutputWithContext(context.Background()) } func (i SubsettingArgs) ToSubsettingOutputWithContext(ctx context.Context) SubsettingOutput { return pulumi.ToOutputWithContext(ctx, i).(SubsettingOutput) } func (i SubsettingArgs) ToSubsettingPtrOutput() SubsettingPtrOutput { return i.ToSubsettingPtrOutputWithContext(context.Background()) } func (i SubsettingArgs) ToSubsettingPtrOutputWithContext(ctx context.Context) SubsettingPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(SubsettingOutput).ToSubsettingPtrOutputWithContext(ctx) } // SubsettingPtrInput is an input type that accepts SubsettingArgs, SubsettingPtr and SubsettingPtrOutput values. // You can construct a concrete instance of `SubsettingPtrInput` via: // // SubsettingArgs{...} // // or: // // nil type SubsettingPtrInput interface { pulumi.Input ToSubsettingPtrOutput() SubsettingPtrOutput ToSubsettingPtrOutputWithContext(context.Context) SubsettingPtrOutput } type subsettingPtrType SubsettingArgs func SubsettingPtr(v *SubsettingArgs) SubsettingPtrInput { return (*subsettingPtrType)(v) } func (*subsettingPtrType) ElementType() reflect.Type { return reflect.TypeOf((**Subsetting)(nil)).Elem() } func (i *subsettingPtrType) ToSubsettingPtrOutput() SubsettingPtrOutput { return i.ToSubsettingPtrOutputWithContext(context.Background()) } func (i *subsettingPtrType) ToSubsettingPtrOutputWithContext(ctx context.Context) SubsettingPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(SubsettingPtrOutput) } // Subsetting configuration for this BackendService. Currently this is applicable only for Internal TCP/UDP load balancing, Internal HTTP(S) load balancing and Traffic Director. type SubsettingOutput struct{ *pulumi.OutputState } func (SubsettingOutput) ElementType() reflect.Type { return reflect.TypeOf((*Subsetting)(nil)).Elem() } func (o SubsettingOutput) ToSubsettingOutput() SubsettingOutput { return o } func (o SubsettingOutput) ToSubsettingOutputWithContext(ctx context.Context) SubsettingOutput { return o } func (o SubsettingOutput) ToSubsettingPtrOutput() SubsettingPtrOutput { return o.ToSubsettingPtrOutputWithContext(context.Background()) } func (o SubsettingOutput) ToSubsettingPtrOutputWithContext(ctx context.Context) SubsettingPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v Subsetting) *Subsetting { return &v }).(SubsettingPtrOutput) } func (o SubsettingOutput) Policy() SubsettingPolicyPtrOutput { return o.ApplyT(func(v Subsetting) *SubsettingPolicy { return v.Policy }).(SubsettingPolicyPtrOutput) } type SubsettingPtrOutput struct{ *pulumi.OutputState } func (SubsettingPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**Subsetting)(nil)).Elem() } func (o SubsettingPtrOutput) ToSubsettingPtrOutput() SubsettingPtrOutput { return o } func (o SubsettingPtrOutput) ToSubsettingPtrOutputWithContext(ctx context.Context) SubsettingPtrOutput { return o } func (o SubsettingPtrOutput) Elem() SubsettingOutput { return o.ApplyT(func(v *Subsetting) Subsetting { if v != nil { return *v } var ret Subsetting return ret }).(SubsettingOutput) } func (o SubsettingPtrOutput) Policy() SubsettingPolicyPtrOutput { return o.ApplyT(func(v *Subsetting) *SubsettingPolicy { if v == nil { return nil } return v.Policy }).(SubsettingPolicyPtrOutput) } // Subsetting configuration for this BackendService. Currently this is applicable only for Internal TCP/UDP load balancing, Internal HTTP(S) load balancing and Traffic Director. type SubsettingResponse struct { Policy string `pulumi:"policy"` } // Subsetting configuration for this BackendService. Currently this is applicable only for Internal TCP/UDP load balancing, Internal HTTP(S) load balancing and Traffic Director. type SubsettingResponseOutput struct{ *pulumi.OutputState } func (SubsettingResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*SubsettingResponse)(nil)).Elem() } func (o SubsettingResponseOutput) ToSubsettingResponseOutput() SubsettingResponseOutput { return o } func (o SubsettingResponseOutput) ToSubsettingResponseOutputWithContext(ctx context.Context) SubsettingResponseOutput { return o } func (o SubsettingResponseOutput) Policy() pulumi.StringOutput { return o.ApplyT(func(v SubsettingResponse) string { return v.Policy }).(pulumi.StringOutput) } type TCPHealthCheck struct { // The TCP port number for the health check request. The default value is 80. Valid values are 1 through 65535. Port *int `pulumi:"port"` // Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence. PortName *string `pulumi:"portName"` // Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, TCP health check follows behavior specified in port and portName fields. PortSpecification *TCPHealthCheckPortSpecification `pulumi:"portSpecification"` // Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE. ProxyHeader *TCPHealthCheckProxyHeader `pulumi:"proxyHeader"` // The application data to send once the TCP connection has been established (default value is empty). If both request and response are empty, the connection establishment alone will indicate health. The request data can only be ASCII. Request *string `pulumi:"request"` // The bytes to match against the beginning of the response data. If left empty (the default value), any response will indicate health. The response data can only be ASCII. Response *string `pulumi:"response"` } // TCPHealthCheckInput is an input type that accepts TCPHealthCheckArgs and TCPHealthCheckOutput values. // You can construct a concrete instance of `TCPHealthCheckInput` via: // // TCPHealthCheckArgs{...} type TCPHealthCheckInput interface { pulumi.Input ToTCPHealthCheckOutput() TCPHealthCheckOutput ToTCPHealthCheckOutputWithContext(context.Context) TCPHealthCheckOutput } type TCPHealthCheckArgs struct { // The TCP port number for the health check request. The default value is 80. Valid values are 1 through 65535. Port pulumi.IntPtrInput `pulumi:"port"` // Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence. PortName pulumi.StringPtrInput `pulumi:"portName"` // Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, TCP health check follows behavior specified in port and portName fields. PortSpecification TCPHealthCheckPortSpecificationPtrInput `pulumi:"portSpecification"` // Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE. ProxyHeader TCPHealthCheckProxyHeaderPtrInput `pulumi:"proxyHeader"` // The application data to send once the TCP connection has been established (default value is empty). If both request and response are empty, the connection establishment alone will indicate health. The request data can only be ASCII. Request pulumi.StringPtrInput `pulumi:"request"` // The bytes to match against the beginning of the response data. If left empty (the default value), any response will indicate health. The response data can only be ASCII. Response pulumi.StringPtrInput `pulumi:"response"` } func (TCPHealthCheckArgs) ElementType() reflect.Type { return reflect.TypeOf((*TCPHealthCheck)(nil)).Elem() } func (i TCPHealthCheckArgs) ToTCPHealthCheckOutput() TCPHealthCheckOutput { return i.ToTCPHealthCheckOutputWithContext(context.Background()) } func (i TCPHealthCheckArgs) ToTCPHealthCheckOutputWithContext(ctx context.Context) TCPHealthCheckOutput { return pulumi.ToOutputWithContext(ctx, i).(TCPHealthCheckOutput) } func (i TCPHealthCheckArgs) ToTCPHealthCheckPtrOutput() TCPHealthCheckPtrOutput { return i.ToTCPHealthCheckPtrOutputWithContext(context.Background()) } func (i TCPHealthCheckArgs) ToTCPHealthCheckPtrOutputWithContext(ctx context.Context) TCPHealthCheckPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(TCPHealthCheckOutput).ToTCPHealthCheckPtrOutputWithContext(ctx) } // TCPHealthCheckPtrInput is an input type that accepts TCPHealthCheckArgs, TCPHealthCheckPtr and TCPHealthCheckPtrOutput values. // You can construct a concrete instance of `TCPHealthCheckPtrInput` via: // // TCPHealthCheckArgs{...} // // or: // // nil type TCPHealthCheckPtrInput interface { pulumi.Input ToTCPHealthCheckPtrOutput() TCPHealthCheckPtrOutput ToTCPHealthCheckPtrOutputWithContext(context.Context) TCPHealthCheckPtrOutput } type tcphealthCheckPtrType TCPHealthCheckArgs func TCPHealthCheckPtr(v *TCPHealthCheckArgs) TCPHealthCheckPtrInput { return (*tcphealthCheckPtrType)(v) } func (*tcphealthCheckPtrType) ElementType() reflect.Type { return reflect.TypeOf((**TCPHealthCheck)(nil)).Elem() } func (i *tcphealthCheckPtrType) ToTCPHealthCheckPtrOutput() TCPHealthCheckPtrOutput { return i.ToTCPHealthCheckPtrOutputWithContext(context.Background()) } func (i *tcphealthCheckPtrType) ToTCPHealthCheckPtrOutputWithContext(ctx context.Context) TCPHealthCheckPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(TCPHealthCheckPtrOutput) } type TCPHealthCheckOutput struct{ *pulumi.OutputState } func (TCPHealthCheckOutput) ElementType() reflect.Type { return reflect.TypeOf((*TCPHealthCheck)(nil)).Elem() } func (o TCPHealthCheckOutput) ToTCPHealthCheckOutput() TCPHealthCheckOutput { return o } func (o TCPHealthCheckOutput) ToTCPHealthCheckOutputWithContext(ctx context.Context) TCPHealthCheckOutput { return o } func (o TCPHealthCheckOutput) ToTCPHealthCheckPtrOutput() TCPHealthCheckPtrOutput { return o.ToTCPHealthCheckPtrOutputWithContext(context.Background()) } func (o TCPHealthCheckOutput) ToTCPHealthCheckPtrOutputWithContext(ctx context.Context) TCPHealthCheckPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v TCPHealthCheck) *TCPHealthCheck { return &v }).(TCPHealthCheckPtrOutput) } // The TCP port number for the health check request. The default value is 80. Valid values are 1 through 65535. func (o TCPHealthCheckOutput) Port() pulumi.IntPtrOutput { return o.ApplyT(func(v TCPHealthCheck) *int { return v.Port }).(pulumi.IntPtrOutput) } // Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence. func (o TCPHealthCheckOutput) PortName() pulumi.StringPtrOutput { return o.ApplyT(func(v TCPHealthCheck) *string { return v.PortName }).(pulumi.StringPtrOutput) } // Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, TCP health check follows behavior specified in port and portName fields. func (o TCPHealthCheckOutput) PortSpecification() TCPHealthCheckPortSpecificationPtrOutput { return o.ApplyT(func(v TCPHealthCheck) *TCPHealthCheckPortSpecification { return v.PortSpecification }).(TCPHealthCheckPortSpecificationPtrOutput) } // Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE. func (o TCPHealthCheckOutput) ProxyHeader() TCPHealthCheckProxyHeaderPtrOutput { return o.ApplyT(func(v TCPHealthCheck) *TCPHealthCheckProxyHeader { return v.ProxyHeader }).(TCPHealthCheckProxyHeaderPtrOutput) } // The application data to send once the TCP connection has been established (default value is empty). If both request and response are empty, the connection establishment alone will indicate health. The request data can only be ASCII. func (o TCPHealthCheckOutput) Request() pulumi.StringPtrOutput { return o.ApplyT(func(v TCPHealthCheck) *string { return v.Request }).(pulumi.StringPtrOutput) } // The bytes to match against the beginning of the response data. If left empty (the default value), any response will indicate health. The response data can only be ASCII. func (o TCPHealthCheckOutput) Response() pulumi.StringPtrOutput { return o.ApplyT(func(v TCPHealthCheck) *string { return v.Response }).(pulumi.StringPtrOutput) } type TCPHealthCheckPtrOutput struct{ *pulumi.OutputState } func (TCPHealthCheckPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**TCPHealthCheck)(nil)).Elem() } func (o TCPHealthCheckPtrOutput) ToTCPHealthCheckPtrOutput() TCPHealthCheckPtrOutput { return o } func (o TCPHealthCheckPtrOutput) ToTCPHealthCheckPtrOutputWithContext(ctx context.Context) TCPHealthCheckPtrOutput { return o } func (o TCPHealthCheckPtrOutput) Elem() TCPHealthCheckOutput { return o.ApplyT(func(v *TCPHealthCheck) TCPHealthCheck { if v != nil { return *v } var ret TCPHealthCheck return ret }).(TCPHealthCheckOutput) } // The TCP port number for the health check request. The default value is 80. Valid values are 1 through 65535. func (o TCPHealthCheckPtrOutput) Port() pulumi.IntPtrOutput { return o.ApplyT(func(v *TCPHealthCheck) *int { if v == nil { return nil } return v.Port }).(pulumi.IntPtrOutput) } // Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence. func (o TCPHealthCheckPtrOutput) PortName() pulumi.StringPtrOutput { return o.ApplyT(func(v *TCPHealthCheck) *string { if v == nil { return nil } return v.PortName }).(pulumi.StringPtrOutput) } // Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, TCP health check follows behavior specified in port and portName fields. func (o TCPHealthCheckPtrOutput) PortSpecification() TCPHealthCheckPortSpecificationPtrOutput { return o.ApplyT(func(v *TCPHealthCheck) *TCPHealthCheckPortSpecification { if v == nil { return nil } return v.PortSpecification }).(TCPHealthCheckPortSpecificationPtrOutput) } // Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE. func (o TCPHealthCheckPtrOutput) ProxyHeader() TCPHealthCheckProxyHeaderPtrOutput { return o.ApplyT(func(v *TCPHealthCheck) *TCPHealthCheckProxyHeader { if v == nil { return nil } return v.ProxyHeader }).(TCPHealthCheckProxyHeaderPtrOutput) } // The application data to send once the TCP connection has been established (default value is empty). If both request and response are empty, the connection establishment alone will indicate health. The request data can only be ASCII. func (o TCPHealthCheckPtrOutput) Request() pulumi.StringPtrOutput { return o.ApplyT(func(v *TCPHealthCheck) *string { if v == nil { return nil } return v.Request }).(pulumi.StringPtrOutput) } // The bytes to match against the beginning of the response data. If left empty (the default value), any response will indicate health. The response data can only be ASCII. func (o TCPHealthCheckPtrOutput) Response() pulumi.StringPtrOutput { return o.ApplyT(func(v *TCPHealthCheck) *string { if v == nil { return nil } return v.Response }).(pulumi.StringPtrOutput) } type TCPHealthCheckResponse struct { // The TCP port number for the health check request. The default value is 80. Valid values are 1 through 65535. Port int `pulumi:"port"` // Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence. PortName string `pulumi:"portName"` // Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, TCP health check follows behavior specified in port and portName fields. PortSpecification string `pulumi:"portSpecification"` // Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE. ProxyHeader string `pulumi:"proxyHeader"` // The application data to send once the TCP connection has been established (default value is empty). If both request and response are empty, the connection establishment alone will indicate health. The request data can only be ASCII. Request string `pulumi:"request"` // The bytes to match against the beginning of the response data. If left empty (the default value), any response will indicate health. The response data can only be ASCII. Response string `pulumi:"response"` } type TCPHealthCheckResponseOutput struct{ *pulumi.OutputState } func (TCPHealthCheckResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*TCPHealthCheckResponse)(nil)).Elem() } func (o TCPHealthCheckResponseOutput) ToTCPHealthCheckResponseOutput() TCPHealthCheckResponseOutput { return o } func (o TCPHealthCheckResponseOutput) ToTCPHealthCheckResponseOutputWithContext(ctx context.Context) TCPHealthCheckResponseOutput { return o } // The TCP port number for the health check request. The default value is 80. Valid values are 1 through 65535. func (o TCPHealthCheckResponseOutput) Port() pulumi.IntOutput { return o.ApplyT(func(v TCPHealthCheckResponse) int { return v.Port }).(pulumi.IntOutput) } // Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence. func (o TCPHealthCheckResponseOutput) PortName() pulumi.StringOutput { return o.ApplyT(func(v TCPHealthCheckResponse) string { return v.PortName }).(pulumi.StringOutput) } // Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, TCP health check follows behavior specified in port and portName fields. func (o TCPHealthCheckResponseOutput) PortSpecification() pulumi.StringOutput { return o.ApplyT(func(v TCPHealthCheckResponse) string { return v.PortSpecification }).(pulumi.StringOutput) } // Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE. func (o TCPHealthCheckResponseOutput) ProxyHeader() pulumi.StringOutput { return o.ApplyT(func(v TCPHealthCheckResponse) string { return v.ProxyHeader }).(pulumi.StringOutput) } // The application data to send once the TCP connection has been established (default value is empty). If both request and response are empty, the connection establishment alone will indicate health. The request data can only be ASCII. func (o TCPHealthCheckResponseOutput) Request() pulumi.StringOutput { return o.ApplyT(func(v TCPHealthCheckResponse) string { return v.Request }).(pulumi.StringOutput) } // The bytes to match against the beginning of the response data. If left empty (the default value), any response will indicate health. The response data can only be ASCII. func (o TCPHealthCheckResponseOutput) Response() pulumi.StringOutput { return o.ApplyT(func(v TCPHealthCheckResponse) string { return v.Response }).(pulumi.StringOutput) } // A set of instance tags. type Tags struct { // An array of tags. Each tag must be 1-63 characters long, and comply with RFC1035. Items []string `pulumi:"items"` } // TagsInput is an input type that accepts TagsArgs and TagsOutput values. // You can construct a concrete instance of `TagsInput` via: // // TagsArgs{...} type TagsInput interface { pulumi.Input ToTagsOutput() TagsOutput ToTagsOutputWithContext(context.Context) TagsOutput } // A set of instance tags. type TagsArgs struct { // An array of tags. Each tag must be 1-63 characters long, and comply with RFC1035. Items pulumi.StringArrayInput `pulumi:"items"` } func (TagsArgs) ElementType() reflect.Type { return reflect.TypeOf((*Tags)(nil)).Elem() } func (i TagsArgs) ToTagsOutput() TagsOutput { return i.ToTagsOutputWithContext(context.Background()) } func (i TagsArgs) ToTagsOutputWithContext(ctx context.Context) TagsOutput { return pulumi.ToOutputWithContext(ctx, i).(TagsOutput) } func (i TagsArgs) ToTagsPtrOutput() TagsPtrOutput { return i.ToTagsPtrOutputWithContext(context.Background()) } func (i TagsArgs) ToTagsPtrOutputWithContext(ctx context.Context) TagsPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(TagsOutput).ToTagsPtrOutputWithContext(ctx) } // TagsPtrInput is an input type that accepts TagsArgs, TagsPtr and TagsPtrOutput values. // You can construct a concrete instance of `TagsPtrInput` via: // // TagsArgs{...} // // or: // // nil type TagsPtrInput interface { pulumi.Input ToTagsPtrOutput() TagsPtrOutput ToTagsPtrOutputWithContext(context.Context) TagsPtrOutput } type tagsPtrType TagsArgs func TagsPtr(v *TagsArgs) TagsPtrInput { return (*tagsPtrType)(v) } func (*tagsPtrType) ElementType() reflect.Type { return reflect.TypeOf((**Tags)(nil)).Elem() } func (i *tagsPtrType) ToTagsPtrOutput() TagsPtrOutput { return i.ToTagsPtrOutputWithContext(context.Background()) } func (i *tagsPtrType) ToTagsPtrOutputWithContext(ctx context.Context) TagsPtrOutput { return pulumi.ToOutputWithContext(ctx, i).(TagsPtrOutput) } // A set of instance tags. type TagsOutput struct{ *pulumi.OutputState } func (TagsOutput) ElementType() reflect.Type { return reflect.TypeOf((*Tags)(nil)).Elem() } func (o TagsOutput) ToTagsOutput() TagsOutput { return o } func (o TagsOutput) ToTagsOutputWithContext(ctx context.Context) TagsOutput { return o } func (o TagsOutput) ToTagsPtrOutput() TagsPtrOutput { return o.ToTagsPtrOutputWithContext(context.Background()) } func (o TagsOutput) ToTagsPtrOutputWithContext(ctx context.Context) TagsPtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v Tags) *Tags { return &v }).(TagsPtrOutput) } // An array of tags. Each tag must be 1-63 characters long, and comply with RFC1035. func (o TagsOutput) Items() pulumi.StringArrayOutput { return o.ApplyT(func(v Tags) []string { return v.Items }).(pulumi.StringArrayOutput) } type TagsPtrOutput struct{ *pulumi.OutputState } func (TagsPtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**Tags)(nil)).Elem() } func (o TagsPtrOutput) ToTagsPtrOutput() TagsPtrOutput { return o } func (o TagsPtrOutput) ToTagsPtrOutputWithContext(ctx context.Context) TagsPtrOutput { return o } func (o TagsPtrOutput) Elem() TagsOutput { return o.ApplyT(func(v *Tags) Tags { if v != nil { return *v } var ret Tags return ret }).(TagsOutput) } // An array of tags. Each tag must be 1-63 characters long, and comply with RFC1035. func (o TagsPtrOutput) Items() pulumi.StringArrayOutput { return o.ApplyT(func(v *Tags) []string { if v == nil { return nil } return v.Items }).(pulumi.StringArrayOutput) } // A set of instance tags. type TagsResponse struct { // Specifies a fingerprint for this request, which is essentially a hash of the tags' contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update tags. You must always provide an up-to-date fingerprint hash in order to update or change tags. To see the latest fingerprint, make get() request to the instance. Fingerprint string `pulumi:"fingerprint"` // An array of tags. Each tag must be 1-63 characters long, and comply with RFC1035. Items []string `pulumi:"items"` } // A set of instance tags. type TagsResponseOutput struct{ *pulumi.OutputState } func (TagsResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*TagsResponse)(nil)).Elem() } func (o TagsResponseOutput) ToTagsResponseOutput() TagsResponseOutput { return o } func (o TagsResponseOutput) ToTagsResponseOutputWithContext(ctx context.Context) TagsResponseOutput { return o } // Specifies a fingerprint for this request, which is essentially a hash of the tags' contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update tags. You must always provide an up-to-date fingerprint hash in order to update or change tags. To see the latest fingerprint, make get() request to the instance. func (o TagsResponseOutput) Fingerprint() pulumi.StringOutput { return o.ApplyT(func(v TagsResponse) string { return v.Fingerprint }).(pulumi.StringOutput) } // An array of tags. Each tag must be 1-63 characters long, and comply with RFC1035. func (o TagsResponseOutput) Items() pulumi.StringArrayOutput { return o.ApplyT(func(v TagsResponse) []string { return v.Items }).(pulumi.StringArrayOutput) } type Uint128Response struct { High string `pulumi:"high"` Low string `pulumi:"low"` } type Uint128ResponseOutput struct{ *pulumi.OutputState } func (Uint128ResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*Uint128Response)(nil)).Elem() } func (o Uint128ResponseOutput) ToUint128ResponseOutput() Uint128ResponseOutput { return o } func (o Uint128ResponseOutput) ToUint128ResponseOutputWithContext(ctx context.Context) Uint128ResponseOutput { return o } func (o Uint128ResponseOutput) High() pulumi.StringOutput { return o.ApplyT(func(v Uint128Response) string { return v.High }).(pulumi.StringOutput) } func (o Uint128ResponseOutput) Low() pulumi.StringOutput { return o.ApplyT(func(v Uint128Response) string { return v.Low }).(pulumi.StringOutput) } // Message for the expected URL mappings. type UrlMapTest struct { // Description of this test case. Description *string `pulumi:"description"` // The expected output URL evaluated by the load balancer containing the scheme, host, path and query parameters. For rules that forward requests to backends, the test passes only when expectedOutputUrl matches the request forwarded by the load balancer to backends. For rules with urlRewrite, the test verifies that the forwarded request matches hostRewrite and pathPrefixRewrite in the urlRewrite action. When service is specified, expectedOutputUrl`s scheme is ignored. For rules with urlRedirect, the test passes only if expectedOutputUrl matches the URL in the load balancer's redirect response. If urlRedirect specifies https_redirect, the test passes only if the scheme in expectedOutputUrl is also set to HTTPS. If urlRedirect specifies strip_query, the test passes only if expectedOutputUrl does not contain any query parameters. expectedOutputUrl is optional when service is specified. ExpectedOutputUrl *string `pulumi:"expectedOutputUrl"` // For rules with urlRedirect, the test passes only if expectedRedirectResponseCode matches the HTTP status code in load balancer's redirect response. expectedRedirectResponseCode cannot be set when service is set. ExpectedRedirectResponseCode *int `pulumi:"expectedRedirectResponseCode"` // HTTP headers for this request. If headers contains a host header, then host must also match the header value. Headers []UrlMapTestHeader `pulumi:"headers"` // Host portion of the URL. If headers contains a host header, then host must also match the header value. Host *string `pulumi:"host"` // Path portion of the URL. Path *string `pulumi:"path"` // Expected BackendService or BackendBucket resource the given URL should be mapped to. The service field cannot be set if expectedRedirectResponseCode is set. Service *string `pulumi:"service"` } // UrlMapTestInput is an input type that accepts UrlMapTestArgs and UrlMapTestOutput values. // You can construct a concrete instance of `UrlMapTestInput` via: // // UrlMapTestArgs{...} type UrlMapTestInput interface { pulumi.Input ToUrlMapTestOutput() UrlMapTestOutput ToUrlMapTestOutputWithContext(context.Context) UrlMapTestOutput } // Message for the expected URL mappings. type UrlMapTestArgs struct { // Description of this test case. Description pulumi.StringPtrInput `pulumi:"description"` // The expected output URL evaluated by the load balancer containing the scheme, host, path and query parameters. For rules that forward requests to backends, the test passes only when expectedOutputUrl matches the request forwarded by the load balancer to backends. For rules with urlRewrite, the test verifies that the forwarded request matches hostRewrite and pathPrefixRewrite in the urlRewrite action. When service is specified, expectedOutputUrl`s scheme is ignored. For rules with urlRedirect, the test passes only if expectedOutputUrl matches the URL in the load balancer's redirect response. If urlRedirect specifies https_redirect, the test passes only if the scheme in expectedOutputUrl is also set to HTTPS. If urlRedirect specifies strip_query, the test passes only if expectedOutputUrl does not contain any query parameters. expectedOutputUrl is optional when service is specified. ExpectedOutputUrl pulumi.StringPtrInput `pulumi:"expectedOutputUrl"` // For rules with urlRedirect, the test passes only if expectedRedirectResponseCode matches the HTTP status code in load balancer's redirect response. expectedRedirectResponseCode cannot be set when service is set. ExpectedRedirectResponseCode pulumi.IntPtrInput `pulumi:"expectedRedirectResponseCode"` // HTTP headers for this request. If headers contains a host header, then host must also match the header value. Headers UrlMapTestHeaderArrayInput `pulumi:"headers"` // Host portion of the URL. If headers contains a host header, then host must also match the header value. Host pulumi.StringPtrInput `pulumi:"host"` // Path portion of the URL. Path pulumi.StringPtrInput `pulumi:"path"` // Expected BackendService or BackendBucket resource the given URL should be mapped to. The service field cannot be set if expectedRedirectResponseCode is set. Service pulumi.StringPtrInput `pulumi:"service"` } func (UrlMapTestArgs) ElementType() reflect.Type { return reflect.TypeOf((*UrlMapTest)(nil)).Elem() } func (i UrlMapTestArgs) ToUrlMapTestOutput() UrlMapTestOutput { return i.ToUrlMapTestOutputWithContext(context.Background()) } func (i UrlMapTestArgs) ToUrlMapTestOutputWithContext(ctx context.Context) UrlMapTestOutput { return pulumi.ToOutputWithContext(ctx, i).(UrlMapTestOutput) } // UrlMapTestArrayInput is an input type that accepts UrlMapTestArray and UrlMapTestArrayOutput values. // You can construct a concrete instance of `UrlMapTestArrayInput` via: // // UrlMapTestArray{ UrlMapTestArgs{...} } type UrlMapTestArrayInput interface { pulumi.Input ToUrlMapTestArrayOutput() UrlMapTestArrayOutput ToUrlMapTestArrayOutputWithContext(context.Context) UrlMapTestArrayOutput } type UrlMapTestArray []UrlMapTestInput func (UrlMapTestArray) ElementType() reflect.Type { return reflect.TypeOf((*[]UrlMapTest)(nil)).Elem() } func (i UrlMapTestArray) ToUrlMapTestArrayOutput() UrlMapTestArrayOutput { return i.ToUrlMapTestArrayOutputWithContext(context.Background()) } func (i UrlMapTestArray) ToUrlMapTestArrayOutputWithContext(ctx context.Context) UrlMapTestArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(UrlMapTestArrayOutput) } // Message for the expected URL mappings. type UrlMapTestOutput struct{ *pulumi.OutputState } func (UrlMapTestOutput) ElementType() reflect.Type { return reflect.TypeOf((*UrlMapTest)(nil)).Elem() } func (o UrlMapTestOutput) ToUrlMapTestOutput() UrlMapTestOutput { return o } func (o UrlMapTestOutput) ToUrlMapTestOutputWithContext(ctx context.Context) UrlMapTestOutput { return o } // Description of this test case. func (o UrlMapTestOutput) Description() pulumi.StringPtrOutput { return o.ApplyT(func(v UrlMapTest) *string { return v.Description }).(pulumi.StringPtrOutput) } // The expected output URL evaluated by the load balancer containing the scheme, host, path and query parameters. For rules that forward requests to backends, the test passes only when expectedOutputUrl matches the request forwarded by the load balancer to backends. For rules with urlRewrite, the test verifies that the forwarded request matches hostRewrite and pathPrefixRewrite in the urlRewrite action. When service is specified, expectedOutputUrl`s scheme is ignored. For rules with urlRedirect, the test passes only if expectedOutputUrl matches the URL in the load balancer's redirect response. If urlRedirect specifies https_redirect, the test passes only if the scheme in expectedOutputUrl is also set to HTTPS. If urlRedirect specifies strip_query, the test passes only if expectedOutputUrl does not contain any query parameters. expectedOutputUrl is optional when service is specified. func (o UrlMapTestOutput) ExpectedOutputUrl() pulumi.StringPtrOutput { return o.ApplyT(func(v UrlMapTest) *string { return v.ExpectedOutputUrl }).(pulumi.StringPtrOutput) } // For rules with urlRedirect, the test passes only if expectedRedirectResponseCode matches the HTTP status code in load balancer's redirect response. expectedRedirectResponseCode cannot be set when service is set. func (o UrlMapTestOutput) ExpectedRedirectResponseCode() pulumi.IntPtrOutput { return o.ApplyT(func(v UrlMapTest) *int { return v.ExpectedRedirectResponseCode }).(pulumi.IntPtrOutput) } // HTTP headers for this request. If headers contains a host header, then host must also match the header value. func (o UrlMapTestOutput) Headers() UrlMapTestHeaderArrayOutput { return o.ApplyT(func(v UrlMapTest) []UrlMapTestHeader { return v.Headers }).(UrlMapTestHeaderArrayOutput) } // Host portion of the URL. If headers contains a host header, then host must also match the header value. func (o UrlMapTestOutput) Host() pulumi.StringPtrOutput { return o.ApplyT(func(v UrlMapTest) *string { return v.Host }).(pulumi.StringPtrOutput) } // Path portion of the URL. func (o UrlMapTestOutput) Path() pulumi.StringPtrOutput { return o.ApplyT(func(v UrlMapTest) *string { return v.Path }).(pulumi.StringPtrOutput) } // Expected BackendService or BackendBucket resource the given URL should be mapped to. The service field cannot be set if expectedRedirectResponseCode is set. func (o UrlMapTestOutput) Service() pulumi.StringPtrOutput { return o.ApplyT(func(v UrlMapTest) *string { return v.Service }).(pulumi.StringPtrOutput) } type UrlMapTestArrayOutput struct{ *pulumi.OutputState } func (UrlMapTestArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]UrlMapTest)(nil)).Elem() } func (o UrlMapTestArrayOutput) ToUrlMapTestArrayOutput() UrlMapTestArrayOutput { return o } func (o UrlMapTestArrayOutput) ToUrlMapTestArrayOutputWithContext(ctx context.Context) UrlMapTestArrayOutput { return o } func (o UrlMapTestArrayOutput) Index(i pulumi.IntInput) UrlMapTestOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) UrlMapTest { return vs[0].([]UrlMapTest)[vs[1].(int)] }).(UrlMapTestOutput) } // HTTP headers used in UrlMapTests. type UrlMapTestHeader struct { // Header name. Name *string `pulumi:"name"` // Header value. Value *string `pulumi:"value"` } // UrlMapTestHeaderInput is an input type that accepts UrlMapTestHeaderArgs and UrlMapTestHeaderOutput values. // You can construct a concrete instance of `UrlMapTestHeaderInput` via: // // UrlMapTestHeaderArgs{...} type UrlMapTestHeaderInput interface { pulumi.Input ToUrlMapTestHeaderOutput() UrlMapTestHeaderOutput ToUrlMapTestHeaderOutputWithContext(context.Context) UrlMapTestHeaderOutput } // HTTP headers used in UrlMapTests. type UrlMapTestHeaderArgs struct { // Header name. Name pulumi.StringPtrInput `pulumi:"name"` // Header value. Value pulumi.StringPtrInput `pulumi:"value"` } func (UrlMapTestHeaderArgs) ElementType() reflect.Type { return reflect.TypeOf((*UrlMapTestHeader)(nil)).Elem() } func (i UrlMapTestHeaderArgs) ToUrlMapTestHeaderOutput() UrlMapTestHeaderOutput { return i.ToUrlMapTestHeaderOutputWithContext(context.Background()) } func (i UrlMapTestHeaderArgs) ToUrlMapTestHeaderOutputWithContext(ctx context.Context) UrlMapTestHeaderOutput { return pulumi.ToOutputWithContext(ctx, i).(UrlMapTestHeaderOutput) } // UrlMapTestHeaderArrayInput is an input type that accepts UrlMapTestHeaderArray and UrlMapTestHeaderArrayOutput values. // You can construct a concrete instance of `UrlMapTestHeaderArrayInput` via: // // UrlMapTestHeaderArray{ UrlMapTestHeaderArgs{...} } type UrlMapTestHeaderArrayInput interface { pulumi.Input ToUrlMapTestHeaderArrayOutput() UrlMapTestHeaderArrayOutput ToUrlMapTestHeaderArrayOutputWithContext(context.Context) UrlMapTestHeaderArrayOutput } type UrlMapTestHeaderArray []UrlMapTestHeaderInput func (UrlMapTestHeaderArray) ElementType() reflect.Type { return reflect.TypeOf((*[]UrlMapTestHeader)(nil)).Elem() } func (i UrlMapTestHeaderArray) ToUrlMapTestHeaderArrayOutput() UrlMapTestHeaderArrayOutput { return i.ToUrlMapTestHeaderArrayOutputWithContext(context.Background()) } func (i UrlMapTestHeaderArray) ToUrlMapTestHeaderArrayOutputWithContext(ctx context.Context) UrlMapTestHeaderArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(UrlMapTestHeaderArrayOutput) } // HTTP headers used in UrlMapTests. type UrlMapTestHeaderOutput struct{ *pulumi.OutputState } func (UrlMapTestHeaderOutput) ElementType() reflect.Type { return reflect.TypeOf((*UrlMapTestHeader)(nil)).Elem() } func (o UrlMapTestHeaderOutput) ToUrlMapTestHeaderOutput() UrlMapTestHeaderOutput { return o } func (o UrlMapTestHeaderOutput) ToUrlMapTestHeaderOutputWithContext(ctx context.Context) UrlMapTestHeaderOutput { return o } // Header name. func (o UrlMapTestHeaderOutput) Name() pulumi.StringPtrOutput { return o.ApplyT(func(v UrlMapTestHeader) *string { return v.Name }).(pulumi.StringPtrOutput) } // Header value. func (o UrlMapTestHeaderOutput) Value() pulumi.StringPtrOutput { return o.ApplyT(func(v UrlMapTestHeader) *string { return v.Value }).(pulumi.StringPtrOutput) } type UrlMapTestHeaderArrayOutput struct{ *pulumi.OutputState } func (UrlMapTestHeaderArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]UrlMapTestHeader)(nil)).Elem() } func (o UrlMapTestHeaderArrayOutput) ToUrlMapTestHeaderArrayOutput() UrlMapTestHeaderArrayOutput { return o } func (o UrlMapTestHeaderArrayOutput) ToUrlMapTestHeaderArrayOutputWithContext(ctx context.Context) UrlMapTestHeaderArrayOutput { return o } func (o UrlMapTestHeaderArrayOutput) Index(i pulumi.IntInput) UrlMapTestHeaderOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) UrlMapTestHeader { return vs[0].([]UrlMapTestHeader)[vs[1].(int)] }).(UrlMapTestHeaderOutput) } // HTTP headers used in UrlMapTests. type UrlMapTestHeaderResponse struct { // Header name. Name string `pulumi:"name"` // Header value. Value string `pulumi:"value"` } // HTTP headers used in UrlMapTests. type UrlMapTestHeaderResponseOutput struct{ *pulumi.OutputState } func (UrlMapTestHeaderResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*UrlMapTestHeaderResponse)(nil)).Elem() } func (o UrlMapTestHeaderResponseOutput) ToUrlMapTestHeaderResponseOutput() UrlMapTestHeaderResponseOutput { return o } func (o UrlMapTestHeaderResponseOutput) ToUrlMapTestHeaderResponseOutputWithContext(ctx context.Context) UrlMapTestHeaderResponseOutput { return o } // Header name. func (o UrlMapTestHeaderResponseOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v UrlMapTestHeaderResponse) string { return v.Name }).(pulumi.StringOutput) } // Header value. func (o UrlMapTestHeaderResponseOutput) Value() pulumi.StringOutput { return o.ApplyT(func(v UrlMapTestHeaderResponse) string { return v.Value }).(pulumi.StringOutput) } type UrlMapTestHeaderResponseArrayOutput struct{ *pulumi.OutputState } func (UrlMapTestHeaderResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]UrlMapTestHeaderResponse)(nil)).Elem() } func (o UrlMapTestHeaderResponseArrayOutput) ToUrlMapTestHeaderResponseArrayOutput() UrlMapTestHeaderResponseArrayOutput { return o } func (o UrlMapTestHeaderResponseArrayOutput) ToUrlMapTestHeaderResponseArrayOutputWithContext(ctx context.Context) UrlMapTestHeaderResponseArrayOutput { return o } func (o UrlMapTestHeaderResponseArrayOutput) Index(i pulumi.IntInput) UrlMapTestHeaderResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) UrlMapTestHeaderResponse { return vs[0].([]UrlMapTestHeaderResponse)[vs[1].(int)] }).(UrlMapTestHeaderResponseOutput) } // Message for the expected URL mappings. type UrlMapTestResponse struct { // Description of this test case. Description string `pulumi:"description"` // The expected output URL evaluated by the load balancer containing the scheme, host, path and query parameters. For rules that forward requests to backends, the test passes only when expectedOutputUrl matches the request forwarded by the load balancer to backends. For rules with urlRewrite, the test verifies that the forwarded request matches hostRewrite and pathPrefixRewrite in the urlRewrite action. When service is specified, expectedOutputUrl`s scheme is ignored. For rules with urlRedirect, the test passes only if expectedOutputUrl matches the URL in the load balancer's redirect response. If urlRedirect specifies https_redirect, the test passes only if the scheme in expectedOutputUrl is also set to HTTPS. If urlRedirect specifies strip_query, the test passes only if expectedOutputUrl does not contain any query parameters. expectedOutputUrl is optional when service is specified. ExpectedOutputUrl string `pulumi:"expectedOutputUrl"` // For rules with urlRedirect, the test passes only if expectedRedirectResponseCode matches the HTTP status code in load balancer's redirect response. expectedRedirectResponseCode cannot be set when service is set. ExpectedRedirectResponseCode int `pulumi:"expectedRedirectResponseCode"` // HTTP headers for this request. If headers contains a host header, then host must also match the header value. Headers []UrlMapTestHeaderResponse `pulumi:"headers"` // Host portion of the URL. If headers contains a host header, then host must also match the header value. Host string `pulumi:"host"` // Path portion of the URL. Path string `pulumi:"path"` // Expected BackendService or BackendBucket resource the given URL should be mapped to. The service field cannot be set if expectedRedirectResponseCode is set. Service string `pulumi:"service"` } // Message for the expected URL mappings. type UrlMapTestResponseOutput struct{ *pulumi.OutputState } func (UrlMapTestResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*UrlMapTestResponse)(nil)).Elem() } func (o UrlMapTestResponseOutput) ToUrlMapTestResponseOutput() UrlMapTestResponseOutput { return o } func (o UrlMapTestResponseOutput) ToUrlMapTestResponseOutputWithContext(ctx context.Context) UrlMapTestResponseOutput { return o } // Description of this test case. func (o UrlMapTestResponseOutput) Description() pulumi.StringOutput { return o.ApplyT(func(v UrlMapTestResponse) string { return v.Description }).(pulumi.StringOutput) } // The expected output URL evaluated by the load balancer containing the scheme, host, path and query parameters. For rules that forward requests to backends, the test passes only when expectedOutputUrl matches the request forwarded by the load balancer to backends. For rules with urlRewrite, the test verifies that the forwarded request matches hostRewrite and pathPrefixRewrite in the urlRewrite action. When service is specified, expectedOutputUrl`s scheme is ignored. For rules with urlRedirect, the test passes only if expectedOutputUrl matches the URL in the load balancer's redirect response. If urlRedirect specifies https_redirect, the test passes only if the scheme in expectedOutputUrl is also set to HTTPS. If urlRedirect specifies strip_query, the test passes only if expectedOutputUrl does not contain any query parameters. expectedOutputUrl is optional when service is specified. func (o UrlMapTestResponseOutput) ExpectedOutputUrl() pulumi.StringOutput { return o.ApplyT(func(v UrlMapTestResponse) string { return v.ExpectedOutputUrl }).(pulumi.StringOutput) } // For rules with urlRedirect, the test passes only if expectedRedirectResponseCode matches the HTTP status code in load balancer's redirect response. expectedRedirectResponseCode cannot be set when service is set. func (o UrlMapTestResponseOutput) ExpectedRedirectResponseCode() pulumi.IntOutput { return o.ApplyT(func(v UrlMapTestResponse) int { return v.ExpectedRedirectResponseCode }).(pulumi.IntOutput) } // HTTP headers for this request. If headers contains a host header, then host must also match the header value. func (o UrlMapTestResponseOutput) Headers() UrlMapTestHeaderResponseArrayOutput { return o.ApplyT(func(v UrlMapTestResponse) []UrlMapTestHeaderResponse { return v.Headers }).(UrlMapTestHeaderResponseArrayOutput) } // Host portion of the URL. If headers contains a host header, then host must also match the header value. func (o UrlMapTestResponseOutput) Host() pulumi.StringOutput { return o.ApplyT(func(v UrlMapTestResponse) string { return v.Host }).(pulumi.StringOutput) } // Path portion of the URL. func (o UrlMapTestResponseOutput) Path() pulumi.StringOutput { return o.ApplyT(func(v UrlMapTestResponse) string { return v.Path }).(pulumi.StringOutput) } // Expected BackendService or BackendBucket resource the given URL should be mapped to. The service field cannot be set if expectedRedirectResponseCode is set. func (o UrlMapTestResponseOutput) Service() pulumi.StringOutput { return o.ApplyT(func(v UrlMapTestResponse) string { return v.Service }).(pulumi.StringOutput) } type UrlMapTestResponseArrayOutput struct{ *pulumi.OutputState } func (UrlMapTestResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]UrlMapTestResponse)(nil)).Elem() } func (o UrlMapTestResponseArrayOutput) ToUrlMapTestResponseArrayOutput() UrlMapTestResponseArrayOutput { return o } func (o UrlMapTestResponseArrayOutput) ToUrlMapTestResponseArrayOutputWithContext(ctx context.Context) UrlMapTestResponseArrayOutput { return o } func (o UrlMapTestResponseArrayOutput) Index(i pulumi.IntInput) UrlMapTestResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) UrlMapTestResponse { return vs[0].([]UrlMapTestResponse)[vs[1].(int)] }).(UrlMapTestResponseOutput) } // The spec for modifying the path before sending the request to the matched backend service. type UrlRewrite struct { // Before forwarding the request to the selected service, the request's host header is replaced with contents of hostRewrite. The value must be from 1 to 255 characters. HostRewrite *string `pulumi:"hostRewrite"` // Before forwarding the request to the selected backend service, the matching portion of the request's path is replaced by pathPrefixRewrite. The value must be from 1 to 1024 characters. PathPrefixRewrite *string `pulumi:"pathPrefixRewrite"` } // UrlRewriteInput is an input type that accepts UrlRewriteArgs and UrlRewriteOutput values. // You can construct a concrete instance of `UrlRewriteInput` via: // // UrlRewriteArgs{...} type UrlRewriteInput interface { pulumi.Input ToUrlRewriteOutput() UrlRewriteOutput ToUrlRewriteOutputWithContext(context.Context) UrlRewriteOutput } // The spec for modifying the path before sending the request to the matched backend service. type UrlRewriteArgs struct { // Before forwarding the request to the selected service, the request's host header is replaced with contents of hostRewrite. The value must be from 1 to 255 characters. HostRewrite pulumi.StringPtrInput `pulumi:"hostRewrite"` // Before forwarding the request to the selected backend service, the matching portion of the request's path is replaced by pathPrefixRewrite. The value must be from 1 to 1024 characters. PathPrefixRewrite pulumi.StringPtrInput `pulumi:"pathPrefixRewrite"` } func (UrlRewriteArgs) ElementType() reflect.Type { return reflect.TypeOf((*UrlRewrite)(nil)).Elem() } func (i UrlRewriteArgs) ToUrlRewriteOutput() UrlRewriteOutput { return i.ToUrlRewriteOutputWithContext(context.Background()) } func (i UrlRewriteArgs) ToUrlRewriteOutputWithContext(ctx context.Context) UrlRewriteOutput { return pulumi.ToOutputWithContext(ctx, i).(UrlRewriteOutput) } func (i UrlRewriteArgs) ToUrlRewritePtrOutput() UrlRewritePtrOutput { return i.ToUrlRewritePtrOutputWithContext(context.Background()) } func (i UrlRewriteArgs) ToUrlRewritePtrOutputWithContext(ctx context.Context) UrlRewritePtrOutput { return pulumi.ToOutputWithContext(ctx, i).(UrlRewriteOutput).ToUrlRewritePtrOutputWithContext(ctx) } // UrlRewritePtrInput is an input type that accepts UrlRewriteArgs, UrlRewritePtr and UrlRewritePtrOutput values. // You can construct a concrete instance of `UrlRewritePtrInput` via: // // UrlRewriteArgs{...} // // or: // // nil type UrlRewritePtrInput interface { pulumi.Input ToUrlRewritePtrOutput() UrlRewritePtrOutput ToUrlRewritePtrOutputWithContext(context.Context) UrlRewritePtrOutput } type urlRewritePtrType UrlRewriteArgs func UrlRewritePtr(v *UrlRewriteArgs) UrlRewritePtrInput { return (*urlRewritePtrType)(v) } func (*urlRewritePtrType) ElementType() reflect.Type { return reflect.TypeOf((**UrlRewrite)(nil)).Elem() } func (i *urlRewritePtrType) ToUrlRewritePtrOutput() UrlRewritePtrOutput { return i.ToUrlRewritePtrOutputWithContext(context.Background()) } func (i *urlRewritePtrType) ToUrlRewritePtrOutputWithContext(ctx context.Context) UrlRewritePtrOutput { return pulumi.ToOutputWithContext(ctx, i).(UrlRewritePtrOutput) } // The spec for modifying the path before sending the request to the matched backend service. type UrlRewriteOutput struct{ *pulumi.OutputState } func (UrlRewriteOutput) ElementType() reflect.Type { return reflect.TypeOf((*UrlRewrite)(nil)).Elem() } func (o UrlRewriteOutput) ToUrlRewriteOutput() UrlRewriteOutput { return o } func (o UrlRewriteOutput) ToUrlRewriteOutputWithContext(ctx context.Context) UrlRewriteOutput { return o } func (o UrlRewriteOutput) ToUrlRewritePtrOutput() UrlRewritePtrOutput { return o.ToUrlRewritePtrOutputWithContext(context.Background()) } func (o UrlRewriteOutput) ToUrlRewritePtrOutputWithContext(ctx context.Context) UrlRewritePtrOutput { return o.ApplyTWithContext(ctx, func(_ context.Context, v UrlRewrite) *UrlRewrite { return &v }).(UrlRewritePtrOutput) } // Before forwarding the request to the selected service, the request's host header is replaced with contents of hostRewrite. The value must be from 1 to 255 characters. func (o UrlRewriteOutput) HostRewrite() pulumi.StringPtrOutput { return o.ApplyT(func(v UrlRewrite) *string { return v.HostRewrite }).(pulumi.StringPtrOutput) } // Before forwarding the request to the selected backend service, the matching portion of the request's path is replaced by pathPrefixRewrite. The value must be from 1 to 1024 characters. func (o UrlRewriteOutput) PathPrefixRewrite() pulumi.StringPtrOutput { return o.ApplyT(func(v UrlRewrite) *string { return v.PathPrefixRewrite }).(pulumi.StringPtrOutput) } type UrlRewritePtrOutput struct{ *pulumi.OutputState } func (UrlRewritePtrOutput) ElementType() reflect.Type { return reflect.TypeOf((**UrlRewrite)(nil)).Elem() } func (o UrlRewritePtrOutput) ToUrlRewritePtrOutput() UrlRewritePtrOutput { return o } func (o UrlRewritePtrOutput) ToUrlRewritePtrOutputWithContext(ctx context.Context) UrlRewritePtrOutput { return o } func (o UrlRewritePtrOutput) Elem() UrlRewriteOutput { return o.ApplyT(func(v *UrlRewrite) UrlRewrite { if v != nil { return *v } var ret UrlRewrite return ret }).(UrlRewriteOutput) } // Before forwarding the request to the selected service, the request's host header is replaced with contents of hostRewrite. The value must be from 1 to 255 characters. func (o UrlRewritePtrOutput) HostRewrite() pulumi.StringPtrOutput { return o.ApplyT(func(v *UrlRewrite) *string { if v == nil { return nil } return v.HostRewrite }).(pulumi.StringPtrOutput) } // Before forwarding the request to the selected backend service, the matching portion of the request's path is replaced by pathPrefixRewrite. The value must be from 1 to 1024 characters. func (o UrlRewritePtrOutput) PathPrefixRewrite() pulumi.StringPtrOutput { return o.ApplyT(func(v *UrlRewrite) *string { if v == nil { return nil } return v.PathPrefixRewrite }).(pulumi.StringPtrOutput) } // The spec for modifying the path before sending the request to the matched backend service. type UrlRewriteResponse struct { // Before forwarding the request to the selected service, the request's host header is replaced with contents of hostRewrite. The value must be from 1 to 255 characters. HostRewrite string `pulumi:"hostRewrite"` // Before forwarding the request to the selected backend service, the matching portion of the request's path is replaced by pathPrefixRewrite. The value must be from 1 to 1024 characters. PathPrefixRewrite string `pulumi:"pathPrefixRewrite"` } // The spec for modifying the path before sending the request to the matched backend service. type UrlRewriteResponseOutput struct{ *pulumi.OutputState } func (UrlRewriteResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*UrlRewriteResponse)(nil)).Elem() } func (o UrlRewriteResponseOutput) ToUrlRewriteResponseOutput() UrlRewriteResponseOutput { return o } func (o UrlRewriteResponseOutput) ToUrlRewriteResponseOutputWithContext(ctx context.Context) UrlRewriteResponseOutput { return o } // Before forwarding the request to the selected service, the request's host header is replaced with contents of hostRewrite. The value must be from 1 to 255 characters. func (o UrlRewriteResponseOutput) HostRewrite() pulumi.StringOutput { return o.ApplyT(func(v UrlRewriteResponse) string { return v.HostRewrite }).(pulumi.StringOutput) } // Before forwarding the request to the selected backend service, the matching portion of the request's path is replaced by pathPrefixRewrite. The value must be from 1 to 1024 characters. func (o UrlRewriteResponseOutput) PathPrefixRewrite() pulumi.StringOutput { return o.ApplyT(func(v UrlRewriteResponse) string { return v.PathPrefixRewrite }).(pulumi.StringOutput) } // A VPN gateway interface. type VpnGatewayVpnGatewayInterface struct { // URL of the VLAN attachment (interconnectAttachment) resource for this VPN gateway interface. When the value of this field is present, the VPN gateway is used for IPsec-encrypted Cloud Interconnect; all egress or ingress traffic for this VPN gateway interface goes through the specified VLAN attachment resource. Not currently available publicly. InterconnectAttachment *string `pulumi:"interconnectAttachment"` } // VpnGatewayVpnGatewayInterfaceInput is an input type that accepts VpnGatewayVpnGatewayInterfaceArgs and VpnGatewayVpnGatewayInterfaceOutput values. // You can construct a concrete instance of `VpnGatewayVpnGatewayInterfaceInput` via: // // VpnGatewayVpnGatewayInterfaceArgs{...} type VpnGatewayVpnGatewayInterfaceInput interface { pulumi.Input ToVpnGatewayVpnGatewayInterfaceOutput() VpnGatewayVpnGatewayInterfaceOutput ToVpnGatewayVpnGatewayInterfaceOutputWithContext(context.Context) VpnGatewayVpnGatewayInterfaceOutput } // A VPN gateway interface. type VpnGatewayVpnGatewayInterfaceArgs struct { // URL of the VLAN attachment (interconnectAttachment) resource for this VPN gateway interface. When the value of this field is present, the VPN gateway is used for IPsec-encrypted Cloud Interconnect; all egress or ingress traffic for this VPN gateway interface goes through the specified VLAN attachment resource. Not currently available publicly. InterconnectAttachment pulumi.StringPtrInput `pulumi:"interconnectAttachment"` } func (VpnGatewayVpnGatewayInterfaceArgs) ElementType() reflect.Type { return reflect.TypeOf((*VpnGatewayVpnGatewayInterface)(nil)).Elem() } func (i VpnGatewayVpnGatewayInterfaceArgs) ToVpnGatewayVpnGatewayInterfaceOutput() VpnGatewayVpnGatewayInterfaceOutput { return i.ToVpnGatewayVpnGatewayInterfaceOutputWithContext(context.Background()) } func (i VpnGatewayVpnGatewayInterfaceArgs) ToVpnGatewayVpnGatewayInterfaceOutputWithContext(ctx context.Context) VpnGatewayVpnGatewayInterfaceOutput { return pulumi.ToOutputWithContext(ctx, i).(VpnGatewayVpnGatewayInterfaceOutput) } // VpnGatewayVpnGatewayInterfaceArrayInput is an input type that accepts VpnGatewayVpnGatewayInterfaceArray and VpnGatewayVpnGatewayInterfaceArrayOutput values. // You can construct a concrete instance of `VpnGatewayVpnGatewayInterfaceArrayInput` via: // // VpnGatewayVpnGatewayInterfaceArray{ VpnGatewayVpnGatewayInterfaceArgs{...} } type VpnGatewayVpnGatewayInterfaceArrayInput interface { pulumi.Input ToVpnGatewayVpnGatewayInterfaceArrayOutput() VpnGatewayVpnGatewayInterfaceArrayOutput ToVpnGatewayVpnGatewayInterfaceArrayOutputWithContext(context.Context) VpnGatewayVpnGatewayInterfaceArrayOutput } type VpnGatewayVpnGatewayInterfaceArray []VpnGatewayVpnGatewayInterfaceInput func (VpnGatewayVpnGatewayInterfaceArray) ElementType() reflect.Type { return reflect.TypeOf((*[]VpnGatewayVpnGatewayInterface)(nil)).Elem() } func (i VpnGatewayVpnGatewayInterfaceArray) ToVpnGatewayVpnGatewayInterfaceArrayOutput() VpnGatewayVpnGatewayInterfaceArrayOutput { return i.ToVpnGatewayVpnGatewayInterfaceArrayOutputWithContext(context.Background()) } func (i VpnGatewayVpnGatewayInterfaceArray) ToVpnGatewayVpnGatewayInterfaceArrayOutputWithContext(ctx context.Context) VpnGatewayVpnGatewayInterfaceArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(VpnGatewayVpnGatewayInterfaceArrayOutput) } // A VPN gateway interface. type VpnGatewayVpnGatewayInterfaceOutput struct{ *pulumi.OutputState } func (VpnGatewayVpnGatewayInterfaceOutput) ElementType() reflect.Type { return reflect.TypeOf((*VpnGatewayVpnGatewayInterface)(nil)).Elem() } func (o VpnGatewayVpnGatewayInterfaceOutput) ToVpnGatewayVpnGatewayInterfaceOutput() VpnGatewayVpnGatewayInterfaceOutput { return o } func (o VpnGatewayVpnGatewayInterfaceOutput) ToVpnGatewayVpnGatewayInterfaceOutputWithContext(ctx context.Context) VpnGatewayVpnGatewayInterfaceOutput { return o } // URL of the VLAN attachment (interconnectAttachment) resource for this VPN gateway interface. When the value of this field is present, the VPN gateway is used for IPsec-encrypted Cloud Interconnect; all egress or ingress traffic for this VPN gateway interface goes through the specified VLAN attachment resource. Not currently available publicly. func (o VpnGatewayVpnGatewayInterfaceOutput) InterconnectAttachment() pulumi.StringPtrOutput { return o.ApplyT(func(v VpnGatewayVpnGatewayInterface) *string { return v.InterconnectAttachment }).(pulumi.StringPtrOutput) } type VpnGatewayVpnGatewayInterfaceArrayOutput struct{ *pulumi.OutputState } func (VpnGatewayVpnGatewayInterfaceArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]VpnGatewayVpnGatewayInterface)(nil)).Elem() } func (o VpnGatewayVpnGatewayInterfaceArrayOutput) ToVpnGatewayVpnGatewayInterfaceArrayOutput() VpnGatewayVpnGatewayInterfaceArrayOutput { return o } func (o VpnGatewayVpnGatewayInterfaceArrayOutput) ToVpnGatewayVpnGatewayInterfaceArrayOutputWithContext(ctx context.Context) VpnGatewayVpnGatewayInterfaceArrayOutput { return o } func (o VpnGatewayVpnGatewayInterfaceArrayOutput) Index(i pulumi.IntInput) VpnGatewayVpnGatewayInterfaceOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) VpnGatewayVpnGatewayInterface { return vs[0].([]VpnGatewayVpnGatewayInterface)[vs[1].(int)] }).(VpnGatewayVpnGatewayInterfaceOutput) } // A VPN gateway interface. type VpnGatewayVpnGatewayInterfaceResponse struct { // URL of the VLAN attachment (interconnectAttachment) resource for this VPN gateway interface. When the value of this field is present, the VPN gateway is used for IPsec-encrypted Cloud Interconnect; all egress or ingress traffic for this VPN gateway interface goes through the specified VLAN attachment resource. Not currently available publicly. InterconnectAttachment string `pulumi:"interconnectAttachment"` // IP address for this VPN interface associated with the VPN gateway. The IP address could be either a regional external IP address or a regional internal IP address. The two IP addresses for a VPN gateway must be all regional external or regional internal IP addresses. There cannot be a mix of regional external IP addresses and regional internal IP addresses. For IPsec-encrypted Cloud Interconnect, the IP addresses for both interfaces could either be regional internal IP addresses or regional external IP addresses. For regular (non IPsec-encrypted Cloud Interconnect) HA VPN tunnels, the IP address must be a regional external IP address. IpAddress string `pulumi:"ipAddress"` } // A VPN gateway interface. type VpnGatewayVpnGatewayInterfaceResponseOutput struct{ *pulumi.OutputState } func (VpnGatewayVpnGatewayInterfaceResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*VpnGatewayVpnGatewayInterfaceResponse)(nil)).Elem() } func (o VpnGatewayVpnGatewayInterfaceResponseOutput) ToVpnGatewayVpnGatewayInterfaceResponseOutput() VpnGatewayVpnGatewayInterfaceResponseOutput { return o } func (o VpnGatewayVpnGatewayInterfaceResponseOutput) ToVpnGatewayVpnGatewayInterfaceResponseOutputWithContext(ctx context.Context) VpnGatewayVpnGatewayInterfaceResponseOutput { return o } // URL of the VLAN attachment (interconnectAttachment) resource for this VPN gateway interface. When the value of this field is present, the VPN gateway is used for IPsec-encrypted Cloud Interconnect; all egress or ingress traffic for this VPN gateway interface goes through the specified VLAN attachment resource. Not currently available publicly. func (o VpnGatewayVpnGatewayInterfaceResponseOutput) InterconnectAttachment() pulumi.StringOutput { return o.ApplyT(func(v VpnGatewayVpnGatewayInterfaceResponse) string { return v.InterconnectAttachment }).(pulumi.StringOutput) } // IP address for this VPN interface associated with the VPN gateway. The IP address could be either a regional external IP address or a regional internal IP address. The two IP addresses for a VPN gateway must be all regional external or regional internal IP addresses. There cannot be a mix of regional external IP addresses and regional internal IP addresses. For IPsec-encrypted Cloud Interconnect, the IP addresses for both interfaces could either be regional internal IP addresses or regional external IP addresses. For regular (non IPsec-encrypted Cloud Interconnect) HA VPN tunnels, the IP address must be a regional external IP address. func (o VpnGatewayVpnGatewayInterfaceResponseOutput) IpAddress() pulumi.StringOutput { return o.ApplyT(func(v VpnGatewayVpnGatewayInterfaceResponse) string { return v.IpAddress }).(pulumi.StringOutput) } type VpnGatewayVpnGatewayInterfaceResponseArrayOutput struct{ *pulumi.OutputState } func (VpnGatewayVpnGatewayInterfaceResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]VpnGatewayVpnGatewayInterfaceResponse)(nil)).Elem() } func (o VpnGatewayVpnGatewayInterfaceResponseArrayOutput) ToVpnGatewayVpnGatewayInterfaceResponseArrayOutput() VpnGatewayVpnGatewayInterfaceResponseArrayOutput { return o } func (o VpnGatewayVpnGatewayInterfaceResponseArrayOutput) ToVpnGatewayVpnGatewayInterfaceResponseArrayOutputWithContext(ctx context.Context) VpnGatewayVpnGatewayInterfaceResponseArrayOutput { return o } func (o VpnGatewayVpnGatewayInterfaceResponseArrayOutput) Index(i pulumi.IntInput) VpnGatewayVpnGatewayInterfaceResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) VpnGatewayVpnGatewayInterfaceResponse { return vs[0].([]VpnGatewayVpnGatewayInterfaceResponse)[vs[1].(int)] }).(VpnGatewayVpnGatewayInterfaceResponseOutput) } // In contrast to a single BackendService in HttpRouteAction to which all matching traffic is directed to, WeightedBackendService allows traffic to be split across multiple backend services. The volume of traffic for each backend service is proportional to the weight specified in each WeightedBackendService type WeightedBackendService struct { // The full or partial URL to the default BackendService resource. Before forwarding the request to backendService, the load balancer applies any relevant headerActions specified as part of this backendServiceWeight. BackendService *string `pulumi:"backendService"` // Specifies changes to request and response headers that need to take effect for the selected backendService. headerAction specified here take effect before headerAction in the enclosing HttpRouteRule, PathMatcher and UrlMap. headerAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. HeaderAction *HttpHeaderAction `pulumi:"headerAction"` // Specifies the fraction of traffic sent to a backend service, computed as weight / (sum of all weightedBackendService weights in routeAction) . The selection of a backend service is determined only for new traffic. Once a user's request has been directed to a backend service, subsequent requests are sent to the same backend service as determined by the backend service's session affinity policy. The value must be from 0 to 1000. Weight *int `pulumi:"weight"` } // WeightedBackendServiceInput is an input type that accepts WeightedBackendServiceArgs and WeightedBackendServiceOutput values. // You can construct a concrete instance of `WeightedBackendServiceInput` via: // // WeightedBackendServiceArgs{...} type WeightedBackendServiceInput interface { pulumi.Input ToWeightedBackendServiceOutput() WeightedBackendServiceOutput ToWeightedBackendServiceOutputWithContext(context.Context) WeightedBackendServiceOutput } // In contrast to a single BackendService in HttpRouteAction to which all matching traffic is directed to, WeightedBackendService allows traffic to be split across multiple backend services. The volume of traffic for each backend service is proportional to the weight specified in each WeightedBackendService type WeightedBackendServiceArgs struct { // The full or partial URL to the default BackendService resource. Before forwarding the request to backendService, the load balancer applies any relevant headerActions specified as part of this backendServiceWeight. BackendService pulumi.StringPtrInput `pulumi:"backendService"` // Specifies changes to request and response headers that need to take effect for the selected backendService. headerAction specified here take effect before headerAction in the enclosing HttpRouteRule, PathMatcher and UrlMap. headerAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. HeaderAction HttpHeaderActionPtrInput `pulumi:"headerAction"` // Specifies the fraction of traffic sent to a backend service, computed as weight / (sum of all weightedBackendService weights in routeAction) . The selection of a backend service is determined only for new traffic. Once a user's request has been directed to a backend service, subsequent requests are sent to the same backend service as determined by the backend service's session affinity policy. The value must be from 0 to 1000. Weight pulumi.IntPtrInput `pulumi:"weight"` } func (WeightedBackendServiceArgs) ElementType() reflect.Type { return reflect.TypeOf((*WeightedBackendService)(nil)).Elem() } func (i WeightedBackendServiceArgs) ToWeightedBackendServiceOutput() WeightedBackendServiceOutput { return i.ToWeightedBackendServiceOutputWithContext(context.Background()) } func (i WeightedBackendServiceArgs) ToWeightedBackendServiceOutputWithContext(ctx context.Context) WeightedBackendServiceOutput { return pulumi.ToOutputWithContext(ctx, i).(WeightedBackendServiceOutput) } // WeightedBackendServiceArrayInput is an input type that accepts WeightedBackendServiceArray and WeightedBackendServiceArrayOutput values. // You can construct a concrete instance of `WeightedBackendServiceArrayInput` via: // // WeightedBackendServiceArray{ WeightedBackendServiceArgs{...} } type WeightedBackendServiceArrayInput interface { pulumi.Input ToWeightedBackendServiceArrayOutput() WeightedBackendServiceArrayOutput ToWeightedBackendServiceArrayOutputWithContext(context.Context) WeightedBackendServiceArrayOutput } type WeightedBackendServiceArray []WeightedBackendServiceInput func (WeightedBackendServiceArray) ElementType() reflect.Type { return reflect.TypeOf((*[]WeightedBackendService)(nil)).Elem() } func (i WeightedBackendServiceArray) ToWeightedBackendServiceArrayOutput() WeightedBackendServiceArrayOutput { return i.ToWeightedBackendServiceArrayOutputWithContext(context.Background()) } func (i WeightedBackendServiceArray) ToWeightedBackendServiceArrayOutputWithContext(ctx context.Context) WeightedBackendServiceArrayOutput { return pulumi.ToOutputWithContext(ctx, i).(WeightedBackendServiceArrayOutput) } // In contrast to a single BackendService in HttpRouteAction to which all matching traffic is directed to, WeightedBackendService allows traffic to be split across multiple backend services. The volume of traffic for each backend service is proportional to the weight specified in each WeightedBackendService type WeightedBackendServiceOutput struct{ *pulumi.OutputState } func (WeightedBackendServiceOutput) ElementType() reflect.Type { return reflect.TypeOf((*WeightedBackendService)(nil)).Elem() } func (o WeightedBackendServiceOutput) ToWeightedBackendServiceOutput() WeightedBackendServiceOutput { return o } func (o WeightedBackendServiceOutput) ToWeightedBackendServiceOutputWithContext(ctx context.Context) WeightedBackendServiceOutput { return o } // The full or partial URL to the default BackendService resource. Before forwarding the request to backendService, the load balancer applies any relevant headerActions specified as part of this backendServiceWeight. func (o WeightedBackendServiceOutput) BackendService() pulumi.StringPtrOutput { return o.ApplyT(func(v WeightedBackendService) *string { return v.BackendService }).(pulumi.StringPtrOutput) } // Specifies changes to request and response headers that need to take effect for the selected backendService. headerAction specified here take effect before headerAction in the enclosing HttpRouteRule, PathMatcher and UrlMap. headerAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. func (o WeightedBackendServiceOutput) HeaderAction() HttpHeaderActionPtrOutput { return o.ApplyT(func(v WeightedBackendService) *HttpHeaderAction { return v.HeaderAction }).(HttpHeaderActionPtrOutput) } // Specifies the fraction of traffic sent to a backend service, computed as weight / (sum of all weightedBackendService weights in routeAction) . The selection of a backend service is determined only for new traffic. Once a user's request has been directed to a backend service, subsequent requests are sent to the same backend service as determined by the backend service's session affinity policy. The value must be from 0 to 1000. func (o WeightedBackendServiceOutput) Weight() pulumi.IntPtrOutput { return o.ApplyT(func(v WeightedBackendService) *int { return v.Weight }).(pulumi.IntPtrOutput) } type WeightedBackendServiceArrayOutput struct{ *pulumi.OutputState } func (WeightedBackendServiceArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]WeightedBackendService)(nil)).Elem() } func (o WeightedBackendServiceArrayOutput) ToWeightedBackendServiceArrayOutput() WeightedBackendServiceArrayOutput { return o } func (o WeightedBackendServiceArrayOutput) ToWeightedBackendServiceArrayOutputWithContext(ctx context.Context) WeightedBackendServiceArrayOutput { return o } func (o WeightedBackendServiceArrayOutput) Index(i pulumi.IntInput) WeightedBackendServiceOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) WeightedBackendService { return vs[0].([]WeightedBackendService)[vs[1].(int)] }).(WeightedBackendServiceOutput) } // In contrast to a single BackendService in HttpRouteAction to which all matching traffic is directed to, WeightedBackendService allows traffic to be split across multiple backend services. The volume of traffic for each backend service is proportional to the weight specified in each WeightedBackendService type WeightedBackendServiceResponse struct { // The full or partial URL to the default BackendService resource. Before forwarding the request to backendService, the load balancer applies any relevant headerActions specified as part of this backendServiceWeight. BackendService string `pulumi:"backendService"` // Specifies changes to request and response headers that need to take effect for the selected backendService. headerAction specified here take effect before headerAction in the enclosing HttpRouteRule, PathMatcher and UrlMap. headerAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. HeaderAction HttpHeaderActionResponse `pulumi:"headerAction"` // Specifies the fraction of traffic sent to a backend service, computed as weight / (sum of all weightedBackendService weights in routeAction) . The selection of a backend service is determined only for new traffic. Once a user's request has been directed to a backend service, subsequent requests are sent to the same backend service as determined by the backend service's session affinity policy. The value must be from 0 to 1000. Weight int `pulumi:"weight"` } // In contrast to a single BackendService in HttpRouteAction to which all matching traffic is directed to, WeightedBackendService allows traffic to be split across multiple backend services. The volume of traffic for each backend service is proportional to the weight specified in each WeightedBackendService type WeightedBackendServiceResponseOutput struct{ *pulumi.OutputState } func (WeightedBackendServiceResponseOutput) ElementType() reflect.Type { return reflect.TypeOf((*WeightedBackendServiceResponse)(nil)).Elem() } func (o WeightedBackendServiceResponseOutput) ToWeightedBackendServiceResponseOutput() WeightedBackendServiceResponseOutput { return o } func (o WeightedBackendServiceResponseOutput) ToWeightedBackendServiceResponseOutputWithContext(ctx context.Context) WeightedBackendServiceResponseOutput { return o } // The full or partial URL to the default BackendService resource. Before forwarding the request to backendService, the load balancer applies any relevant headerActions specified as part of this backendServiceWeight. func (o WeightedBackendServiceResponseOutput) BackendService() pulumi.StringOutput { return o.ApplyT(func(v WeightedBackendServiceResponse) string { return v.BackendService }).(pulumi.StringOutput) } // Specifies changes to request and response headers that need to take effect for the selected backendService. headerAction specified here take effect before headerAction in the enclosing HttpRouteRule, PathMatcher and UrlMap. headerAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true. func (o WeightedBackendServiceResponseOutput) HeaderAction() HttpHeaderActionResponseOutput { return o.ApplyT(func(v WeightedBackendServiceResponse) HttpHeaderActionResponse { return v.HeaderAction }).(HttpHeaderActionResponseOutput) } // Specifies the fraction of traffic sent to a backend service, computed as weight / (sum of all weightedBackendService weights in routeAction) . The selection of a backend service is determined only for new traffic. Once a user's request has been directed to a backend service, subsequent requests are sent to the same backend service as determined by the backend service's session affinity policy. The value must be from 0 to 1000. func (o WeightedBackendServiceResponseOutput) Weight() pulumi.IntOutput { return o.ApplyT(func(v WeightedBackendServiceResponse) int { return v.Weight }).(pulumi.IntOutput) } type WeightedBackendServiceResponseArrayOutput struct{ *pulumi.OutputState } func (WeightedBackendServiceResponseArrayOutput) ElementType() reflect.Type { return reflect.TypeOf((*[]WeightedBackendServiceResponse)(nil)).Elem() } func (o WeightedBackendServiceResponseArrayOutput) ToWeightedBackendServiceResponseArrayOutput() WeightedBackendServiceResponseArrayOutput { return o } func (o WeightedBackendServiceResponseArrayOutput) ToWeightedBackendServiceResponseArrayOutputWithContext(ctx context.Context) WeightedBackendServiceResponseArrayOutput { return o } func (o WeightedBackendServiceResponseArrayOutput) Index(i pulumi.IntInput) WeightedBackendServiceResponseOutput { return pulumi.All(o, i).ApplyT(func(vs []interface{}) WeightedBackendServiceResponse { return vs[0].([]WeightedBackendServiceResponse)[vs[1].(int)] }).(WeightedBackendServiceResponseOutput) } func init() { pulumi.RegisterInputType(reflect.TypeOf((*AcceleratorConfigInput)(nil)).Elem(), AcceleratorConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AcceleratorConfigArrayInput)(nil)).Elem(), AcceleratorConfigArray{}) pulumi.RegisterInputType(reflect.TypeOf((*AccessConfigInput)(nil)).Elem(), AccessConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AccessConfigArrayInput)(nil)).Elem(), AccessConfigArray{}) pulumi.RegisterInputType(reflect.TypeOf((*AdvancedMachineFeaturesInput)(nil)).Elem(), AdvancedMachineFeaturesArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AdvancedMachineFeaturesPtrInput)(nil)).Elem(), AdvancedMachineFeaturesArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AliasIpRangeInput)(nil)).Elem(), AliasIpRangeArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AliasIpRangeArrayInput)(nil)).Elem(), AliasIpRangeArray{}) pulumi.RegisterInputType(reflect.TypeOf((*AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskInput)(nil)).Elem(), AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskArrayInput)(nil)).Elem(), AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskArray{}) pulumi.RegisterInputType(reflect.TypeOf((*AllocationSpecificSKUAllocationReservedInstancePropertiesInput)(nil)).Elem(), AllocationSpecificSKUAllocationReservedInstancePropertiesArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AllocationSpecificSKUAllocationReservedInstancePropertiesPtrInput)(nil)).Elem(), AllocationSpecificSKUAllocationReservedInstancePropertiesArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AllocationSpecificSKUReservationInput)(nil)).Elem(), AllocationSpecificSKUReservationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AllocationSpecificSKUReservationPtrInput)(nil)).Elem(), AllocationSpecificSKUReservationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AttachedDiskInput)(nil)).Elem(), AttachedDiskArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AttachedDiskArrayInput)(nil)).Elem(), AttachedDiskArray{}) pulumi.RegisterInputType(reflect.TypeOf((*AttachedDiskInitializeParamsInput)(nil)).Elem(), AttachedDiskInitializeParamsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AttachedDiskInitializeParamsPtrInput)(nil)).Elem(), AttachedDiskInitializeParamsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AuditConfigInput)(nil)).Elem(), AuditConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AuditConfigArrayInput)(nil)).Elem(), AuditConfigArray{}) pulumi.RegisterInputType(reflect.TypeOf((*AuditLogConfigInput)(nil)).Elem(), AuditLogConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AuditLogConfigArrayInput)(nil)).Elem(), AuditLogConfigArray{}) pulumi.RegisterInputType(reflect.TypeOf((*AuthorizationLoggingOptionsInput)(nil)).Elem(), AuthorizationLoggingOptionsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AuthorizationLoggingOptionsPtrInput)(nil)).Elem(), AuthorizationLoggingOptionsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AutoscalingPolicyInput)(nil)).Elem(), AutoscalingPolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AutoscalingPolicyPtrInput)(nil)).Elem(), AutoscalingPolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AutoscalingPolicyCpuUtilizationInput)(nil)).Elem(), AutoscalingPolicyCpuUtilizationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AutoscalingPolicyCpuUtilizationPtrInput)(nil)).Elem(), AutoscalingPolicyCpuUtilizationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AutoscalingPolicyCustomMetricUtilizationInput)(nil)).Elem(), AutoscalingPolicyCustomMetricUtilizationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AutoscalingPolicyCustomMetricUtilizationArrayInput)(nil)).Elem(), AutoscalingPolicyCustomMetricUtilizationArray{}) pulumi.RegisterInputType(reflect.TypeOf((*AutoscalingPolicyLoadBalancingUtilizationInput)(nil)).Elem(), AutoscalingPolicyLoadBalancingUtilizationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AutoscalingPolicyLoadBalancingUtilizationPtrInput)(nil)).Elem(), AutoscalingPolicyLoadBalancingUtilizationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AutoscalingPolicyScaleInControlInput)(nil)).Elem(), AutoscalingPolicyScaleInControlArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AutoscalingPolicyScaleInControlPtrInput)(nil)).Elem(), AutoscalingPolicyScaleInControlArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*BackendInput)(nil)).Elem(), BackendArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*BackendArrayInput)(nil)).Elem(), BackendArray{}) pulumi.RegisterInputType(reflect.TypeOf((*BackendBucketCdnPolicyInput)(nil)).Elem(), BackendBucketCdnPolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*BackendBucketCdnPolicyPtrInput)(nil)).Elem(), BackendBucketCdnPolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*BackendBucketCdnPolicyBypassCacheOnRequestHeaderInput)(nil)).Elem(), BackendBucketCdnPolicyBypassCacheOnRequestHeaderArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*BackendBucketCdnPolicyBypassCacheOnRequestHeaderArrayInput)(nil)).Elem(), BackendBucketCdnPolicyBypassCacheOnRequestHeaderArray{}) pulumi.RegisterInputType(reflect.TypeOf((*BackendBucketCdnPolicyCacheKeyPolicyInput)(nil)).Elem(), BackendBucketCdnPolicyCacheKeyPolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*BackendBucketCdnPolicyCacheKeyPolicyPtrInput)(nil)).Elem(), BackendBucketCdnPolicyCacheKeyPolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*BackendBucketCdnPolicyNegativeCachingPolicyInput)(nil)).Elem(), BackendBucketCdnPolicyNegativeCachingPolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*BackendBucketCdnPolicyNegativeCachingPolicyArrayInput)(nil)).Elem(), BackendBucketCdnPolicyNegativeCachingPolicyArray{}) pulumi.RegisterInputType(reflect.TypeOf((*BackendServiceCdnPolicyInput)(nil)).Elem(), BackendServiceCdnPolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*BackendServiceCdnPolicyPtrInput)(nil)).Elem(), BackendServiceCdnPolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*BackendServiceCdnPolicyBypassCacheOnRequestHeaderInput)(nil)).Elem(), BackendServiceCdnPolicyBypassCacheOnRequestHeaderArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*BackendServiceCdnPolicyBypassCacheOnRequestHeaderArrayInput)(nil)).Elem(), BackendServiceCdnPolicyBypassCacheOnRequestHeaderArray{}) pulumi.RegisterInputType(reflect.TypeOf((*BackendServiceCdnPolicyNegativeCachingPolicyInput)(nil)).Elem(), BackendServiceCdnPolicyNegativeCachingPolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*BackendServiceCdnPolicyNegativeCachingPolicyArrayInput)(nil)).Elem(), BackendServiceCdnPolicyNegativeCachingPolicyArray{}) pulumi.RegisterInputType(reflect.TypeOf((*BackendServiceConnectionTrackingPolicyInput)(nil)).Elem(), BackendServiceConnectionTrackingPolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*BackendServiceConnectionTrackingPolicyPtrInput)(nil)).Elem(), BackendServiceConnectionTrackingPolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*BackendServiceFailoverPolicyInput)(nil)).Elem(), BackendServiceFailoverPolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*BackendServiceFailoverPolicyPtrInput)(nil)).Elem(), BackendServiceFailoverPolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*BackendServiceIAPInput)(nil)).Elem(), BackendServiceIAPArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*BackendServiceIAPPtrInput)(nil)).Elem(), BackendServiceIAPArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*BackendServiceLogConfigInput)(nil)).Elem(), BackendServiceLogConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*BackendServiceLogConfigPtrInput)(nil)).Elem(), BackendServiceLogConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*BindingInput)(nil)).Elem(), BindingArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*BindingArrayInput)(nil)).Elem(), BindingArray{}) pulumi.RegisterInputType(reflect.TypeOf((*CacheKeyPolicyInput)(nil)).Elem(), CacheKeyPolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*CacheKeyPolicyPtrInput)(nil)).Elem(), CacheKeyPolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*CircuitBreakersInput)(nil)).Elem(), CircuitBreakersArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*CircuitBreakersPtrInput)(nil)).Elem(), CircuitBreakersArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ConditionInput)(nil)).Elem(), ConditionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ConditionArrayInput)(nil)).Elem(), ConditionArray{}) pulumi.RegisterInputType(reflect.TypeOf((*ConfidentialInstanceConfigInput)(nil)).Elem(), ConfidentialInstanceConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ConfidentialInstanceConfigPtrInput)(nil)).Elem(), ConfidentialInstanceConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ConnectionDrainingInput)(nil)).Elem(), ConnectionDrainingArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ConnectionDrainingPtrInput)(nil)).Elem(), ConnectionDrainingArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ConsistentHashLoadBalancerSettingsInput)(nil)).Elem(), ConsistentHashLoadBalancerSettingsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ConsistentHashLoadBalancerSettingsPtrInput)(nil)).Elem(), ConsistentHashLoadBalancerSettingsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ConsistentHashLoadBalancerSettingsHttpCookieInput)(nil)).Elem(), ConsistentHashLoadBalancerSettingsHttpCookieArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ConsistentHashLoadBalancerSettingsHttpCookiePtrInput)(nil)).Elem(), ConsistentHashLoadBalancerSettingsHttpCookieArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*CorsPolicyInput)(nil)).Elem(), CorsPolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*CorsPolicyPtrInput)(nil)).Elem(), CorsPolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*CustomerEncryptionKeyInput)(nil)).Elem(), CustomerEncryptionKeyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*CustomerEncryptionKeyPtrInput)(nil)).Elem(), CustomerEncryptionKeyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DeprecationStatusInput)(nil)).Elem(), DeprecationStatusArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DeprecationStatusPtrInput)(nil)).Elem(), DeprecationStatusArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DiskInstantiationConfigInput)(nil)).Elem(), DiskInstantiationConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DiskInstantiationConfigArrayInput)(nil)).Elem(), DiskInstantiationConfigArray{}) pulumi.RegisterInputType(reflect.TypeOf((*DisplayDeviceInput)(nil)).Elem(), DisplayDeviceArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DisplayDevicePtrInput)(nil)).Elem(), DisplayDeviceArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DistributionPolicyInput)(nil)).Elem(), DistributionPolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DistributionPolicyPtrInput)(nil)).Elem(), DistributionPolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DistributionPolicyZoneConfigurationInput)(nil)).Elem(), DistributionPolicyZoneConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DistributionPolicyZoneConfigurationArrayInput)(nil)).Elem(), DistributionPolicyZoneConfigurationArray{}) pulumi.RegisterInputType(reflect.TypeOf((*DurationInput)(nil)).Elem(), DurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DurationPtrInput)(nil)).Elem(), DurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ExprInput)(nil)).Elem(), ExprArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ExprPtrInput)(nil)).Elem(), ExprArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ExternalVpnGatewayInterfaceInput)(nil)).Elem(), ExternalVpnGatewayInterfaceArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ExternalVpnGatewayInterfaceArrayInput)(nil)).Elem(), ExternalVpnGatewayInterfaceArray{}) pulumi.RegisterInputType(reflect.TypeOf((*FileContentBufferInput)(nil)).Elem(), FileContentBufferArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FileContentBufferPtrInput)(nil)).Elem(), FileContentBufferArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FileContentBufferArrayInput)(nil)).Elem(), FileContentBufferArray{}) pulumi.RegisterInputType(reflect.TypeOf((*FirewallAllowedItemInput)(nil)).Elem(), FirewallAllowedItemArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FirewallAllowedItemArrayInput)(nil)).Elem(), FirewallAllowedItemArray{}) pulumi.RegisterInputType(reflect.TypeOf((*FirewallDeniedItemInput)(nil)).Elem(), FirewallDeniedItemArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FirewallDeniedItemArrayInput)(nil)).Elem(), FirewallDeniedItemArray{}) pulumi.RegisterInputType(reflect.TypeOf((*FirewallLogConfigInput)(nil)).Elem(), FirewallLogConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FirewallLogConfigPtrInput)(nil)).Elem(), FirewallLogConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FirewallPolicyAssociationInput)(nil)).Elem(), FirewallPolicyAssociationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FirewallPolicyAssociationArrayInput)(nil)).Elem(), FirewallPolicyAssociationArray{}) pulumi.RegisterInputType(reflect.TypeOf((*FirewallPolicyRuleInput)(nil)).Elem(), FirewallPolicyRuleArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FirewallPolicyRuleArrayInput)(nil)).Elem(), FirewallPolicyRuleArray{}) pulumi.RegisterInputType(reflect.TypeOf((*FirewallPolicyRuleMatcherInput)(nil)).Elem(), FirewallPolicyRuleMatcherArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FirewallPolicyRuleMatcherPtrInput)(nil)).Elem(), FirewallPolicyRuleMatcherArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FirewallPolicyRuleMatcherLayer4ConfigInput)(nil)).Elem(), FirewallPolicyRuleMatcherLayer4ConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FirewallPolicyRuleMatcherLayer4ConfigArrayInput)(nil)).Elem(), FirewallPolicyRuleMatcherLayer4ConfigArray{}) pulumi.RegisterInputType(reflect.TypeOf((*FixedOrPercentInput)(nil)).Elem(), FixedOrPercentArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FixedOrPercentPtrInput)(nil)).Elem(), FixedOrPercentArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ForwardingRuleServiceDirectoryRegistrationInput)(nil)).Elem(), ForwardingRuleServiceDirectoryRegistrationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ForwardingRuleServiceDirectoryRegistrationArrayInput)(nil)).Elem(), ForwardingRuleServiceDirectoryRegistrationArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GRPCHealthCheckInput)(nil)).Elem(), GRPCHealthCheckArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GRPCHealthCheckPtrInput)(nil)).Elem(), GRPCHealthCheckArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GuestOsFeatureInput)(nil)).Elem(), GuestOsFeatureArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GuestOsFeatureArrayInput)(nil)).Elem(), GuestOsFeatureArray{}) pulumi.RegisterInputType(reflect.TypeOf((*HTTP2HealthCheckInput)(nil)).Elem(), HTTP2HealthCheckArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*HTTP2HealthCheckPtrInput)(nil)).Elem(), HTTP2HealthCheckArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*HTTPHealthCheckTypeInput)(nil)).Elem(), HTTPHealthCheckTypeArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*HTTPHealthCheckTypePtrInput)(nil)).Elem(), HTTPHealthCheckTypeArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*HTTPSHealthCheckTypeInput)(nil)).Elem(), HTTPSHealthCheckTypeArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*HTTPSHealthCheckTypePtrInput)(nil)).Elem(), HTTPSHealthCheckTypeArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*HealthCheckLogConfigInput)(nil)).Elem(), HealthCheckLogConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*HealthCheckLogConfigPtrInput)(nil)).Elem(), HealthCheckLogConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*HostRuleInput)(nil)).Elem(), HostRuleArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*HostRuleArrayInput)(nil)).Elem(), HostRuleArray{}) pulumi.RegisterInputType(reflect.TypeOf((*HttpFaultAbortInput)(nil)).Elem(), HttpFaultAbortArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*HttpFaultAbortPtrInput)(nil)).Elem(), HttpFaultAbortArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*HttpFaultDelayInput)(nil)).Elem(), HttpFaultDelayArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*HttpFaultDelayPtrInput)(nil)).Elem(), HttpFaultDelayArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*HttpFaultInjectionInput)(nil)).Elem(), HttpFaultInjectionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*HttpFaultInjectionPtrInput)(nil)).Elem(), HttpFaultInjectionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*HttpHeaderActionInput)(nil)).Elem(), HttpHeaderActionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*HttpHeaderActionPtrInput)(nil)).Elem(), HttpHeaderActionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*HttpHeaderMatchInput)(nil)).Elem(), HttpHeaderMatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*HttpHeaderMatchArrayInput)(nil)).Elem(), HttpHeaderMatchArray{}) pulumi.RegisterInputType(reflect.TypeOf((*HttpHeaderOptionInput)(nil)).Elem(), HttpHeaderOptionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*HttpHeaderOptionArrayInput)(nil)).Elem(), HttpHeaderOptionArray{}) pulumi.RegisterInputType(reflect.TypeOf((*HttpQueryParameterMatchInput)(nil)).Elem(), HttpQueryParameterMatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*HttpQueryParameterMatchArrayInput)(nil)).Elem(), HttpQueryParameterMatchArray{}) pulumi.RegisterInputType(reflect.TypeOf((*HttpRedirectActionInput)(nil)).Elem(), HttpRedirectActionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*HttpRedirectActionPtrInput)(nil)).Elem(), HttpRedirectActionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*HttpRetryPolicyInput)(nil)).Elem(), HttpRetryPolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*HttpRetryPolicyPtrInput)(nil)).Elem(), HttpRetryPolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*HttpRouteActionInput)(nil)).Elem(), HttpRouteActionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*HttpRouteActionPtrInput)(nil)).Elem(), HttpRouteActionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*HttpRouteRuleInput)(nil)).Elem(), HttpRouteRuleArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*HttpRouteRuleArrayInput)(nil)).Elem(), HttpRouteRuleArray{}) pulumi.RegisterInputType(reflect.TypeOf((*HttpRouteRuleMatchInput)(nil)).Elem(), HttpRouteRuleMatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*HttpRouteRuleMatchArrayInput)(nil)).Elem(), HttpRouteRuleMatchArray{}) pulumi.RegisterInputType(reflect.TypeOf((*ImageRawDiskInput)(nil)).Elem(), ImageRawDiskArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ImageRawDiskPtrInput)(nil)).Elem(), ImageRawDiskArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*InitialStateConfigInput)(nil)).Elem(), InitialStateConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*InitialStateConfigPtrInput)(nil)).Elem(), InitialStateConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*InstanceGroupManagerAutoHealingPolicyInput)(nil)).Elem(), InstanceGroupManagerAutoHealingPolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*InstanceGroupManagerAutoHealingPolicyArrayInput)(nil)).Elem(), InstanceGroupManagerAutoHealingPolicyArray{}) pulumi.RegisterInputType(reflect.TypeOf((*InstanceGroupManagerUpdatePolicyInput)(nil)).Elem(), InstanceGroupManagerUpdatePolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*InstanceGroupManagerUpdatePolicyPtrInput)(nil)).Elem(), InstanceGroupManagerUpdatePolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*InstanceGroupManagerVersionInput)(nil)).Elem(), InstanceGroupManagerVersionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*InstanceGroupManagerVersionArrayInput)(nil)).Elem(), InstanceGroupManagerVersionArray{}) pulumi.RegisterInputType(reflect.TypeOf((*InstancePropertiesInput)(nil)).Elem(), InstancePropertiesArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*InstancePropertiesPtrInput)(nil)).Elem(), InstancePropertiesArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*Int64RangeMatchInput)(nil)).Elem(), Int64RangeMatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*Int64RangeMatchPtrInput)(nil)).Elem(), Int64RangeMatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*InterconnectAttachmentPartnerMetadataInput)(nil)).Elem(), InterconnectAttachmentPartnerMetadataArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*InterconnectAttachmentPartnerMetadataPtrInput)(nil)).Elem(), InterconnectAttachmentPartnerMetadataArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*LicenseResourceCommitmentInput)(nil)).Elem(), LicenseResourceCommitmentArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*LicenseResourceCommitmentPtrInput)(nil)).Elem(), LicenseResourceCommitmentArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*LicenseResourceRequirementsInput)(nil)).Elem(), LicenseResourceRequirementsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*LicenseResourceRequirementsPtrInput)(nil)).Elem(), LicenseResourceRequirementsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*LocalDiskInput)(nil)).Elem(), LocalDiskArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*LocalDiskArrayInput)(nil)).Elem(), LocalDiskArray{}) pulumi.RegisterInputType(reflect.TypeOf((*LogConfigInput)(nil)).Elem(), LogConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*LogConfigArrayInput)(nil)).Elem(), LogConfigArray{}) pulumi.RegisterInputType(reflect.TypeOf((*LogConfigCloudAuditOptionsInput)(nil)).Elem(), LogConfigCloudAuditOptionsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*LogConfigCloudAuditOptionsPtrInput)(nil)).Elem(), LogConfigCloudAuditOptionsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*LogConfigCounterOptionsInput)(nil)).Elem(), LogConfigCounterOptionsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*LogConfigCounterOptionsPtrInput)(nil)).Elem(), LogConfigCounterOptionsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*LogConfigCounterOptionsCustomFieldInput)(nil)).Elem(), LogConfigCounterOptionsCustomFieldArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*LogConfigCounterOptionsCustomFieldArrayInput)(nil)).Elem(), LogConfigCounterOptionsCustomFieldArray{}) pulumi.RegisterInputType(reflect.TypeOf((*LogConfigDataAccessOptionsInput)(nil)).Elem(), LogConfigDataAccessOptionsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*LogConfigDataAccessOptionsPtrInput)(nil)).Elem(), LogConfigDataAccessOptionsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*MetadataInput)(nil)).Elem(), MetadataArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*MetadataPtrInput)(nil)).Elem(), MetadataArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*MetadataFilterInput)(nil)).Elem(), MetadataFilterArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*MetadataFilterArrayInput)(nil)).Elem(), MetadataFilterArray{}) pulumi.RegisterInputType(reflect.TypeOf((*MetadataFilterLabelMatchInput)(nil)).Elem(), MetadataFilterLabelMatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*MetadataFilterLabelMatchArrayInput)(nil)).Elem(), MetadataFilterLabelMatchArray{}) pulumi.RegisterInputType(reflect.TypeOf((*MetadataItemsItemInput)(nil)).Elem(), MetadataItemsItemArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*MetadataItemsItemArrayInput)(nil)).Elem(), MetadataItemsItemArray{}) pulumi.RegisterInputType(reflect.TypeOf((*NamedPortInput)(nil)).Elem(), NamedPortArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*NamedPortArrayInput)(nil)).Elem(), NamedPortArray{}) pulumi.RegisterInputType(reflect.TypeOf((*NetworkEndpointGroupAppEngineInput)(nil)).Elem(), NetworkEndpointGroupAppEngineArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*NetworkEndpointGroupAppEnginePtrInput)(nil)).Elem(), NetworkEndpointGroupAppEngineArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*NetworkEndpointGroupCloudFunctionInput)(nil)).Elem(), NetworkEndpointGroupCloudFunctionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*NetworkEndpointGroupCloudFunctionPtrInput)(nil)).Elem(), NetworkEndpointGroupCloudFunctionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*NetworkEndpointGroupCloudRunInput)(nil)).Elem(), NetworkEndpointGroupCloudRunArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*NetworkEndpointGroupCloudRunPtrInput)(nil)).Elem(), NetworkEndpointGroupCloudRunArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*NetworkInterfaceInput)(nil)).Elem(), NetworkInterfaceArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*NetworkInterfaceArrayInput)(nil)).Elem(), NetworkInterfaceArray{}) pulumi.RegisterInputType(reflect.TypeOf((*NetworkPerformanceConfigInput)(nil)).Elem(), NetworkPerformanceConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*NetworkPerformanceConfigPtrInput)(nil)).Elem(), NetworkPerformanceConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*NetworkRoutingConfigInput)(nil)).Elem(), NetworkRoutingConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*NetworkRoutingConfigPtrInput)(nil)).Elem(), NetworkRoutingConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*NodeGroupAutoscalingPolicyInput)(nil)).Elem(), NodeGroupAutoscalingPolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*NodeGroupAutoscalingPolicyPtrInput)(nil)).Elem(), NodeGroupAutoscalingPolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*NodeGroupMaintenanceWindowInput)(nil)).Elem(), NodeGroupMaintenanceWindowArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*NodeGroupMaintenanceWindowPtrInput)(nil)).Elem(), NodeGroupMaintenanceWindowArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*NodeTemplateNodeTypeFlexibilityInput)(nil)).Elem(), NodeTemplateNodeTypeFlexibilityArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*NodeTemplateNodeTypeFlexibilityPtrInput)(nil)).Elem(), NodeTemplateNodeTypeFlexibilityArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*NotificationEndpointGrpcSettingsInput)(nil)).Elem(), NotificationEndpointGrpcSettingsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*NotificationEndpointGrpcSettingsPtrInput)(nil)).Elem(), NotificationEndpointGrpcSettingsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*OutlierDetectionInput)(nil)).Elem(), OutlierDetectionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*OutlierDetectionPtrInput)(nil)).Elem(), OutlierDetectionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*PacketMirroringFilterInput)(nil)).Elem(), PacketMirroringFilterArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*PacketMirroringFilterPtrInput)(nil)).Elem(), PacketMirroringFilterArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*PacketMirroringForwardingRuleInfoInput)(nil)).Elem(), PacketMirroringForwardingRuleInfoArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*PacketMirroringForwardingRuleInfoPtrInput)(nil)).Elem(), PacketMirroringForwardingRuleInfoArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*PacketMirroringMirroredResourceInfoInput)(nil)).Elem(), PacketMirroringMirroredResourceInfoArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*PacketMirroringMirroredResourceInfoPtrInput)(nil)).Elem(), PacketMirroringMirroredResourceInfoArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*PacketMirroringMirroredResourceInfoInstanceInfoInput)(nil)).Elem(), PacketMirroringMirroredResourceInfoInstanceInfoArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*PacketMirroringMirroredResourceInfoInstanceInfoArrayInput)(nil)).Elem(), PacketMirroringMirroredResourceInfoInstanceInfoArray{}) pulumi.RegisterInputType(reflect.TypeOf((*PacketMirroringMirroredResourceInfoSubnetInfoInput)(nil)).Elem(), PacketMirroringMirroredResourceInfoSubnetInfoArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*PacketMirroringMirroredResourceInfoSubnetInfoArrayInput)(nil)).Elem(), PacketMirroringMirroredResourceInfoSubnetInfoArray{}) pulumi.RegisterInputType(reflect.TypeOf((*PacketMirroringNetworkInfoInput)(nil)).Elem(), PacketMirroringNetworkInfoArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*PacketMirroringNetworkInfoPtrInput)(nil)).Elem(), PacketMirroringNetworkInfoArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*PathMatcherInput)(nil)).Elem(), PathMatcherArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*PathMatcherArrayInput)(nil)).Elem(), PathMatcherArray{}) pulumi.RegisterInputType(reflect.TypeOf((*PathRuleInput)(nil)).Elem(), PathRuleArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*PathRuleArrayInput)(nil)).Elem(), PathRuleArray{}) pulumi.RegisterInputType(reflect.TypeOf((*PublicDelegatedPrefixPublicDelegatedSubPrefixInput)(nil)).Elem(), PublicDelegatedPrefixPublicDelegatedSubPrefixArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*PublicDelegatedPrefixPublicDelegatedSubPrefixArrayInput)(nil)).Elem(), PublicDelegatedPrefixPublicDelegatedSubPrefixArray{}) pulumi.RegisterInputType(reflect.TypeOf((*RequestMirrorPolicyInput)(nil)).Elem(), RequestMirrorPolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*RequestMirrorPolicyPtrInput)(nil)).Elem(), RequestMirrorPolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ReservationTypeInput)(nil)).Elem(), ReservationTypeArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ReservationTypeArrayInput)(nil)).Elem(), ReservationTypeArray{}) pulumi.RegisterInputType(reflect.TypeOf((*ReservationAffinityInput)(nil)).Elem(), ReservationAffinityArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ReservationAffinityPtrInput)(nil)).Elem(), ReservationAffinityArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ResourceCommitmentInput)(nil)).Elem(), ResourceCommitmentArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ResourceCommitmentArrayInput)(nil)).Elem(), ResourceCommitmentArray{}) pulumi.RegisterInputType(reflect.TypeOf((*ResourcePolicyDailyCycleInput)(nil)).Elem(), ResourcePolicyDailyCycleArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ResourcePolicyDailyCyclePtrInput)(nil)).Elem(), ResourcePolicyDailyCycleArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ResourcePolicyGroupPlacementPolicyInput)(nil)).Elem(), ResourcePolicyGroupPlacementPolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ResourcePolicyGroupPlacementPolicyPtrInput)(nil)).Elem(), ResourcePolicyGroupPlacementPolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ResourcePolicyHourlyCycleInput)(nil)).Elem(), ResourcePolicyHourlyCycleArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ResourcePolicyHourlyCyclePtrInput)(nil)).Elem(), ResourcePolicyHourlyCycleArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ResourcePolicyInstanceSchedulePolicyInput)(nil)).Elem(), ResourcePolicyInstanceSchedulePolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ResourcePolicyInstanceSchedulePolicyPtrInput)(nil)).Elem(), ResourcePolicyInstanceSchedulePolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ResourcePolicyInstanceSchedulePolicyScheduleInput)(nil)).Elem(), ResourcePolicyInstanceSchedulePolicyScheduleArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ResourcePolicyInstanceSchedulePolicySchedulePtrInput)(nil)).Elem(), ResourcePolicyInstanceSchedulePolicyScheduleArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicyInput)(nil)).Elem(), ResourcePolicySnapshotSchedulePolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicyPtrInput)(nil)).Elem(), ResourcePolicySnapshotSchedulePolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicyRetentionPolicyInput)(nil)).Elem(), ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrInput)(nil)).Elem(), ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicyScheduleInput)(nil)).Elem(), ResourcePolicySnapshotSchedulePolicyScheduleArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicySchedulePtrInput)(nil)).Elem(), ResourcePolicySnapshotSchedulePolicyScheduleArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicySnapshotPropertiesInput)(nil)).Elem(), ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrInput)(nil)).Elem(), ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ResourcePolicyWeeklyCycleInput)(nil)).Elem(), ResourcePolicyWeeklyCycleArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ResourcePolicyWeeklyCyclePtrInput)(nil)).Elem(), ResourcePolicyWeeklyCycleArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ResourcePolicyWeeklyCycleDayOfWeekInput)(nil)).Elem(), ResourcePolicyWeeklyCycleDayOfWeekArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ResourcePolicyWeeklyCycleDayOfWeekArrayInput)(nil)).Elem(), ResourcePolicyWeeklyCycleDayOfWeekArray{}) pulumi.RegisterInputType(reflect.TypeOf((*RouterAdvertisedIpRangeInput)(nil)).Elem(), RouterAdvertisedIpRangeArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*RouterAdvertisedIpRangeArrayInput)(nil)).Elem(), RouterAdvertisedIpRangeArray{}) pulumi.RegisterInputType(reflect.TypeOf((*RouterBgpInput)(nil)).Elem(), RouterBgpArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*RouterBgpPtrInput)(nil)).Elem(), RouterBgpArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*RouterBgpPeerInput)(nil)).Elem(), RouterBgpPeerArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*RouterBgpPeerArrayInput)(nil)).Elem(), RouterBgpPeerArray{}) pulumi.RegisterInputType(reflect.TypeOf((*RouterBgpPeerBfdInput)(nil)).Elem(), RouterBgpPeerBfdArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*RouterBgpPeerBfdPtrInput)(nil)).Elem(), RouterBgpPeerBfdArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*RouterInterfaceInput)(nil)).Elem(), RouterInterfaceArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*RouterInterfaceArrayInput)(nil)).Elem(), RouterInterfaceArray{}) pulumi.RegisterInputType(reflect.TypeOf((*RouterNatInput)(nil)).Elem(), RouterNatArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*RouterNatArrayInput)(nil)).Elem(), RouterNatArray{}) pulumi.RegisterInputType(reflect.TypeOf((*RouterNatLogConfigInput)(nil)).Elem(), RouterNatLogConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*RouterNatLogConfigPtrInput)(nil)).Elem(), RouterNatLogConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*RouterNatRuleInput)(nil)).Elem(), RouterNatRuleArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*RouterNatRuleArrayInput)(nil)).Elem(), RouterNatRuleArray{}) pulumi.RegisterInputType(reflect.TypeOf((*RouterNatRuleActionInput)(nil)).Elem(), RouterNatRuleActionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*RouterNatRuleActionPtrInput)(nil)).Elem(), RouterNatRuleActionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*RouterNatSubnetworkToNatInput)(nil)).Elem(), RouterNatSubnetworkToNatArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*RouterNatSubnetworkToNatArrayInput)(nil)).Elem(), RouterNatSubnetworkToNatArray{}) pulumi.RegisterInputType(reflect.TypeOf((*RuleInput)(nil)).Elem(), RuleArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*RuleArrayInput)(nil)).Elem(), RuleArray{}) pulumi.RegisterInputType(reflect.TypeOf((*SSLHealthCheckInput)(nil)).Elem(), SSLHealthCheckArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SSLHealthCheckPtrInput)(nil)).Elem(), SSLHealthCheckArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SavedDiskInput)(nil)).Elem(), SavedDiskArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SavedDiskArrayInput)(nil)).Elem(), SavedDiskArray{}) pulumi.RegisterInputType(reflect.TypeOf((*SchedulingInput)(nil)).Elem(), SchedulingArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SchedulingPtrInput)(nil)).Elem(), SchedulingArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SchedulingNodeAffinityInput)(nil)).Elem(), SchedulingNodeAffinityArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SchedulingNodeAffinityArrayInput)(nil)).Elem(), SchedulingNodeAffinityArray{}) pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyAdaptiveProtectionConfigInput)(nil)).Elem(), SecurityPolicyAdaptiveProtectionConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyAdaptiveProtectionConfigPtrInput)(nil)).Elem(), SecurityPolicyAdaptiveProtectionConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigInput)(nil)).Elem(), SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrInput)(nil)).Elem(), SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyAdvancedOptionsConfigInput)(nil)).Elem(), SecurityPolicyAdvancedOptionsConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyAdvancedOptionsConfigPtrInput)(nil)).Elem(), SecurityPolicyAdvancedOptionsConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRecaptchaOptionsConfigInput)(nil)).Elem(), SecurityPolicyRecaptchaOptionsConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRecaptchaOptionsConfigPtrInput)(nil)).Elem(), SecurityPolicyRecaptchaOptionsConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleInput)(nil)).Elem(), SecurityPolicyRuleArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleArrayInput)(nil)).Elem(), SecurityPolicyRuleArray{}) pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleHttpHeaderActionInput)(nil)).Elem(), SecurityPolicyRuleHttpHeaderActionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleHttpHeaderActionPtrInput)(nil)).Elem(), SecurityPolicyRuleHttpHeaderActionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionInput)(nil)).Elem(), SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionArrayInput)(nil)).Elem(), SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionArray{}) pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleMatcherInput)(nil)).Elem(), SecurityPolicyRuleMatcherArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleMatcherPtrInput)(nil)).Elem(), SecurityPolicyRuleMatcherArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleMatcherConfigInput)(nil)).Elem(), SecurityPolicyRuleMatcherConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleMatcherConfigPtrInput)(nil)).Elem(), SecurityPolicyRuleMatcherConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsInput)(nil)).Elem(), SecurityPolicyRuleRateLimitOptionsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsPtrInput)(nil)).Elem(), SecurityPolicyRuleRateLimitOptionsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsThresholdInput)(nil)).Elem(), SecurityPolicyRuleRateLimitOptionsThresholdArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsThresholdPtrInput)(nil)).Elem(), SecurityPolicyRuleRateLimitOptionsThresholdArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleRedirectOptionsInput)(nil)).Elem(), SecurityPolicyRuleRedirectOptionsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SecurityPolicyRuleRedirectOptionsPtrInput)(nil)).Elem(), SecurityPolicyRuleRedirectOptionsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SecuritySettingsInput)(nil)).Elem(), SecuritySettingsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SecuritySettingsPtrInput)(nil)).Elem(), SecuritySettingsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ServerBindingInput)(nil)).Elem(), ServerBindingArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ServerBindingPtrInput)(nil)).Elem(), ServerBindingArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ServiceAccountInput)(nil)).Elem(), ServiceAccountArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ServiceAccountArrayInput)(nil)).Elem(), ServiceAccountArray{}) pulumi.RegisterInputType(reflect.TypeOf((*ServiceAttachmentConsumerProjectLimitInput)(nil)).Elem(), ServiceAttachmentConsumerProjectLimitArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ServiceAttachmentConsumerProjectLimitArrayInput)(nil)).Elem(), ServiceAttachmentConsumerProjectLimitArray{}) pulumi.RegisterInputType(reflect.TypeOf((*ShareSettingsInput)(nil)).Elem(), ShareSettingsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ShareSettingsPtrInput)(nil)).Elem(), ShareSettingsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ShieldedInstanceConfigInput)(nil)).Elem(), ShieldedInstanceConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ShieldedInstanceConfigPtrInput)(nil)).Elem(), ShieldedInstanceConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ShieldedInstanceIntegrityPolicyInput)(nil)).Elem(), ShieldedInstanceIntegrityPolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ShieldedInstanceIntegrityPolicyPtrInput)(nil)).Elem(), ShieldedInstanceIntegrityPolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SourceDiskEncryptionKeyInput)(nil)).Elem(), SourceDiskEncryptionKeyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SourceDiskEncryptionKeyArrayInput)(nil)).Elem(), SourceDiskEncryptionKeyArray{}) pulumi.RegisterInputType(reflect.TypeOf((*SourceInstanceParamsInput)(nil)).Elem(), SourceInstanceParamsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SourceInstanceParamsPtrInput)(nil)).Elem(), SourceInstanceParamsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SslCertificateManagedSslCertificateInput)(nil)).Elem(), SslCertificateManagedSslCertificateArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SslCertificateManagedSslCertificatePtrInput)(nil)).Elem(), SslCertificateManagedSslCertificateArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SslCertificateSelfManagedSslCertificateInput)(nil)).Elem(), SslCertificateSelfManagedSslCertificateArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SslCertificateSelfManagedSslCertificatePtrInput)(nil)).Elem(), SslCertificateSelfManagedSslCertificateArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*StatefulPolicyInput)(nil)).Elem(), StatefulPolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*StatefulPolicyPtrInput)(nil)).Elem(), StatefulPolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*StatefulPolicyPreservedStateInput)(nil)).Elem(), StatefulPolicyPreservedStateArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*StatefulPolicyPreservedStatePtrInput)(nil)).Elem(), StatefulPolicyPreservedStateArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SubnetworkLogConfigInput)(nil)).Elem(), SubnetworkLogConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SubnetworkLogConfigPtrInput)(nil)).Elem(), SubnetworkLogConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SubnetworkSecondaryRangeInput)(nil)).Elem(), SubnetworkSecondaryRangeArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SubnetworkSecondaryRangeArrayInput)(nil)).Elem(), SubnetworkSecondaryRangeArray{}) pulumi.RegisterInputType(reflect.TypeOf((*SubsettingInput)(nil)).Elem(), SubsettingArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SubsettingPtrInput)(nil)).Elem(), SubsettingArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*TCPHealthCheckInput)(nil)).Elem(), TCPHealthCheckArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*TCPHealthCheckPtrInput)(nil)).Elem(), TCPHealthCheckArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*TagsInput)(nil)).Elem(), TagsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*TagsPtrInput)(nil)).Elem(), TagsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*UrlMapTestInput)(nil)).Elem(), UrlMapTestArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*UrlMapTestArrayInput)(nil)).Elem(), UrlMapTestArray{}) pulumi.RegisterInputType(reflect.TypeOf((*UrlMapTestHeaderInput)(nil)).Elem(), UrlMapTestHeaderArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*UrlMapTestHeaderArrayInput)(nil)).Elem(), UrlMapTestHeaderArray{}) pulumi.RegisterInputType(reflect.TypeOf((*UrlRewriteInput)(nil)).Elem(), UrlRewriteArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*UrlRewritePtrInput)(nil)).Elem(), UrlRewriteArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*VpnGatewayVpnGatewayInterfaceInput)(nil)).Elem(), VpnGatewayVpnGatewayInterfaceArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*VpnGatewayVpnGatewayInterfaceArrayInput)(nil)).Elem(), VpnGatewayVpnGatewayInterfaceArray{}) pulumi.RegisterInputType(reflect.TypeOf((*WeightedBackendServiceInput)(nil)).Elem(), WeightedBackendServiceArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*WeightedBackendServiceArrayInput)(nil)).Elem(), WeightedBackendServiceArray{}) pulumi.RegisterOutputType(AcceleratorConfigOutput{}) pulumi.RegisterOutputType(AcceleratorConfigArrayOutput{}) pulumi.RegisterOutputType(AcceleratorConfigResponseOutput{}) pulumi.RegisterOutputType(AcceleratorConfigResponseArrayOutput{}) pulumi.RegisterOutputType(AccessConfigOutput{}) pulumi.RegisterOutputType(AccessConfigArrayOutput{}) pulumi.RegisterOutputType(AccessConfigResponseOutput{}) pulumi.RegisterOutputType(AccessConfigResponseArrayOutput{}) pulumi.RegisterOutputType(AdvancedMachineFeaturesOutput{}) pulumi.RegisterOutputType(AdvancedMachineFeaturesPtrOutput{}) pulumi.RegisterOutputType(AdvancedMachineFeaturesResponseOutput{}) pulumi.RegisterOutputType(AliasIpRangeOutput{}) pulumi.RegisterOutputType(AliasIpRangeArrayOutput{}) pulumi.RegisterOutputType(AliasIpRangeResponseOutput{}) pulumi.RegisterOutputType(AliasIpRangeResponseArrayOutput{}) pulumi.RegisterOutputType(AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskOutput{}) pulumi.RegisterOutputType(AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskArrayOutput{}) pulumi.RegisterOutputType(AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskResponseOutput{}) pulumi.RegisterOutputType(AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskResponseArrayOutput{}) pulumi.RegisterOutputType(AllocationSpecificSKUAllocationReservedInstancePropertiesOutput{}) pulumi.RegisterOutputType(AllocationSpecificSKUAllocationReservedInstancePropertiesPtrOutput{}) pulumi.RegisterOutputType(AllocationSpecificSKUAllocationReservedInstancePropertiesResponseOutput{}) pulumi.RegisterOutputType(AllocationSpecificSKUReservationOutput{}) pulumi.RegisterOutputType(AllocationSpecificSKUReservationPtrOutput{}) pulumi.RegisterOutputType(AllocationSpecificSKUReservationResponseOutput{}) pulumi.RegisterOutputType(AttachedDiskOutput{}) pulumi.RegisterOutputType(AttachedDiskArrayOutput{}) pulumi.RegisterOutputType(AttachedDiskInitializeParamsOutput{}) pulumi.RegisterOutputType(AttachedDiskInitializeParamsPtrOutput{}) pulumi.RegisterOutputType(AttachedDiskInitializeParamsResponseOutput{}) pulumi.RegisterOutputType(AttachedDiskResponseOutput{}) pulumi.RegisterOutputType(AttachedDiskResponseArrayOutput{}) pulumi.RegisterOutputType(AuditConfigOutput{}) pulumi.RegisterOutputType(AuditConfigArrayOutput{}) pulumi.RegisterOutputType(AuditConfigResponseOutput{}) pulumi.RegisterOutputType(AuditConfigResponseArrayOutput{}) pulumi.RegisterOutputType(AuditLogConfigOutput{}) pulumi.RegisterOutputType(AuditLogConfigArrayOutput{}) pulumi.RegisterOutputType(AuditLogConfigResponseOutput{}) pulumi.RegisterOutputType(AuditLogConfigResponseArrayOutput{}) pulumi.RegisterOutputType(AuthorizationLoggingOptionsOutput{}) pulumi.RegisterOutputType(AuthorizationLoggingOptionsPtrOutput{}) pulumi.RegisterOutputType(AuthorizationLoggingOptionsResponseOutput{}) pulumi.RegisterOutputType(AutoscalerStatusDetailsResponseOutput{}) pulumi.RegisterOutputType(AutoscalerStatusDetailsResponseArrayOutput{}) pulumi.RegisterOutputType(AutoscalingPolicyOutput{}) pulumi.RegisterOutputType(AutoscalingPolicyPtrOutput{}) pulumi.RegisterOutputType(AutoscalingPolicyCpuUtilizationOutput{}) pulumi.RegisterOutputType(AutoscalingPolicyCpuUtilizationPtrOutput{}) pulumi.RegisterOutputType(AutoscalingPolicyCpuUtilizationResponseOutput{}) pulumi.RegisterOutputType(AutoscalingPolicyCustomMetricUtilizationOutput{}) pulumi.RegisterOutputType(AutoscalingPolicyCustomMetricUtilizationArrayOutput{}) pulumi.RegisterOutputType(AutoscalingPolicyCustomMetricUtilizationResponseOutput{}) pulumi.RegisterOutputType(AutoscalingPolicyCustomMetricUtilizationResponseArrayOutput{}) pulumi.RegisterOutputType(AutoscalingPolicyLoadBalancingUtilizationOutput{}) pulumi.RegisterOutputType(AutoscalingPolicyLoadBalancingUtilizationPtrOutput{}) pulumi.RegisterOutputType(AutoscalingPolicyLoadBalancingUtilizationResponseOutput{}) pulumi.RegisterOutputType(AutoscalingPolicyResponseOutput{}) pulumi.RegisterOutputType(AutoscalingPolicyScaleInControlOutput{}) pulumi.RegisterOutputType(AutoscalingPolicyScaleInControlPtrOutput{}) pulumi.RegisterOutputType(AutoscalingPolicyScaleInControlResponseOutput{}) pulumi.RegisterOutputType(BackendOutput{}) pulumi.RegisterOutputType(BackendArrayOutput{}) pulumi.RegisterOutputType(BackendBucketCdnPolicyOutput{}) pulumi.RegisterOutputType(BackendBucketCdnPolicyPtrOutput{}) pulumi.RegisterOutputType(BackendBucketCdnPolicyBypassCacheOnRequestHeaderOutput{}) pulumi.RegisterOutputType(BackendBucketCdnPolicyBypassCacheOnRequestHeaderArrayOutput{}) pulumi.RegisterOutputType(BackendBucketCdnPolicyBypassCacheOnRequestHeaderResponseOutput{}) pulumi.RegisterOutputType(BackendBucketCdnPolicyBypassCacheOnRequestHeaderResponseArrayOutput{}) pulumi.RegisterOutputType(BackendBucketCdnPolicyCacheKeyPolicyOutput{}) pulumi.RegisterOutputType(BackendBucketCdnPolicyCacheKeyPolicyPtrOutput{}) pulumi.RegisterOutputType(BackendBucketCdnPolicyCacheKeyPolicyResponseOutput{}) pulumi.RegisterOutputType(BackendBucketCdnPolicyNegativeCachingPolicyOutput{}) pulumi.RegisterOutputType(BackendBucketCdnPolicyNegativeCachingPolicyArrayOutput{}) pulumi.RegisterOutputType(BackendBucketCdnPolicyNegativeCachingPolicyResponseOutput{}) pulumi.RegisterOutputType(BackendBucketCdnPolicyNegativeCachingPolicyResponseArrayOutput{}) pulumi.RegisterOutputType(BackendBucketCdnPolicyResponseOutput{}) pulumi.RegisterOutputType(BackendResponseOutput{}) pulumi.RegisterOutputType(BackendResponseArrayOutput{}) pulumi.RegisterOutputType(BackendServiceCdnPolicyOutput{}) pulumi.RegisterOutputType(BackendServiceCdnPolicyPtrOutput{}) pulumi.RegisterOutputType(BackendServiceCdnPolicyBypassCacheOnRequestHeaderOutput{}) pulumi.RegisterOutputType(BackendServiceCdnPolicyBypassCacheOnRequestHeaderArrayOutput{}) pulumi.RegisterOutputType(BackendServiceCdnPolicyBypassCacheOnRequestHeaderResponseOutput{}) pulumi.RegisterOutputType(BackendServiceCdnPolicyBypassCacheOnRequestHeaderResponseArrayOutput{}) pulumi.RegisterOutputType(BackendServiceCdnPolicyNegativeCachingPolicyOutput{}) pulumi.RegisterOutputType(BackendServiceCdnPolicyNegativeCachingPolicyArrayOutput{}) pulumi.RegisterOutputType(BackendServiceCdnPolicyNegativeCachingPolicyResponseOutput{}) pulumi.RegisterOutputType(BackendServiceCdnPolicyNegativeCachingPolicyResponseArrayOutput{}) pulumi.RegisterOutputType(BackendServiceCdnPolicyResponseOutput{}) pulumi.RegisterOutputType(BackendServiceConnectionTrackingPolicyOutput{}) pulumi.RegisterOutputType(BackendServiceConnectionTrackingPolicyPtrOutput{}) pulumi.RegisterOutputType(BackendServiceConnectionTrackingPolicyResponseOutput{}) pulumi.RegisterOutputType(BackendServiceFailoverPolicyOutput{}) pulumi.RegisterOutputType(BackendServiceFailoverPolicyPtrOutput{}) pulumi.RegisterOutputType(BackendServiceFailoverPolicyResponseOutput{}) pulumi.RegisterOutputType(BackendServiceIAPOutput{}) pulumi.RegisterOutputType(BackendServiceIAPPtrOutput{}) pulumi.RegisterOutputType(BackendServiceIAPResponseOutput{}) pulumi.RegisterOutputType(BackendServiceLogConfigOutput{}) pulumi.RegisterOutputType(BackendServiceLogConfigPtrOutput{}) pulumi.RegisterOutputType(BackendServiceLogConfigResponseOutput{}) pulumi.RegisterOutputType(BindingOutput{}) pulumi.RegisterOutputType(BindingArrayOutput{}) pulumi.RegisterOutputType(BindingResponseOutput{}) pulumi.RegisterOutputType(BindingResponseArrayOutput{}) pulumi.RegisterOutputType(CacheKeyPolicyOutput{}) pulumi.RegisterOutputType(CacheKeyPolicyPtrOutput{}) pulumi.RegisterOutputType(CacheKeyPolicyResponseOutput{}) pulumi.RegisterOutputType(CircuitBreakersOutput{}) pulumi.RegisterOutputType(CircuitBreakersPtrOutput{}) pulumi.RegisterOutputType(CircuitBreakersResponseOutput{}) pulumi.RegisterOutputType(ConditionOutput{}) pulumi.RegisterOutputType(ConditionArrayOutput{}) pulumi.RegisterOutputType(ConditionResponseOutput{}) pulumi.RegisterOutputType(ConditionResponseArrayOutput{}) pulumi.RegisterOutputType(ConfidentialInstanceConfigOutput{}) pulumi.RegisterOutputType(ConfidentialInstanceConfigPtrOutput{}) pulumi.RegisterOutputType(ConfidentialInstanceConfigResponseOutput{}) pulumi.RegisterOutputType(ConnectionDrainingOutput{}) pulumi.RegisterOutputType(ConnectionDrainingPtrOutput{}) pulumi.RegisterOutputType(ConnectionDrainingResponseOutput{}) pulumi.RegisterOutputType(ConsistentHashLoadBalancerSettingsOutput{}) pulumi.RegisterOutputType(ConsistentHashLoadBalancerSettingsPtrOutput{}) pulumi.RegisterOutputType(ConsistentHashLoadBalancerSettingsHttpCookieOutput{}) pulumi.RegisterOutputType(ConsistentHashLoadBalancerSettingsHttpCookiePtrOutput{}) pulumi.RegisterOutputType(ConsistentHashLoadBalancerSettingsHttpCookieResponseOutput{}) pulumi.RegisterOutputType(ConsistentHashLoadBalancerSettingsResponseOutput{}) pulumi.RegisterOutputType(CorsPolicyOutput{}) pulumi.RegisterOutputType(CorsPolicyPtrOutput{}) pulumi.RegisterOutputType(CorsPolicyResponseOutput{}) pulumi.RegisterOutputType(CustomerEncryptionKeyOutput{}) pulumi.RegisterOutputType(CustomerEncryptionKeyPtrOutput{}) pulumi.RegisterOutputType(CustomerEncryptionKeyResponseOutput{}) pulumi.RegisterOutputType(DeprecationStatusOutput{}) pulumi.RegisterOutputType(DeprecationStatusPtrOutput{}) pulumi.RegisterOutputType(DeprecationStatusResponseOutput{}) pulumi.RegisterOutputType(DiskInstantiationConfigOutput{}) pulumi.RegisterOutputType(DiskInstantiationConfigArrayOutput{}) pulumi.RegisterOutputType(DiskInstantiationConfigResponseOutput{}) pulumi.RegisterOutputType(DiskInstantiationConfigResponseArrayOutput{}) pulumi.RegisterOutputType(DisplayDeviceOutput{}) pulumi.RegisterOutputType(DisplayDevicePtrOutput{}) pulumi.RegisterOutputType(DisplayDeviceResponseOutput{}) pulumi.RegisterOutputType(DistributionPolicyOutput{}) pulumi.RegisterOutputType(DistributionPolicyPtrOutput{}) pulumi.RegisterOutputType(DistributionPolicyResponseOutput{}) pulumi.RegisterOutputType(DistributionPolicyZoneConfigurationOutput{}) pulumi.RegisterOutputType(DistributionPolicyZoneConfigurationArrayOutput{}) pulumi.RegisterOutputType(DistributionPolicyZoneConfigurationResponseOutput{}) pulumi.RegisterOutputType(DistributionPolicyZoneConfigurationResponseArrayOutput{}) pulumi.RegisterOutputType(DurationOutput{}) pulumi.RegisterOutputType(DurationPtrOutput{}) pulumi.RegisterOutputType(DurationResponseOutput{}) pulumi.RegisterOutputType(ExprOutput{}) pulumi.RegisterOutputType(ExprPtrOutput{}) pulumi.RegisterOutputType(ExprResponseOutput{}) pulumi.RegisterOutputType(ExternalVpnGatewayInterfaceOutput{}) pulumi.RegisterOutputType(ExternalVpnGatewayInterfaceArrayOutput{}) pulumi.RegisterOutputType(ExternalVpnGatewayInterfaceResponseOutput{}) pulumi.RegisterOutputType(ExternalVpnGatewayInterfaceResponseArrayOutput{}) pulumi.RegisterOutputType(FileContentBufferOutput{}) pulumi.RegisterOutputType(FileContentBufferPtrOutput{}) pulumi.RegisterOutputType(FileContentBufferArrayOutput{}) pulumi.RegisterOutputType(FileContentBufferResponseOutput{}) pulumi.RegisterOutputType(FileContentBufferResponseArrayOutput{}) pulumi.RegisterOutputType(FirewallAllowedItemOutput{}) pulumi.RegisterOutputType(FirewallAllowedItemArrayOutput{}) pulumi.RegisterOutputType(FirewallAllowedItemResponseOutput{}) pulumi.RegisterOutputType(FirewallAllowedItemResponseArrayOutput{}) pulumi.RegisterOutputType(FirewallDeniedItemOutput{}) pulumi.RegisterOutputType(FirewallDeniedItemArrayOutput{}) pulumi.RegisterOutputType(FirewallDeniedItemResponseOutput{}) pulumi.RegisterOutputType(FirewallDeniedItemResponseArrayOutput{}) pulumi.RegisterOutputType(FirewallLogConfigOutput{}) pulumi.RegisterOutputType(FirewallLogConfigPtrOutput{}) pulumi.RegisterOutputType(FirewallLogConfigResponseOutput{}) pulumi.RegisterOutputType(FirewallPolicyAssociationOutput{}) pulumi.RegisterOutputType(FirewallPolicyAssociationArrayOutput{}) pulumi.RegisterOutputType(FirewallPolicyAssociationResponseOutput{}) pulumi.RegisterOutputType(FirewallPolicyAssociationResponseArrayOutput{}) pulumi.RegisterOutputType(FirewallPolicyRuleOutput{}) pulumi.RegisterOutputType(FirewallPolicyRuleArrayOutput{}) pulumi.RegisterOutputType(FirewallPolicyRuleMatcherOutput{}) pulumi.RegisterOutputType(FirewallPolicyRuleMatcherPtrOutput{}) pulumi.RegisterOutputType(FirewallPolicyRuleMatcherLayer4ConfigOutput{}) pulumi.RegisterOutputType(FirewallPolicyRuleMatcherLayer4ConfigArrayOutput{}) pulumi.RegisterOutputType(FirewallPolicyRuleMatcherLayer4ConfigResponseOutput{}) pulumi.RegisterOutputType(FirewallPolicyRuleMatcherLayer4ConfigResponseArrayOutput{}) pulumi.RegisterOutputType(FirewallPolicyRuleMatcherResponseOutput{}) pulumi.RegisterOutputType(FirewallPolicyRuleResponseOutput{}) pulumi.RegisterOutputType(FirewallPolicyRuleResponseArrayOutput{}) pulumi.RegisterOutputType(FixedOrPercentOutput{}) pulumi.RegisterOutputType(FixedOrPercentPtrOutput{}) pulumi.RegisterOutputType(FixedOrPercentResponseOutput{}) pulumi.RegisterOutputType(ForwardingRuleServiceDirectoryRegistrationOutput{}) pulumi.RegisterOutputType(ForwardingRuleServiceDirectoryRegistrationArrayOutput{}) pulumi.RegisterOutputType(ForwardingRuleServiceDirectoryRegistrationResponseOutput{}) pulumi.RegisterOutputType(ForwardingRuleServiceDirectoryRegistrationResponseArrayOutput{}) pulumi.RegisterOutputType(GRPCHealthCheckOutput{}) pulumi.RegisterOutputType(GRPCHealthCheckPtrOutput{}) pulumi.RegisterOutputType(GRPCHealthCheckResponseOutput{}) pulumi.RegisterOutputType(GuestOsFeatureOutput{}) pulumi.RegisterOutputType(GuestOsFeatureArrayOutput{}) pulumi.RegisterOutputType(GuestOsFeatureResponseOutput{}) pulumi.RegisterOutputType(GuestOsFeatureResponseArrayOutput{}) pulumi.RegisterOutputType(HTTP2HealthCheckOutput{}) pulumi.RegisterOutputType(HTTP2HealthCheckPtrOutput{}) pulumi.RegisterOutputType(HTTP2HealthCheckResponseOutput{}) pulumi.RegisterOutputType(HTTPHealthCheckTypeOutput{}) pulumi.RegisterOutputType(HTTPHealthCheckTypePtrOutput{}) pulumi.RegisterOutputType(HTTPHealthCheckResponseOutput{}) pulumi.RegisterOutputType(HTTPSHealthCheckTypeOutput{}) pulumi.RegisterOutputType(HTTPSHealthCheckTypePtrOutput{}) pulumi.RegisterOutputType(HTTPSHealthCheckResponseOutput{}) pulumi.RegisterOutputType(HealthCheckLogConfigOutput{}) pulumi.RegisterOutputType(HealthCheckLogConfigPtrOutput{}) pulumi.RegisterOutputType(HealthCheckLogConfigResponseOutput{}) pulumi.RegisterOutputType(HostRuleOutput{}) pulumi.RegisterOutputType(HostRuleArrayOutput{}) pulumi.RegisterOutputType(HostRuleResponseOutput{}) pulumi.RegisterOutputType(HostRuleResponseArrayOutput{}) pulumi.RegisterOutputType(HttpFaultAbortOutput{}) pulumi.RegisterOutputType(HttpFaultAbortPtrOutput{}) pulumi.RegisterOutputType(HttpFaultAbortResponseOutput{}) pulumi.RegisterOutputType(HttpFaultDelayOutput{}) pulumi.RegisterOutputType(HttpFaultDelayPtrOutput{}) pulumi.RegisterOutputType(HttpFaultDelayResponseOutput{}) pulumi.RegisterOutputType(HttpFaultInjectionOutput{}) pulumi.RegisterOutputType(HttpFaultInjectionPtrOutput{}) pulumi.RegisterOutputType(HttpFaultInjectionResponseOutput{}) pulumi.RegisterOutputType(HttpHeaderActionOutput{}) pulumi.RegisterOutputType(HttpHeaderActionPtrOutput{}) pulumi.RegisterOutputType(HttpHeaderActionResponseOutput{}) pulumi.RegisterOutputType(HttpHeaderMatchOutput{}) pulumi.RegisterOutputType(HttpHeaderMatchArrayOutput{}) pulumi.RegisterOutputType(HttpHeaderMatchResponseOutput{}) pulumi.RegisterOutputType(HttpHeaderMatchResponseArrayOutput{}) pulumi.RegisterOutputType(HttpHeaderOptionOutput{}) pulumi.RegisterOutputType(HttpHeaderOptionArrayOutput{}) pulumi.RegisterOutputType(HttpHeaderOptionResponseOutput{}) pulumi.RegisterOutputType(HttpHeaderOptionResponseArrayOutput{}) pulumi.RegisterOutputType(HttpQueryParameterMatchOutput{}) pulumi.RegisterOutputType(HttpQueryParameterMatchArrayOutput{}) pulumi.RegisterOutputType(HttpQueryParameterMatchResponseOutput{}) pulumi.RegisterOutputType(HttpQueryParameterMatchResponseArrayOutput{}) pulumi.RegisterOutputType(HttpRedirectActionOutput{}) pulumi.RegisterOutputType(HttpRedirectActionPtrOutput{}) pulumi.RegisterOutputType(HttpRedirectActionResponseOutput{}) pulumi.RegisterOutputType(HttpRetryPolicyOutput{}) pulumi.RegisterOutputType(HttpRetryPolicyPtrOutput{}) pulumi.RegisterOutputType(HttpRetryPolicyResponseOutput{}) pulumi.RegisterOutputType(HttpRouteActionOutput{}) pulumi.RegisterOutputType(HttpRouteActionPtrOutput{}) pulumi.RegisterOutputType(HttpRouteActionResponseOutput{}) pulumi.RegisterOutputType(HttpRouteRuleOutput{}) pulumi.RegisterOutputType(HttpRouteRuleArrayOutput{}) pulumi.RegisterOutputType(HttpRouteRuleMatchOutput{}) pulumi.RegisterOutputType(HttpRouteRuleMatchArrayOutput{}) pulumi.RegisterOutputType(HttpRouteRuleMatchResponseOutput{}) pulumi.RegisterOutputType(HttpRouteRuleMatchResponseArrayOutput{}) pulumi.RegisterOutputType(HttpRouteRuleResponseOutput{}) pulumi.RegisterOutputType(HttpRouteRuleResponseArrayOutput{}) pulumi.RegisterOutputType(ImageRawDiskOutput{}) pulumi.RegisterOutputType(ImageRawDiskPtrOutput{}) pulumi.RegisterOutputType(ImageRawDiskResponseOutput{}) pulumi.RegisterOutputType(InitialStateConfigOutput{}) pulumi.RegisterOutputType(InitialStateConfigPtrOutput{}) pulumi.RegisterOutputType(InitialStateConfigResponseOutput{}) pulumi.RegisterOutputType(InstanceGroupManagerActionsSummaryResponseOutput{}) pulumi.RegisterOutputType(InstanceGroupManagerAutoHealingPolicyOutput{}) pulumi.RegisterOutputType(InstanceGroupManagerAutoHealingPolicyArrayOutput{}) pulumi.RegisterOutputType(InstanceGroupManagerAutoHealingPolicyResponseOutput{}) pulumi.RegisterOutputType(InstanceGroupManagerAutoHealingPolicyResponseArrayOutput{}) pulumi.RegisterOutputType(InstanceGroupManagerStatusResponseOutput{}) pulumi.RegisterOutputType(InstanceGroupManagerStatusStatefulPerInstanceConfigsResponseOutput{}) pulumi.RegisterOutputType(InstanceGroupManagerStatusStatefulResponseOutput{}) pulumi.RegisterOutputType(InstanceGroupManagerStatusVersionTargetResponseOutput{}) pulumi.RegisterOutputType(InstanceGroupManagerUpdatePolicyOutput{}) pulumi.RegisterOutputType(InstanceGroupManagerUpdatePolicyPtrOutput{}) pulumi.RegisterOutputType(InstanceGroupManagerUpdatePolicyResponseOutput{}) pulumi.RegisterOutputType(InstanceGroupManagerVersionOutput{}) pulumi.RegisterOutputType(InstanceGroupManagerVersionArrayOutput{}) pulumi.RegisterOutputType(InstanceGroupManagerVersionResponseOutput{}) pulumi.RegisterOutputType(InstanceGroupManagerVersionResponseArrayOutput{}) pulumi.RegisterOutputType(InstancePropertiesOutput{}) pulumi.RegisterOutputType(InstancePropertiesPtrOutput{}) pulumi.RegisterOutputType(InstancePropertiesResponseOutput{}) pulumi.RegisterOutputType(Int64RangeMatchOutput{}) pulumi.RegisterOutputType(Int64RangeMatchPtrOutput{}) pulumi.RegisterOutputType(Int64RangeMatchResponseOutput{}) pulumi.RegisterOutputType(InterconnectAttachmentPartnerMetadataOutput{}) pulumi.RegisterOutputType(InterconnectAttachmentPartnerMetadataPtrOutput{}) pulumi.RegisterOutputType(InterconnectAttachmentPartnerMetadataResponseOutput{}) pulumi.RegisterOutputType(InterconnectAttachmentPrivateInfoResponseOutput{}) pulumi.RegisterOutputType(InterconnectCircuitInfoResponseOutput{}) pulumi.RegisterOutputType(InterconnectCircuitInfoResponseArrayOutput{}) pulumi.RegisterOutputType(InterconnectOutageNotificationResponseOutput{}) pulumi.RegisterOutputType(InterconnectOutageNotificationResponseArrayOutput{}) pulumi.RegisterOutputType(LicenseResourceCommitmentOutput{}) pulumi.RegisterOutputType(LicenseResourceCommitmentPtrOutput{}) pulumi.RegisterOutputType(LicenseResourceCommitmentResponseOutput{}) pulumi.RegisterOutputType(LicenseResourceRequirementsOutput{}) pulumi.RegisterOutputType(LicenseResourceRequirementsPtrOutput{}) pulumi.RegisterOutputType(LicenseResourceRequirementsResponseOutput{}) pulumi.RegisterOutputType(LocalDiskOutput{}) pulumi.RegisterOutputType(LocalDiskArrayOutput{}) pulumi.RegisterOutputType(LocalDiskResponseOutput{}) pulumi.RegisterOutputType(LocalDiskResponseArrayOutput{}) pulumi.RegisterOutputType(LogConfigOutput{}) pulumi.RegisterOutputType(LogConfigArrayOutput{}) pulumi.RegisterOutputType(LogConfigCloudAuditOptionsOutput{}) pulumi.RegisterOutputType(LogConfigCloudAuditOptionsPtrOutput{}) pulumi.RegisterOutputType(LogConfigCloudAuditOptionsResponseOutput{}) pulumi.RegisterOutputType(LogConfigCounterOptionsOutput{}) pulumi.RegisterOutputType(LogConfigCounterOptionsPtrOutput{}) pulumi.RegisterOutputType(LogConfigCounterOptionsCustomFieldOutput{}) pulumi.RegisterOutputType(LogConfigCounterOptionsCustomFieldArrayOutput{}) pulumi.RegisterOutputType(LogConfigCounterOptionsCustomFieldResponseOutput{}) pulumi.RegisterOutputType(LogConfigCounterOptionsCustomFieldResponseArrayOutput{}) pulumi.RegisterOutputType(LogConfigCounterOptionsResponseOutput{}) pulumi.RegisterOutputType(LogConfigDataAccessOptionsOutput{}) pulumi.RegisterOutputType(LogConfigDataAccessOptionsPtrOutput{}) pulumi.RegisterOutputType(LogConfigDataAccessOptionsResponseOutput{}) pulumi.RegisterOutputType(LogConfigResponseOutput{}) pulumi.RegisterOutputType(LogConfigResponseArrayOutput{}) pulumi.RegisterOutputType(MetadataOutput{}) pulumi.RegisterOutputType(MetadataPtrOutput{}) pulumi.RegisterOutputType(MetadataFilterOutput{}) pulumi.RegisterOutputType(MetadataFilterArrayOutput{}) pulumi.RegisterOutputType(MetadataFilterLabelMatchOutput{}) pulumi.RegisterOutputType(MetadataFilterLabelMatchArrayOutput{}) pulumi.RegisterOutputType(MetadataFilterLabelMatchResponseOutput{}) pulumi.RegisterOutputType(MetadataFilterLabelMatchResponseArrayOutput{}) pulumi.RegisterOutputType(MetadataFilterResponseOutput{}) pulumi.RegisterOutputType(MetadataFilterResponseArrayOutput{}) pulumi.RegisterOutputType(MetadataItemsItemOutput{}) pulumi.RegisterOutputType(MetadataItemsItemArrayOutput{}) pulumi.RegisterOutputType(MetadataItemsItemResponseOutput{}) pulumi.RegisterOutputType(MetadataItemsItemResponseArrayOutput{}) pulumi.RegisterOutputType(MetadataResponseOutput{}) pulumi.RegisterOutputType(NamedPortOutput{}) pulumi.RegisterOutputType(NamedPortArrayOutput{}) pulumi.RegisterOutputType(NamedPortResponseOutput{}) pulumi.RegisterOutputType(NamedPortResponseArrayOutput{}) pulumi.RegisterOutputType(NetworkEndpointGroupAppEngineOutput{}) pulumi.RegisterOutputType(NetworkEndpointGroupAppEnginePtrOutput{}) pulumi.RegisterOutputType(NetworkEndpointGroupAppEngineResponseOutput{}) pulumi.RegisterOutputType(NetworkEndpointGroupCloudFunctionOutput{}) pulumi.RegisterOutputType(NetworkEndpointGroupCloudFunctionPtrOutput{}) pulumi.RegisterOutputType(NetworkEndpointGroupCloudFunctionResponseOutput{}) pulumi.RegisterOutputType(NetworkEndpointGroupCloudRunOutput{}) pulumi.RegisterOutputType(NetworkEndpointGroupCloudRunPtrOutput{}) pulumi.RegisterOutputType(NetworkEndpointGroupCloudRunResponseOutput{}) pulumi.RegisterOutputType(NetworkInterfaceOutput{}) pulumi.RegisterOutputType(NetworkInterfaceArrayOutput{}) pulumi.RegisterOutputType(NetworkInterfaceResponseOutput{}) pulumi.RegisterOutputType(NetworkInterfaceResponseArrayOutput{}) pulumi.RegisterOutputType(NetworkPeeringResponseOutput{}) pulumi.RegisterOutputType(NetworkPeeringResponseArrayOutput{}) pulumi.RegisterOutputType(NetworkPerformanceConfigOutput{}) pulumi.RegisterOutputType(NetworkPerformanceConfigPtrOutput{}) pulumi.RegisterOutputType(NetworkPerformanceConfigResponseOutput{}) pulumi.RegisterOutputType(NetworkRoutingConfigOutput{}) pulumi.RegisterOutputType(NetworkRoutingConfigPtrOutput{}) pulumi.RegisterOutputType(NetworkRoutingConfigResponseOutput{}) pulumi.RegisterOutputType(NodeGroupAutoscalingPolicyOutput{}) pulumi.RegisterOutputType(NodeGroupAutoscalingPolicyPtrOutput{}) pulumi.RegisterOutputType(NodeGroupAutoscalingPolicyResponseOutput{}) pulumi.RegisterOutputType(NodeGroupMaintenanceWindowOutput{}) pulumi.RegisterOutputType(NodeGroupMaintenanceWindowPtrOutput{}) pulumi.RegisterOutputType(NodeGroupMaintenanceWindowResponseOutput{}) pulumi.RegisterOutputType(NodeTemplateNodeTypeFlexibilityOutput{}) pulumi.RegisterOutputType(NodeTemplateNodeTypeFlexibilityPtrOutput{}) pulumi.RegisterOutputType(NodeTemplateNodeTypeFlexibilityResponseOutput{}) pulumi.RegisterOutputType(NotificationEndpointGrpcSettingsOutput{}) pulumi.RegisterOutputType(NotificationEndpointGrpcSettingsPtrOutput{}) pulumi.RegisterOutputType(NotificationEndpointGrpcSettingsResponseOutput{}) pulumi.RegisterOutputType(OutlierDetectionOutput{}) pulumi.RegisterOutputType(OutlierDetectionPtrOutput{}) pulumi.RegisterOutputType(OutlierDetectionResponseOutput{}) pulumi.RegisterOutputType(PacketMirroringFilterOutput{}) pulumi.RegisterOutputType(PacketMirroringFilterPtrOutput{}) pulumi.RegisterOutputType(PacketMirroringFilterResponseOutput{}) pulumi.RegisterOutputType(PacketMirroringForwardingRuleInfoOutput{}) pulumi.RegisterOutputType(PacketMirroringForwardingRuleInfoPtrOutput{}) pulumi.RegisterOutputType(PacketMirroringForwardingRuleInfoResponseOutput{}) pulumi.RegisterOutputType(PacketMirroringMirroredResourceInfoOutput{}) pulumi.RegisterOutputType(PacketMirroringMirroredResourceInfoPtrOutput{}) pulumi.RegisterOutputType(PacketMirroringMirroredResourceInfoInstanceInfoOutput{}) pulumi.RegisterOutputType(PacketMirroringMirroredResourceInfoInstanceInfoArrayOutput{}) pulumi.RegisterOutputType(PacketMirroringMirroredResourceInfoInstanceInfoResponseOutput{}) pulumi.RegisterOutputType(PacketMirroringMirroredResourceInfoInstanceInfoResponseArrayOutput{}) pulumi.RegisterOutputType(PacketMirroringMirroredResourceInfoResponseOutput{}) pulumi.RegisterOutputType(PacketMirroringMirroredResourceInfoSubnetInfoOutput{}) pulumi.RegisterOutputType(PacketMirroringMirroredResourceInfoSubnetInfoArrayOutput{}) pulumi.RegisterOutputType(PacketMirroringMirroredResourceInfoSubnetInfoResponseOutput{}) pulumi.RegisterOutputType(PacketMirroringMirroredResourceInfoSubnetInfoResponseArrayOutput{}) pulumi.RegisterOutputType(PacketMirroringNetworkInfoOutput{}) pulumi.RegisterOutputType(PacketMirroringNetworkInfoPtrOutput{}) pulumi.RegisterOutputType(PacketMirroringNetworkInfoResponseOutput{}) pulumi.RegisterOutputType(PathMatcherOutput{}) pulumi.RegisterOutputType(PathMatcherArrayOutput{}) pulumi.RegisterOutputType(PathMatcherResponseOutput{}) pulumi.RegisterOutputType(PathMatcherResponseArrayOutput{}) pulumi.RegisterOutputType(PathRuleOutput{}) pulumi.RegisterOutputType(PathRuleArrayOutput{}) pulumi.RegisterOutputType(PathRuleResponseOutput{}) pulumi.RegisterOutputType(PathRuleResponseArrayOutput{}) pulumi.RegisterOutputType(PublicAdvertisedPrefixPublicDelegatedPrefixResponseOutput{}) pulumi.RegisterOutputType(PublicAdvertisedPrefixPublicDelegatedPrefixResponseArrayOutput{}) pulumi.RegisterOutputType(PublicDelegatedPrefixPublicDelegatedSubPrefixOutput{}) pulumi.RegisterOutputType(PublicDelegatedPrefixPublicDelegatedSubPrefixArrayOutput{}) pulumi.RegisterOutputType(PublicDelegatedPrefixPublicDelegatedSubPrefixResponseOutput{}) pulumi.RegisterOutputType(PublicDelegatedPrefixPublicDelegatedSubPrefixResponseArrayOutput{}) pulumi.RegisterOutputType(RequestMirrorPolicyOutput{}) pulumi.RegisterOutputType(RequestMirrorPolicyPtrOutput{}) pulumi.RegisterOutputType(RequestMirrorPolicyResponseOutput{}) pulumi.RegisterOutputType(ReservationTypeOutput{}) pulumi.RegisterOutputType(ReservationTypeArrayOutput{}) pulumi.RegisterOutputType(ReservationAffinityOutput{}) pulumi.RegisterOutputType(ReservationAffinityPtrOutput{}) pulumi.RegisterOutputType(ReservationAffinityResponseOutput{}) pulumi.RegisterOutputType(ReservationResponseOutput{}) pulumi.RegisterOutputType(ReservationResponseArrayOutput{}) pulumi.RegisterOutputType(ResourceCommitmentOutput{}) pulumi.RegisterOutputType(ResourceCommitmentArrayOutput{}) pulumi.RegisterOutputType(ResourceCommitmentResponseOutput{}) pulumi.RegisterOutputType(ResourceCommitmentResponseArrayOutput{}) pulumi.RegisterOutputType(ResourcePolicyDailyCycleOutput{}) pulumi.RegisterOutputType(ResourcePolicyDailyCyclePtrOutput{}) pulumi.RegisterOutputType(ResourcePolicyDailyCycleResponseOutput{}) pulumi.RegisterOutputType(ResourcePolicyGroupPlacementPolicyOutput{}) pulumi.RegisterOutputType(ResourcePolicyGroupPlacementPolicyPtrOutput{}) pulumi.RegisterOutputType(ResourcePolicyGroupPlacementPolicyResponseOutput{}) pulumi.RegisterOutputType(ResourcePolicyHourlyCycleOutput{}) pulumi.RegisterOutputType(ResourcePolicyHourlyCyclePtrOutput{}) pulumi.RegisterOutputType(ResourcePolicyHourlyCycleResponseOutput{}) pulumi.RegisterOutputType(ResourcePolicyInstanceSchedulePolicyOutput{}) pulumi.RegisterOutputType(ResourcePolicyInstanceSchedulePolicyPtrOutput{}) pulumi.RegisterOutputType(ResourcePolicyInstanceSchedulePolicyResponseOutput{}) pulumi.RegisterOutputType(ResourcePolicyInstanceSchedulePolicyScheduleOutput{}) pulumi.RegisterOutputType(ResourcePolicyInstanceSchedulePolicySchedulePtrOutput{}) pulumi.RegisterOutputType(ResourcePolicyInstanceSchedulePolicyScheduleResponseOutput{}) pulumi.RegisterOutputType(ResourcePolicyResourceStatusInstanceSchedulePolicyStatusResponseOutput{}) pulumi.RegisterOutputType(ResourcePolicyResourceStatusResponseOutput{}) pulumi.RegisterOutputType(ResourcePolicySnapshotSchedulePolicyOutput{}) pulumi.RegisterOutputType(ResourcePolicySnapshotSchedulePolicyPtrOutput{}) pulumi.RegisterOutputType(ResourcePolicySnapshotSchedulePolicyResponseOutput{}) pulumi.RegisterOutputType(ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput{}) pulumi.RegisterOutputType(ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput{}) pulumi.RegisterOutputType(ResourcePolicySnapshotSchedulePolicyRetentionPolicyResponseOutput{}) pulumi.RegisterOutputType(ResourcePolicySnapshotSchedulePolicyScheduleOutput{}) pulumi.RegisterOutputType(ResourcePolicySnapshotSchedulePolicySchedulePtrOutput{}) pulumi.RegisterOutputType(ResourcePolicySnapshotSchedulePolicyScheduleResponseOutput{}) pulumi.RegisterOutputType(ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput{}) pulumi.RegisterOutputType(ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput{}) pulumi.RegisterOutputType(ResourcePolicySnapshotSchedulePolicySnapshotPropertiesResponseOutput{}) pulumi.RegisterOutputType(ResourcePolicyWeeklyCycleOutput{}) pulumi.RegisterOutputType(ResourcePolicyWeeklyCyclePtrOutput{}) pulumi.RegisterOutputType(ResourcePolicyWeeklyCycleDayOfWeekOutput{}) pulumi.RegisterOutputType(ResourcePolicyWeeklyCycleDayOfWeekArrayOutput{}) pulumi.RegisterOutputType(ResourcePolicyWeeklyCycleDayOfWeekResponseOutput{}) pulumi.RegisterOutputType(ResourcePolicyWeeklyCycleDayOfWeekResponseArrayOutput{}) pulumi.RegisterOutputType(ResourcePolicyWeeklyCycleResponseOutput{}) pulumi.RegisterOutputType(RouteAsPathResponseOutput{}) pulumi.RegisterOutputType(RouteAsPathResponseArrayOutput{}) pulumi.RegisterOutputType(RouteWarningsItemDataItemResponseOutput{}) pulumi.RegisterOutputType(RouteWarningsItemDataItemResponseArrayOutput{}) pulumi.RegisterOutputType(RouteWarningsItemResponseOutput{}) pulumi.RegisterOutputType(RouteWarningsItemResponseArrayOutput{}) pulumi.RegisterOutputType(RouterAdvertisedIpRangeOutput{}) pulumi.RegisterOutputType(RouterAdvertisedIpRangeArrayOutput{}) pulumi.RegisterOutputType(RouterAdvertisedIpRangeResponseOutput{}) pulumi.RegisterOutputType(RouterAdvertisedIpRangeResponseArrayOutput{}) pulumi.RegisterOutputType(RouterBgpOutput{}) pulumi.RegisterOutputType(RouterBgpPtrOutput{}) pulumi.RegisterOutputType(RouterBgpPeerOutput{}) pulumi.RegisterOutputType(RouterBgpPeerArrayOutput{}) pulumi.RegisterOutputType(RouterBgpPeerBfdOutput{}) pulumi.RegisterOutputType(RouterBgpPeerBfdPtrOutput{}) pulumi.RegisterOutputType(RouterBgpPeerBfdResponseOutput{}) pulumi.RegisterOutputType(RouterBgpPeerResponseOutput{}) pulumi.RegisterOutputType(RouterBgpPeerResponseArrayOutput{}) pulumi.RegisterOutputType(RouterBgpResponseOutput{}) pulumi.RegisterOutputType(RouterInterfaceOutput{}) pulumi.RegisterOutputType(RouterInterfaceArrayOutput{}) pulumi.RegisterOutputType(RouterInterfaceResponseOutput{}) pulumi.RegisterOutputType(RouterInterfaceResponseArrayOutput{}) pulumi.RegisterOutputType(RouterNatOutput{}) pulumi.RegisterOutputType(RouterNatArrayOutput{}) pulumi.RegisterOutputType(RouterNatLogConfigOutput{}) pulumi.RegisterOutputType(RouterNatLogConfigPtrOutput{}) pulumi.RegisterOutputType(RouterNatLogConfigResponseOutput{}) pulumi.RegisterOutputType(RouterNatResponseOutput{}) pulumi.RegisterOutputType(RouterNatResponseArrayOutput{}) pulumi.RegisterOutputType(RouterNatRuleOutput{}) pulumi.RegisterOutputType(RouterNatRuleArrayOutput{}) pulumi.RegisterOutputType(RouterNatRuleActionOutput{}) pulumi.RegisterOutputType(RouterNatRuleActionPtrOutput{}) pulumi.RegisterOutputType(RouterNatRuleActionResponseOutput{}) pulumi.RegisterOutputType(RouterNatRuleResponseOutput{}) pulumi.RegisterOutputType(RouterNatRuleResponseArrayOutput{}) pulumi.RegisterOutputType(RouterNatSubnetworkToNatOutput{}) pulumi.RegisterOutputType(RouterNatSubnetworkToNatArrayOutput{}) pulumi.RegisterOutputType(RouterNatSubnetworkToNatResponseOutput{}) pulumi.RegisterOutputType(RouterNatSubnetworkToNatResponseArrayOutput{}) pulumi.RegisterOutputType(RuleOutput{}) pulumi.RegisterOutputType(RuleArrayOutput{}) pulumi.RegisterOutputType(RuleResponseOutput{}) pulumi.RegisterOutputType(RuleResponseArrayOutput{}) pulumi.RegisterOutputType(SSLHealthCheckOutput{}) pulumi.RegisterOutputType(SSLHealthCheckPtrOutput{}) pulumi.RegisterOutputType(SSLHealthCheckResponseOutput{}) pulumi.RegisterOutputType(SavedAttachedDiskResponseOutput{}) pulumi.RegisterOutputType(SavedAttachedDiskResponseArrayOutput{}) pulumi.RegisterOutputType(SavedDiskOutput{}) pulumi.RegisterOutputType(SavedDiskArrayOutput{}) pulumi.RegisterOutputType(SavedDiskResponseOutput{}) pulumi.RegisterOutputType(SavedDiskResponseArrayOutput{}) pulumi.RegisterOutputType(SchedulingOutput{}) pulumi.RegisterOutputType(SchedulingPtrOutput{}) pulumi.RegisterOutputType(SchedulingNodeAffinityOutput{}) pulumi.RegisterOutputType(SchedulingNodeAffinityArrayOutput{}) pulumi.RegisterOutputType(SchedulingNodeAffinityResponseOutput{}) pulumi.RegisterOutputType(SchedulingNodeAffinityResponseArrayOutput{}) pulumi.RegisterOutputType(SchedulingResponseOutput{}) pulumi.RegisterOutputType(SecurityPolicyAdaptiveProtectionConfigOutput{}) pulumi.RegisterOutputType(SecurityPolicyAdaptiveProtectionConfigPtrOutput{}) pulumi.RegisterOutputType(SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput{}) pulumi.RegisterOutputType(SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput{}) pulumi.RegisterOutputType(SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigResponseOutput{}) pulumi.RegisterOutputType(SecurityPolicyAdaptiveProtectionConfigResponseOutput{}) pulumi.RegisterOutputType(SecurityPolicyAdvancedOptionsConfigOutput{}) pulumi.RegisterOutputType(SecurityPolicyAdvancedOptionsConfigPtrOutput{}) pulumi.RegisterOutputType(SecurityPolicyAdvancedOptionsConfigResponseOutput{}) pulumi.RegisterOutputType(SecurityPolicyRecaptchaOptionsConfigOutput{}) pulumi.RegisterOutputType(SecurityPolicyRecaptchaOptionsConfigPtrOutput{}) pulumi.RegisterOutputType(SecurityPolicyRecaptchaOptionsConfigResponseOutput{}) pulumi.RegisterOutputType(SecurityPolicyRuleOutput{}) pulumi.RegisterOutputType(SecurityPolicyRuleArrayOutput{}) pulumi.RegisterOutputType(SecurityPolicyRuleHttpHeaderActionOutput{}) pulumi.RegisterOutputType(SecurityPolicyRuleHttpHeaderActionPtrOutput{}) pulumi.RegisterOutputType(SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionOutput{}) pulumi.RegisterOutputType(SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionArrayOutput{}) pulumi.RegisterOutputType(SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionResponseOutput{}) pulumi.RegisterOutputType(SecurityPolicyRuleHttpHeaderActionHttpHeaderOptionResponseArrayOutput{}) pulumi.RegisterOutputType(SecurityPolicyRuleHttpHeaderActionResponseOutput{}) pulumi.RegisterOutputType(SecurityPolicyRuleMatcherOutput{}) pulumi.RegisterOutputType(SecurityPolicyRuleMatcherPtrOutput{}) pulumi.RegisterOutputType(SecurityPolicyRuleMatcherConfigOutput{}) pulumi.RegisterOutputType(SecurityPolicyRuleMatcherConfigPtrOutput{}) pulumi.RegisterOutputType(SecurityPolicyRuleMatcherConfigResponseOutput{}) pulumi.RegisterOutputType(SecurityPolicyRuleMatcherResponseOutput{}) pulumi.RegisterOutputType(SecurityPolicyRuleRateLimitOptionsOutput{}) pulumi.RegisterOutputType(SecurityPolicyRuleRateLimitOptionsPtrOutput{}) pulumi.RegisterOutputType(SecurityPolicyRuleRateLimitOptionsResponseOutput{}) pulumi.RegisterOutputType(SecurityPolicyRuleRateLimitOptionsThresholdOutput{}) pulumi.RegisterOutputType(SecurityPolicyRuleRateLimitOptionsThresholdPtrOutput{}) pulumi.RegisterOutputType(SecurityPolicyRuleRateLimitOptionsThresholdResponseOutput{}) pulumi.RegisterOutputType(SecurityPolicyRuleRedirectOptionsOutput{}) pulumi.RegisterOutputType(SecurityPolicyRuleRedirectOptionsPtrOutput{}) pulumi.RegisterOutputType(SecurityPolicyRuleRedirectOptionsResponseOutput{}) pulumi.RegisterOutputType(SecurityPolicyRuleResponseOutput{}) pulumi.RegisterOutputType(SecurityPolicyRuleResponseArrayOutput{}) pulumi.RegisterOutputType(SecuritySettingsOutput{}) pulumi.RegisterOutputType(SecuritySettingsPtrOutput{}) pulumi.RegisterOutputType(SecuritySettingsResponseOutput{}) pulumi.RegisterOutputType(ServerBindingOutput{}) pulumi.RegisterOutputType(ServerBindingPtrOutput{}) pulumi.RegisterOutputType(ServerBindingResponseOutput{}) pulumi.RegisterOutputType(ServiceAccountOutput{}) pulumi.RegisterOutputType(ServiceAccountArrayOutput{}) pulumi.RegisterOutputType(ServiceAccountResponseOutput{}) pulumi.RegisterOutputType(ServiceAccountResponseArrayOutput{}) pulumi.RegisterOutputType(ServiceAttachmentConnectedEndpointResponseOutput{}) pulumi.RegisterOutputType(ServiceAttachmentConnectedEndpointResponseArrayOutput{}) pulumi.RegisterOutputType(ServiceAttachmentConsumerProjectLimitOutput{}) pulumi.RegisterOutputType(ServiceAttachmentConsumerProjectLimitArrayOutput{}) pulumi.RegisterOutputType(ServiceAttachmentConsumerProjectLimitResponseOutput{}) pulumi.RegisterOutputType(ServiceAttachmentConsumerProjectLimitResponseArrayOutput{}) pulumi.RegisterOutputType(ShareSettingsOutput{}) pulumi.RegisterOutputType(ShareSettingsPtrOutput{}) pulumi.RegisterOutputType(ShareSettingsResponseOutput{}) pulumi.RegisterOutputType(ShieldedInstanceConfigOutput{}) pulumi.RegisterOutputType(ShieldedInstanceConfigPtrOutput{}) pulumi.RegisterOutputType(ShieldedInstanceConfigResponseOutput{}) pulumi.RegisterOutputType(ShieldedInstanceIntegrityPolicyOutput{}) pulumi.RegisterOutputType(ShieldedInstanceIntegrityPolicyPtrOutput{}) pulumi.RegisterOutputType(ShieldedInstanceIntegrityPolicyResponseOutput{}) pulumi.RegisterOutputType(SourceDiskEncryptionKeyOutput{}) pulumi.RegisterOutputType(SourceDiskEncryptionKeyArrayOutput{}) pulumi.RegisterOutputType(SourceDiskEncryptionKeyResponseOutput{}) pulumi.RegisterOutputType(SourceDiskEncryptionKeyResponseArrayOutput{}) pulumi.RegisterOutputType(SourceInstanceParamsOutput{}) pulumi.RegisterOutputType(SourceInstanceParamsPtrOutput{}) pulumi.RegisterOutputType(SourceInstanceParamsResponseOutput{}) pulumi.RegisterOutputType(SourceInstancePropertiesResponseOutput{}) pulumi.RegisterOutputType(SslCertificateManagedSslCertificateOutput{}) pulumi.RegisterOutputType(SslCertificateManagedSslCertificatePtrOutput{}) pulumi.RegisterOutputType(SslCertificateManagedSslCertificateResponseOutput{}) pulumi.RegisterOutputType(SslCertificateSelfManagedSslCertificateOutput{}) pulumi.RegisterOutputType(SslCertificateSelfManagedSslCertificatePtrOutput{}) pulumi.RegisterOutputType(SslCertificateSelfManagedSslCertificateResponseOutput{}) pulumi.RegisterOutputType(SslPolicyWarningsItemDataItemResponseOutput{}) pulumi.RegisterOutputType(SslPolicyWarningsItemDataItemResponseArrayOutput{}) pulumi.RegisterOutputType(SslPolicyWarningsItemResponseOutput{}) pulumi.RegisterOutputType(SslPolicyWarningsItemResponseArrayOutput{}) pulumi.RegisterOutputType(StatefulPolicyOutput{}) pulumi.RegisterOutputType(StatefulPolicyPtrOutput{}) pulumi.RegisterOutputType(StatefulPolicyPreservedStateOutput{}) pulumi.RegisterOutputType(StatefulPolicyPreservedStatePtrOutput{}) pulumi.RegisterOutputType(StatefulPolicyPreservedStateResponseOutput{}) pulumi.RegisterOutputType(StatefulPolicyResponseOutput{}) pulumi.RegisterOutputType(SubnetworkLogConfigOutput{}) pulumi.RegisterOutputType(SubnetworkLogConfigPtrOutput{}) pulumi.RegisterOutputType(SubnetworkLogConfigResponseOutput{}) pulumi.RegisterOutputType(SubnetworkSecondaryRangeOutput{}) pulumi.RegisterOutputType(SubnetworkSecondaryRangeArrayOutput{}) pulumi.RegisterOutputType(SubnetworkSecondaryRangeResponseOutput{}) pulumi.RegisterOutputType(SubnetworkSecondaryRangeResponseArrayOutput{}) pulumi.RegisterOutputType(SubsettingOutput{}) pulumi.RegisterOutputType(SubsettingPtrOutput{}) pulumi.RegisterOutputType(SubsettingResponseOutput{}) pulumi.RegisterOutputType(TCPHealthCheckOutput{}) pulumi.RegisterOutputType(TCPHealthCheckPtrOutput{}) pulumi.RegisterOutputType(TCPHealthCheckResponseOutput{}) pulumi.RegisterOutputType(TagsOutput{}) pulumi.RegisterOutputType(TagsPtrOutput{}) pulumi.RegisterOutputType(TagsResponseOutput{}) pulumi.RegisterOutputType(Uint128ResponseOutput{}) pulumi.RegisterOutputType(UrlMapTestOutput{}) pulumi.RegisterOutputType(UrlMapTestArrayOutput{}) pulumi.RegisterOutputType(UrlMapTestHeaderOutput{}) pulumi.RegisterOutputType(UrlMapTestHeaderArrayOutput{}) pulumi.RegisterOutputType(UrlMapTestHeaderResponseOutput{}) pulumi.RegisterOutputType(UrlMapTestHeaderResponseArrayOutput{}) pulumi.RegisterOutputType(UrlMapTestResponseOutput{}) pulumi.RegisterOutputType(UrlMapTestResponseArrayOutput{}) pulumi.RegisterOutputType(UrlRewriteOutput{}) pulumi.RegisterOutputType(UrlRewritePtrOutput{}) pulumi.RegisterOutputType(UrlRewriteResponseOutput{}) pulumi.RegisterOutputType(VpnGatewayVpnGatewayInterfaceOutput{}) pulumi.RegisterOutputType(VpnGatewayVpnGatewayInterfaceArrayOutput{}) pulumi.RegisterOutputType(VpnGatewayVpnGatewayInterfaceResponseOutput{}) pulumi.RegisterOutputType(VpnGatewayVpnGatewayInterfaceResponseArrayOutput{}) pulumi.RegisterOutputType(WeightedBackendServiceOutput{}) pulumi.RegisterOutputType(WeightedBackendServiceArrayOutput{}) pulumi.RegisterOutputType(WeightedBackendServiceResponseOutput{}) pulumi.RegisterOutputType(WeightedBackendServiceResponseArrayOutput{}) }